Package 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 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 Map<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(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
-
-
-
-
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(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 interfaceContentHandler
- Overrides:
startElement
in classDefaultHandler
- 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 interfaceContentHandler
- Overrides:
endElement
in classDefaultHandler
- 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
-
-