package org.scribble.ast; import org.antlr.runtime.tree.CommonTree; import org.scribble.ast.name.qualified.MemberNameNode; import org.scribble.ast.name.qualified.MessageSigNameNode; import org.scribble.del.ScribDel; import org.scribble.sesstype.kind.SigKind; import org.scribble.sesstype.name.MessageSigName; import org.scribble.sesstype.name.ModuleName; public class MessageSigNameDecl extends NonProtocolDecl<SigKind> { public MessageSigNameDecl(CommonTree source, String schema, String extName, String extSource, MessageSigNameNode name) { super(source, schema, extName, extSource, name); } @Override protected MessageSigNameDecl copy() { return new MessageSigNameDecl(this.source, this.schema, this.extName, this.extSource, getNameNode()); } @Override public MessageSigNameDecl clone() { MessageSigNameNode name = (MessageSigNameNode) this.name.clone(); return AstFactoryImpl.FACTORY.MessageSigNameDecl(this.source, this.schema, this.extName, this.extSource, name); } @Override public MessageSigNameDecl reconstruct(String schema, String extName, String extSource, MemberNameNode<SigKind> name) { ScribDel del = del(); MessageSigNameDecl msnd = new MessageSigNameDecl(this.source, schema, extName, extSource, (MessageSigNameNode) name); msnd = (MessageSigNameDecl) msnd.del(del); return msnd; } @Override public boolean isMessageSigNameDecl() { return true; } @Override public MessageSigNameNode getNameNode() { return (MessageSigNameNode) super.getNameNode(); } @Override public MessageSigName getDeclName() { return (MessageSigName) super.getDeclName(); } @Override public MessageSigName getFullMemberName(Module mod) { ModuleName fullmodname = mod.getFullModuleName(); return new MessageSigName(fullmodname, getDeclName()); } @Override public String toString() { return Constants.SIG_KW + " <" + this.schema + "> \"" + this.extName + "\" " + Constants.FROM_KW + " \"" + this.extSource + "\" " + Constants.AS_KW + " " + this.name + ";"; } }