org.objectweb.asm.xml

## Class ASMContentHandler

- java.lang.Object
- - org.xml.sax.helpers.DefaultHandler
  - - org.objectweb.asm.xml.ASMContentHandler

- All Implemented Interfaces:
    Opcodes, ContentHandler, DTDHandler, EntityResolver, ErrorHandler

      public class ASMContentHandler
      extends org.xml.sax.helpers.DefaultHandler
      implements Opcodes

  A `ContentHandler` that transforms XML document into Java class file. This class can be feeded by any kind of SAX 2.0 event producers, e.g. XML parser, XSLT or XPath engines, or custom code.
  Author:
    Eugene Kuleshov
  See Also:
    `SAXClassAdapter`, `Processor`

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `ASMContentHandler.Rule` Rule

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ClassVisitor` | `cv` Current instance of the `ClassVisitor` used to visit classfile bytecode.
    `protected Map<Object,Label>` | `labels` Map of the active `Label` instances for current method.

    - ### Fields inherited from interface org.objectweb.asm.Opcodes

      `AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM4, ASM5, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ASMContentHandler(ClassVisitor cv)` Constructs a new `ASMContentHandler` object.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `endElement(String ns, String lName, String qName)` Process notification of the end of an XML element being reached.
    `void` | `startElement(String ns, String lName, String qName, Attributes list)` Process notification of the start of an XML element being reached.

    - ### Methods inherited from class org.xml.sax.helpers.DefaultHandler

      `characters, endDocument, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning`

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

    - #### cv

          protected ClassVisitor cv

      Current instance of the `ClassVisitor` used to visit classfile bytecode.

    - #### labels

          protected Map<Object,Label> labels

      Map of the active `Label` instances for current method.

  - ### Constructor Detail

    - #### ASMContentHandler

          public ASMContentHandler(ClassVisitor cv)

      Constructs a new `ASMContentHandler` object.
      Parameters:
        `cv` - class visitor that will be called to reconstruct the classfile using the XML stream.

  - ### Method Detail

    - #### startElement

          public final void startElement(String ns,
                                         String lName,
                                         String qName,
                                         Attributes list)
                                  throws SAXException

      Process notification of the start of an XML element being reached.
      Specified by:
        `startElement` in interface `ContentHandler`
      Overrides:
        `startElement` in class `org.xml.sax.helpers.DefaultHandler`
      Parameters:
        `ns` - - The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed.
        `lName` - - The local name (without prefix), or the empty string if Namespace processing is not being performed.
        `qName` - - The qualified name (with prefix), or the empty string if qualified names are not available.
        `list` - - The attributes attached to the element. If there are no attributes, it shall be an empty Attributes object.
      Throws:
        `SAXException` - if a parsing error is to be reported

    - #### endElement

          public final void endElement(String ns,
                                       String lName,
                                       String qName)
                                throws SAXException

      Process notification of the end of an XML element being reached.
      Specified by:
        `endElement` in interface `ContentHandler`
      Overrides:
        `endElement` in class `org.xml.sax.helpers.DefaultHandler`
      Parameters:
        `ns` - - The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed.
        `lName` - - The local name (without prefix), or the empty string if Namespace processing is not being performed.
        `qName` - - The qualified XML 1.0 name (with prefix), or the empty string if qualified names are not available.
      Throws:
        `SAXException` - if a parsing error is to be reported