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/27 15:01:26 UTC
svn commit: r1189731 - in
/incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources:
domainobjects/ domaintypes/
Author: danhaywood
Date: Thu Oct 27 13:01:25 2011
New Revision: 1189731
URL: http://svn.apache.org/viewvc?rev=1189731&view=rev
Log:
ISIS-109: minor fixes for type action param representation
Added:
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/AbstractTypeFeatureReprRenderer.java
- copied, changed from r1189396, incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/AbstractTypeFeatureReprBuilder.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/AbstractTypeMemberReprRenderer.java
- copied, changed from r1189396, incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/AbstractTypeMemberReprBuilder.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndAction.java
- copied, changed from r1189396, incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndAction.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndActionParam.java
- copied, changed from r1189396, incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndActionParam.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndCollection.java
- copied, changed from r1189396, incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndCollection.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndFeature.java
- copied, changed from r1189396, incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndFeature.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndProperty.java
- copied, changed from r1189396, incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndProperty.java
Removed:
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/AbstractTypeFeatureReprBuilder.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/AbstractTypeMemberReprBuilder.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndAction.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndActionParam.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndCollection.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndFeature.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndProperty.java
Modified:
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/AbstractObjectMemberReprRenderer.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ObjectActionReprRenderer.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ObjectCollectionReprRenderer.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ObjectPropertyReprRenderer.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/DomainTypeResourceServerside.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/TypeActionParamReprRenderer.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/TypeActionReprRenderer.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/TypeCollectionReprRenderer.java
incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/TypePropertyReprRenderer.java
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/AbstractObjectMemberReprRenderer.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/AbstractObjectMemberReprRenderer.java?rev=1189731&r1=1189730&r2=1189731&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/AbstractObjectMemberReprRenderer.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/AbstractObjectMemberReprRenderer.java Thu Oct 27 13:01:25 2011
@@ -24,7 +24,6 @@ import org.apache.isis.core.metamodel.sp
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.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.ReprRendererAbstract;
@@ -102,23 +101,22 @@ public abstract class AbstractObjectMemb
/**
* For subclasses to call from their {@link #render()} method.
*/
- protected void addMemberContentSpecificToMode() {
+ protected void renderMemberContent() {
if(mode.isInline()) {
- addDetailsLink();
- return;
+ addDetailsLinkIfPersistent();
}
if (mode.isStandalone()){
addLinkToSelf();
addLinkToUp();
}
+
if (mode.isFollowed() || mode.isStandalone()){
addMutatorsIfEnabled();
putExtensionsIsisProprietary();
addLinksToFormalDomainModel();
addLinksIsisProprietary();
- return;
}
}
@@ -174,7 +172,10 @@ public abstract class AbstractObjectMemb
throw new UnsupportedOperationException("override mutatorArgs() to populate for many arguments");
}
- private R addDetailsLink() {
+ private void addDetailsLinkIfPersistent() {
+ if(!objectAdapter.isPersistent()) {
+ return;
+ }
final JsonRepresentation link =
linkTo.memberBuilder(Rel.DETAILS, memberType, objectMember).build();
getLinks().arrayAdd(link);
@@ -184,7 +185,7 @@ public abstract class AbstractObjectMemb
if(membersLinkFollower.matches(representation) && detailsLinkFollower.matches(link)) {
followDetailsLink(link);
}
- return cast(this);
+ return;
}
protected abstract void followDetailsLink(JsonRepresentation detailsLink);
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ObjectActionReprRenderer.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/ObjectActionReprRenderer.java?rev=1189731&r1=1189730&r2=1189731&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ObjectActionReprRenderer.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ObjectActionReprRenderer.java Thu Oct 27 13:01:25 2011
@@ -60,11 +60,11 @@ public class ObjectActionReprRenderer ex
}
public JsonRepresentation render() {
- // id and memberType are put eagerly
+ // id and memberType are rendered eagerly
+ renderMemberContent();
putDisabledReasonIfDisabled();
- addMemberContentSpecificToMode();
if(mode.isStandalone()) {
addParameterDetails();
}
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ObjectCollectionReprRenderer.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/ObjectCollectionReprRenderer.java?rev=1189731&r1=1189730&r2=1189731&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ObjectCollectionReprRenderer.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ObjectCollectionReprRenderer.java Thu Oct 27 13:01:25 2011
@@ -57,14 +57,13 @@ public class ObjectCollectionReprRendere
}
public JsonRepresentation render() {
- // id and memberType are put eagerly
+ // id and memberType are rendered eagerly
- putDisabledReasonIfDisabled();
-
- addMemberContentSpecificToMode();
- if(mode.isStandalone()) {
+ renderMemberContent();
+ if(mode.isStandalone() || !objectAdapter.isPersistent()) {
addValue();
}
+ putDisabledReasonIfDisabled();
return representation;
}
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ObjectPropertyReprRenderer.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/ObjectPropertyReprRenderer.java?rev=1189731&r1=1189730&r2=1189731&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ObjectPropertyReprRenderer.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domainobjects/ObjectPropertyReprRenderer.java Thu Oct 27 13:01:25 2011
@@ -58,13 +58,14 @@ public class ObjectPropertyReprRenderer
}
public JsonRepresentation render() {
- // id and memberType are put in eagerly
+ // id and memberType are rendered eagerly
- addValue();
+ renderMemberContent();
+ addValue();
+
putDisabledReasonIfDisabled();
- addMemberContentSpecificToMode();
if(mode.isStandalone()) {
addChoices();
}
Copied: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/AbstractTypeFeatureReprRenderer.java (from r1189396, incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/AbstractTypeFeatureReprBuilder.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/domaintypes/AbstractTypeFeatureReprRenderer.java?p2=incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/AbstractTypeFeatureReprRenderer.java&p1=incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/AbstractTypeFeatureReprBuilder.java&r1=1189396&r2=1189731&rev=1189731&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/AbstractTypeFeatureReprBuilder.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/AbstractTypeFeatureReprRenderer.java Thu Oct 27 13:01:25 2011
@@ -18,30 +18,24 @@ package org.apache.isis.viewer.json.view
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectFeature;
-import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
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.representations.LinkFollower;
-import org.apache.isis.viewer.json.viewer.representations.LinkBuilder;
-import org.apache.isis.viewer.json.viewer.representations.Rel;
import org.apache.isis.viewer.json.viewer.representations.ReprRendererAbstract;
-import org.apache.isis.viewer.json.viewer.resources.domainobjects.MemberType;
import com.google.common.base.Strings;
-public abstract class AbstractTypeFeatureReprBuilder<R extends ReprRendererAbstract<R, SpecAndFeature<T>>, T extends ObjectFeature> extends ReprRendererAbstract<R, SpecAndFeature<T>> {
+public abstract class AbstractTypeFeatureReprRenderer<R extends ReprRendererAbstract<R, ParentSpecAndFeature<T>>, T extends ObjectFeature> extends ReprRendererAbstract<R, ParentSpecAndFeature<T>> {
protected ObjectSpecification objectSpecification;
protected T objectFeature;
- protected ObjectSpecification parentSpec;
-
- public AbstractTypeFeatureReprBuilder(ResourceContext resourceContext, LinkFollower linkFollower, RepresentationType representationType, JsonRepresentation representation) {
+ public AbstractTypeFeatureReprRenderer(ResourceContext resourceContext, LinkFollower linkFollower, RepresentationType representationType, JsonRepresentation representation) {
super(resourceContext, linkFollower, representationType, representation);
}
- public ObjectSpecification getObjectSpecification() {
+ public ObjectSpecification getParentSpecification() {
return objectSpecification;
}
@@ -50,22 +44,17 @@ public abstract class AbstractTypeFeatur
}
@Override
- public R with(SpecAndFeature<T> specAndFeature) {
- objectSpecification = specAndFeature.getObjectSpecification();
+ public R with(ParentSpecAndFeature<T> specAndFeature) {
+ objectSpecification = specAndFeature.getParentSpec();
objectFeature = specAndFeature.getObjectFeature();
return cast(this);
}
- public R withParent(ObjectSpecification parentSpec) {
- this.parentSpec = parentSpec;
- return cast(this);
- }
-
public JsonRepresentation render() {
addLinkSelfIfRequired();
- addLinkToParentIfProvided();
+ addLinkUpToParent();
addPropertiesSpecificToFeature();
@@ -90,7 +79,7 @@ public abstract class AbstractTypeFeatur
/**
* Mandatory hook method.
*/
- protected abstract void addLinkToParentIfProvided();
+ protected abstract void addLinkUpToParent();
/**
* Optional hook method.
Copied: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/AbstractTypeMemberReprRenderer.java (from r1189396, incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/AbstractTypeMemberReprBuilder.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/domaintypes/AbstractTypeMemberReprRenderer.java?p2=incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/AbstractTypeMemberReprRenderer.java&p1=incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/AbstractTypeMemberReprBuilder.java&r1=1189396&r2=1189731&rev=1189731&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/AbstractTypeMemberReprBuilder.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/AbstractTypeMemberReprRenderer.java Thu Oct 27 13:01:25 2011
@@ -16,7 +16,6 @@
*/
package org.apache.isis.viewer.json.viewer.resources.domaintypes;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
import org.apache.isis.viewer.json.applib.JsonRepresentation;
import org.apache.isis.viewer.json.applib.RepresentationType;
@@ -27,25 +26,15 @@ import org.apache.isis.viewer.json.viewe
import org.apache.isis.viewer.json.viewer.representations.ReprRendererAbstract;
import org.apache.isis.viewer.json.viewer.resources.domainobjects.MemberType;
-import com.google.common.base.Strings;
-
-public abstract class AbstractTypeMemberReprBuilder<R extends ReprRendererAbstract<R, SpecAndFeature<T>>, T extends ObjectMember>
- extends AbstractTypeFeatureReprBuilder<R, T> {
+public abstract class AbstractTypeMemberReprRenderer<R extends ReprRendererAbstract<R, ParentSpecAndFeature<T>>, T extends ObjectMember>
+ extends AbstractTypeFeatureReprRenderer<R, T> {
protected MemberType memberType;
- public AbstractTypeMemberReprBuilder(ResourceContext resourceContext, LinkFollower linkFollower, RepresentationType representationType, JsonRepresentation representation) {
+ public AbstractTypeMemberReprRenderer(ResourceContext resourceContext, LinkFollower linkFollower, RepresentationType representationType, JsonRepresentation representation) {
super(resourceContext, linkFollower, representationType, representation);
}
- public ObjectSpecification getObjectSpecification() {
- return objectSpecification;
- }
-
- public T getObjectFeature() {
- return objectFeature;
- }
-
/**
* null if the feature is an object action param.
* @return
@@ -55,36 +44,21 @@ public abstract class AbstractTypeMember
}
@Override
- public R with(SpecAndFeature<T> specAndFeature) {
+ public R with(ParentSpecAndFeature<T> specAndFeature) {
super.with(specAndFeature);
memberType = MemberType.determineFrom(objectFeature);
// done eagerly so can use as criteria for x-ro-follow-links
-
- if(memberType != null) {
- ObjectMember objectMember = (ObjectMember) objectFeature;
- putId(objectMember);
- putMemberType(objectMember);
- }
+ representation.mapPut(memberType.getJsProp(), objectFeature.getId());
+ representation.mapPut("memberType", memberType.getName());
return cast(this);
}
- protected void putId(ObjectMember objectMember) {
- representation.mapPut(memberType.getJsProp(), objectMember.getId());
- }
-
- protected void putMemberType(ObjectMember objectMember) {
- representation.mapPut("memberType", memberType.getName());
- }
-
- protected void addLinkToParentIfProvided() {
- if(parentSpec == null) {
- return;
- }
+ protected void addLinkUpToParent() {
final LinkBuilder parentLinkBuilder =
- DomainTypeReprRenderer.newLinkToBuilder(resourceContext, Rel.UP, parentSpec);
+ DomainTypeReprRenderer.newLinkToBuilder(resourceContext, Rel.UP, objectSpecification);
getLinks().arrayAdd(parentLinkBuilder.build());
}
@@ -98,7 +72,7 @@ public abstract class AbstractTypeMember
final LinkBuilder linkBuilder = LinkBuilder.newBuilder(
getResourceContext(), Rel.SELF, getRepresentationType(),
"domainTypes/%s/%s%s",
- getObjectSpecification().getFullIdentifier(),
+ getParentSpecification().getFullIdentifier(),
getMemberType().getUrlPart(),
objectMember.getId());
getLinks().arrayAdd(linkBuilder.build());
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/DomainTypeResourceServerside.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/domaintypes/DomainTypeResourceServerside.java?rev=1189731&r1=1189730&r2=1189731&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/DomainTypeResourceServerside.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/DomainTypeResourceServerside.java Thu Oct 27 13:01:25 2011
@@ -113,7 +113,7 @@ public class DomainTypeResourceServersid
final TypePropertyReprRenderer renderer =
(TypePropertyReprRenderer) rendererFactory.newRenderer(getResourceContext(), null, JsonRepresentation.newMap());
- renderer.with(new SpecAndProperty(parentSpec, property)).includesSelf().withParent(parentSpec);
+ renderer.with(new ParentSpecAndProperty(parentSpec, property)).includesSelf();
return responseOfOk(renderer, Caching.ONE_DAY).build();
}
@@ -143,7 +143,7 @@ public class DomainTypeResourceServersid
final TypeCollectionReprRenderer renderer =
(TypeCollectionReprRenderer) rendererFactory.newRenderer(getResourceContext(), null, JsonRepresentation.newMap());
- renderer.with(new SpecAndCollection(parentSpec, collection)).includesSelf().withParent(parentSpec);
+ renderer.with(new ParentSpecAndCollection(parentSpec, collection)).includesSelf();
return responseOfOk(renderer, Caching.ONE_DAY).build();
}
@@ -173,7 +173,7 @@ public class DomainTypeResourceServersid
final TypeActionReprRenderer renderer =
(TypeActionReprRenderer) rendererFactory.newRenderer(getResourceContext(), null, JsonRepresentation.newMap());
- renderer.with(new SpecAndAction(parentSpec, action)).includesSelf().withParent(parentSpec);
+ renderer.with(new ParentSpecAndAction(parentSpec, action)).includesSelf();
return responseOfOk(renderer, Caching.ONE_DAY).build();
}
@@ -206,9 +206,8 @@ public class DomainTypeResourceServersid
final TypeActionParamReprRenderer renderer =
(TypeActionParamReprRenderer) rendererFactory.newRenderer(getResourceContext(), null, JsonRepresentation.newMap());
- renderer.with(new SpecAndActionParam(parentSpec, actionParam))
- .includesSelf()
- .withParent(parentSpec);
+ renderer.with(new ParentSpecAndActionParam(parentSpec, actionParam))
+ .includesSelf();
return responseOfOk(renderer, Caching.ONE_DAY).build();
}
Copied: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndAction.java (from r1189396, incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndAction.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/domaintypes/ParentSpecAndAction.java?p2=incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndAction.java&p1=incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndAction.java&r1=1189396&r2=1189731&rev=1189731&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndAction.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndAction.java Thu Oct 27 13:01:25 2011
@@ -21,9 +21,9 @@ package org.apache.isis.viewer.json.view
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-public class SpecAndAction extends SpecAndFeature<ObjectAction> {
+public class ParentSpecAndAction extends ParentSpecAndFeature<ObjectAction> {
- public SpecAndAction(ObjectSpecification objectSpecification, ObjectAction action) {
+ public ParentSpecAndAction(ObjectSpecification objectSpecification, ObjectAction action) {
super(objectSpecification, action);
}
Copied: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndActionParam.java (from r1189396, incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndActionParam.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/domaintypes/ParentSpecAndActionParam.java?p2=incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndActionParam.java&p1=incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndActionParam.java&r1=1189396&r2=1189731&rev=1189731&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndActionParam.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndActionParam.java Thu Oct 27 13:01:25 2011
@@ -21,9 +21,9 @@ package org.apache.isis.viewer.json.view
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
-public class SpecAndActionParam extends SpecAndFeature<ObjectActionParameter> {
+public class ParentSpecAndActionParam extends ParentSpecAndFeature<ObjectActionParameter> {
- public SpecAndActionParam(ObjectSpecification objectSpecification, ObjectActionParameter actionParam) {
+ public ParentSpecAndActionParam(ObjectSpecification objectSpecification, ObjectActionParameter actionParam) {
super(objectSpecification, actionParam);
}
Copied: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndCollection.java (from r1189396, incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndCollection.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/domaintypes/ParentSpecAndCollection.java?p2=incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndCollection.java&p1=incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndCollection.java&r1=1189396&r2=1189731&rev=1189731&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndCollection.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndCollection.java Thu Oct 27 13:01:25 2011
@@ -21,9 +21,9 @@ package org.apache.isis.viewer.json.view
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
-public class SpecAndCollection extends SpecAndFeature<OneToManyAssociation> {
+public class ParentSpecAndCollection extends ParentSpecAndFeature<OneToManyAssociation> {
- public SpecAndCollection(ObjectSpecification objectSpecification, OneToManyAssociation collection) {
+ public ParentSpecAndCollection(ObjectSpecification objectSpecification, OneToManyAssociation collection) {
super(objectSpecification, collection);
}
Copied: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndFeature.java (from r1189396, incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndFeature.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/domaintypes/ParentSpecAndFeature.java?p2=incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndFeature.java&p1=incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndFeature.java&r1=1189396&r2=1189731&rev=1189731&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndFeature.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndFeature.java Thu Oct 27 13:01:25 2011
@@ -21,17 +21,17 @@ package org.apache.isis.viewer.json.view
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectFeature;
-public abstract class SpecAndFeature<T extends ObjectFeature> {
+public abstract class ParentSpecAndFeature<T extends ObjectFeature> {
- private final ObjectSpecification objectSpecification;
+ private final ObjectSpecification parentSpec;
private final T objectFeature;
- public SpecAndFeature(ObjectSpecification objectSpecification, T objectFeature) {
- this.objectSpecification = objectSpecification;
+ public ParentSpecAndFeature(ObjectSpecification objectSpecification, T objectFeature) {
+ this.parentSpec = objectSpecification;
this.objectFeature = objectFeature;
}
- public ObjectSpecification getObjectSpecification() {
- return objectSpecification;
+ public ObjectSpecification getParentSpec() {
+ return parentSpec;
}
public T getObjectFeature() {
return objectFeature;
Copied: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndProperty.java (from r1189396, incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndProperty.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/domaintypes/ParentSpecAndProperty.java?p2=incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndProperty.java&p1=incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndProperty.java&r1=1189396&r2=1189731&rev=1189731&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/SpecAndProperty.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/ParentSpecAndProperty.java Thu Oct 27 13:01:25 2011
@@ -21,9 +21,9 @@ package org.apache.isis.viewer.json.view
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-public class SpecAndProperty extends SpecAndFeature<OneToOneAssociation> {
+public class ParentSpecAndProperty extends ParentSpecAndFeature<OneToOneAssociation> {
- public SpecAndProperty(ObjectSpecification objectSpecification, OneToOneAssociation property) {
+ public ParentSpecAndProperty(ObjectSpecification objectSpecification, OneToOneAssociation property) {
super(objectSpecification, property);
}
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/TypeActionParamReprRenderer.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/domaintypes/TypeActionParamReprRenderer.java?rev=1189731&r1=1189730&r2=1189731&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/TypeActionParamReprRenderer.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/TypeActionParamReprRenderer.java Thu Oct 27 13:01:25 2011
@@ -16,10 +16,12 @@
*/
package org.apache.isis.viewer.json.viewer.resources.domaintypes;
+import org.apache.isis.core.commons.lang.NameUtils;
import org.apache.isis.core.metamodel.facets.maxlen.MaxLengthFacet;
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;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
import org.apache.isis.viewer.json.applib.JsonRepresentation;
import org.apache.isis.viewer.json.applib.RepresentationType;
import org.apache.isis.viewer.json.viewer.ResourceContext;
@@ -28,11 +30,9 @@ import org.apache.isis.viewer.json.viewe
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.ReprRendererFactoryAbstract;
+import org.apache.isis.viewer.json.viewer.resources.domainobjects.MemberType;
-public class TypeActionParamReprRenderer extends AbstractTypeFeatureReprBuilder<TypeActionParamReprRenderer, ObjectActionParameter> {
-
- private ObjectAction parentAction;
- private ObjectSpecification parentSpec;
+public class TypeActionParamReprRenderer extends AbstractTypeFeatureReprRenderer<TypeActionParamReprRenderer, ObjectActionParameter> {
public static class Factory extends ReprRendererFactoryAbstract {
@@ -52,7 +52,8 @@ public class TypeActionParamReprRenderer
String actionId = objectAction.getId();
final String paramName = objectActionParameter.getName();
String url = String.format("domainTypes/%s/actions/%s/params/%s", typeFullName, actionId, paramName);
- return LinkBuilder.newBuilder(resourceContext, rel, RepresentationType.TYPE_ACTION_PARAMETER, url);
+ return LinkBuilder.newBuilder(resourceContext, rel, RepresentationType.TYPE_ACTION_PARAMETER, url)
+ .withId(deriveId(objectActionParameter));
}
public TypeActionParamReprRenderer(ResourceContext resourceContext, LinkFollower linkFollower, RepresentationType representationType, JsonRepresentation representation) {
@@ -60,27 +61,46 @@ public class TypeActionParamReprRenderer
}
@Override
+ public TypeActionParamReprRenderer with(ParentSpecAndFeature<ObjectActionParameter> specAndFeature) {
+ super.with(specAndFeature);
+
+ // done eagerly so can use as criteria for x-ro-follow-links
+ representation.mapPut("id", deriveId());
+
+ return this;
+ }
+
+ protected String deriveId() {
+ return deriveId(getObjectFeature());
+ }
+
+ private static String deriveId(ObjectActionParameter objectActionParameter) {
+ return objectActionParameter.getAction().getId() + "-" + objectActionParameter.getName();
+ }
+
+
+ @Override
protected void addLinkSelfIfRequired() {
if(!includesSelf) {
return;
}
getLinks().arrayAdd(
- newLinkToBuilder(getResourceContext(), Rel.SELF, getObjectSpecification(), getObjectFeature()).build());
+ newLinkToBuilder(getResourceContext(), Rel.SELF, getParentSpecification(), getObjectFeature()).build());
}
@Override
- protected void addLinkToParentIfProvided() {
- if(parentSpec == null || parentAction == null) {
- return;
- }
+ protected void addLinkUpToParent() {
+ ObjectAction parentAction = this.objectFeature.getAction();
final LinkBuilder parentLinkBuilder =
- TypeActionReprRenderer.newLinkToBuilder(resourceContext, Rel.UP, parentSpec, parentAction);
+ TypeActionReprRenderer.newLinkToBuilder(resourceContext, Rel.UP, objectSpecification, parentAction);
getLinks().arrayAdd(parentLinkBuilder.build());
}
@Override
protected void addPropertiesSpecificToFeature() {
+ representation.mapPut("name", getObjectFeature().getName());
+ representation.mapPut("number", getObjectFeature().getNumber());
representation.mapPut("optional", getObjectFeature().isOptional());
final MaxLengthFacet maxLength = getObjectFeature().getFacet(MaxLengthFacet.class);
if(maxLength != null && !maxLength.isNoop()) {
@@ -89,6 +109,13 @@ public class TypeActionParamReprRenderer
}
@Override
+ protected void addLinksSpecificToFeature() {
+ final LinkBuilder linkBuilder =
+ DomainTypeReprRenderer.newLinkToBuilder(resourceContext, Rel.RETURN_TYPE, objectFeature.getSpecification());
+ getLinks().arrayAdd(linkBuilder.build());
+ }
+
+ @Override
protected void putExtensionsSpecificToFeature() {
putExtensionsName();
putExtensionsDescriptionIfAvailable();
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/TypeActionReprRenderer.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/domaintypes/TypeActionReprRenderer.java?rev=1189731&r1=1189730&r2=1189731&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/TypeActionReprRenderer.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/TypeActionReprRenderer.java Thu Oct 27 13:01:25 2011
@@ -31,9 +31,7 @@ import org.apache.isis.viewer.json.viewe
import org.apache.isis.viewer.json.viewer.representations.ReprRenderer;
import org.apache.isis.viewer.json.viewer.representations.ReprRendererFactoryAbstract;
-import com.google.common.base.Strings;
-
-public class TypeActionReprRenderer extends AbstractTypeMemberReprBuilder<TypeActionReprRenderer, ObjectAction> {
+public class TypeActionReprRenderer extends AbstractTypeMemberReprRenderer<TypeActionReprRenderer, ObjectAction> {
public static class Factory extends ReprRendererFactoryAbstract {
@@ -66,13 +64,11 @@ public class TypeActionReprRenderer exte
}
private void addParameters() {
- if(parentSpec == null) {
- return;
- }
final JsonRepresentation parameterList = JsonRepresentation.newArray();
final List<ObjectActionParameter> parameters = getObjectFeature().getParameters();
for (ObjectActionParameter parameter : parameters) {
- final LinkBuilder linkBuilder = TypeActionParamReprRenderer.newLinkToBuilder(getResourceContext(), Rel.ACTION_PARAM, parentSpec, parameter);
+ final LinkBuilder linkBuilder =
+ TypeActionParamReprRenderer.newLinkToBuilder(getResourceContext(), Rel.ACTION_PARAM, objectSpecification, parameter);
parameterList.arrayAdd(linkBuilder.build());
}
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/TypeCollectionReprRenderer.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/domaintypes/TypeCollectionReprRenderer.java?rev=1189731&r1=1189730&r2=1189731&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/TypeCollectionReprRenderer.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/TypeCollectionReprRenderer.java Thu Oct 27 13:01:25 2011
@@ -27,7 +27,7 @@ import org.apache.isis.viewer.json.viewe
import org.apache.isis.viewer.json.viewer.representations.ReprRenderer;
import org.apache.isis.viewer.json.viewer.representations.ReprRendererFactoryAbstract;
-public class TypeCollectionReprRenderer extends AbstractTypeMemberReprBuilder<TypeCollectionReprRenderer, OneToManyAssociation> {
+public class TypeCollectionReprRenderer extends AbstractTypeMemberReprRenderer<TypeCollectionReprRenderer, OneToManyAssociation> {
public static class Factory extends ReprRendererFactoryAbstract {
Modified: incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/TypePropertyReprRenderer.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/domaintypes/TypePropertyReprRenderer.java?rev=1189731&r1=1189730&r2=1189731&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/TypePropertyReprRenderer.java (original)
+++ incubator/isis/trunk/framework/viewer/json/json-viewer/src/main/java/org/apache/isis/viewer/json/viewer/resources/domaintypes/TypePropertyReprRenderer.java Thu Oct 27 13:01:25 2011
@@ -28,7 +28,7 @@ import org.apache.isis.viewer.json.viewe
import org.apache.isis.viewer.json.viewer.representations.ReprRenderer;
import org.apache.isis.viewer.json.viewer.representations.ReprRendererFactoryAbstract;
-public class TypePropertyReprRenderer extends AbstractTypeMemberReprBuilder<TypePropertyReprRenderer, OneToOneAssociation> {
+public class TypePropertyReprRenderer extends AbstractTypeMemberReprRenderer<TypePropertyReprRenderer, OneToOneAssociation> {
public static class Factory extends ReprRendererFactoryAbstract {