package org.scribble.ast.name.qualified; import org.antlr.runtime.tree.CommonTree; import org.scribble.ast.AstFactoryImpl; import org.scribble.ast.name.PayloadElemNameNode; import org.scribble.sesstype.Arg; import org.scribble.sesstype.kind.Local; import org.scribble.sesstype.name.LProtocolName; public class LProtocolNameNode extends ProtocolNameNode<Local> implements PayloadElemNameNode<Local> { public LProtocolNameNode(CommonTree source, String... ns) { super(source, ns); } @Override protected LProtocolNameNode copy() { return new LProtocolNameNode(this.source, this.elems); } @Override public LProtocolNameNode clone() { return (LProtocolNameNode) AstFactoryImpl.FACTORY.QualifiedNameNode(this.source, Local.KIND, this.elems); } @Override public LProtocolName toName() { LProtocolName membname = new LProtocolName(getLastElement()); return isPrefixed() ? new LProtocolName(getModuleNamePrefix(), membname) : membname; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof LProtocolNameNode)) { return false; } return ((LProtocolNameNode) o).canEqual(this) && super.equals(o); } @Override public boolean canEqual(Object o) { return o instanceof LProtocolNameNode; } @Override public int hashCode() { int hash = 421; hash = 31 * hash + this.elems.hashCode(); return hash; } @Override public Arg<Local> toArg() { return toPayloadType(); } @Override public LProtocolName toPayloadType() { return toName(); } }