Package org.stianloader.micromixin.transform.api

## Interface BytecodeProvider<M>

- Type Parameters:
    `M` - The type of the modularity attachment. A recommended type can be `ClassLoader`, but really anything goes, `Void` for example is perfectly fine as long as the `BytecodeProvider` accounts for null attachments.

      public interface BytecodeProvider<M>

  A `BytecodeProvider` provides `ClassNode` instances for arbitrary classes. It is up to the API consumer to implement this interface.

  In order to easily support modularity and further segregation of code, the bytecode provider is always given a Modularity attachment. The `MixinTransformer` will have the same type of the modularity attachment as the `BytecodeProvider`.

  Implementors are highly recommended to also implements the `CodeSourceURIProvider` interface. Future versions of micromxin-transformer are likely to require all implementations of `BytecodeProvider` to also implement `CodeSourceURIProvider` for maintenance, stability and uniformity reasons.

  See Also:
    `CodeSourceURIProvider`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `org.objectweb.asm.tree.ClassNode` | `getClassNode​(M modularityAttachment, java.lang.String internalName)` |

- - ### Method Detail

    - #### getClassNode

          @NotNull
          org.objectweb.asm.tree.ClassNode getClassNode​(M modularityAttachment,
                                                        @NotNull
                                                        java.lang.String internalName)
                                                 throws java.lang.ClassNotFoundException

      Throws:
        `java.lang.ClassNotFoundException`