Class AbstractLValue
- java.lang.Object
-
- org.benf.cfr.reader.bytecode.analysis.parse.lvalue.AbstractLValue
-
- All Implemented Interfaces:
LValue
,DeepCloneable<LValue>
,Dumpable
,DumpableWithPrecedence
,TypeUsageCollectable
- Direct Known Subclasses:
AbstractFieldVariable
,ArrayVariable
,LocalVariable
,SentinelLocalClassLValue
,StackSSALabel
public abstract class AbstractLValue extends java.lang.Object implements LValue
-
-
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 InferredJavaType
inferredJavaType
-
Constructor Summary
Constructors Constructor Description AbstractLValue(InferredJavaType inferredJavaType)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description boolean
canThrow(ExceptionCheck caught)
void
collectLValueUsage(LValueUsageCollector lValueUsageCollector)
void
collectTypeUsages(TypeUsageCollector collector)
boolean
doesBlackListLValueReplacement(LValue replace, Expression with)
Dumper
dump(Dumper d)
Dumper
dump(Dumper d, boolean defines)
abstract Dumper
dumpInner(Dumper d)
Dumper
dumpWithOuterPrecedence(Dumper d, Precedence outerP, Troolean isLhs)
JavaAnnotatedTypeInstance
getAnnotatedCreationType()
InferredJavaType
getInferredJavaType()
abstract Precedence
getPrecedence()
LValue
outerDeepClone(CloneHelper cloneHelper)
java.lang.String
toString()
(package private) java.lang.String
typeToString()
boolean
validIterator()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.benf.cfr.reader.bytecode.analysis.parse.rewriters.DeepCloneable
deepClone
-
Methods inherited from interface org.benf.cfr.reader.bytecode.analysis.parse.LValue
applyExpressionRewriter, collectLValueAssignments, collectVariableMutation, getNumberOfCreators, isFinal, isVar, markFinal, markVar, replaceSingleUsageLValues
-
-
-
-
Field Detail
-
inferredJavaType
private InferredJavaType inferredJavaType
-
-
Constructor Detail
-
AbstractLValue
public AbstractLValue(InferredJavaType inferredJavaType)
-
-
Method Detail
-
typeToString
java.lang.String typeToString()
-
getInferredJavaType
public InferredJavaType getInferredJavaType()
- Specified by:
getInferredJavaType
in interfaceLValue
-
getAnnotatedCreationType
public JavaAnnotatedTypeInstance getAnnotatedCreationType()
- Specified by:
getAnnotatedCreationType
in interfaceLValue
-
collectTypeUsages
public void collectTypeUsages(TypeUsageCollector collector)
- Specified by:
collectTypeUsages
in interfaceTypeUsageCollectable
-
collectLValueUsage
public void collectLValueUsage(LValueUsageCollector lValueUsageCollector)
- Specified by:
collectLValueUsage
in interfaceLValue
-
doesBlackListLValueReplacement
public boolean doesBlackListLValueReplacement(LValue replace, Expression with)
- Specified by:
doesBlackListLValueReplacement
in interfaceLValue
-
outerDeepClone
public LValue outerDeepClone(CloneHelper cloneHelper)
- Specified by:
outerDeepClone
in interfaceDeepCloneable<LValue>
-
canThrow
public boolean canThrow(ExceptionCheck caught)
-
validIterator
public boolean validIterator()
- Specified by:
validIterator
in interfaceLValue
-
toString
public final java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
getPrecedence
public abstract Precedence getPrecedence()
- Specified by:
getPrecedence
in interfaceDumpableWithPrecedence
-
dumpWithOuterPrecedence
public final Dumper dumpWithOuterPrecedence(Dumper d, Precedence outerP, Troolean isLhs)
- Specified by:
dumpWithOuterPrecedence
in interfaceDumpableWithPrecedence
-
-