|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.objectweb.asm.ClassAdapter
org.codehaus.aspectwerkz.transform.inlining.weaver.SerialVersionUidVisitor
public class SerialVersionUidVisitor
See http://java.sun.com/j2se/1.5.0/docs/guide/serialization/spec/class.html#60
The SerialVersionUidVisitor lookups for the serial ver uid and compute it when not found. See Add and Compute subclasses. Initial implementation courtesy of Vishal Vishnoi
Nested Class Summary | |
---|---|
static class |
SerialVersionUidVisitor.Add
Add the serial version uid to the class if not already present |
Field Summary | |
---|---|
static String |
CLINIT
|
static String |
INIT
|
protected int |
m_access
Classes access flag |
protected String |
m_className
Internal name of the class |
protected boolean |
m_computeSVUID
flag that indicates if we need to compute SVUID (no need for interfaces) |
protected boolean |
m_hadSVUID
Set to true if the class already has SVUID |
protected boolean |
m_hasStaticInitializer
Set to true if the class has static initializer |
protected String[] |
m_interfaces
Interfaces implemented by the class |
protected long |
m_SVUID
The SVUID value (valid at the end of the visit only ie the one that was present or the computed one) |
protected Collection |
m_svuidConstructors
Collection of non private constructors. |
protected Collection |
m_svuidFields
Collection of fields. |
protected Collection |
m_svuidMethods
Collection of non private method |
static String |
SVUID_NAME
|
Fields inherited from class org.objectweb.asm.ClassAdapter |
---|
cv |
Fields inherited from interface org.objectweb.asm.Constants |
---|
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 |
Method Summary | |
---|---|
static long |
calculateSerialVersionUID(Class klass)
helper method (test purpose) |
protected long |
computeSVUID()
Returns the value of SVUID if the class doesn't have one already. |
protected boolean |
mayNeedSerialVersionUid(int access)
|
void |
visit(int version,
int access,
String name,
String superName,
String[] interfaces,
String sourceFile)
Visit class header and get class name, access , and interfaces information (step 1,2, and 3) for SVUID computation. |
void |
visitEnd()
Add the SVUID if class doesn't have one |
void |
visitField(int access,
String name,
String desc,
Object value,
org.objectweb.asm.Attribute attrs)
Gets class field information for step 4 of the alogrithm. |
org.objectweb.asm.CodeVisitor |
visitMethod(int access,
String name,
String desc,
String[] exceptions,
org.objectweb.asm.Attribute attrs)
Visit the methods and get constructor and method information (step 5 and 7). |
protected void |
writeItems(Collection itemCollection,
DataOutputStream dos,
boolean dotted)
Sorts the items in the collection and writes it to the data output stream |
Methods inherited from class org.objectweb.asm.ClassAdapter |
---|
visitAttribute, visitInnerClass |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final String CLINIT
public static final String INIT
public static final String SVUID_NAME
protected boolean m_computeSVUID
protected boolean m_hadSVUID
protected long m_SVUID
protected String m_className
protected int m_access
protected String[] m_interfaces
protected Collection m_svuidFields
protected boolean m_hasStaticInitializer
protected Collection m_svuidConstructors
protected Collection m_svuidMethods
Method Detail |
---|
public static long calculateSerialVersionUID(Class klass)
klass
-
public void visit(int version, int access, String name, String superName, String[] interfaces, String sourceFile)
visit
in interface org.objectweb.asm.ClassVisitor
visit
in class org.objectweb.asm.ClassAdapter
public org.objectweb.asm.CodeVisitor visitMethod(int access, String name, String desc, String[] exceptions, org.objectweb.asm.Attribute attrs)
visitMethod
in interface org.objectweb.asm.ClassVisitor
visitMethod
in class org.objectweb.asm.ClassAdapter
public void visitField(int access, String name, String desc, Object value, org.objectweb.asm.Attribute attrs)
visitField
in interface org.objectweb.asm.ClassVisitor
visitField
in class org.objectweb.asm.ClassAdapter
public void visitEnd()
visitEnd
in interface org.objectweb.asm.ClassVisitor
visitEnd
in class org.objectweb.asm.ClassAdapter
protected boolean mayNeedSerialVersionUid(int access)
protected long computeSVUID() throws IOException, NoSuchAlgorithmException
isHasSVUID
to determine if the class already had an SVUID.
IOException
NoSuchAlgorithmException
protected void writeItems(Collection itemCollection, DataOutputStream dos, boolean dotted) throws IOException
itemCollection
- collection of itemsdos
- a DataOutputStream
valuedotted
- a boolean
value
IOException
- if an error occurs
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |