Class FieldVariable
- java.lang.Object
-
- org.benf.cfr.reader.bytecode.analysis.parse.lvalue.AbstractLValue
-
- org.benf.cfr.reader.bytecode.analysis.parse.lvalue.AbstractFieldVariable
-
- org.benf.cfr.reader.bytecode.analysis.parse.lvalue.FieldVariable
-
- All Implemented Interfaces:
LValue,DeepCloneable<LValue>,Dumpable,DumpableWithPrecedence,TypeUsageCollectable
public class FieldVariable extends AbstractFieldVariable
Note - a field variable LValue means an lValue of ANY object.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.benf.cfr.reader.bytecode.analysis.parse.LValue
LValue.Creation
-
-
Field Summary
Fields Modifier and Type Field Description private Expressionobject
-
Constructor Summary
Constructors Modifier Constructor Description FieldVariable(Expression object, ClassFileField field, JavaTypeInstance owningClass)FieldVariable(Expression object, ConstantPoolEntry field)privateFieldVariable(FieldVariable other, Expression object)privateFieldVariable(FieldVariable other, CloneHelper cloneHelper)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description LValueapplyExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)booleancanThrow(ExceptionCheck caught)voidcollectLValueUsage(LValueUsageCollector lValueUsageCollector)voidcollectTypeUsages(TypeUsageCollector collector)LValuedeepClone(CloneHelper cloneHelper)DumperdumpInner(Dumper d)booleanequals(java.lang.Object o)ExpressiongetObject()PrecedencegetPrecedence()inthashCode()private booleanisOuterRef()private booleanobjectIsEclipseOuterThis()private booleanobjectIsIllegalThis()booleanobjectIsThis()LValuereplaceSingleUsageLValues(LValueRewriter lValueRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer)voidrewriteLeftNestedSyntheticOuterRefs()FieldVariablewithReplacedObject(Expression object)-
Methods inherited from class org.benf.cfr.reader.bytecode.analysis.parse.lvalue.AbstractFieldVariable
collectLValueAssignments, collectVariableMutation, getClassFileField, getField, getFieldName, getNumberOfCreators, getOwningClassType, getRawFieldName, isFakeIgnored, isFinal, isHiddenDeclaration, isVar, markFinal, markVar
-
Methods inherited from class org.benf.cfr.reader.bytecode.analysis.parse.lvalue.AbstractLValue
doesBlackListLValueReplacement, dump, dump, dumpWithOuterPrecedence, getAnnotatedCreationType, getInferredJavaType, outerDeepClone, toString, typeToString, validIterator
-
-
-
-
Field Detail
-
object
private Expression object
-
-
Constructor Detail
-
FieldVariable
public FieldVariable(Expression object, ConstantPoolEntry field)
-
FieldVariable
public FieldVariable(Expression object, ClassFileField field, JavaTypeInstance owningClass)
-
FieldVariable
private FieldVariable(FieldVariable other, CloneHelper cloneHelper)
-
FieldVariable
private FieldVariable(FieldVariable other, Expression object)
-
-
Method Detail
-
collectTypeUsages
public void collectTypeUsages(TypeUsageCollector collector)
- Specified by:
collectTypeUsagesin interfaceTypeUsageCollectable- Overrides:
collectTypeUsagesin classAbstractFieldVariable
-
deepClone
public LValue deepClone(CloneHelper cloneHelper)
-
withReplacedObject
public FieldVariable withReplacedObject(Expression object)
-
isOuterRef
private boolean isOuterRef()
-
getObject
public Expression getObject()
-
objectIsEclipseOuterThis
private boolean objectIsEclipseOuterThis()
-
objectIsThis
public boolean objectIsThis()
-
canThrow
public boolean canThrow(ExceptionCheck caught)
- Specified by:
canThrowin interfaceLValue- Overrides:
canThrowin classAbstractLValue
-
objectIsIllegalThis
private boolean objectIsIllegalThis()
-
getPrecedence
public Precedence getPrecedence()
- Specified by:
getPrecedencein interfaceDumpableWithPrecedence- Specified by:
getPrecedencein classAbstractLValue
-
dumpInner
public Dumper dumpInner(Dumper d)
- Specified by:
dumpInnerin classAbstractLValue
-
collectLValueUsage
public void collectLValueUsage(LValueUsageCollector lValueUsageCollector)
- Specified by:
collectLValueUsagein interfaceLValue- Overrides:
collectLValueUsagein classAbstractLValue
-
replaceSingleUsageLValues
public LValue replaceSingleUsageLValues(LValueRewriter lValueRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer)
-
applyExpressionRewriter
public LValue applyExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
-
rewriteLeftNestedSyntheticOuterRefs
public void rewriteLeftNestedSyntheticOuterRefs()
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classAbstractFieldVariable
-
hashCode
public int hashCode()
- Overrides:
hashCodein classAbstractFieldVariable
-
-