org.multiverse.instrumentation.asm
Class AsmClassMetadataExtractor

java.lang.Object
  extended by org.multiverse.instrumentation.asm.AsmClassMetadataExtractor
All Implemented Interfaces:
ClassMetadataExtractor, org.objectweb.asm.Opcodes

public final class AsmClassMetadataExtractor
extends java.lang.Object
implements ClassMetadataExtractor, org.objectweb.asm.Opcodes

An Asm based ClassMetadataExtractor.

Author:
Peter Veentjer.

Field Summary
 
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_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, 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, 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, INVOKEDYNAMIC_OWNER, 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
 
Constructor Summary
AsmClassMetadataExtractor()
           
AsmClassMetadataExtractor(FamilyNameStrategy familyNameStrategy)
           
 
Method Summary
 ClassMetadata extract(java.lang.String className, java.lang.ClassLoader classLoader)
          Extracts the ClassMetadata for a class.
static boolean hasFieldGranularity(org.objectweb.asm.tree.FieldNode field)
           
static boolean hasTransactionalConstructorAnnotation(org.objectweb.asm.tree.MethodNode methodNode)
           
static boolean hasTransactionalMethodAnnotation(org.objectweb.asm.tree.MethodNode methodNode)
           
static boolean hasTransactionalObjectAnnotation(org.objectweb.asm.tree.ClassNode classNode)
           
 void init(MetadataRepository metadataRepository)
          Initializes this ClassMetadataExtractor with the provided MetadataRepository so it can do requests for metadata itself.
static boolean isExcluded(org.objectweb.asm.tree.FieldNode field)
           
static boolean isExcluded(org.objectweb.asm.tree.MethodNode methodNode)
           
static boolean isSynthetic(int access)
           
static boolean isVolatile(org.objectweb.asm.tree.FieldNode fieldNode)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AsmClassMetadataExtractor

public AsmClassMetadataExtractor()

AsmClassMetadataExtractor

public AsmClassMetadataExtractor(FamilyNameStrategy familyNameStrategy)
Method Detail

init

public void init(MetadataRepository metadataRepository)
Description copied from interface: ClassMetadataExtractor
Initializes this ClassMetadataExtractor with the provided MetadataRepository so it can do requests for metadata itself.

Specified by:
init in interface ClassMetadataExtractor
Parameters:
metadataRepository - the repository for retrieving metadata.

extract

public ClassMetadata extract(java.lang.String className,
                             java.lang.ClassLoader classLoader)
Description copied from interface: ClassMetadataExtractor
Extracts the ClassMetadata for a class.

Specified by:
extract in interface ClassMetadataExtractor
Parameters:
className - the internal name of the class.
classLoader - the ClassLoader to use for loading the class definition.
Returns:
the created ClassMetadata.

isExcluded

public static boolean isExcluded(org.objectweb.asm.tree.FieldNode field)

isExcluded

public static boolean isExcluded(org.objectweb.asm.tree.MethodNode methodNode)

hasFieldGranularity

public static boolean hasFieldGranularity(org.objectweb.asm.tree.FieldNode field)

hasTransactionalMethodAnnotation

public static boolean hasTransactionalMethodAnnotation(org.objectweb.asm.tree.MethodNode methodNode)

hasTransactionalConstructorAnnotation

public static boolean hasTransactionalConstructorAnnotation(org.objectweb.asm.tree.MethodNode methodNode)

hasTransactionalObjectAnnotation

public static boolean hasTransactionalObjectAnnotation(org.objectweb.asm.tree.ClassNode classNode)

isSynthetic

public static boolean isSynthetic(int access)

isVolatile

public static boolean isVolatile(org.objectweb.asm.tree.FieldNode fieldNode)


Copyright © 2008-2010 Multiverse. All Rights Reserved.