1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.mavibot.btree;
21
22
23 import java.util.Comparator;
24
25
26
27
28
29
30
31
32
33
34
35 public class Tuple<K, V> implements Comparable<Tuple<K, V>>
36 {
37
38 protected K key;
39
40
41 protected V value;
42
43
44 protected Comparator<K> keyComparator;
45
46
47
48
49
50 public Tuple()
51 {
52 }
53
54
55
56
57
58
59
60 public Tuple( K key, V value )
61 {
62 this.key = key;
63 this.value = value;
64 }
65
66
67
68
69
70
71
72 public Tuple( K key, V value, Comparator<K> keyComparator )
73 {
74 this.key = key;
75 this.value = value;
76 this.keyComparator = keyComparator;
77 }
78
79
80
81
82
83 public K getKey()
84 {
85 return key;
86 }
87
88
89
90
91
92 public void setKey( K key )
93 {
94 this.key = key;
95 }
96
97
98
99
100
101 public V getValue()
102 {
103 return value;
104 }
105
106
107
108
109
110 public void setValue( V value )
111 {
112 this.value = value;
113 }
114
115
116
117
118
119 @Override
120 public int hashCode()
121 {
122 return key.hashCode();
123 }
124
125
126
127
128
129 @SuppressWarnings("unchecked")
130 @Override
131 public boolean equals( Object obj )
132 {
133 if ( this == obj )
134 {
135 return true;
136 }
137
138 if ( !( obj instanceof Tuple ) )
139 {
140 return false;
141 }
142
143 if ( this.key == null )
144 {
145 return ( ( Tuple<K, V> ) obj ).key == null;
146 }
147
148 return this.key.equals( ( ( Tuple<K, V> ) obj ).key );
149 }
150
151
152
153
154
155 @Override
156 public int compareTo( Tuple<K, V> t )
157 {
158 if ( keyComparator != null )
159 {
160 return keyComparator.compare( key, t.key );
161 }
162 else
163 {
164 return 0;
165 }
166 }
167
168
169
170
171
172 public Comparator<K> getKeyComparator()
173 {
174 return keyComparator;
175 }
176
177
178
179
180
181 public void setKeyComparator( Comparator<K> keyComparator )
182 {
183 this.keyComparator = keyComparator;
184 }
185
186
187
188
189
190 public String toString()
191 {
192 return "<" + key + "," + value + ">";
193 }
194 }