package io.scalecube.cluster.gossip; import static com.google.common.base.Preconditions.checkArgument; import io.scalecube.transport.Message; import java.util.Objects; /** * Data model for gossip, include gossip id, qualifier and object need to disseminate. */ final class Gossip { private final String gossipId; private final Message message; public Gossip(String gossipId, Message message) { checkArgument(gossipId != null); checkArgument(message != null); this.gossipId = gossipId; this.message = message; } public String gossipId() { return gossipId; } public Message message() { return message; } @Override public boolean equals(Object that) { if (this == that) { return true; } if (that == null || getClass() != that.getClass()) { return false; } Gossip gossip = (Gossip) that; return Objects.equals(gossipId, gossip.gossipId) && Objects.equals(message, gossip.message); } @Override public int hashCode() { return Objects.hash(gossipId, message); } @Override public String toString() { return "Gossip{gossipId=" + gossipId + ", message=" + message + '}'; } }