Now using RouterConfig internally inside the XML Router.
[xmlrouter] / common / src / main / java / org / wamblee / xmlrouter / common / Id.java
index bc2399985649c2028fb82c218b14dcda642f966c..f057b416ee8572570b018fd83594fa40869ffd63 100644 (file)
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- */ 
+ */
 package org.wamblee.xmlrouter.common;
 
-public class Id<T> {
+/**
+ * This class provides a generic typesafe id wrapping a long value.
+ * 
+ * @author Erik Brakkee
+ * 
+ * @param <T>
+ *            Type the id refers to.
+ */
+public class Id<T> implements Comparable<Id<T>> {
 
-    private int id;
+    private long id;
 
-    public Id(int aId) {
+    /**
+     * Constructs the id.
+     * 
+     * @param aId
+     *            Integer id.
+     */
+    public Id(long aId) {
         id = aId;
     }
 
-    public int getId() {
+    /**
+     * @return The underlying id.
+     */
+    public long getId() {
         return id;
     }
 
     @Override
     public int hashCode() {
-        return id;
+        return ((Long) id).hashCode();
     }
 
     @Override
@@ -47,4 +64,9 @@ public class Id<T> {
     public String toString() {
         return id + "";
     }
+
+    @Override
+    public int compareTo(Id<T> aId) {
+        return ((Long) id).compareTo((Long) aId.getId());
+    }
 }