Package org.stianloader.micromixin.transform.api.supertypes

## Class ClassWrapperPool

- java.lang.Object
- - org.stianloader.micromixin.transform.api.supertypes.ClassWrapperPool

-     public class ClassWrapperPool
      extends java.lang.Object

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected java.util.Map<java.lang.String,​ClassWrapper>` | `wrappers` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ClassWrapperPool()` |
    `ClassWrapperPool​(java.util.List<ClassWrapperProvider> providers)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `ClassWrapperPool` | `addProvider​(ClassWrapperProvider provider)` |
    `boolean` | `canAssign​(ClassWrapper superType, ClassWrapper subType)` |
    `ClassWrapper` | `get​(java.lang.String className)` |
    `ClassWrapper` | `getCommonSuperClass​(ClassWrapper class1, ClassWrapper class2)` |
    `void` | `invalidateNameCaches()` | Invalidate internal `ClassNode` `name` caches.
    `boolean` | `isImplementingInterface​(ClassWrapper clazz, java.lang.String interfaceName)` |
    `ClassWrapper` | `optGet​(java.lang.String className)` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### wrappers

          @NotNull
          protected final java.util.Map<java.lang.String,​ClassWrapper> wrappers

  - ### Constructor Detail

    - #### ClassWrapperPool

          public ClassWrapperPool()

    - #### ClassWrapperPool

          public ClassWrapperPool​(@NotNull
                                  java.util.List<ClassWrapperProvider> providers)

  - ### Method Detail

    - #### addProvider

          @NotNull
          @Contract(mutates="this",
                    pure=false,
                    value="null -> fail; !null -> this")
          public ClassWrapperPool addProvider​(@NotNull
                                              ClassWrapperProvider provider)

    - #### canAssign

          public boolean canAssign​(@NotNull
                                   ClassWrapper superType,
                                   @NotNull
                                   ClassWrapper subType)

    - #### get

          @NotNull
          public ClassWrapper get​(@NotNull
                                  java.lang.String className)

    - #### getCommonSuperClass

          @NotNull
          public ClassWrapper getCommonSuperClass​(@NotNull
                                                  ClassWrapper class1,
                                                  @NotNull
                                                  ClassWrapper class2)

    - #### invalidateNameCaches

          public void invalidateNameCaches()

      Invalidate internal `ClassNode` `name` caches. Should be invoked when for example class nodes are remapped, at which point internal caches are no longer valid.

    - #### isImplementingInterface

          public boolean isImplementingInterface​(ClassWrapper clazz,
                                                 java.lang.String interfaceName)

    - #### optGet

          @Nullable
          public ClassWrapper optGet​(@NotNull
                                     java.lang.String className)