package org.scribble.ast.local;
import java.util.Set;
import org.antlr.runtime.tree.CommonTree;
import org.scribble.ast.AstFactoryImpl;
import org.scribble.ast.InteractionSeq;
import org.scribble.ast.ProtocolBlock;
import org.scribble.del.ScribDel;
import org.scribble.sesstype.Message;
import org.scribble.sesstype.kind.Local;
public class LProtocolBlock extends ProtocolBlock<Local> implements LNode
{
public LProtocolBlock(CommonTree source, LInteractionSeq seq)
{
super(source, seq);
}
@Override
protected LProtocolBlock copy()
{
return new LProtocolBlock(this.source, getInteractionSeq());
}
@Override
public LProtocolBlock clone()
{
LInteractionSeq lis = getInteractionSeq().clone();
return AstFactoryImpl.FACTORY.LProtocolBlock(this.source, lis);
}
@Override
public LProtocolBlock reconstruct(InteractionSeq<Local> seq)
{
ScribDel del = del();
LProtocolBlock lpb = new LProtocolBlock(this.source, (LInteractionSeq) seq);
lpb = (LProtocolBlock) lpb.del(del);
return lpb;
}
@Override
public LInteractionSeq getInteractionSeq()
{
return (LInteractionSeq) this.seq;
}
// FIXME: shouldn't be needed, but here due to Eclipse bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=436350
@Override
public Local getKind()
{
return LNode.super.getKind();
}
public LProtocolBlock merge(LProtocolBlock lpb)
{
throw new RuntimeException("TODO: " + this + ", " + lpb);
}
public Set<Message> getEnabling()
{
return getInteractionSeq().getEnabling();
}
}