r1379 - in jaxx/trunk: jaxx-example jaxx-runtime-api/src/main/java/jaxx/runtime
Author: tchemit Date: 2009-05-04 16:43:46 +0000 (Mon, 04 May 2009) New Revision: 1379 Modified: jaxx/trunk/jaxx-example/changelog.txt jaxx/trunk/jaxx-example/pom.xml jaxx/trunk/jaxx-runtime-api/src/main/java/jaxx/runtime/JXPathDecorator.java Log: introduce module jaxx-runtime-swing-widget for swing widgets designed with jaxx. - generics on JXPathDecorator Modified: jaxx/trunk/jaxx-example/changelog.txt =================================================================== --- jaxx/trunk/jaxx-example/changelog.txt 2009-05-04 16:38:07 UTC (rev 1378) +++ jaxx/trunk/jaxx-example/changelog.txt 2009-05-04 16:43:46 UTC (rev 1379) @@ -1,3 +1,6 @@ +1.5 + * 20090404 [chemit] - use module jaxx-runtime-swing-widget + 1.3 chemit 20090409 * 20090319 [chemit] - refactor Validator : now can deal with scopes, improve design * 20090313 [chemit] - improve demo Modified: jaxx/trunk/jaxx-example/pom.xml =================================================================== --- jaxx/trunk/jaxx-example/pom.xml 2009-05-04 16:38:07 UTC (rev 1378) +++ jaxx/trunk/jaxx-example/pom.xml 2009-05-04 16:43:46 UTC (rev 1379) @@ -24,11 +24,11 @@ <artifactId>jaxx-runtime-swing</artifactId> <version>${project.version}</version> </dependency> - <!--dependency> + <dependency> <groupId>${project.groupId}</groupId> <artifactId>jaxx-runtime-swing-widget</artifactId> <version>${project.version}</version> - </dependency--> + </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>jaxx-runtime-validator-swing</artifactId> Modified: jaxx/trunk/jaxx-runtime-api/src/main/java/jaxx/runtime/JXPathDecorator.java =================================================================== --- jaxx/trunk/jaxx-runtime-api/src/main/java/jaxx/runtime/JXPathDecorator.java 2009-05-04 16:38:07 UTC (rev 1378) +++ jaxx/trunk/jaxx-runtime-api/src/main/java/jaxx/runtime/JXPathDecorator.java 2009-05-04 16:43:46 UTC (rev 1379) @@ -28,6 +28,7 @@ * assert "expr = %1$s" == d.toString(d); * </pre> * + * @param <O> type of data * @author chemit * @see Decorator */ @@ -60,39 +61,43 @@ * Sort a list of data based on the first token property of a given context * in a given decorator. * + * @param <O> type of data to sort * @param decorator the decorator to use to sort * @param datas the list of data to sort * @param pos the index of context to used in decorator to obtain sorted property. */ public static <O> void sort(JXPathDecorator<O> decorator, List<O> datas, int pos) { - Comparator<O> c = decorator.getComparator(pos); - boolean cachedComparator = c instanceof JXPathComparator; + Comparator<O> c = null; + boolean cachedComparator = false; try { + c = decorator.getComparator(pos); + cachedComparator = c instanceof JXPathComparator<?>; + if (cachedComparator) { ((JXPathComparator<O>) c).init(decorator, datas); } Collections.sort(datas, c); } finally { if (cachedComparator) { - ((JXPathComparator) c).clear(); + ((JXPathComparator<?>) c).clear(); } } } public static class JXPathComparator<O> implements Comparator<O> { - protected Map<O, Comparable<Comparable>> valueCache; + protected Map<O, Comparable<Comparable<?>>> valueCache; private final String expression; public JXPathComparator(String expression) { this.expression = expression; - this.valueCache = new HashMap<O, Comparable<Comparable>>(); + this.valueCache = new HashMap<O, Comparable<Comparable<?>>>(); } @Override public int compare(O o1, O o2) { - Comparable<Comparable> c1 = valueCache.get(o1); - Comparable<Comparable> c2 = valueCache.get(o2); + Comparable<Comparable<?>> c1 = valueCache.get(o1); + Comparable<Comparable<?>> c2 = valueCache.get(o2); return c1.compareTo(c2); } @@ -104,7 +109,7 @@ clear(); for (O data : datas) { JXPathContext jxcontext = JXPathContext.newContext(data); - Comparable<Comparable> key = decorator.getTokenValue(jxcontext, expression); + Comparable<Comparable<?>> key = decorator.getTokenValue(jxcontext, expression); valueCache.put(data, key); } } @@ -175,9 +180,9 @@ } @SuppressWarnings({"unchecked"}) - protected Comparable<Comparable> getTokenValue(JXPathContext jxcontext, String token) { + protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) { // assume all values are comparable - return (Comparable<Comparable>) jxcontext.getValue(token); + return (Comparable<Comparable<?>>) jxcontext.getValue(token); } public String getProperty(int pos) { @@ -265,7 +270,7 @@ return new Context<O>(buffer.toString(), lTokens.toArray(new String[lTokens.size()])); } - protected static void ensureTokenIndex(JXPathDecorator decorator, int pos) { + protected static void ensureTokenIndex(JXPathDecorator<?> decorator, int pos) { if (pos < -1 || pos > decorator.getNbToken()) { throw new ArrayIndexOutOfBoundsException("token index " + pos + " is out of bound, can be inside [" + 0 + "," + decorator.nbToken + "]"); }
participants (1)
-
tchemit@users.labs.libre-entreprise.org