* 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
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());
}
}