Author: tchemit Date: 2010-03-15 11:54:46 +0100 (Mon, 15 Mar 2010) New Revision: 1841 Log: improve code + fix NPE when no contract found Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaEntityHelper.java Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaEntityHelper.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaEntityHelper.java 2010-03-15 10:53:57 UTC (rev 1840) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaEntityHelper.java 2010-03-15 10:54:46 UTC (rev 1841) @@ -74,6 +74,12 @@ protected static final Byte ZEROB = 0; /** + * Le pattern d'une reference sur une association + */ + public static final String ASSOCIATION_PATTERN = + "%1$s[@" + TopiaEntity.TOPIA_ID + "=\"%2$s\"]"; + + /** * * @param type the type to test * @return null object (default value for primitive types) @@ -425,9 +431,11 @@ } Class<? extends TopiaEntity> contractClass = getContractClass(contracts, klass); - for (TopiaEntityEnum t : contracts) { - if (t.accept(contractClass)) { - return t; + if (contractClass != null) { + for (TopiaEntityEnum t : contracts) { + if (t.accept(contractClass)) { + return t; + } } } return null; @@ -894,10 +902,15 @@ } accessorExpression.append(name); if (index > -1) { - accessorExpression.append("[@topiaId=\""); - accessorExpression.append(e.getTopiaId()); - accessorExpression.append("\"]"); + String association = String.format( + ASSOCIATION_PATTERN, "", e.getTopiaId()); + accessorExpression.append(association); } +// if (index > -1) { +// accessorExpression.append("[@topiaId=\""); +// accessorExpression.append(e.getTopiaId()); +// accessorExpression.append("\"]"); +// } if (log.isTraceEnabled()) { log.trace("add to stack : " + e.getTopiaId() + ", new size : " + path.size() + ", path : " +
participants (1)
-
tchemit@users.nuiton.org