org.mutabilitydetector.checkers
Class FieldAssignmentVisitor

java.lang.Object
  extended by org.objectweb.asm.MethodVisitor
      extended by org.objectweb.asm.tree.MethodNode
          extended by org.mutabilitydetector.checkers.FieldAssignmentVisitor

public abstract class FieldAssignmentVisitor
extends org.objectweb.asm.tree.MethodNode


Field Summary
protected  List<org.objectweb.asm.tree.FieldInsnNode> fieldAssignments
           
protected  String owner
           
 
Fields inherited from class org.objectweb.asm.tree.MethodNode
access, annotationDefault, attrs, desc, exceptions, instructions, invisibleAnnotations, invisibleParameterAnnotations, localVariables, maxLocals, maxStack, name, signature, tryCatchBlocks, visibleAnnotations, visibleParameterAnnotations
 
Fields inherited from class org.objectweb.asm.MethodVisitor
api, mv
 
Constructor Summary
FieldAssignmentVisitor(String owner, int access, String name, String desc, String signature, String[] exceptions, AsmVerifierFactory verifierFactory)
           
 
Method Summary
protected  org.objectweb.asm.tree.analysis.BasicValue getStackValue(org.objectweb.asm.tree.analysis.Frame<org.objectweb.asm.tree.analysis.BasicValue> assignmentFrame)
           
protected  boolean isInvalidStackValue(org.objectweb.asm.tree.analysis.BasicValue stackValue)
           
 void visitEnd()
           
protected abstract  void visitFieldAssignmentFrame(org.objectweb.asm.tree.analysis.Frame<org.objectweb.asm.tree.analysis.BasicValue> assignmentFrame, org.objectweb.asm.tree.FieldInsnNode fieldInsnNode, org.objectweb.asm.tree.analysis.BasicValue stackValue)
          At the end of a method, the frames are analysed to be able to inspect the state of the stack when the field is assigned.
 void visitFieldInsn(int opcode, String fieldsOwner, String fieldName, String fieldDesc)
           
 
Methods inherited from class org.objectweb.asm.tree.MethodNode
accept, accept, check, getLabelNode, visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitFrame, visitIincInsn, visitInsn, visitIntInsn, visitInvokeDynamicInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLineNumber, visitLocalVariable, visitLookupSwitchInsn, visitMaxs, visitMethodInsn, visitMultiANewArrayInsn, visitParameterAnnotation, visitTableSwitchInsn, visitTryCatchBlock, visitTypeInsn, visitVarInsn
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fieldAssignments

protected List<org.objectweb.asm.tree.FieldInsnNode> fieldAssignments

owner

protected final String owner
Constructor Detail

FieldAssignmentVisitor

public FieldAssignmentVisitor(String owner,
                              int access,
                              String name,
                              String desc,
                              String signature,
                              String[] exceptions,
                              AsmVerifierFactory verifierFactory)
Method Detail

visitFieldInsn

public void visitFieldInsn(int opcode,
                           String fieldsOwner,
                           String fieldName,
                           String fieldDesc)
Overrides:
visitFieldInsn in class org.objectweb.asm.tree.MethodNode

visitFieldAssignmentFrame

protected abstract void visitFieldAssignmentFrame(org.objectweb.asm.tree.analysis.Frame<org.objectweb.asm.tree.analysis.BasicValue> assignmentFrame,
                                                  org.objectweb.asm.tree.FieldInsnNode fieldInsnNode,
                                                  org.objectweb.asm.tree.analysis.BasicValue stackValue)
At the end of a method, the frames are analysed to be able to inspect the state of the stack when the field is assigned. This method is called, giving the frame at the time of the assignment, as well as the instruction node.

Parameters:
assignmentFrame -
fieldInsnNode -

visitEnd

public void visitEnd()
Overrides:
visitEnd in class org.objectweb.asm.tree.MethodNode

isInvalidStackValue

protected boolean isInvalidStackValue(org.objectweb.asm.tree.analysis.BasicValue stackValue)

getStackValue

protected org.objectweb.asm.tree.analysis.BasicValue getStackValue(org.objectweb.asm.tree.analysis.Frame<org.objectweb.asm.tree.analysis.BasicValue> assignmentFrame)


Copyright © 2013. All Rights Reserved.