private Response invokeActionUsingAdapters( final ObjectAction action, final JsonRepresentation arguments, final ActionResultReprRenderer.SelfLink selfLink) { final RepresentationService.Context rendererContext = representationServiceContext; final ObjectAdapter objectAdapter = this.objectAdapter; final ObjectActionArgHelper argHelper = new ObjectActionArgHelper(rendererContext, objectAdapter, action); final List<ObjectAdapter> argAdapters = argHelper.parseAndValidateArguments(arguments); // invoke final ObjectAdapter mixedInAdapter = null; // action will automatically fill in if a mixin final ObjectAdapter[] argAdapterArr = argAdapters.toArray(new ObjectAdapter[argAdapters.size()]); final ObjectAdapter returnedAdapter = action.execute(objectAdapter, mixedInAdapter, argAdapterArr, InteractionInitiatedBy.USER); final ObjectAndActionInvocation objectAndActionInvocation = new ObjectAndActionInvocation(objectAdapter, action, arguments, returnedAdapter, selfLink); // response transactionService.flushTransaction(); return representationService.actionResult( representationServiceContext, objectAndActionInvocation, selfLink); }
/** * Obtains the action details (arguments etc), checking it is visible, of the object and then * delegates to the {@link * org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService} to render a * representation of that object's action (arguments). */ public Response actionPrompt(final String actionId) { ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(representationServiceContext, objectAdapter); final ObjectAction action = accessHelper.getObjectActionThatIsVisibleForIntent( actionId, ObjectAdapterAccessHelper.Intent.ACCESS); transactionService.flushTransaction(); return representationService.actionPrompt( representationServiceContext, new ObjectAndAction(objectAdapter, action)); }
/** * Obtains the collection (checking it is visible) of the object and then delegates to the {@link * org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService} to render a * representation of that collection. */ public Response collectionDetails(final String collectionId, final MemberReprMode memberMode) { ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(representationServiceContext, objectAdapter); final OneToManyAssociation collection = accessHelper.getCollectionThatIsVisibleForIntent( collectionId, ObjectAdapterAccessHelper.Intent.ACCESS); transactionService.flushTransaction(); return representationService.collectionDetails( representationServiceContext, new ObjectAndCollection2(objectAdapter, collection, memberMode), memberMode); }
/** * Obtains the property (checking it is visible) of the object and then delegates to the {@link * org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService} to render a * representation of that property. */ public Response propertyDetails(final String propertyId, final MemberReprMode memberMode) { ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(representationServiceContext, objectAdapter); final OneToOneAssociation property = accessHelper.getPropertyThatIsVisibleForIntent( propertyId, ObjectAdapterAccessHelper.Intent.ACCESS); transactionService.flushTransaction(); return representationService.propertyDetails( representationServiceContext, new ObjectAndProperty2(objectAdapter, property, memberMode), memberMode); }
/** * Simply delegates to the {@link * org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService} to render a * representation of the object. * * @deprecated - use {@link #objectRepresentation()} */ @Deprecated public Response objectRepresentation(final RepresentationService.Intent intent) { transactionService.flushTransaction(); return representationService.objectRepresentation( representationServiceContext, objectAdapter, intent); }
/** * Simply delegates to the {@link * org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService} to render a * representation of the object. */ public Response objectRepresentation() { transactionService.flushTransaction(); return representationService.objectRepresentation(representationServiceContext, objectAdapter); }