Package org.extendj.neobeaver.ast
Class ASTState
- java.lang.Object
-
- org.extendj.neobeaver.ast.ASTState
-
public class ASTState extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classASTState.CircleStateTracks the state of the current circular evaluation.protected static classASTState.CircularValueThis class stores an attribute value tagged with an iteration ID for a circular evaluation.protected static classASTState.CycleInstances of this class are used to uniquely identify circular evaluation iterations.
-
Field Summary
Fields Modifier and Type Field Description static ASTState.CycleNON_CYCLEThe iteration ID used outside of circular evaluation.
-
Constructor Summary
Constructors Modifier Constructor Description protectedASTState()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleancalledByLazyAttribute()protected booleanchangeInCycle()protected booleancheckAndSetVisited(java.lang.Object attribute, int cycle)Check if attribute was already visited during the current cycle.protected voidclearVisited()Reset visited cycle tracking for this thread.protected ASTState.CircleStatecurrentCircle()protected ASTState.Cyclecycle()protected voidenterCircle()protected voidenterLazyAttribute()protected booleaninCircle()protected booleanlastCycle()protected voidleaveCircle()protected voidleaveLazyAttribute()protected ASTState.CyclenextCycle()voidreset()protected voidresetVisited(java.lang.Object attribute)Reset visit tracker for a single attribute.protected voidsetChangeInCycle()protected voidstartLastCycle()protected booleantestAndClearChangeInCycle()
-
-
-
Field Detail
-
NON_CYCLE
public static final ASTState.Cycle NON_CYCLE
The iteration ID used outside of circular evaluation.This is the iteration ID when no circular evaluation is ongoing.
-
-
Method Detail
-
inCircle
protected boolean inCircle()
-
calledByLazyAttribute
protected boolean calledByLazyAttribute()
-
enterLazyAttribute
protected void enterLazyAttribute()
-
leaveLazyAttribute
protected void leaveLazyAttribute()
-
enterCircle
protected void enterCircle()
-
checkAndSetVisited
protected boolean checkAndSetVisited(java.lang.Object attribute, int cycle)Check if attribute was already visited during the current cycle.- Returns:
trueif the attribute was already visited.
-
clearVisited
protected void clearVisited()
Reset visited cycle tracking for this thread.
-
resetVisited
protected void resetVisited(java.lang.Object attribute)
Reset visit tracker for a single attribute.
-
leaveCircle
protected void leaveCircle()
-
nextCycle
protected ASTState.Cycle nextCycle()
-
cycle
protected ASTState.Cycle cycle()
-
currentCircle
protected ASTState.CircleState currentCircle()
-
setChangeInCycle
protected void setChangeInCycle()
-
testAndClearChangeInCycle
protected boolean testAndClearChangeInCycle()
-
changeInCycle
protected boolean changeInCycle()
-
lastCycle
protected boolean lastCycle()
-
startLastCycle
protected void startLastCycle()
-
reset
public void reset()
-
-