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 2015/11/11 00:08:10 UTC
[6/6] isis git commit: ISIS-1244: extended RepresentationService to
specify intent when render object (either JUST_CREATED or ALREADY_PERSISTENT)
ISIS-1244: extended RepresentationService to specify intent when render object (either JUST_CREATED or ALREADY_PERSISTENT)
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/a7d82eb3
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/a7d82eb3
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/a7d82eb3
Branch: refs/heads/master
Commit: a7d82eb3864e4f0ad205249b329479c6010cda05
Parents: eb5dae4
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Nov 10 23:07:28 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Nov 10 23:07:28 2015 +0000
----------------------------------------------------------------------
.../service/RepresentationService.java | 23 +++++++++++++++++++-
.../RepresentationServiceForRestfulObjects.java | 13 +++++++++++
.../DomainObjectResourceServerside.java | 7 ++++--
.../server/resources/DomainResourceHelper.java | 15 ++++++++++++-
.../server/resources/ResourceAbstract.java | 1 +
5 files changed, 55 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/a7d82eb3/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationService.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationService.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationService.java
index b49fcf4..30fa1b7 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationService.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationService.java
@@ -47,12 +47,33 @@ import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndPr
*/
public interface RepresentationService {
+ public enum Intent {
+ /**
+ * ie return a 201
+ */
+ JUST_CREATED,
+ /**
+ * ie return a 200
+ */
+ ALREADY_PERSISTENT
+ }
+
+ /**
+ * @deprecated - use {@link #objectRepresentation(Context, ObjectAdapter, Intent)}.
+ */
+ @Deprecated
@Programmatic
Response objectRepresentation(
Context resourceContext,
ObjectAdapter objectAdapter);
@Programmatic
+ Response objectRepresentation(
+ Context resourceContext,
+ ObjectAdapter objectAdapter,
+ Intent intent);
+
+ @Programmatic
Response propertyDetails(
Context rendererContext,
ObjectAndProperty objectAndProperty,
@@ -87,7 +108,7 @@ public interface RepresentationService {
public static interface Context4 extends Context3, RendererContext4 {
InteractionInitiatedBy getInteractionInitiatedBy();
}
- public static interface Context5 extends Context3, RendererContext5 {
+ public static interface Context5 extends Context4, RendererContext5 {
public SpecificationLoader getSpecificationLoader();
public ServicesInjector getServicesInjector();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/a7d82eb3/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceForRestfulObjects.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceForRestfulObjects.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceForRestfulObjects.java
index adaad37..7ca8374 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceForRestfulObjects.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceForRestfulObjects.java
@@ -60,6 +60,15 @@ public class RepresentationServiceForRestfulObjects implements RepresentationSer
public Response objectRepresentation(
final Context rendererContext,
final ObjectAdapter objectAdapter) {
+ return objectRepresentation(rendererContext, objectAdapter, Intent.ALREADY_PERSISTENT);
+ }
+
+ @Override
+ @Programmatic
+ public Response objectRepresentation(
+ final Context rendererContext,
+ final ObjectAdapter objectAdapter,
+ final Intent intent) {
ResponseBuilder responseBuilder = null;
@@ -90,6 +99,10 @@ public class RepresentationServiceForRestfulObjects implements RepresentationSer
}
}
+ if(intent == Intent.JUST_CREATED) {
+ responseBuilder.status(Response.Status.CREATED);
+ }
+
return buildResponse(responseBuilder);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/a7d82eb3/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
index 8531a59..75691d9 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
@@ -47,6 +47,7 @@ import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse.HttpS
import org.apache.isis.viewer.restfulobjects.applib.domainobjects.DomainObjectResource;
import org.apache.isis.viewer.restfulobjects.rendering.RestfulObjectsApplicationException;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.MemberReprMode;
+import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService;
import org.apache.isis.viewer.restfulobjects.rendering.service.conneg.PrettyPrinting;
import org.apache.isis.viewer.restfulobjects.rendering.util.Util;
@@ -99,9 +100,10 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
}
getResourceContext().getPersistenceSession().makePersistentInTransaction(objectAdapter);
- return getDomainResourceHelper(objectAdapter).objectRepresentation();
+ return getDomainResourceHelper(objectAdapter).objectRepresentation(RepresentationService.Intent.JUST_CREATED);
}
+
// //////////////////////////////////////////////////////////
// domain object
// //////////////////////////////////////////////////////////
@@ -123,10 +125,11 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
return getDomainResourceHelper(objectAdapter).objectRepresentation();
}
- private DomainResourceHelper getDomainResourceHelper(ObjectAdapter objectAdapter) {
+ private DomainResourceHelper getDomainResourceHelper(final ObjectAdapter objectAdapter) {
return new DomainResourceHelper(getResourceContext(), objectAdapter);
}
+
@Override
@PUT
@Path("/{domainType}/{instanceId}")
http://git-wip-us.apache.org/repos/asf/isis/blob/a7d82eb3/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java
index 1f652d9..da73995 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java
@@ -214,9 +214,22 @@ public class DomainResourceHelper {
/**
* Simply delegates to the {@link org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService} to
* render a representation of the object.
+ *
+ * @deprecated - use {@link #objectRepresentation(RepresentationService.Intent)}
*/
+ @Deprecated
public Response objectRepresentation() {
- return representationService.objectRepresentation(representationServiceContext, objectAdapter);
+ return representationService
+ .objectRepresentation(representationServiceContext, objectAdapter);
+ }
+
+ /**
+ * Simply delegates to the {@link org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService} to
+ * render a representation of the object.
+ */
+ public Response objectRepresentation(final RepresentationService.Intent intent) {
+ return representationService
+ .objectRepresentation(representationServiceContext, objectAdapter, intent);
}
/**
http://git-wip-us.apache.org/repos/asf/isis/blob/a7d82eb3/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java
index 46c3e58..f8c28ee 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java
@@ -124,6 +124,7 @@ public abstract class ResourceAbstract {
return resourceContext;
}
+
// //////////////////////////////////////////////////////////////
// Isis integration
// //////////////////////////////////////////////////////////////