|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.objectweb.asm.ClassAdapter
com.ikokoon.serenity.instrumentation.dependency.DependencyClassAdapter
public class DependencyClassAdapter
This is the entry point for parsing the byte code and collecting the dependency metrics for the class. This class also collects the Java source for
the class if it is available.
Dependency metrics consist of the following:
1) Afferent - the number of packages that rely on this package, i.e. how many times it is referenced by other packages, the number of packages that
this class affects
2) Efferent - the number of packages this package relies on, i.e. the opposite of afferent, the number of classes that this class is effected by
3) Abstractness - the ratio of abstract to implementations in a package
4) Entropy - package A relies on package B. Then Package C is introduced and relies on A and B increasing the entropy
5) Stability - Ce / (Ca + Ce), efferent coupling divided by the afferent coupling plus the efferent coupling
6) Distance from main - find the stability distance of the package from the main which is (X=0,Y=1) to (X=1,Y=0)
| Field Summary |
|---|
| Fields inherited from class org.objectweb.asm.ClassAdapter |
|---|
cv |
| 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, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, 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, 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, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, 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, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6 |
| Constructor Summary | |
|---|---|
DependencyClassAdapter(org.objectweb.asm.ClassVisitor classVisitor,
java.lang.String className,
java.io.ByteArrayOutputStream source)
Constructor initialises a DependencyClassAdapter and takes the parent visitor and the name of the class that will be analysed for
dependency. |
|
| Method Summary | |
|---|---|
void |
visit(int version,
int access,
java.lang.String className,
java.lang.String signature,
java.lang.String superName,
java.lang.String[] interfaces)
|
org.objectweb.asm.AnnotationVisitor |
visitAnnotation(java.lang.String desc,
boolean visible)
|
void |
visitAttribute(org.objectweb.asm.Attribute attr)
|
void |
visitEnd()
|
org.objectweb.asm.FieldVisitor |
visitField(int access,
java.lang.String fieldName,
java.lang.String desc,
java.lang.String signature,
java.lang.Object value)
|
void |
visitInnerClass(java.lang.String innerName,
java.lang.String outerName,
java.lang.String innerSimpleName,
int access)
|
org.objectweb.asm.MethodVisitor |
visitMethod(int access,
java.lang.String methodName,
java.lang.String methodDescription,
java.lang.String signature,
java.lang.String[] exceptions)
|
void |
visitOuterClass(java.lang.String outerName,
java.lang.String outerMethodName,
java.lang.String outerMethodDescription)
|
void |
visitSource(java.lang.String source,
java.lang.String debug)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public DependencyClassAdapter(org.objectweb.asm.ClassVisitor classVisitor,
java.lang.String className,
java.io.ByteArrayOutputStream source)
DependencyClassAdapter and takes the parent visitor and the name of the class that will be analysed for
dependency.
classVisitor - the parent visitor for the classclassName - the name of the class to be analysedsource - the Java source| Method Detail |
|---|
public void visit(int version,
int access,
java.lang.String className,
java.lang.String signature,
java.lang.String superName,
java.lang.String[] interfaces)
visit in interface org.objectweb.asm.ClassVisitorvisit in class org.objectweb.asm.ClassAdapter
public org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String desc,
boolean visible)
visitAnnotation in interface org.objectweb.asm.ClassVisitorvisitAnnotation in class org.objectweb.asm.ClassAdapterpublic void visitAttribute(org.objectweb.asm.Attribute attr)
visitAttribute in interface org.objectweb.asm.ClassVisitorvisitAttribute in class org.objectweb.asm.ClassAdapter
public org.objectweb.asm.FieldVisitor visitField(int access,
java.lang.String fieldName,
java.lang.String desc,
java.lang.String signature,
java.lang.Object value)
visitField in interface org.objectweb.asm.ClassVisitorvisitField in class org.objectweb.asm.ClassAdapter
public void visitInnerClass(java.lang.String innerName,
java.lang.String outerName,
java.lang.String innerSimpleName,
int access)
visitInnerClass in interface org.objectweb.asm.ClassVisitorvisitInnerClass in class org.objectweb.asm.ClassAdapter
public void visitOuterClass(java.lang.String outerName,
java.lang.String outerMethodName,
java.lang.String outerMethodDescription)
visitOuterClass in interface org.objectweb.asm.ClassVisitorvisitOuterClass in class org.objectweb.asm.ClassAdapter
public org.objectweb.asm.MethodVisitor visitMethod(int access,
java.lang.String methodName,
java.lang.String methodDescription,
java.lang.String signature,
java.lang.String[] exceptions)
visitMethod in interface org.objectweb.asm.ClassVisitorvisitMethod in class org.objectweb.asm.ClassAdapter
public void visitSource(java.lang.String source,
java.lang.String debug)
visitSource in interface org.objectweb.asm.ClassVisitorvisitSource in class org.objectweb.asm.ClassAdapterpublic void visitEnd()
visitEnd in interface org.objectweb.asm.ClassVisitorvisitEnd in class org.objectweb.asm.ClassAdapter
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||