now making sure that ids re prefixed by the config id.
[xmlrouter] / common / src / main / java / org / wamblee / xmlrouter / common / Id.java
1 /*
2  * Copyright 2005-2011 the original author or authors.
3  * 
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  * 
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  * 
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.wamblee.xmlrouter.common;
17
18 /**
19  * This class provides a generic typesafe id wrapping a long value.
20  * 
21  * @author Erik Brakkee
22  * 
23  * @param <T>
24  *            Type the id refers to.
25  */
26 public class Id<T> implements Comparable<Id<T>> {
27
28     private String id;
29
30     /**
31      * Constructs the id.
32      * 
33      * @param aId
34      *            Integer id.
35      * @throws NullPointerException
36      *             in case the id is null.
37      */
38     public Id(String aId) {
39         if (aId == null) {
40             throw new NullPointerException("id is null");
41         }
42         id = aId;
43     }
44
45     /**
46      * @return The underlying id.
47      */
48     public String getId() {
49         return id;
50     }
51
52     @Override
53     public int hashCode() {
54         return id.hashCode();
55     }
56
57     @Override
58     public boolean equals(Object aObj) {
59         if (aObj == null) {
60             return false;
61         }
62         if (!(aObj instanceof Id)) {
63             return false;
64         }
65         return id.equals(((Id<T>) aObj).id);
66     }
67
68     @Override
69     public String toString() {
70         return id;
71     }
72
73     @Override
74     public int compareTo(Id<T> aId) {
75         return id.compareTo(aId.getId());
76     }
77 }