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 Expression
object
-
Constructor Summary
Constructors Modifier Constructor Description FieldVariable(Expression object, ConstantPoolEntry field)
private
FieldVariable(FieldVariable other, Expression object)
private
FieldVariable(FieldVariable other, CloneHelper cloneHelper)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description LValue
applyExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
void
collectLValueUsage(LValueUsageCollector lValueUsageCollector)
void
collectTypeUsages(TypeUsageCollector collector)
LValue
deepClone(CloneHelper cloneHelper)
Dumper
dumpInner(Dumper d)
boolean
equals(java.lang.Object o)
Expression
getObject()
Precedence
getPrecedence()
int
hashCode()
private boolean
isOuterRef()
private boolean
objectIsEclipseOuterThis()
private boolean
objectIsIllegalThis()
boolean
objectIsThis()
LValue
replaceSingleUsageLValues(LValueRewriter lValueRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer)
void
rewriteLeftNestedSyntheticOuterRefs()
FieldVariable
withReplacedObject(Expression object)
-
Methods inherited from class org.benf.cfr.reader.bytecode.analysis.parse.lvalue.AbstractFieldVariable
collectLValueAssignments, collectVariableMutation, getClassFileField, getField, getFieldName, getNumberOfCreators, getOwningClassType, getRawFieldName, isFinal, isHiddenDeclaration, isVar, markFinal, markVar
-
Methods inherited from class org.benf.cfr.reader.bytecode.analysis.parse.lvalue.AbstractLValue
canThrow, 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
private FieldVariable(FieldVariable other, CloneHelper cloneHelper)
-
FieldVariable
private FieldVariable(FieldVariable other, Expression object)
-
-
Method Detail
-
collectTypeUsages
public void collectTypeUsages(TypeUsageCollector collector)
- Specified by:
collectTypeUsages
in interfaceTypeUsageCollectable
- Overrides:
collectTypeUsages
in 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()
-
objectIsIllegalThis
private boolean objectIsIllegalThis()
-
getPrecedence
public Precedence getPrecedence()
- Specified by:
getPrecedence
in interfaceDumpableWithPrecedence
- Specified by:
getPrecedence
in classAbstractLValue
-
dumpInner
public Dumper dumpInner(Dumper d)
- Specified by:
dumpInner
in classAbstractLValue
-
collectLValueUsage
public void collectLValueUsage(LValueUsageCollector lValueUsageCollector)
- Specified by:
collectLValueUsage
in interfaceLValue
- Overrides:
collectLValueUsage
in 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:
equals
in classAbstractFieldVariable
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classAbstractFieldVariable
-
-