proguard.optimize.info
Class ReadWriteFieldMarker

java.lang.Object
  extended by proguard.classfile.util.SimplifiedVisitor
      extended by proguard.optimize.info.ReadWriteFieldMarker
All Implemented Interfaces:
ConstantVisitor, InstructionVisitor, MemberVisitor

public class ReadWriteFieldMarker
extends SimplifiedVisitor
implements InstructionVisitor, ConstantVisitor, MemberVisitor

This InstructionVisitor marks all fields that are write-only.


Constructor Summary
ReadWriteFieldMarker()
           
 
Method Summary
static boolean isRead(Field field)
           
static boolean isWritten(Field field)
           
 void visitAnyConstant(Clazz clazz, Constant constant)
           
 void visitAnyInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, Instruction instruction)
          Visits any type of Instruction.
 void visitAnyMember(Clazz Clazz, Member member)
          Visits any type of class member of the given class.
 void visitConstantInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, ConstantInstruction constantInstruction)
           
 void visitFieldrefConstant(Clazz clazz, FieldrefConstant fieldrefConstant)
           
 void visitProgramField(ProgramClass programClass, ProgramField programField)
           
 void visitStringConstant(Clazz clazz, StringConstant stringConstant)
           
 
Methods inherited from class proguard.classfile.util.SimplifiedVisitor
visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotationDefaultAttribute, visitAnnotationElementValue, visitAnyAnnotationsAttribute, visitAnyAttribute, visitAnyClass, visitAnyElementValue, visitAnyMethodrefConstant, visitAnyParameterAnnotationsAttribute, visitAnyRefConstant, visitAnyStackMapFrame, visitAnySwitchInstruction, visitAnyVerificationType, visitArrayElementValue, visitBranchInstruction, visitClassConstant, visitClassElementValue, visitCodeAttribute, visitConstantElementValue, visitConstantValueAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDoubleConstant, visitDoubleType, visitEnclosingMethodAttribute, visitEnumConstantElementValue, visitExceptionsAttribute, visitFloatConstant, visitFloatType, visitFullFrame, visitInnerClassesAttribute, visitIntegerConstant, visitIntegerType, visitInterfaceMethodrefConstant, visitLessZeroFrame, visitLibraryClass, visitLibraryField, visitLibraryMember, visitLibraryMethod, visitLineNumberTableAttribute, visitLocalVariableTableAttribute, visitLocalVariableTypeTableAttribute, visitLongConstant, visitLongType, visitLookUpSwitchInstruction, visitMethodrefConstant, visitMoreZeroFrame, visitNameAndTypeConstant, visitNullType, visitObjectType, visitProgramClass, visitProgramMember, visitProgramMethod, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleParameterAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleParameterAnnotationsAttribute, visitSameOneFrame, visitSameZeroFrame, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSimpleInstruction, visitSourceDirAttribute, visitSourceFileAttribute, visitStackDoubleType, visitStackFloatType, visitStackIntegerType, visitStackLongType, visitStackMapAttribute, visitStackMapTableAttribute, visitStackNullType, visitStackObjectType, visitStackTopType, visitStackUninitializedThisType, visitStackUninitializedType, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitTableSwitchInstruction, visitTopType, visitUninitializedThisType, visitUninitializedType, visitUnknownAttribute, visitUtf8Constant, visitVariableInstruction, visitVariablesDoubleType, visitVariablesFloatType, visitVariablesIntegerType, visitVariablesLongType, visitVariablesNullType, visitVariablesObjectType, visitVariablesTopType, visitVariablesUninitializedThisType, visitVariablesUninitializedType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface proguard.classfile.instruction.visitor.InstructionVisitor
visitBranchInstruction, visitLookUpSwitchInstruction, visitSimpleInstruction, visitTableSwitchInstruction, visitVariableInstruction
 
Methods inherited from interface proguard.classfile.constant.visitor.ConstantVisitor
visitClassConstant, visitDoubleConstant, visitFloatConstant, visitIntegerConstant, visitInterfaceMethodrefConstant, visitLongConstant, visitMethodrefConstant, visitNameAndTypeConstant, visitUtf8Constant
 
Methods inherited from interface proguard.classfile.visitor.MemberVisitor
visitLibraryField, visitLibraryMethod, visitProgramMethod
 

Constructor Detail

ReadWriteFieldMarker

public ReadWriteFieldMarker()
Method Detail

visitAnyInstruction

public void visitAnyInstruction(Clazz clazz,
                                Method method,
                                CodeAttribute codeAttribute,
                                int offset,
                                Instruction instruction)
Description copied from class: SimplifiedVisitor
Visits any type of Instruction.

Overrides:
visitAnyInstruction in class SimplifiedVisitor

visitConstantInstruction

public void visitConstantInstruction(Clazz clazz,
                                     Method method,
                                     CodeAttribute codeAttribute,
                                     int offset,
                                     ConstantInstruction constantInstruction)
Specified by:
visitConstantInstruction in interface InstructionVisitor
Overrides:
visitConstantInstruction in class SimplifiedVisitor

visitAnyConstant

public void visitAnyConstant(Clazz clazz,
                             Constant constant)
Overrides:
visitAnyConstant in class SimplifiedVisitor

visitStringConstant

public void visitStringConstant(Clazz clazz,
                                StringConstant stringConstant)
Specified by:
visitStringConstant in interface ConstantVisitor
Overrides:
visitStringConstant in class SimplifiedVisitor

visitFieldrefConstant

public void visitFieldrefConstant(Clazz clazz,
                                  FieldrefConstant fieldrefConstant)
Specified by:
visitFieldrefConstant in interface ConstantVisitor
Overrides:
visitFieldrefConstant in class SimplifiedVisitor

visitAnyMember

public void visitAnyMember(Clazz Clazz,
                           Member member)
Description copied from class: SimplifiedVisitor
Visits any type of class member of the given class.

Overrides:
visitAnyMember in class SimplifiedVisitor

visitProgramField

public void visitProgramField(ProgramClass programClass,
                              ProgramField programField)
Specified by:
visitProgramField in interface MemberVisitor
Overrides:
visitProgramField in class SimplifiedVisitor

isRead

public static boolean isRead(Field field)

isWritten

public static boolean isWritten(Field field)