Class AbstractStructuredStatement
- java.lang.Object
-
- org.benf.cfr.reader.bytecode.analysis.structured.statement.AbstractStructuredStatement
-
- All Implemented Interfaces:
HasByteCodeLoc
,Matcher<StructuredStatement>
,StructuredStatement
,Dumpable
,TypeUsageCollectable
- Direct Known Subclasses:
AbstractStructuredBlockStatement
,AbstractStructuredContinue
,AbstractUnStructuredStatement
,Block
,StructuredAssert
,StructuredAssignment
,StructuredBreak
,StructuredCatch
,StructuredComment
,StructuredDefinition
,StructuredExpressionStatement
,StructuredExpressionYield
,StructuredFinally
,StructuredIf
,StructuredReturn
,StructuredThrow
,StructuredTry
public abstract class AbstractStructuredStatement extends java.lang.Object implements StructuredStatement
-
-
Field Summary
Fields Modifier and Type Field Description private Op04StructuredStatement
container
private BytecodeLoc
loc
-
Constructor Summary
Constructors Constructor Description AbstractStructuredStatement(BytecodeLoc loc)
-
Method Summary
-
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.loc.HasByteCodeLoc
getCombinedLoc
-
Methods inherited from interface org.benf.cfr.reader.bytecode.analysis.structured.StructuredStatement
linearizeInto, rewriteExpressions, traceLocalVariableScope, transformStructuredChildren
-
Methods inherited from interface org.benf.cfr.reader.util.TypeUsageCollectable
collectTypeUsages
-
-
-
-
Field Detail
-
loc
private BytecodeLoc loc
-
container
private Op04StructuredStatement container
-
-
Constructor Detail
-
AbstractStructuredStatement
public AbstractStructuredStatement(BytecodeLoc loc)
-
-
Method Detail
-
addLoc
public void addLoc(HasByteCodeLoc loc)
- Specified by:
addLoc
in interfaceHasByteCodeLoc
-
getLoc
public BytecodeLoc getLoc()
- Specified by:
getLoc
in interfaceHasByteCodeLoc
-
getContainer
public Op04StructuredStatement getContainer()
- Specified by:
getContainer
in interfaceStructuredStatement
-
setContainer
public void setContainer(Op04StructuredStatement container)
- Specified by:
setContainer
in interfaceStructuredStatement
-
transformStructuredChildrenInReverse
public void transformStructuredChildrenInReverse(StructuredStatementTransformer transformer, StructuredScope scope)
- Specified by:
transformStructuredChildrenInReverse
in interfaceStructuredStatement
-
claimBlock
public StructuredStatement claimBlock(Op04StructuredStatement innerBlock, BlockIdentifier blockIdentifier, java.util.Vector<BlockIdentifier> blocksCurrentlyIn)
- Specified by:
claimBlock
in interfaceStructuredStatement
-
informBlockHeirachy
public StructuredStatement informBlockHeirachy(java.util.Vector<BlockIdentifier> blockIdentifiers)
- Specified by:
informBlockHeirachy
in interfaceStructuredStatement
-
isProperlyStructured
public boolean isProperlyStructured()
- Specified by:
isProperlyStructured
in interfaceStructuredStatement
-
isRecursivelyStructured
public boolean isRecursivelyStructured()
- Specified by:
isRecursivelyStructured
in interfaceStructuredStatement
-
getBreakableBlockOrNull
public BlockIdentifier getBreakableBlockOrNull()
- Specified by:
getBreakableBlockOrNull
in interfaceStructuredStatement
-
match
public boolean match(MatchIterator<StructuredStatement> matchIterator, MatchResultCollector matchResultCollector)
- Specified by:
match
in interfaceMatcher<StructuredStatement>
-
markCreator
public void markCreator(LValue scopedEntity, StatementContainer<StructuredStatement> hint)
- Specified by:
markCreator
in interfaceStructuredStatement
-
alwaysDefines
public boolean alwaysDefines(LValue scopedEntity)
- Specified by:
alwaysDefines
in interfaceStructuredStatement
-
canDefine
public boolean canDefine(LValue scopedEntity, ScopeDiscoverInfoCache factCache)
- Specified by:
canDefine
in interfaceStructuredStatement
-
isScopeBlock
public boolean isScopeBlock()
- Specified by:
isScopeBlock
in interfaceStructuredStatement
-
supportsContinueBreak
public boolean supportsContinueBreak()
- Specified by:
supportsContinueBreak
in interfaceStructuredStatement
-
supportsBreak
public boolean supportsBreak()
- Specified by:
supportsBreak
in interfaceStructuredStatement
-
findCreatedHere
public java.util.List<LValue> findCreatedHere()
- Specified by:
findCreatedHere
in interfaceStructuredStatement
-
suggestName
public java.lang.String suggestName(LocalVariable createdHere, Predicate<java.lang.String> testNameUsedFn)
- Specified by:
suggestName
in interfaceStructuredStatement
-
toString
public final java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
inlineable
public boolean inlineable()
- Specified by:
inlineable
in interfaceStructuredStatement
-
getInline
public Op04StructuredStatement getInline()
- Specified by:
getInline
in interfaceStructuredStatement
-
isEffectivelyNOP
public boolean isEffectivelyNOP()
- Specified by:
isEffectivelyNOP
in interfaceStructuredStatement
-
canFall
public boolean canFall()
- Specified by:
canFall
in interfaceStructuredStatement
-
fallsNopToNext
public boolean fallsNopToNext()
- Specified by:
fallsNopToNext
in interfaceStructuredStatement
-
-