blob: f11dafdd2dccae6f9d07123b9ef5fb4c170e9f75 [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) {
34 if (other instanceof MastershipTerm) {
35 MastershipTerm that = (MastershipTerm) other;
36 if (!this.master.equals(that.master)) {
37 return false;
38 }
39 if (this.termNumber != that.termNumber) {
40 return false;
41 }
42 return true;
43 }
44 return false;
45 }
Yuta HIGUCHI080d7842014-09-25 13:53:15 -070046}