Package org.objectweb.asm.xml
Class ASMContentHandler
- java.lang.Object
-
- org.xml.sax.helpers.DefaultHandler
-
- org.objectweb.asm.xml.ASMContentHandler
-
- All Implemented Interfaces:
Opcodes
,org.xml.sax.ContentHandler
,org.xml.sax.DTDHandler
,org.xml.sax.EntityResolver
,org.xml.sax.ErrorHandler
public class ASMContentHandler extends org.xml.sax.helpers.DefaultHandler implements Opcodes
AContentHandler
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 Description protected class
ASMContentHandler.Rule
Rule
-
Field Summary
Fields Modifier and Type Field Description protected ClassVisitor
cv
Current instance of theClassVisitor
used to visit classfile bytecode.protected java.util.Map<java.lang.Object,Label>
labels
Map of the activeLabel
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 Description ASMContentHandler(ClassVisitor cv)
Constructs a newASMContentHandler
object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
endElement(java.lang.String ns, java.lang.String lName, java.lang.String qName)
Process notification of the end of an XML element being reached.void
startElement(java.lang.String ns, java.lang.String lName, java.lang.String qName, org.xml.sax.Attributes list)
Process notification of the start of an XML element being reached.
-
-
-
Field Detail
-
cv
protected ClassVisitor cv
Current instance of theClassVisitor
used to visit classfile bytecode.
-
-
Constructor Detail
-
ASMContentHandler
public ASMContentHandler(ClassVisitor cv)
Constructs a newASMContentHandler
object.- Parameters:
cv
- class visitor that will be called to reconstruct the classfile using the XML stream.
-
-
Method Detail
-
startElement
public final void startElement(java.lang.String ns, java.lang.String lName, java.lang.String qName, org.xml.sax.Attributes list) throws org.xml.sax.SAXException
Process notification of the start of an XML element being reached.- Specified by:
startElement
in interfaceorg.xml.sax.ContentHandler
- Overrides:
startElement
in classorg.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:
org.xml.sax.SAXException
- if a parsing error is to be reported
-
endElement
public final void endElement(java.lang.String ns, java.lang.String lName, java.lang.String qName) throws org.xml.sax.SAXException
Process notification of the end of an XML element being reached.- Specified by:
endElement
in interfaceorg.xml.sax.ContentHandler
- Overrides:
endElement
in classorg.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:
org.xml.sax.SAXException
- if a parsing error is to be reported
-
-