public class KotlinMetadataInitializer extends java.lang.Object implements ClassVisitor, AnnotationVisitor, ElementValueVisitor, ConstantVisitor
Provides two APIs:
- Visitor: use as a ClassVisitor or AnnotationVisitor to initialize the Kotlin metadata
contain within a Metadata annotation.
After initialization, all info from the annotation is represented in the Clazz's
ProgramClass.kotlinMetadata field.
Note: only applicable for ProgramClass.
- `initialize`: provide the Clazz and Metadata field values
to the initialize(Clazz, int, int[], String[], String[], int, String, String) method
to initialize Kotlin metadata for the given Clazz.
| Modifier and Type | Class and Description |
|---|---|
static class |
KotlinMetadataInitializer.MetadataType |
| Modifier and Type | Field and Description |
|---|---|
static KotlinMetadataVersion |
MAX_SUPPORTED_VERSION |
| Constructor and Description |
|---|
KotlinMetadataInitializer(java.util.function.BiConsumer<Clazz,java.lang.String> errorHandler) |
KotlinMetadataInitializer(WarningPrinter warningPrinter) |
| Modifier and Type | Method and Description |
|---|---|
void |
initialize(Clazz clazz,
int k,
int[] mv,
java.lang.String[] d1,
java.lang.String[] d2,
int xi,
java.lang.String xs,
java.lang.String pn)
Initialize Kotlin metadata for a given
Clazz. |
static boolean |
isSupportedMetadataVersion(KotlinMetadataVersion mv) |
static boolean |
isValidKotlinMetadataAnnotationField(java.lang.String name) |
static KotlinMetadataInitializer.MetadataType |
metadataTypeOf(java.lang.String name) |
void |
visitAnnotation(Clazz clazz,
Annotation annotation)
Visits any Annotation instance.
|
void |
visitAnyClass(Clazz clazz)
Visits any Clazz instance.
|
void |
visitArrayElementValue(Clazz clazz,
Annotation annotation,
ArrayElementValue arrayElementValue) |
void |
visitConstantElementValue(Clazz clazz,
Annotation annotation,
ConstantElementValue constantElementValue) |
void |
visitIntegerConstant(Clazz clazz,
IntegerConstant integerConstant) |
void |
visitLibraryClass(LibraryClass libraryClass) |
void |
visitProgramClass(ProgramClass clazz) |
void |
visitUtf8Constant(Clazz clazz,
Utf8Constant utf8Constant) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitvisitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotationvisitAnnotationElementValue, visitAnyElementValue, visitClassElementValue, visitEnumConstantElementValuevisitAnyConstant, visitAnyMethodrefConstant, visitAnyRefConstant, visitClassConstant, visitDoubleConstant, visitDynamicConstant, visitFieldrefConstant, visitFloatConstant, visitInterfaceMethodrefConstant, visitInvokeDynamicConstant, visitLongConstant, visitMethodHandleConstant, visitMethodrefConstant, visitMethodTypeConstant, visitModuleConstant, visitNameAndTypeConstant, visitPackageConstant, visitPrimitiveArrayConstant, visitStringConstantpublic static final KotlinMetadataVersion MAX_SUPPORTED_VERSION
public KotlinMetadataInitializer(WarningPrinter warningPrinter)
public KotlinMetadataInitializer(java.util.function.BiConsumer<Clazz,java.lang.String> errorHandler)
public void visitAnyClass(Clazz clazz)
ClassVisitorvisitAnyClass in interface ClassVisitorpublic void visitLibraryClass(LibraryClass libraryClass)
visitLibraryClass in interface ClassVisitorpublic void visitProgramClass(ProgramClass clazz)
visitProgramClass in interface ClassVisitorpublic void visitAnnotation(Clazz clazz, Annotation annotation)
AnnotationVisitorvisitAnnotation in interface AnnotationVisitorpublic void initialize(Clazz clazz, int k, int[] mv, java.lang.String[] d1, java.lang.String[] d2, int xi, java.lang.String xs, java.lang.String pn)
Clazz.clazz - The ProgramClass or LibraryClass.k - mv - d1 - d2 - xi - xs - pn - public void visitConstantElementValue(Clazz clazz, Annotation annotation, ConstantElementValue constantElementValue)
visitConstantElementValue in interface ElementValueVisitorpublic void visitArrayElementValue(Clazz clazz, Annotation annotation, ArrayElementValue arrayElementValue)
visitArrayElementValue in interface ElementValueVisitorpublic void visitUtf8Constant(Clazz clazz, Utf8Constant utf8Constant)
visitUtf8Constant in interface ConstantVisitorpublic void visitIntegerConstant(Clazz clazz, IntegerConstant integerConstant)
visitIntegerConstant in interface ConstantVisitorpublic static boolean isSupportedMetadataVersion(KotlinMetadataVersion mv)
public static boolean isValidKotlinMetadataAnnotationField(java.lang.String name)
public static KotlinMetadataInitializer.MetadataType metadataTypeOf(java.lang.String name)