Package org.qbicc.plugin.patcher
Class Patcher
java.lang.Object
org.qbicc.plugin.patcher.Patcher
-
Method Summary
Modifier and TypeMethodDescriptionvoidaddConstructor(ClassContext classContext, String internalName, MethodDescriptor descriptor, ConstructorResolver resolver, int index, int addModifiers) voidaddField(ClassContext classContext, String internalName, String fieldName, TypeDescriptor descriptor, FieldResolver resolver, int index, int addModifiers) Add a field to the given class.voidaddMethod(ClassContext classContext, String internalName, String methodName, MethodDescriptor descriptor, MethodResolver resolver, int index, int addModifiers) voiddeleteConstructor(ClassContext classContext, String internalName, MethodDescriptor descriptor) voiddeleteField(ClassContext classContext, String internalName, String fieldName, TypeDescriptor descriptor) Delete a field.voiddeleteMethod(ClassContext classContext, String internalName, String methodName, MethodDescriptor descriptor) static Patcherget(CompilationContext ctxt) getTypeBuilder(ClassContext classContext, DefinedTypeDefinition.Builder delegate) static voidinitialize(ClassContext classContext) voidreplaceConstructor(ClassContext classContext, String internalName, MethodDescriptor descriptor, ConstructorResolver resolver, int index, int addModifiers) voidreplaceField(ClassContext classContext, String internalName, String fieldName, TypeDescriptor descriptor, FieldResolver resolver, int index, int addModifiers) Add a field to the given class.voidreplaceMethod(ClassContext classContext, String internalName, String methodName, MethodDescriptor descriptor, MethodResolver resolver, int index, int addModifiers)
-
Method Details
-
get
-
initialize
-
getTypeBuilder
public static DefinedTypeDefinition.Builder getTypeBuilder(ClassContext classContext, DefinedTypeDefinition.Builder delegate) -
addField
public void addField(ClassContext classContext, String internalName, String fieldName, TypeDescriptor descriptor, FieldResolver resolver, int index, int addModifiers) Add a field to the given class. The field is not defined until the class is first loaded. The field may be a build time field or a run time field (I_ACC_RUN_TIME). An initializer may be given forstaticfields, but it must be a run time initializer, even if the field is a build time field. Initializers are ignored for instance fields.- Parameters:
classContext- the class context of the class (must not benull)internalName- the name of the class (must not benull)fieldName- the name of the field (must not benull)descriptor- the field descriptor (must not benull)resolver- the resolver for the added field (must not benull)index- the index of the added field to pass to the resolveraddModifiers- modifiers to add, if any
-
deleteField
public void deleteField(ClassContext classContext, String internalName, String fieldName, TypeDescriptor descriptor) Delete a field.- Parameters:
classContext- the class context of the class (must not benull)internalName- the name of the class (must not benull)fieldName- the name of the field (must not benull)descriptor- the field descriptor (must not benull)
-
replaceField
public void replaceField(ClassContext classContext, String internalName, String fieldName, TypeDescriptor descriptor, FieldResolver resolver, int index, int addModifiers) Add a field to the given class. The field is not defined until the class is first loaded. The field may be a build time field or a run time field (I_ACC_RUN_TIME). An initializer may be given forstaticfields, but it must be a run time initializer, even if the field is a build time field. Initializers are ignored for instance fields.- Parameters:
classContext- the class context of the class (must not benull)internalName- the name of the class (must not benull)fieldName- the name of the field (must not benull)descriptor- the field descriptor (must not benull)resolver- the resolver for the added field (must not benull)index- the index of the added field to pass to the resolveraddModifiers- modifiers to add, if any
-
addConstructor
public void addConstructor(ClassContext classContext, String internalName, MethodDescriptor descriptor, ConstructorResolver resolver, int index, int addModifiers) -
deleteConstructor
public void deleteConstructor(ClassContext classContext, String internalName, MethodDescriptor descriptor) -
replaceConstructor
public void replaceConstructor(ClassContext classContext, String internalName, MethodDescriptor descriptor, ConstructorResolver resolver, int index, int addModifiers) -
addMethod
public void addMethod(ClassContext classContext, String internalName, String methodName, MethodDescriptor descriptor, MethodResolver resolver, int index, int addModifiers) -
deleteMethod
public void deleteMethod(ClassContext classContext, String internalName, String methodName, MethodDescriptor descriptor) -
replaceMethod
public void replaceMethod(ClassContext classContext, String internalName, String methodName, MethodDescriptor descriptor, MethodResolver resolver, int index, int addModifiers)
-