[jboss-cvs] JBossAS SVN: r69167 - projects/microcontainer/trunk/deployers-structure-spi/src/main/org/jboss/deployers/structure/spi/classloading.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Jan 21 05:39:49 EST 2008
Author: alesj
Date: 2008-01-21 05:39:49 -0500 (Mon, 21 Jan 2008)
New Revision: 69167
Modified:
projects/microcontainer/trunk/deployers-structure-spi/src/main/org/jboss/deployers/structure/spi/classloading/VersionComparatorRegistry.java
Log:
Switch version comparator.
Modified: projects/microcontainer/trunk/deployers-structure-spi/src/main/org/jboss/deployers/structure/spi/classloading/VersionComparatorRegistry.java
===================================================================
--- projects/microcontainer/trunk/deployers-structure-spi/src/main/org/jboss/deployers/structure/spi/classloading/VersionComparatorRegistry.java 2008-01-21 07:50:10 UTC (rev 69166)
+++ projects/microcontainer/trunk/deployers-structure-spi/src/main/org/jboss/deployers/structure/spi/classloading/VersionComparatorRegistry.java 2008-01-21 10:39:49 UTC (rev 69167)
@@ -129,7 +129,7 @@
uKeyMap = new HashMap<Class<? extends Version>, VersionComparator>();
comparatorMap.put(u, uKeyMap);
}
- uKeyMap.put(t, comparator);
+ uKeyMap.put(t, new SwitchVersionComparator<U, T>(comparator));
}
}
}
@@ -179,4 +179,27 @@
return comparator.compare(t, u);
}
+
+ /**
+ * Switch the compare value.
+ *
+ * @param <T> exact version type
+ * @param <U> exact version type
+ */
+ private class SwitchVersionComparator<T extends Version, U extends Version> implements VersionComparator<T, U>
+ {
+ private VersionComparator<U, T> delegate;
+
+ public SwitchVersionComparator(VersionComparator<U, T> delegate)
+ {
+ if (delegate == null)
+ throw new IllegalArgumentException("Null delegate");
+ this.delegate = delegate;
+ }
+
+ public int compare(T t, U u)
+ {
+ return delegate.compare(u, t) * (-1);
+ }
+ }
}
More information about the jboss-cvs-commits
mailing list