Separate cluster management and mastership management to separate packages
Change-Id: If1e399648451842da6dccc644b75b81337b105f9
diff --git a/core/api/src/main/java/org/onlab/onos/mastership/MastershipTerm.java b/core/api/src/main/java/org/onlab/onos/mastership/MastershipTerm.java
new file mode 100644
index 0000000..640180d
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/mastership/MastershipTerm.java
@@ -0,0 +1,51 @@
+package org.onlab.onos.mastership;
+
+import java.util.Objects;
+
+import org.onlab.onos.cluster.NodeId;
+
+public final class MastershipTerm {
+
+ private final NodeId master;
+ private final int termNumber;
+
+ private MastershipTerm(NodeId master, int term) {
+ this.master = master;
+ this.termNumber = term;
+ }
+
+ public static MastershipTerm of(NodeId master, int term) {
+ return new MastershipTerm(master, term);
+ }
+
+ public NodeId master() {
+ return master;
+ }
+
+ public int termNumber() {
+ return termNumber;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(master, termNumber);
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (this == other) {
+ return true;
+ }
+ if (other instanceof MastershipTerm) {
+ MastershipTerm that = (MastershipTerm) other;
+ if (!this.master.equals(that.master)) {
+ return false;
+ }
+ if (this.termNumber != that.termNumber) {
+ return false;
+ }
+ return true;
+ }
+ return false;
+ }
+}