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/07 19:07:18 UTC

svn commit: r674558 - in /maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model: ModelTransformerContext.java impl/DefaultModelDataSource.java

Author: sisbell
Date: Mon Jul  7 10:07:02 2008
New Revision: 674558

URL: http://svn.apache.org/viewvc?rev=674558&view=rev
Log:
Latest changes, docs, etc.

Modified:
    maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java
    maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.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=674558&r1=674557&r2=674558&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 Mon Jul  7 10:07:02 2008
@@ -27,6 +27,8 @@
 
     /**
      * Default constructor
+     *
+     * @param factories model container factories. Value may be null.
      */
     public ModelTransformerContext(Collection<ModelContainerFactory> factories) {
         this.factories = (factories == null) ? Collections.EMPTY_LIST : factories;
@@ -37,12 +39,12 @@
      * Unlike ModelTransformerContext#transform(java.util.List, ModelTransformer, ModelTransformer), this method requires
      * the user to add interpolator properties. It's intended to be used by IDEs.
      *
-     * @param domainModels
-     * @param fromModelTransformer
-     * @param toModelTransformer
+     * @param domainModels the domain model list to transform
+     * @param fromModelTransformer transformer that transforms from specified domain models to canonical data model
+     * @param toModelTransformer transformer that transforms from canonical data model to returned domain model
      * @param interpolatorProperties properties to use during interpolation.
-     * @return
-     * @throws IOException
+     * @return processed domain model
+     * @throws IOException if there was a problem with the transform
      */
     public DomainModel transform(List<DomainModel> domainModels, ModelTransformer fromModelTransformer,
                                  ModelTransformer toModelTransformer,
@@ -54,7 +56,7 @@
                 baseUriForModel);
         ModelDataSource modelDataSource = new DefaultModelDataSource();
         modelDataSource.init(modelProperties, factories);
-        long start = System.currentTimeMillis();
+
         for (ModelContainerFactory factory : factories) {
             for (String uri : factory.getUris()) {
                 List<ModelContainer> modelContainers = modelDataSource.queryFor(uri);
@@ -72,11 +74,9 @@
                 }
             }
         }
-        //  System.out.println("Time= " + (System.currentTimeMillis() - start));
 
         //interpolator
         List<ModelProperty> mps = modelDataSource.getModelProperties();
-        long s = System.currentTimeMillis();
 
         for (ModelProperty mp : mps) {
             InterpolatorProperty ip = mp.asInterpolatorProperty(baseUriForModel);
@@ -103,7 +103,6 @@
         }
 
         */
-        //System.out.println("Resolve Time = " + (System.currentTimeMillis() - s));
         validate(mps);
         return toModelTransformer.transformToDomainModel(mps);
     }

Modified: maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java?rev=674558&r1=674557&r2=674558&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java (original)
+++ maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java Mon Jul  7 10:07:02 2008
@@ -20,9 +20,16 @@
         if (b == null || b.getProperties() == null) {
             throw new IllegalArgumentException("b: null or b.properties: empty");
         }
+
         if (!modelProperties.containsAll(a.getProperties())) {
+            for (ModelProperty mp : a.getProperties()) {
+                if (!modelProperties.contains(mp)) {
+                    System.out.println(mp);
+                }
+            }
             throw new DataSourceException("ModelContainer 'a' contains elements not within datasource");
         }
+
         if (a.equals(b) || b.getProperties().size() == 0) {
             return a;
         }
@@ -110,9 +117,33 @@
                 }
             }
         }
+
+        //verify data source integrity
+        List<ModelProperty> unknownProperties = findUnknownModelPropertiesFrom(modelContainers);
+        if(!unknownProperties.isEmpty()) {
+            for(ModelProperty mp : unknownProperties) {
+                System.out.println(mp);
+            }
+            throw new DataSourceException("ModelContainer contains elements not within datasource");
+        }
+
         return modelContainers;
     }
 
+    private List<ModelProperty> findUnknownModelPropertiesFrom(List<ModelContainer> modelContainers) {
+        List<ModelProperty> modelProperties = new ArrayList<ModelProperty>();
+        for(ModelContainer mc: modelContainers) {
+            if (!modelProperties.containsAll(mc.getProperties())) {
+                for (ModelProperty mp : mc.getProperties()) {
+                    if (!modelProperties.contains(mp)) {
+                        modelProperties.add(mp);
+                    }
+                }
+            }
+        }
+        return modelProperties;
+    }
+
     public void init(List<ModelProperty> modelProperties, Collection<ModelContainerFactory> modelContainerFactories) {
         if (modelProperties == null) {
             throw new IllegalArgumentException("modelProperties: null");