You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2012/12/03 13:22:20 UTC

[2/4] git commit: ISIS-285: further minor edits

ISIS-285: further minor edits

* backed out the lazy initialization checking logic in ProgrammingModelAbstract; not required after all
* minor refactoring of JdoMetaModelValidator, to make more understandable


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/fc12e900
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/fc12e900
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/fc12e900

Branch: refs/heads/master
Commit: fc12e900b94d871d6ea0ca9fd01452020b36449c
Parents: 900b25b
Author: Dan Haywood <da...@apache.org>
Authored: Mon Dec 3 11:22:38 2012 +0000
Committer: Dan Haywood <da...@apache.org>
Committed: Mon Dec 3 11:22:38 2012 +0000

----------------------------------------------------------------------
 .../progmodel/ProgrammingModelAbstract.java        |   23 ---------------
 .../validator/JdoMetaModelValidator.java           |   16 +++++++++-
 2 files changed, 15 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/fc12e900/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelAbstract.java
----------------------------------------------------------------------
diff --git a/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelAbstract.java b/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelAbstract.java
index 34f0462..b3c818a 100644
--- a/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelAbstract.java
+++ b/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelAbstract.java
@@ -36,27 +36,8 @@ public abstract class ProgrammingModelAbstract implements ProgrammingModel {
     private final List<FacetFactory> facetFactories = Lists.newArrayList();
     private final List<Object> facetFactoryInstancesOrClasses = Lists.newArrayList();
 
-    private boolean initialized;
-
     @Override
     public void init() {
-        initializeIfRequired();
-    }
-
-    private synchronized void initializeIfRequired() {
-        if(!initialized) {
-            initialize();
-            initialized = true;
-        }
-    }
-
-    private synchronized void assertNotInitialized() {
-        if(initialized) {
-            throw new IllegalStateException("Already initialized");
-        }
-    }
-
-    private void initialize() {
         for (final Object factoryInstanceOrClass : facetFactoryInstancesOrClasses) {
             final FacetFactory facetFactory = asFacetFactory(factoryInstanceOrClass);
             facetFactories.add(facetFactory);
@@ -75,19 +56,16 @@ public abstract class ProgrammingModelAbstract implements ProgrammingModel {
 
     @Override
     public final List<FacetFactory> getList() {
-        initializeIfRequired();
         return Collections.unmodifiableList(facetFactories);
     }
 
     @Override
     public final void addFactory(final Class<? extends FacetFactory> factoryClass) {
-        assertNotInitialized();
         facetFactoryInstancesOrClasses.add(factoryClass);
     }
 
     @Override
     public final void removeFactory(final Class<? extends FacetFactory> factoryClass) {
-        assertNotInitialized();
         facetFactoryInstancesOrClasses.remove(factoryClass);
     }
 
@@ -105,5 +83,4 @@ public abstract class ProgrammingModelAbstract implements ProgrammingModel {
             }
         }
     }
-
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/fc12e900/framework/runtimes/dflt/objectstores/jdo/jdo-metamodel/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/metamodel/specloader/validator/JdoMetaModelValidator.java
----------------------------------------------------------------------
diff --git a/framework/runtimes/dflt/objectstores/jdo/jdo-metamodel/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/metamodel/specloader/validator/JdoMetaModelValidator.java b/framework/runtimes/dflt/objectstores/jdo/jdo-metamodel/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/metamodel/specloader/validator/JdoMetaModelValidator.java
index 2b314fe..001002b 100644
--- a/framework/runtimes/dflt/objectstores/jdo/jdo-metamodel/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/metamodel/specloader/validator/JdoMetaModelValidator.java
+++ b/framework/runtimes/dflt/objectstores/jdo/jdo-metamodel/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/metamodel/specloader/validator/JdoMetaModelValidator.java
@@ -29,12 +29,23 @@ import org.apache.isis.runtimes.dflt.objectstores.jdo.metamodel.facets.object.pe
 public class JdoMetaModelValidator extends MetaModelValidatorComposite {
 
     public JdoMetaModelValidator() {
+        addValidatorToEnsurePersistenceCapables();
+
+        addValidatorToEnsureIdentityType();
+    }
+
+    private void addValidatorToEnsurePersistenceCapables() {
         final MetaModelValidatorVisiting.SummarizingVisitor ensurePersistenceCapables = new MetaModelValidatorVisiting.SummarizingVisitor(){
 
             private boolean found = false;
             @Override
             public boolean visit(ObjectSpecification objectSpec, ValidationFailures validationFailures) {
-                return !(found = objectSpec.containsFacet(JdoPersistenceCapableFacet.class));
+                boolean containsFacet = objectSpec.containsFacet(JdoPersistenceCapableFacet.class);
+                if(containsFacet) {
+                    found = true;
+                    return false; // no need to keep searching
+                }
+                return true; // keep searching
             }
 
             @Override
@@ -48,7 +59,9 @@ public class JdoMetaModelValidator extends MetaModelValidatorComposite {
             }
         };
         add(new MetaModelValidatorVisiting(ensurePersistenceCapables));
+    }
 
+    private void addValidatorToEnsureIdentityType() {
         MetaModelValidatorVisiting.Visitor ensureIdentityType = new MetaModelValidatorVisiting.Visitor(){
             @Override
             public boolean visit(ObjectSpecification objSpec, ValidationFailures validationFailures) {
@@ -68,4 +81,5 @@ public class JdoMetaModelValidator extends MetaModelValidatorComposite {
         add(new MetaModelValidatorVisiting(ensureIdentityType));
     }
 
+
 }