You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by si...@apache.org on 2008/07/17 00:02:18 UTC

svn commit: r677444 - /maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java

Author: sisbell
Date: Wed Jul 16 15:02:18 2008
New Revision: 677444

URL: http://svn.apache.org/viewvc?rev=677444&view=rev
Log:
Sorts collection back into original order.

Modified:
    maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java

Modified: maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java?rev=677444&r1=677443&r2=677444&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java (original)
+++ maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java Wed Jul 16 15:02:18 2008
@@ -62,7 +62,7 @@
 
         for (ModelContainerFactory factory : factories) {
             for (String uri : factory.getUris()) {
-                List<ModelContainer> modelContainers = null;
+                List<ModelContainer> modelContainers;
                 try {
                     modelContainers = modelDataSource.queryFor(uri);
                 } catch (IllegalArgumentException e) {
@@ -114,18 +114,18 @@
                 unresolvedProperties.add(mp);
             }
         }
-        /*
-        System.out.println("Properties: " + properties.size());
+
         for (InterpolatorProperty ip : properties) {
             for (ModelProperty mp : unresolvedProperties) {
-                System.out.println(ip);
-                mp.resolveWith(ip);
-                System.out.println(mp);
-                System.out.println("-------------------");
+              //  mp.resolveWith(ip);
+              //  System.out.println(mp);
+               // System.out.println("-------------------");
             }
         }
 
-        */
+
+
+        mps = reverseSort(mps);
 
         try {
             validate(mps);
@@ -186,8 +186,42 @@
                 int pst = position.indexOf(parentUri) + 1;
                 processedProperties.add(pst, p);
                 position.add(pst, uri);
+            } 
+        }
+        logger.info("Properties removed through sort: " + (properties.size() - processedProperties.size()));
+        return processedProperties;
+    }
+
+    protected List<ModelProperty> reverseSort(List<ModelProperty> properties) {
+        if (properties == null) {
+            throw new IllegalArgumentException("properties");
+        }
+        LinkedList<ModelProperty> processedProperties = new LinkedList<ModelProperty>();
+
+        int currentIndex = -1;
+        String currentUri = "";
+        for (ModelProperty p : properties) {
+            String uri = p.getUri();
+            String parentUri = uri.substring(0, uri.lastIndexOf("/"));
+
+            if (parentUri.endsWith("#collection")) {
+                for (int j = processedProperties.size(); j >= 0; j--) {
+                    if (properties.get(j).getUri().equals(parentUri)) {
+                        currentIndex = j + 1;
+                        break;
+                    }
+                }
+                currentUri = p.getUri();
+                processedProperties.add(currentIndex, p);
+            }  else if(p.getUri().startsWith(currentUri)){
+                currentIndex++;
+                processedProperties.add(currentIndex, p);
+            } else {
+                currentIndex++;
+                processedProperties.add(p);
             }
         }
+        logger.info("Properties removed through reverse sort: " + (properties.size() - processedProperties.size()));
         return processedProperties;
     }