package org.scribble.sesstype.name; import org.scribble.sesstype.Message; import org.scribble.sesstype.kind.SigKind; // The name of a declared (imported) message signature member public class MessageSigName extends MemberName<SigKind> implements Message, MessageId<SigKind> { private static final long serialVersionUID = 1L; public MessageSigName(ModuleName modname, MessageSigName simplename) { super(SigKind.KIND, modname, simplename); } public MessageSigName(String simplename) { super(SigKind.KIND, simplename); } @Override public SigKind getKind() { return SigKind.KIND; // Same as this.kind } @Override public MessageSigName getSimpleName() { return new MessageSigName(getLastElement()); } @Override public MessageId<SigKind> getId() { return this; // FIXME: should be resolved to a canonical name } @Override public boolean isMessageSigName() { return true; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof MessageSigName)) { return false; } MessageSigName n = (MessageSigName) o; return n.canEqual(this) && super.equals(o); } public boolean canEqual(Object o) { return o instanceof MessageSigName; } @Override public int hashCode() { int hash = 2791; hash = 31 * super.hashCode(); return hash; } }