proguard.optimize.evaluation
Class StoringInvocationUnit

java.lang.Object
  extended by proguard.classfile.util.SimplifiedVisitor
      extended by proguard.evaluation.BasicInvocationUnit
          extended by proguard.optimize.evaluation.StoringInvocationUnit
All Implemented Interfaces:
ConstantVisitor, MemberVisitor, InvocationUnit

public class StoringInvocationUnit
extends BasicInvocationUnit

This InvocationUbit stores parameter values and return values with the methods that are invoked.

See Also:
LoadingInvocationUnit

Field Summary
 
Fields inherited from class proguard.evaluation.BasicInvocationUnit
valueFactory
 
Constructor Summary
StoringInvocationUnit(ValueFactory valueFactory)
          Creates a new StoringInvocationUnit with the given value factory.
StoringInvocationUnit(ValueFactory valueFactory, boolean storeFieldValues, boolean storeMethodParameterValues, boolean storeMethodReturnValues)
          Creates a new StoringInvocationUnit with the given value factory, for storing the specified values.
 
Method Summary
static ReferenceValue getFieldClassValue(Field field)
           
static Value getFieldValue(Field field)
           
static Value getMethodParameterValue(Method method, int parameterIndex)
           
static Value getMethodReturnValue(Method method)
           
protected  void setFieldClassValue(Clazz clazz, RefConstant refConstant, ReferenceValue value)
          Sets the class through which the specified field is accessed.
protected  void setFieldValue(Clazz clazz, RefConstant refConstant, Value value)
          Sets the value of the specified field.
protected  void setMethodParameterValue(Clazz clazz, RefConstant refConstant, int parameterIndex, Value value)
          Sets the value of the specified method parameter.
protected  void setMethodReturnValue(Clazz clazz, Method method, Value value)
          Sets the return value of the specified method.
 
Methods inherited from class proguard.evaluation.BasicInvocationUnit
enterMethod, exitMethod, getFieldClassValue, getFieldValue, getMethodParameterValue, getMethodReturnValue, invokeMember, visitAnyMethodrefConstant, visitFieldrefConstant, visitLibraryField, visitLibraryMethod, visitProgramField, visitProgramMethod
 
Methods inherited from class proguard.classfile.util.SimplifiedVisitor
visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotationDefaultAttribute, visitAnnotationElementValue, visitAnyAnnotationsAttribute, visitAnyAttribute, visitAnyClass, visitAnyConstant, visitAnyElementValue, visitAnyInstruction, visitAnyMember, visitAnyParameterAnnotationsAttribute, visitAnyRefConstant, visitAnyStackMapFrame, visitAnySwitchInstruction, visitAnyVerificationType, visitArrayElementValue, visitBranchInstruction, visitClassConstant, visitClassElementValue, visitCodeAttribute, visitConstantElementValue, visitConstantInstruction, visitConstantValueAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDoubleConstant, visitDoubleType, visitEnclosingMethodAttribute, visitEnumConstantElementValue, visitExceptionsAttribute, visitFloatConstant, visitFloatType, visitFullFrame, visitInnerClassesAttribute, visitIntegerConstant, visitIntegerType, visitInterfaceMethodrefConstant, visitLessZeroFrame, visitLibraryClass, visitLibraryMember, visitLineNumberTableAttribute, visitLocalVariableTableAttribute, visitLocalVariableTypeTableAttribute, visitLongConstant, visitLongType, visitLookUpSwitchInstruction, visitMethodrefConstant, visitMoreZeroFrame, visitNameAndTypeConstant, visitNullType, visitObjectType, visitProgramClass, visitProgramMember, 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, visitStringConstant, 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.constant.visitor.ConstantVisitor
visitClassConstant, visitDoubleConstant, visitFloatConstant, visitIntegerConstant, visitInterfaceMethodrefConstant, visitLongConstant, visitMethodrefConstant, visitNameAndTypeConstant, visitStringConstant, visitUtf8Constant
 

Constructor Detail

StoringInvocationUnit

public StoringInvocationUnit(ValueFactory valueFactory)
Creates a new StoringInvocationUnit with the given value factory.


StoringInvocationUnit

public StoringInvocationUnit(ValueFactory valueFactory,
                             boolean storeFieldValues,
                             boolean storeMethodParameterValues,
                             boolean storeMethodReturnValues)
Creates a new StoringInvocationUnit with the given value factory, for storing the specified values.

Method Detail

setFieldClassValue

protected void setFieldClassValue(Clazz clazz,
                                  RefConstant refConstant,
                                  ReferenceValue value)
Description copied from class: BasicInvocationUnit
Sets the class through which the specified field is accessed.

Overrides:
setFieldClassValue in class BasicInvocationUnit

setFieldValue

protected void setFieldValue(Clazz clazz,
                             RefConstant refConstant,
                             Value value)
Description copied from class: BasicInvocationUnit
Sets the value of the specified field.

Overrides:
setFieldValue in class BasicInvocationUnit

setMethodParameterValue

protected void setMethodParameterValue(Clazz clazz,
                                       RefConstant refConstant,
                                       int parameterIndex,
                                       Value value)
Description copied from class: BasicInvocationUnit
Sets the value of the specified method parameter.

Overrides:
setMethodParameterValue in class BasicInvocationUnit

setMethodReturnValue

protected void setMethodReturnValue(Clazz clazz,
                                    Method method,
                                    Value value)
Description copied from class: BasicInvocationUnit
Sets the return value of the specified method.

Overrides:
setMethodReturnValue in class BasicInvocationUnit

getFieldClassValue

public static ReferenceValue getFieldClassValue(Field field)

getFieldValue

public static Value getFieldValue(Field field)

getMethodParameterValue

public static Value getMethodParameterValue(Method method,
                                            int parameterIndex)

getMethodReturnValue

public static Value getMethodReturnValue(Method method)