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
`protected java.util.Map<java.lang.String,​ClassWrapper>` `wrappers`

### Constructor Summary

Constructors
`ClassWrapperPool()`
`ClassWrapperPool​(java.util.List<ClassWrapperProvider> providers)`

### Method Summary

All Methods Instance Methods Concrete Methods
`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)