blob: 43df15fa1c76ef84ac138d6b62fe37301196860e [file] [log] [blame]
tom1d416c52014-09-29 20:55:24 -07001package org.onlab.onos.store.cluster.messaging;
2
Yuta HIGUCHI8a851382014-10-06 14:56:46 -07003import static com.google.common.base.Preconditions.checkNotNull;
4
5import java.util.Objects;
6
tom1d416c52014-09-29 20:55:24 -07007/**
8 * Representation of a message subject.
Madan Jampani3b0dfd52014-10-02 16:48:13 -07009 * Cluster messages have associated subjects that dictate how they get handled
10 * on the receiving side.
tom1d416c52014-09-29 20:55:24 -070011 */
Madan Jampani890bc352014-10-01 22:35:29 -070012public class MessageSubject {
tom1d416c52014-09-29 20:55:24 -070013
Madan Jampani890bc352014-10-01 22:35:29 -070014 private final String value;
tom1d416c52014-09-29 20:55:24 -070015
Madan Jampani890bc352014-10-01 22:35:29 -070016 public MessageSubject(String value) {
Yuta HIGUCHI8a851382014-10-06 14:56:46 -070017 this.value = checkNotNull(value);
Madan Jampani890bc352014-10-01 22:35:29 -070018 }
tom28e1fa22014-09-30 10:38:21 -070019
Madan Jampani890bc352014-10-01 22:35:29 -070020 public String value() {
21 return value;
22 }
tomd33e6402014-09-30 03:14:43 -070023
Madan Jampani890bc352014-10-01 22:35:29 -070024 @Override
25 public String toString() {
26 return value;
27 }
Yuta HIGUCHI8a851382014-10-06 14:56:46 -070028
29 @Override
30 public int hashCode() {
31 return value.hashCode();
32 }
33
34 @Override
35 public boolean equals(Object obj) {
36 if (this == obj) {
37 return true;
38 }
39 if (obj == null) {
40 return false;
41 }
42 if (getClass() != obj.getClass()) {
43 return false;
44 }
45 MessageSubject that = (MessageSubject) obj;
46 return Objects.equals(this.value, that.value);
47 }
Yuta HIGUCHI3cc19072014-10-07 17:33:23 -070048
49 // for serializer
50 protected MessageSubject() {
51 this.value = "";
52 }
tom1d416c52014-09-29 20:55:24 -070053}