now making sure that ids re prefixed by the config id.
[xmlrouter] / common / src / main / java / org / wamblee / xmlrouter / common / Id.java
index 504459aa099dc980d97f0ed806b1694f9fb22e50..a50b8f2c7b3dcd8999b641df7b60c9a4fe5a981d 100644 (file)
@@ -1,20 +1,57 @@
+/*
+ * Copyright 2005-2011 the original author or authors.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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 String id;
 
-    public Id(int aId) {
+    /**
+     * Constructs the id.
+     * 
+     * @param aId
+     *            Integer id.
+     * @throws NullPointerException
+     *             in case the id is null.
+     */
+    public Id(String aId) {
+        if (aId == null) {
+            throw new NullPointerException("id is null");
+        }
         id = aId;
     }
 
-    public int getId() {
+    /**
+     * @return The underlying id.
+     */
+    public String getId() {
         return id;
     }
 
     @Override
     public int hashCode() {
-        return id;
+        return id.hashCode();
     }
 
     @Override
@@ -25,11 +62,16 @@ public class Id<T> {
         if (!(aObj instanceof Id)) {
             return false;
         }
-        return id == ((Id<T>) aObj).id;
+        return id.equals(((Id<T>) aObj).id);
     }
 
     @Override
     public String toString() {
-        return id + "";
+        return id;
+    }
+
+    @Override
+    public int compareTo(Id<T> aId) {
+        return id.compareTo(aId.getId());
     }
 }