1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.hadoop.hbase.master;
21
22 import org.apache.hadoop.hbase.HRegionInfo;
23 import org.apache.hadoop.hbase.HServerAddress;
24 import org.apache.hadoop.hbase.util.Bytes;
25
26
27
28 public class MetaRegion implements Comparable<MetaRegion> {
29 private final HServerAddress server;
30 private HRegionInfo regionInfo;
31
32 MetaRegion(final HServerAddress server, HRegionInfo regionInfo) {
33 if (server == null) {
34 throw new IllegalArgumentException("server cannot be null");
35 }
36 this.server = server;
37 if (regionInfo == null) {
38 throw new IllegalArgumentException("regionInfo cannot be null");
39 }
40 this.regionInfo = regionInfo;
41 }
42
43 @Override
44 public String toString() {
45 return "{server: " + this.server.toString() + ", regionname: " +
46 regionInfo.getRegionNameAsString() + ", startKey: <" +
47 Bytes.toString(regionInfo.getStartKey()) + ">}";
48 }
49
50
51 public byte [] getRegionName() {
52 return regionInfo.getRegionName();
53 }
54
55
56 public HServerAddress getServer() {
57 return server;
58 }
59
60
61 public byte [] getStartKey() {
62 return regionInfo.getStartKey();
63 }
64
65
66
67 public byte [] getEndKey() {
68 return regionInfo.getEndKey();
69 }
70
71
72 public HRegionInfo getRegionInfo() {
73 return regionInfo;
74 }
75
76 @Override
77 public boolean equals(Object o) {
78 return o instanceof MetaRegion && this.compareTo((MetaRegion)o) == 0;
79 }
80
81 @Override
82 public int hashCode() {
83 return regionInfo.hashCode();
84 }
85
86
87
88 public int compareTo(MetaRegion other) {
89 int cmp = regionInfo.compareTo(other.regionInfo);
90 if(cmp == 0) {
91
92 cmp = this.server.compareTo(other.server);
93 }
94 return cmp;
95 }
96 }