X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fxmlrouter%2Fimpl%2FRobustIdentifiable.java;h=47b000055ea98025606c59d7a55d84daa8dcb1f4;hb=f8027d76e1c3e517a8b80a3476f51adee845fc5b;hp=640e37e13385402e9414c6beb2719bb3d6e2d378;hpb=ca624324bf36e5ba8217a6af861cbf898a40adfc;p=xmlrouter diff --git a/impl/src/main/java/org/wamblee/xmlrouter/impl/RobustIdentifiable.java b/impl/src/main/java/org/wamblee/xmlrouter/impl/RobustIdentifiable.java index 640e37e..47b0000 100644 --- a/impl/src/main/java/org/wamblee/xmlrouter/impl/RobustIdentifiable.java +++ b/impl/src/main/java/org/wamblee/xmlrouter/impl/RobustIdentifiable.java @@ -15,14 +15,18 @@ */ package org.wamblee.xmlrouter.impl; +import static org.wamblee.xmlrouter.impl.MessageUtil.*; + 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 * @@ -34,30 +38,24 @@ public class RobustIdentifiable implements Identifiable { private Id id; - // TODO test this class. - // TODO test that id is constant even though delegated changes its id. - public RobustIdentifiable(String aPrefix, Identifiable aIdentifiable) { - // TODO test id is null - // TODO getId() throws exception + notNull("prefix", aPrefix); + notNull("identifiable", aIdentifiable); try { id = aIdentifiable.getId(); if (id == null) { - id = new Id(Constants.UNKNOWN_ID.toString()); - temporarilyThrowException(); - } else { - id = new Id(aPrefix + id.getId()); + throwConfigException("identifiable.getId() returned null", null); } + id = new Id(aPrefix + id.getId()); } catch (Exception e) { - LOGGER - .log(Level.WARNING, "Identifiable getId() threw exception", e); + throwConfigException("identifiable.getId() threw exception", e); } } - private void temporarilyThrowException() { - throw new RuntimeException( - "Temporary to catch nulls during refactoring"); + private void throwConfigException(String aMsg, Exception aException) { + LOGGER.log(Level.WARNING, aMsg, aException); + throw new ConfigException(aMsg); } @Override @@ -65,8 +63,6 @@ public class RobustIdentifiable implements Identifiable { return id; } - // TODO test equals, hashcode. - @Override public int hashCode() { return id.hashCode();