[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