blob: f015ae5505fa4817604c206652264c24e871c21b [file] [log] [blame]
Yuta HIGUCHI080d7842014-09-25 13:53:15 -07001package org.onlab.onos.cluster;
2
Ayaka Koshibeb70d34b2014-09-25 15:43:01 -07003import java.util.Objects;
4
5public final class MastershipTerm {
6
7 private final NodeId master;
Yuta HIGUCHI080d7842014-09-25 13:53:15 -07008 private int termNumber;
Ayaka Koshibeb70d34b2014-09-25 15:43:01 -07009
10 private MastershipTerm(NodeId master, int term) {
11 this.master = master;
12 this.termNumber = term;
13 }
14
15 public static MastershipTerm of(NodeId master, int term) {
16 return new MastershipTerm(master, term);
17 }
18
19 public NodeId master() {
20 return master;
21 }
22
23 public int termNumber() {
24 return termNumber;
25 }
26
27 @Override
28 public int hashCode() {
29 return Objects.hash(master, termNumber);
30 }
31
32 @Override
33 public boolean equals(Object other) {
Ayaka Koshibe48239b02014-09-25 17:12:31 -070034 if (this == other) {
35 return true;
36 }
Ayaka Koshibeb70d34b2014-09-25 15:43:01 -070037 if (other instanceof MastershipTerm) {
38 MastershipTerm that = (MastershipTerm) other;
39 if (!this.master.equals(that.master)) {
40 return false;
41 }
42 if (this.termNumber != that.termNumber) {
43 return false;
44 }
45 return true;
46 }
47 return false;
48 }
Yuta HIGUCHI080d7842014-09-25 13:53:15 -070049}