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
`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`