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