package org.scribble.del.local; import org.scribble.ast.ScribNode; import org.scribble.ast.local.LDisconnect; import org.scribble.del.ConnectionActionDel; import org.scribble.main.ScribbleException; import org.scribble.model.endpoint.actions.EDisconnect; import org.scribble.sesstype.name.Role; import org.scribble.visit.context.EGraphBuilder; import org.scribble.visit.context.ProjectedChoiceSubjectFixer; public class LDisconnectDel extends ConnectionActionDel implements LSimpleInteractionNodeDel { @Override public LDisconnect leaveEGraphBuilding(ScribNode parent, ScribNode child, EGraphBuilder builder, ScribNode visited) throws ScribbleException { LDisconnect ld = (LDisconnect) visited; Role peer = ld.peer.toName(); builder.util.addEdge(builder.util.getEntry(), new EDisconnect(peer), builder.util.getExit()); return (LDisconnect) super.leaveEGraphBuilding(parent, child, builder, ld); } @Override public void enterProjectedChoiceSubjectFixing(ScribNode parent, ScribNode child, ProjectedChoiceSubjectFixer fixer) { fixer.setChoiceSubject(((LDisconnect) child).src.toName()); } }