Class DefineClassRule

java.lang.Object
io.papermc.reflectionrewriter.DefineClassRule
All Implemented Interfaces:
io.papermc.asm.rules.method.MethodRewriteRule, io.papermc.asm.rules.RewriteRule

public final class DefineClassRule extends Object implements io.papermc.asm.rules.method.MethodRewriteRule
  • Nested Class Summary

    Nested classes/interfaces inherited from interface io.papermc.asm.rules.RewriteRule

    io.papermc.asm.rules.RewriteRule.Chain, io.papermc.asm.rules.RewriteRule.ChainBuilder, io.papermc.asm.rules.RewriteRule.Delegate, io.papermc.asm.rules.RewriteRule.GeneratorAdapterFactory
  • Field Summary

    Fields inherited from interface io.papermc.asm.rules.method.MethodRewriteRule

    LAMBDA_METAFACTORY_OWNER

    Fields inherited from interface io.papermc.asm.rules.RewriteRule

    EMPTY
  • Method Summary

    Modifier and Type
    Method
    Description
    static io.papermc.asm.rules.RewriteRule
    create(String proxyClassName)
    Create a rewrite rule for MethodHandles.Lookup#defineClass and (Secure)ClassLoader#defineClass.
    static io.papermc.asm.rules.RewriteRule
    create(String proxyClassName, boolean assumeClassLoader)
    Create a rewrite rule for MethodHandles.Lookup#defineClass and (Secure)ClassLoader#defineClass.
    @Nullable io.papermc.asm.rules.method.rewrite.MethodRewrite<?>
    rewrite(io.papermc.asm.ClassProcessingContext context, boolean isInvokeDynamic, int opcode, ClassDesc ownerDesc, String name, MethodTypeDesc descriptor, boolean isInterface)
     
    boolean
    shouldProcess(io.papermc.asm.ClassProcessingContext context, int opcode, String owner, String name, String descriptor, boolean isInterface, boolean isInvokeDynamic)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface io.papermc.asm.rules.method.MethodRewriteRule

    createVisitor
  • Method Details

    • shouldProcess

      public boolean shouldProcess(io.papermc.asm.ClassProcessingContext context, int opcode, String owner, String name, String descriptor, boolean isInterface, boolean isInvokeDynamic)
      Specified by:
      shouldProcess in interface io.papermc.asm.rules.method.MethodRewriteRule
    • rewrite

      public @Nullable io.papermc.asm.rules.method.rewrite.MethodRewrite<?> rewrite(io.papermc.asm.ClassProcessingContext context, boolean isInvokeDynamic, int opcode, ClassDesc ownerDesc, String name, MethodTypeDesc descriptor, boolean isInterface)
      Specified by:
      rewrite in interface io.papermc.asm.rules.method.MethodRewriteRule
    • create

      public static io.papermc.asm.rules.RewriteRule create(String proxyClassName)
      Create a rewrite rule for MethodHandles.Lookup#defineClass and (Secure)ClassLoader#defineClass.
      Parameters:
      proxyClassName - proxy class name
      Returns:
      new rule
    • create

      public static io.papermc.asm.rules.RewriteRule create(String proxyClassName, boolean assumeClassLoader)
      Create a rewrite rule for MethodHandles.Lookup#defineClass and (Secure)ClassLoader#defineClass.
      Parameters:
      proxyClassName - proxy class name
      assumeClassLoader - whether to assume a class is a ClassLoader if it cannot be determined using the ClassInfoProvider
      Returns:
      new rule