All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.scalecube.cluster.gossip.Gossip Maven / Gradle / Ivy

There is a newer version: 2.7.1
Show newest version
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 + '}';
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy