Class ClassFileWriter.MethodWriter

  • Enclosing class:
    ClassFileWriter

    public static final class ClassFileWriter.MethodWriter
    extends java.lang.Object
    Method.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(int b)
      Appends an 8bit value of bytecode.
      void add16​(int b)
      Appends a 16bit value of bytecode.
      void add32​(int b)
      Appends a 32bit value of bytecode.
      void addCatch​(int startPc, int endPc, int handlerPc, int catchType)
      Appends an exception_table entry to the Code_attribute.
      void addInvoke​(int opcode, java.lang.String targetClass, java.lang.String methodName, java.lang.String descriptor)
      Appends a invokevirtual, inovkespecial, or invokestatic bytecode.
      void begin​(int accessFlags, int name, int descriptor, int[] exceptions, ClassFileWriter.AttributeWriter aw)
      Starts adding a new method.
      void begin​(int accessFlags, java.lang.String name, java.lang.String descriptor, java.lang.String[] exceptions, ClassFileWriter.AttributeWriter aw)
      Starts Adding a new method.
      void codeEnd​(int maxStack, int maxLocals)
      Ends appending bytecode.
      void end​(StackMapTable.Writer smap, ClassFileWriter.AttributeWriter aw)
      Ends adding a new method.
      int size()
      Returns the length of the bytecode that has been added so far.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • begin

        public void begin​(int accessFlags,
                          java.lang.String name,
                          java.lang.String descriptor,
                          java.lang.String[] exceptions,
                          ClassFileWriter.AttributeWriter aw)
        Starts Adding a new method.
        Parameters:
        accessFlags - access flags.
        name - the method name.
        descriptor - the method signature.
        exceptions - throws clause. It may be null. The class names must be the JVM-internal representations like java/lang/Exception.
        aw - attributes to the Method_info.
      • begin

        public void begin​(int accessFlags,
                          int name,
                          int descriptor,
                          int[] exceptions,
                          ClassFileWriter.AttributeWriter aw)
        Starts adding a new method.
        Parameters:
        accessFlags - access flags.
        name - the method name. an index indicating its CONSTANT_Utf8_info.
        descriptor - the field type. an index indicating its CONSTANT_Utf8_info.
        exceptions - throws clause. indexes indicating CONSTANT_Class_infos. It may be null.
        aw - attributes to the Method_info.
      • add

        public void add​(int b)
        Appends an 8bit value of bytecode.
        See Also:
        Opcode
      • add16

        public void add16​(int b)
        Appends a 16bit value of bytecode.
      • add32

        public void add32​(int b)
        Appends a 32bit value of bytecode.
      • addInvoke

        public void addInvoke​(int opcode,
                              java.lang.String targetClass,
                              java.lang.String methodName,
                              java.lang.String descriptor)
        Appends a invokevirtual, inovkespecial, or invokestatic bytecode.
        See Also:
        Opcode
      • codeEnd

        public void codeEnd​(int maxStack,
                            int maxLocals)
        Ends appending bytecode.
      • addCatch

        public void addCatch​(int startPc,
                             int endPc,
                             int handlerPc,
                             int catchType)
        Appends an exception_table entry to the Code_attribute. This method is available only after the codeEnd method is called.
        Parameters:
        catchType - an index indicating a CONSTANT_Class_info.
      • end

        public void end​(StackMapTable.Writer smap,
                        ClassFileWriter.AttributeWriter aw)
        Ends adding a new method. The add method must be called before the end method is called.
        Parameters:
        smap - a stack map table. may be null.
        aw - attributes to the Code_attribute. may be null.
      • size

        public int size()
        Returns the length of the bytecode that has been added so far.
        Returns:
        the length in bytes.
        Since:
        3.19