package org.scribble.del; import org.scribble.ast.ScribNode; import org.scribble.main.ScribbleException; import org.scribble.visit.InlinedProtocolUnfolder; import org.scribble.visit.context.UnguardedChoiceDoProjectionChecker; import org.scribble.visit.wf.ExplicitCorrelationChecker; import org.scribble.visit.wf.WFChoiceChecker; // For CompoundInteractionNode and ProtocolBlock public abstract class CompoundInteractionDel extends ScribDelBase { public CompoundInteractionDel() { } // Should only do for projections, but OK here (visitor only run on projections) @Override public void enterUnguardedChoiceDoProjectionCheck(ScribNode parent, ScribNode child, UnguardedChoiceDoProjectionChecker checker) throws ScribbleException { ScribDelBase.pushVisitorEnv(this, checker); } // Should only do for projections, but OK here (visitor only run on projections) @Override public ScribNode leaveUnguardedChoiceDoProjectionCheck(ScribNode parent, ScribNode child, UnguardedChoiceDoProjectionChecker checker, ScribNode visited) throws ScribbleException { // Overridden in CompoundInteractionNodeDel to do merging of child context into parent context return ScribDelBase.popAndSetVisitorEnv(this, checker, visited); } @Override public void enterInlinedProtocolUnfolding(ScribNode parent, ScribNode child, InlinedProtocolUnfolder unf) throws ScribbleException { ScribDelBase.pushVisitorEnv(this, unf); } @Override public ScribNode leaveInlinedProtocolUnfolding(ScribNode parent, ScribNode child, InlinedProtocolUnfolder unf, ScribNode visited) throws ScribbleException { // Overridden in CompoundInteractionNodeDel to do merging of child context into parent context return ScribDelBase.popAndSetVisitorEnv(this, unf, visited); } @Override public void enterInlinedWFChoiceCheck(ScribNode parent, ScribNode child, WFChoiceChecker checker) throws ScribbleException { ScribDelBase.pushVisitorEnv(this, checker); } @Override public ScribNode leaveInlinedWFChoiceCheck(ScribNode parent, ScribNode child, WFChoiceChecker checker, ScribNode visited) throws ScribbleException { // Overridden in CompoundInteractionNodeDel to do merging of child context into parent context return ScribDelBase.popAndSetVisitorEnv(this, checker, visited); } @Override public void enterExplicitCorrelationCheck(ScribNode parent, ScribNode child, ExplicitCorrelationChecker checker) throws ScribbleException { ScribDelBase.pushVisitorEnv(this, checker); } @Override public ScribNode leaveExplicitCorrelationCheck(ScribNode parent, ScribNode child, ExplicitCorrelationChecker checker, ScribNode visited) throws ScribbleException { // Overridden in CompoundInteractionNodeDel to do merging of child context into parent context return ScribDelBase.popAndSetVisitorEnv(this, checker, visited); } }