package org.scribble.sesstype; import org.scribble.sesstype.kind.OpKind; import org.scribble.sesstype.kind.SigKind; import org.scribble.sesstype.name.MessageId; import org.scribble.sesstype.name.Op; public class MessageSig implements Message { public final Op op; public final Payload payload; public MessageSig(Op op, Payload payload) { this.op = op; this.payload = payload; } @Override public SigKind getKind() { return SigKind.KIND; } @Override public MessageId<OpKind> getId() { return this.op; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof MessageSig)) { return false; } MessageSig sig = (MessageSig) o; return this.op.equals(sig.op) && this.payload.equals(sig.payload); } @Override public int hashCode() { int hash = 3187; hash = 31 * hash + this.op.hashCode(); hash = 31 * hash + this.payload.hashCode(); return hash; } @Override public String toString() { return this.op.toString() + this.payload.toString(); } }