You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by cs...@apache.org on 2011/08/18 12:53:28 UTC

svn commit: r1159158 - /maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfo.java

Author: cstamas
Date: Thu Aug 18 10:53:27 2011
New Revision: 1159158

URL: http://svn.apache.org/viewvc?rev=1159158&view=rev
Log:
Added a context comparator to ArtifactInfo, is handy for various analysis use cases.

Modified:
    maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfo.java

Modified: maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfo.java
URL: http://svn.apache.org/viewvc/maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfo.java?rev=1159158&r1=1159157&r2=1159158&view=diff
==============================================================================
--- maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfo.java (original)
+++ maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfo.java Thu Aug 18 10:53:27 2011
@@ -161,6 +161,8 @@ public class ArtifactInfo
 
     public static final Comparator<ArtifactInfo> REPOSITORY_VERSION_COMPARATOR = new RepositoryVersionComparator();
 
+    public static final Comparator<ArtifactInfo> CONTEXT_VERSION_COMPARATOR = new ContextVersionComparator();
+
     public String fname;
 
     public String fextension;
@@ -548,7 +550,7 @@ public class ArtifactInfo
     static class VersionComparator
         implements Comparator<ArtifactInfo>
     {
-        public int compare( ArtifactInfo f1, ArtifactInfo f2 )
+        public int compare( final ArtifactInfo f1, final ArtifactInfo f2 )
         {
             int n = f1.groupId.compareTo( f2.groupId );
             if ( n != 0 )
@@ -569,8 +571,8 @@ public class ArtifactInfo
             }
 
             {
-                String c1 = f1.classifier;
-                String c2 = f2.classifier;
+                final String c1 = f1.classifier;
+                final String c2 = f2.classifier;
                 if ( c1 == null )
                 {
                     if ( c2 != null )
@@ -594,8 +596,8 @@ public class ArtifactInfo
             }
 
             {
-                String p1 = f1.packaging;
-                String p2 = f2.packaging;
+                final String p1 = f1.packaging;
+                final String p2 = f2.packaging;
                 if ( p1 == null )
                 {
                     return p2 == null ? 0 : -1;
@@ -615,16 +617,44 @@ public class ArtifactInfo
         extends VersionComparator
     {
         @Override
-        public int compare( ArtifactInfo f1, ArtifactInfo f2 )
+        public int compare( final ArtifactInfo f1, final ArtifactInfo f2 )
+        {
+            final int n = super.compare( f1, f2 );
+            if ( n != 0 )
+            {
+                return n;
+            }
+
+            final String r1 = f1.repository;
+            final String r2 = f2.repository;
+            if ( r1 == null )
+            {
+                return r2 == null ? 0 : -1;
+            }
+            else
+            {
+                return r2 == null ? 1 : r1.compareTo( r2 );
+            }
+        }
+    }
+    
+    /**
+     * A context and version comparator
+     */
+    static class ContextVersionComparator
+        extends VersionComparator
+    {
+        @Override
+        public int compare( final ArtifactInfo f1, final ArtifactInfo f2 )
         {
-            int n = super.compare( f1, f2 );
+            final int n = super.compare( f1, f2 );
             if ( n != 0 )
             {
                 return n;
             }
 
-            String r1 = f1.repository;
-            String r2 = f2.repository;
+            final String r1 = f1.context;
+            final String r2 = f2.context;
             if ( r1 == null )
             {
                 return r2 == null ? 0 : -1;