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 2011/10/26 00:02:07 UTC

svn commit: r1188942 - in /incubator/isis/trunk/framework: tck/tck-dom/src/main/java/org/apache/isis/tck/dom/ tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/ tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstor...

Author: danhaywood
Date: Tue Oct 25 22:02:06 2011
New Revision: 1188942

URL: http://svn.apache.org/viewvc?rev=1188942&view=rev
Log:
ISIS-109: going through representations to see what's missing against v0.48 of spec... list and scalar representations

Removed:
    incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/AbstractEntityRepository.java
Modified:
    incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/ApplibValuedEntityRepositoryDefault.java
    incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/JdkValuedEntityRepositoryDefault.java
    incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/PrimitiveValuedEntityRepositoryDefault.java
    incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/WrapperValuedEntityRepositoryDefault.java
    incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/simples/SimpleEntityRepositoryDefault.java
    incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/stables/StableEntityRepositoryDefault.java
    incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/representations/ReprRendererAbstract.java
    incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainResourceHelper.java
    incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ListReprRenderer.java
    incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ScalarValueReprRenderer.java

Modified: incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/ApplibValuedEntityRepositoryDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/ApplibValuedEntityRepositoryDefault.java?rev=1188942&r1=1188941&r2=1188942&view=diff
==============================================================================
--- incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/ApplibValuedEntityRepositoryDefault.java (original)
+++ incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/ApplibValuedEntityRepositoryDefault.java Tue Oct 25 22:02:06 2011
@@ -19,27 +19,28 @@
 
 package org.apache.isis.tck.objstore.dflt.scalars;
 
-import org.apache.isis.tck.dom.AbstractEntityRepository;
+import java.util.List;
+
+import org.apache.isis.applib.AbstractFactoryAndRepository;
+import org.apache.isis.applib.annotation.QueryOnly;
 import org.apache.isis.tck.dom.scalars.ApplibValuedEntity;
 import org.apache.isis.tck.dom.scalars.ApplibValuedEntityRepository;
 
-public class ApplibValuedEntityRepositoryDefault extends AbstractEntityRepository<ApplibValuedEntity> implements ApplibValuedEntityRepository {
-
-    public ApplibValuedEntityRepositoryDefault() {
-        super(ApplibValuedEntity.class);
-    }
+public class ApplibValuedEntityRepositoryDefault extends AbstractFactoryAndRepository implements ApplibValuedEntityRepository {
 
-    @Override
     public String getId() {
         return "applibValuedEntities";
     }
-    
-    /**
-     * Required otherwise return type is erased
-     */
-    @Override
-    public ApplibValuedEntity newEntity() {
-        return super.newEntity();
+
+    @QueryOnly
+    public List<ApplibValuedEntity> list() {
+        return allInstances(ApplibValuedEntity.class);
     }
 
+    public ApplibValuedEntity newEntity() {
+        ApplibValuedEntity entity = newTransientInstance(ApplibValuedEntity.class);
+        persist(entity);
+        return entity;
+    }
+    
 }

Modified: incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/JdkValuedEntityRepositoryDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/JdkValuedEntityRepositoryDefault.java?rev=1188942&r1=1188941&r2=1188942&view=diff
==============================================================================
--- incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/JdkValuedEntityRepositoryDefault.java (original)
+++ incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/JdkValuedEntityRepositoryDefault.java Tue Oct 25 22:02:06 2011
@@ -19,27 +19,30 @@
 
 package org.apache.isis.tck.objstore.dflt.scalars;
 
-import org.apache.isis.tck.dom.AbstractEntityRepository;
+import java.util.List;
+
+import org.apache.isis.applib.AbstractFactoryAndRepository;
+import org.apache.isis.applib.annotation.QueryOnly;
 import org.apache.isis.tck.dom.scalars.JdkValuedEntity;
 import org.apache.isis.tck.dom.scalars.JdkValuedEntityRepository;
 
-public class JdkValuedEntityRepositoryDefault extends AbstractEntityRepository<JdkValuedEntity> implements JdkValuedEntityRepository {
-
-    public JdkValuedEntityRepositoryDefault() {
-        super(JdkValuedEntity.class);
-    }
+public class JdkValuedEntityRepositoryDefault extends AbstractFactoryAndRepository implements JdkValuedEntityRepository {
 
     @Override
     public String getId() {
         return "jdkValuedEntities";
     }
 
-    /**
-     * Required otherwise return type is erased
-     */
-    @Override
+    @QueryOnly
+    public List<JdkValuedEntity> list() {
+        return allInstances(JdkValuedEntity.class);
+    }
+
     public JdkValuedEntity newEntity() {
-        return super.newEntity();
+        JdkValuedEntity entity = newTransientInstance(JdkValuedEntity.class);
+        persist(entity);
+        return entity;
     }
 
+
 }

Modified: incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/PrimitiveValuedEntityRepositoryDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/PrimitiveValuedEntityRepositoryDefault.java?rev=1188942&r1=1188941&r2=1188942&view=diff
==============================================================================
--- incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/PrimitiveValuedEntityRepositoryDefault.java (original)
+++ incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/PrimitiveValuedEntityRepositoryDefault.java Tue Oct 25 22:02:06 2011
@@ -19,27 +19,30 @@
 
 package org.apache.isis.tck.objstore.dflt.scalars;
 
-import org.apache.isis.tck.dom.AbstractEntityRepository;
+import java.util.List;
+
+import org.apache.isis.applib.AbstractFactoryAndRepository;
+import org.apache.isis.applib.annotation.QueryOnly;
 import org.apache.isis.tck.dom.scalars.PrimitiveValuedEntity;
 import org.apache.isis.tck.dom.scalars.PrimitiveValuedEntityRepository;
 
-public class PrimitiveValuedEntityRepositoryDefault extends AbstractEntityRepository<PrimitiveValuedEntity> implements PrimitiveValuedEntityRepository {
+public class PrimitiveValuedEntityRepositoryDefault extends AbstractFactoryAndRepository implements PrimitiveValuedEntityRepository {
 
-    public PrimitiveValuedEntityRepositoryDefault() {
-        super(PrimitiveValuedEntity.class);
-    }
-    
     @Override
     public String getId() {
         return "primitiveValuedEntities";
     }
 
-    /**
-     * Required otherwise return type is erased
-     */
-    @Override
+    @QueryOnly
+    public List<PrimitiveValuedEntity> list() {
+        return allInstances(PrimitiveValuedEntity.class);
+    }
+
     public PrimitiveValuedEntity newEntity() {
-        return super.newEntity();
+        PrimitiveValuedEntity entity = newTransientInstance(PrimitiveValuedEntity.class);
+        persist(entity);
+        return entity;
     }
 
+
 }

Modified: incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/WrapperValuedEntityRepositoryDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/WrapperValuedEntityRepositoryDefault.java?rev=1188942&r1=1188941&r2=1188942&view=diff
==============================================================================
--- incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/WrapperValuedEntityRepositoryDefault.java (original)
+++ incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/scalars/WrapperValuedEntityRepositoryDefault.java Tue Oct 25 22:02:06 2011
@@ -19,27 +19,30 @@
 
 package org.apache.isis.tck.objstore.dflt.scalars;
 
-import org.apache.isis.tck.dom.AbstractEntityRepository;
+import java.util.List;
+
+import org.apache.isis.applib.AbstractFactoryAndRepository;
+import org.apache.isis.applib.annotation.QueryOnly;
 import org.apache.isis.tck.dom.scalars.WrapperValuedEntity;
 import org.apache.isis.tck.dom.scalars.WrapperValuedEntityRepository;
 
-public class WrapperValuedEntityRepositoryDefault extends AbstractEntityRepository<WrapperValuedEntity> implements WrapperValuedEntityRepository {
-
-    public WrapperValuedEntityRepositoryDefault() {
-        super(WrapperValuedEntity.class);
-    }
+public class WrapperValuedEntityRepositoryDefault extends AbstractFactoryAndRepository implements WrapperValuedEntityRepository {
 
     @Override
     public String getId() {
         return "wrapperValuedEntities";
     }
 
-    /**
-     * Required otherwise return type is erased
-     */
-    @Override
+    @QueryOnly
+    public List<WrapperValuedEntity> list() {
+        return allInstances(WrapperValuedEntity.class);
+    }
+
     public WrapperValuedEntity newEntity() {
-        return super.newEntity();
-    }    
+        WrapperValuedEntity entity = newTransientInstance(WrapperValuedEntity.class);
+        persist(entity);
+        return entity;
+    }
+
 
 }

Modified: incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/simples/SimpleEntityRepositoryDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/simples/SimpleEntityRepositoryDefault.java?rev=1188942&r1=1188941&r2=1188942&view=diff
==============================================================================
--- incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/simples/SimpleEntityRepositoryDefault.java (original)
+++ incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/simples/SimpleEntityRepositoryDefault.java Tue Oct 25 22:02:06 2011
@@ -21,16 +21,14 @@ package org.apache.isis.tck.objstore.dfl
 
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import java.util.List;
 
-import org.apache.isis.tck.dom.AbstractEntityRepository;
+import org.apache.isis.applib.AbstractFactoryAndRepository;
+import org.apache.isis.applib.annotation.QueryOnly;
 import org.apache.isis.tck.dom.simples.SimpleEntity;
 import org.apache.isis.tck.dom.simples.SimpleEntityRepository;
 
-public class SimpleEntityRepositoryDefault extends AbstractEntityRepository<SimpleEntity> implements SimpleEntityRepository {
-
-    public SimpleEntityRepositoryDefault() {
-        super(SimpleEntity.class);
-    }
+public class SimpleEntityRepositoryDefault extends AbstractFactoryAndRepository implements SimpleEntityRepository {
 
     @Override
     public String getId() {
@@ -91,5 +89,9 @@ public class SimpleEntityRepositoryDefau
         return object;
     }
 
+    @QueryOnly
+    public List<SimpleEntity> list() {
+        return allInstances(SimpleEntity.class);
+    }
 
 }

Modified: incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/stables/StableEntityRepositoryDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/stables/StableEntityRepositoryDefault.java?rev=1188942&r1=1188941&r2=1188942&view=diff
==============================================================================
--- incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/stables/StableEntityRepositoryDefault.java (original)
+++ incubator/isis/trunk/framework/tck/tck-objstore-dflt/src/main/java/org/apache/isis/tck/objstore/dflt/stables/StableEntityRepositoryDefault.java Tue Oct 25 22:02:06 2011
@@ -19,15 +19,14 @@
 
 package org.apache.isis.tck.objstore.dflt.stables;
 
-import org.apache.isis.tck.dom.AbstractEntityRepository;
+import java.util.List;
+
+import org.apache.isis.applib.AbstractFactoryAndRepository;
+import org.apache.isis.applib.annotation.QueryOnly;
 import org.apache.isis.tck.dom.stables.StableEntity;
 import org.apache.isis.tck.dom.stables.StableEntityRepository;
 
-public class StableEntityRepositoryDefault extends AbstractEntityRepository<StableEntity> implements StableEntityRepository {
-
-    public StableEntityRepositoryDefault() {
-        super(StableEntity.class);
-    }
+public class StableEntityRepositoryDefault extends AbstractFactoryAndRepository implements StableEntityRepository {
 
     @Override
     public String getId() {
@@ -46,6 +45,10 @@ public class StableEntityRepositoryDefau
         getContainer().persist(entity);
         return entity;
     }
-    
+
+    @QueryOnly
+    public List<StableEntity> list() {
+        return allInstances(StableEntity.class);
+    }
 
 }

Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/representations/ReprRendererAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/representations/ReprRendererAbstract.java?rev=1188942&r1=1188941&r2=1188942&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/representations/ReprRendererAbstract.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/representations/ReprRendererAbstract.java Tue Oct 25 22:02:06 2011
@@ -21,12 +21,14 @@ package org.apache.isis.viewer.json.view
 import org.apache.isis.applib.profiles.Localization;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.oid.stringable.OidStringifier;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
 import org.apache.isis.runtimes.dflt.runtime.system.persistence.OidGenerator;
 import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSession;
 import org.apache.isis.viewer.json.applib.JsonRepresentation;
 import org.apache.isis.viewer.json.applib.RepresentationType;
 import org.apache.isis.viewer.json.viewer.ResourceContext;
+import org.apache.isis.viewer.json.viewer.resources.domaintypes.DomainTypeReprRenderer;
 
 public abstract class ReprRendererAbstract<R extends ReprRendererAbstract<R, T>, T> implements ReprRenderer<R, T> {
 
@@ -92,6 +94,14 @@ public abstract class ReprRendererAbstra
         return links;
     }
 
+    protected void addLink(final Rel rel, final ObjectSpecification objectSpec) {
+        if(objectSpec == null) {
+            return;
+        }
+        LinkBuilder linkBuilder = DomainTypeReprRenderer.newLinkToBuilder(getResourceContext(), rel, objectSpec);
+        getLinks().arrayAdd(linkBuilder.build());
+    }
+
     /**
      * Will lazily create extensions map as required
      */

Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainResourceHelper.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainResourceHelper.java?rev=1188942&r1=1188941&r2=1188942&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainResourceHelper.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/DomainResourceHelper.java Tue Oct 25 22:02:06 2011
@@ -32,6 +32,7 @@ import org.apache.isis.core.metamodel.co
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
 import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
 import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
+import org.apache.isis.core.metamodel.facets.typeof.TypeOfFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
@@ -244,12 +245,13 @@ public class DomainResourceHelper {
         if (collectionFacet != null) {
             representation = representationWithSelfFor(RepresentationType.LIST, objectAdapter, action, arguments);
             
-            final Collection<ObjectAdapter> collectionAdapters = collectionFacet
-                    .collection(returnedAdapter);
+            final Collection<ObjectAdapter> collectionAdapters = collectionFacet.collection(returnedAdapter);
 
             final RendererFactory factory = rendererFactoryRegistry.find(RepresentationType.LIST);
             final ListReprRenderer renderer = (ListReprRenderer) factory.newRenderer(resourceContext, null, representation);
             renderer.with(collectionAdapters);
+            renderer.withReturnType(action.getReturnType());
+            renderer.withElementType(returnedAdapter.getElementSpecification());
             
             return ResourceAbstract.responseOfOk(renderer, Caching.NONE).build();
         }
@@ -263,6 +265,7 @@ public class DomainResourceHelper {
 
             ScalarValueReprRenderer renderer = (ScalarValueReprRenderer) factory.newRenderer(resourceContext, null, representation);
             renderer.with(returnedAdapter);
+            renderer.withReturnType(action.getReturnType());
             return ResourceAbstract.responseOfOk(renderer, Caching.NONE).build();
         }
 

Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ListReprRenderer.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ListReprRenderer.java?rev=1188942&r1=1188941&r2=1188942&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ListReprRenderer.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ListReprRenderer.java Tue Oct 25 22:02:06 2011
@@ -19,15 +19,20 @@ package org.apache.isis.viewer.json.view
 import java.util.Collection;
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.viewer.json.applib.JsonRepresentation;
 import org.apache.isis.viewer.json.applib.RepresentationType;
+import org.apache.isis.viewer.json.applib.blocks.LinkRepresentation;
 import org.apache.isis.viewer.json.viewer.ResourceContext;
+import org.apache.isis.viewer.json.viewer.representations.LinkBuilder;
 import org.apache.isis.viewer.json.viewer.representations.LinkFollower;
+import org.apache.isis.viewer.json.viewer.representations.Rel;
 import org.apache.isis.viewer.json.viewer.representations.RendererFactory;
 import org.apache.isis.viewer.json.viewer.representations.RendererFactoryRegistry;
 import org.apache.isis.viewer.json.viewer.representations.ReprRenderer;
 import org.apache.isis.viewer.json.viewer.representations.ReprRendererAbstract;
 import org.apache.isis.viewer.json.viewer.representations.ReprRendererFactoryAbstract;
+import org.apache.isis.viewer.json.viewer.resources.domaintypes.DomainTypeReprRenderer;
 
 public class ListReprRenderer extends ReprRendererAbstract<ListReprRenderer, Collection<ObjectAdapter>> {
 
@@ -44,6 +49,8 @@ public class ListReprRenderer extends Re
 
     private ObjectAdapterLinkTo linkToBuilder;
     private Collection<ObjectAdapter> objectAdapters;
+    private ObjectSpecification elementType;
+    private ObjectSpecification returnType;
 
     private ListReprRenderer(ResourceContext resourceContext, LinkFollower linkFollower, RepresentationType representationType, JsonRepresentation representation) {
         super(resourceContext, linkFollower, representationType, representation);
@@ -61,22 +68,38 @@ public class ListReprRenderer extends Re
         return this;
     }
 
+    public ListReprRenderer withReturnType(ObjectSpecification returnType) {
+        this.returnType = returnType;
+        return this;
+    }
+
+    public ListReprRenderer withElementType(ObjectSpecification elementType) {
+        this.elementType = elementType;
+        return this;
+    }
 
     public JsonRepresentation render() {
-        withObjectAdapters();
+        addValues();
+        
+        addLink(Rel.RETURN_TYPE, returnType);
+        addLink(Rel.ELEMENT_TYPE, elementType);
+        
         getExtensions();
 
         return representation;
     }
 
-    private void withObjectAdapters() {
-        JsonRepresentation list = JsonRepresentation.newArray();
-
+    private void addValues() {
+        if(objectAdapters == null) {
+            return;
+        }
+        
+        JsonRepresentation values = JsonRepresentation.newArray();
         final LinkFollower linkFollower = getLinkFollower().follow("values");
 
         for(ObjectAdapter adapter: objectAdapters) {
             JsonRepresentation linkToObject = linkToBuilder.with(adapter).builder().build();
-            list.arrayAdd(linkToObject);
+            values.arrayAdd(linkToObject);
 
             if(linkFollower.matches(linkToObject)) {
                 final RendererFactory factory = RendererFactoryRegistry.instance.find(RepresentationType.DOMAIN_OBJECT);
@@ -86,7 +109,15 @@ public class ListReprRenderer extends Re
                 linkToObject.mapPut("value", domainObject);
             }
         }
-        representation.mapPut("values", list);
+        representation.mapPut("values", values);
+    }
+
+    private void addLinkToReturnType() {
+        addLink(Rel.RETURN_TYPE, returnType);
+    }
+
+    private void addLinkToElementType() {
+        addLink(Rel.ELEMENT_TYPE, elementType);
     }
 
 

Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ScalarValueReprRenderer.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ScalarValueReprRenderer.java?rev=1188942&r1=1188941&r2=1188942&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ScalarValueReprRenderer.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ScalarValueReprRenderer.java Tue Oct 25 22:02:06 2011
@@ -18,19 +18,24 @@ package org.apache.isis.viewer.json.view
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.viewer.json.applib.JsonRepresentation;
 import org.apache.isis.viewer.json.applib.RepresentationType;
 import org.apache.isis.viewer.json.applib.RestfulResponse.HttpStatusCode;
 import org.apache.isis.viewer.json.viewer.JsonApplicationException;
 import org.apache.isis.viewer.json.viewer.ResourceContext;
+import org.apache.isis.viewer.json.viewer.representations.LinkBuilder;
 import org.apache.isis.viewer.json.viewer.representations.LinkFollower;
+import org.apache.isis.viewer.json.viewer.representations.Rel;
 import org.apache.isis.viewer.json.viewer.representations.ReprRenderer;
 import org.apache.isis.viewer.json.viewer.representations.ReprRendererAbstract;
 import org.apache.isis.viewer.json.viewer.representations.ReprRendererFactoryAbstract;
+import org.apache.isis.viewer.json.viewer.resources.domaintypes.DomainTypeReprRenderer;
 
 public class ScalarValueReprRenderer extends ReprRendererAbstract<ScalarValueReprRenderer, ObjectAdapter> {
 
     private final JsonValueEncoder jsonValueEncoder = new JsonValueEncoder();
+    private ObjectSpecification returnType;
     
     public static class Factory extends ReprRendererFactoryAbstract {
         public Factory() {
@@ -61,28 +66,22 @@ public class ScalarValueReprRenderer ext
     @Override
     public JsonRepresentation render() {
  
-        JsonRepresentation extensions = getExtensions();
-        putExtensionsIsisProprietary(extensions);
+        addLinkToReturnType();
         
-        JsonRepresentation links = getLinks();
-        addLinksFormalDomainModel(links, resourceContext);
-        addLinksIsisProprietary(links, resourceContext);
+        getExtensions();
 
         return representation;
     }
 
-    /////////////////////////////////////////////////////
-    // extensions and links
-    /////////////////////////////////////////////////////
-    
-    private void putExtensionsIsisProprietary(JsonRepresentation extensions) {
+    public ScalarValueReprRenderer withReturnType(ObjectSpecification returnType) {
+        this.returnType = returnType;
+        return this;
     }
 
-    private void addLinksFormalDomainModel(JsonRepresentation links, ResourceContext resourceContext) {
+    private void addLinkToReturnType() {
+        addLink(Rel.RETURN_TYPE, returnType);
     }
 
-    private void addLinksIsisProprietary(JsonRepresentation links, ResourceContext resourceContext) {
-    }
 
     
 }
\ No newline at end of file