Config no longer implements Identifiable because this was in violation of the contrac...
[xmlrouter] / impl / src / main / java / org / wamblee / xmlrouter / impl / RobustIdentifiable.java
index 6622e3277a85e35ae2dbf527bac761ae07f1d3e9..f371975fac804c378162084bc0e1a74536fbe2d9 100644 (file)
@@ -21,11 +21,11 @@ import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import org.wamblee.xmlrouter.common.Id;
-import org.wamblee.xmlrouter.config.ConfigException;
 import org.wamblee.xmlrouter.config.Identifiable;
 
 /**
- * Robust identifiable provides robustness for identifiable objects.
+ * Robust identifiable provides robustness for identifiable objects. It adds
+ * equality based on the id.
  * 
  * @author Erik Brakkee
  * 
@@ -37,20 +37,13 @@ public class RobustIdentifiable<T> implements Identifiable<T> {
 
     private Id<T> id;
 
-    // TODO test this class.
-    // TODO test that id is constant even though delegated changes its id.
-
-    public RobustIdentifiable(String aPrefix, Identifiable<T> aIdentifiable) {
-        notNull("prefix", aPrefix);
+    public RobustIdentifiable(Identifiable<T> aIdentifiable) {
         notNull("identifiable", aIdentifiable);
-        // TODO test id is null
-        // TODO getId() throws exception
         try {
             id = aIdentifiable.getId();
             if (id == null) {
                 throwConfigException("identifiable.getId() returned null", null);
             }
-            id = new Id<T>(aPrefix + id.getId());
         } catch (Exception e) {
             throwConfigException("identifiable.getId() threw exception", e);
         }
@@ -59,7 +52,7 @@ public class RobustIdentifiable<T> implements Identifiable<T> {
 
     private void throwConfigException(String aMsg, Exception aException) {
         LOGGER.log(Level.WARNING, aMsg, aException);
-        throw new ConfigException("id is null");
+        throw new ConfigException(aMsg);
     }
 
     @Override
@@ -67,8 +60,6 @@ public class RobustIdentifiable<T> implements Identifiable<T> {
         return id;
     }
 
-    // TODO test equals, hashcode.
-
     @Override
     public int hashCode() {
         return id.hashCode();