ISIS-993: minor changes, working towards being able to generate .layout.xml for 
complete vs normalized vs minimal (no longer NPEs for complete etc), however...

... not yet correctly roundtripping for anything other than the complete 
.layout.xml.


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

Branch: refs/heads/master
Commit: df329882299524e194a7e9d0e86f497421eaa110
Parents: 48fe231
Author: Dan Haywood <d...@haywood-associates.co.uk>
Authored: Fri Feb 26 14:43:29 2016 +0000
Committer: Dan Haywood <d...@haywood-associates.co.uk>
Committed: Fri Feb 26 14:43:29 2016 +0000

----------------------------------------------------------------------
 .../metamodel/facets/object/grid/GridFacet.java    | 10 +++++++++-
 .../services/grid/GridServiceDefault.java          | 17 +++++++++--------
 2 files changed, 18 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/df329882/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacet.java
----------------------------------------------------------------------
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacet.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacet.java
index 75dbda9..4b09be1 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacet.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacet.java
@@ -20,10 +20,18 @@ package org.apache.isis.core.metamodel.facets.object.grid;
 
 
 import org.apache.isis.applib.layout.component.Grid;
+import org.apache.isis.applib.services.layout.GridNormalizerService;
+import org.apache.isis.applib.services.layout.GridService;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 
 /**
- * Corresponds to providing a <code>.layout.xml</code> file for the domain 
object's class.
+ * Obtain the current grid, derived either from a <code>.layout.xml</code> 
file, and normalized, or synthesized from
+ * existing layout metadata (annotations or <code>layout.json</code>).
+ *
+ * <p>
+ *     Most of the heavy lifting is done by delegating to the {@link 
GridService} and {@link GridNormalizerService}
+ *     services.
+ * </p>
  */
 public interface GridFacet extends Facet {
 

http://git-wip-us.apache.org/repos/asf/isis/blob/df329882/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
----------------------------------------------------------------------
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
index 4ce3f02..7a774d3 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
@@ -229,21 +229,22 @@ public class GridServiceDefault
     public Grid toGrid(final Class<?> domainClass, final Style style) {
         switch (style) {
         case NORMALIZED:
-            // obtain the already normalized grid, if available.
-            // (if there is none, then the facet will delegate back to this 
service to do the normalization,
-            // but then will cache it for any subsequent requests).
-            final ObjectSpecification objectSpec = 
specificationLookup.loadSpecification(domainClass);
-            final GridFacet facet = objectSpec.getFacet(GridFacet.class);
-            return facet != null? facet.getGrid(): null;
+            return normalizedGrid(domainClass);
         case COMPLETE:
-            return complete(fromXml(domainClass));
+            return complete(normalizedGrid(domainClass));
         case MINIMAL:
-            return minimal(fromXml(domainClass));
+            return minimal(normalizedGrid(domainClass));
         default:
             throw new IllegalArgumentException("unsupported style");
         }
     }
 
+    protected Grid normalizedGrid(final Class<?> domainClass) {
+        final ObjectSpecification objectSpec = 
specificationLookup.loadSpecification(domainClass);
+        final GridFacet facet = objectSpec.getFacet(GridFacet.class);
+        return facet != null? facet.getGrid(): null;
+    }
+
     @Override
     public String tnsAndSchemaLocation(final Grid grid) {
         final List<String> parts = Lists.newArrayList();

Reply via email to