public class ClassWriter extends java.lang.Object implements ClassVisitor
ClassVisitor that generates Java class files. More
 precisely this visitor generates a byte array conforming to the Java class
 file format. It can be used alone, to generate a Java class "from scratch",
 or with one or more adapter class
 visitors to generate a modified class from one or more existing Java classes.| Constructor and Description | 
|---|
| ClassWriter(boolean computeMaxs)Constructs a new  ClassWriterobject. | 
| Modifier and Type | Method and Description | 
|---|---|
| byte[] | toByteArray()Returns the bytecode of the class that was build with this class writer. | 
| void | visit(int access,
     java.lang.String name,
     java.lang.String superName,
     java.lang.String[] interfaces,
     java.lang.String sourceFile)Visits the header of the class. | 
| void | visitEnd()Visits the end of the class. | 
| void | visitField(int access,
          java.lang.String name,
          java.lang.String desc,
          java.lang.Object value)Visits a field of the class. | 
| void | visitInnerClass(java.lang.String name,
               java.lang.String outerName,
               java.lang.String innerName,
               int access)Visits information about an inner class. | 
| CodeVisitor | visitMethod(int access,
           java.lang.String name,
           java.lang.String desc,
           java.lang.String[] exceptions)Visits a method of the class. | 
public ClassWriter(boolean computeMaxs)
ClassWriter object.computeMaxs - true if the maximum stack size and the maximum
      number of local variables must be automatically computed. If this flag
      is true, then the arguments of the visitMaxs method of the CodeVisitor returned by the visitMethod method
      will be ignored, and computed automatically from the signature and
      the bytecode of each method.public void visit(int access,
                  java.lang.String name,
                  java.lang.String superName,
                  java.lang.String[] interfaces,
                  java.lang.String sourceFile)
ClassVisitorvisit in interface ClassVisitoraccess - the class's access flags (see Constants). This
      parameter also indicates if the class is deprecated.name - the internal name of the class (see getInternalName).superName - the internal of name of the super class (see getInternalName). For interfaces, the super
      class is Object. May be null, but only for the java.lang.Object class.interfaces - the internal names of the class's interfaces (see getInternalName). May be null.sourceFile - the name of the source file from which this class was
      compiled. May be null.public void visitInnerClass(java.lang.String name,
                            java.lang.String outerName,
                            java.lang.String innerName,
                            int access)
ClassVisitorvisitInnerClass in interface ClassVisitorname - the internal name of an inner class (see getInternalName).outerName - the internal name of the class to which the inner class
      belongs (see getInternalName). May be
      null.innerName - the (simple) name of the inner class inside its enclosing
      class. May be null for anonymous inner classes.access - the access flags of the inner class as originally declared
      in the enclosing class.public void visitField(int access,
                       java.lang.String name,
                       java.lang.String desc,
                       java.lang.Object value)
ClassVisitorvisitField in interface ClassVisitoraccess - the field's access flags (see Constants). This
      parameter also indicates if the field is synthetic and/or deprecated.name - the field's name.desc - the field's descriptor (see Type).value - the field's initial value. This parameter, which may be
      null if the field does not have an initial value, must be an
      Integer, a Float, a
      Long, a Double or a
      String.public CodeVisitor visitMethod(int access, java.lang.String name, java.lang.String desc, java.lang.String[] exceptions)
ClassVisitorCodeVisitor instance (or null) each time it
 is called, i.e., it should not return a previously returned visitor.visitMethod in interface ClassVisitoraccess - the method's access flags (see Constants). This
      parameter also indicates if the method is synthetic and/or deprecated.name - the method's name.desc - the method's descriptor (see Type).exceptions - the internal names of the method's exception
      classes (see getInternalName). May be
      null.public void visitEnd()
ClassVisitorvisitEnd in interface ClassVisitorpublic byte[] toByteArray()