1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.master.balancer;
19
20 import java.io.Serializable;
21
22 import org.apache.hadoop.hbase.classification.InterfaceAudience;
23 import org.apache.hadoop.hbase.ServerName;
24
25
26
27
28 @InterfaceAudience.Private
29 class ServerAndLoad implements Comparable<ServerAndLoad>, Serializable {
30 private static final long serialVersionUID = 2735470854607296965L;
31 private final ServerName sn;
32 private final int load;
33
34 ServerAndLoad(final ServerName sn, final int load) {
35 this.sn = sn;
36 this.load = load;
37 }
38
39 ServerName getServerName() {
40 return this.sn;
41 }
42
43 int getLoad() {
44 return this.load;
45 }
46
47 @Override
48 public int compareTo(ServerAndLoad other) {
49 int diff = this.load - other.load;
50 return diff != 0 ? diff : this.sn.compareTo(other.getServerName());
51 }
52
53 @Override
54 public int hashCode() {
55 int result = load;
56 result = 31 * result + ((sn == null) ? 0 : sn.hashCode());
57 return result;
58 }
59
60 @Override
61 public boolean equals(Object o) {
62 if (o instanceof ServerAndLoad) {
63 ServerAndLoad sl = (ServerAndLoad) o;
64 return this.compareTo(sl) == 0;
65 }
66 return false;
67 }
68 }