@Override @GET @Path("/{domainType}/actions/{actionId}/params/{paramName}") @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ACTION_PARAMETER_DESCRIPTION }) public Response typeActionParam(@PathParam("domainType") final String domainType, @PathParam("actionId") final String actionId, @PathParam("paramName") final String paramName) { final RepresentationType representationType = RepresentationType.ACTION_PARAMETER_DESCRIPTION; init(representationType, Where.ANYWHERE, RepresentationService.Intent.NOT_APPLICABLE); final ObjectSpecification parentSpec = getSpecificationLoader().lookupBySpecId(ObjectSpecId.of(domainType)); if (parentSpec == null) { throw RestfulObjectsApplicationException.create(HttpStatusCode.NOT_FOUND); } final ObjectMember objectMember = parentSpec.getObjectAction(actionId); if (objectMember == null) { throw RestfulObjectsApplicationException.create(HttpStatusCode.NOT_FOUND); } final ObjectAction parentAction = (ObjectAction) objectMember; final ObjectActionParameter actionParam = parentAction.getParameterByName(paramName); final ActionParameterDescriptionReprRenderer renderer = new ActionParameterDescriptionReprRenderer(getResourceContext(), null, JsonRepresentation.newMap()); renderer.with(new ParentSpecAndActionParam(parentSpec, actionParam)).includesSelf(); return Responses.ofOk(renderer, Caching.ONE_DAY).build(); }
@Override @GET @Path("/{domainType}/actions/{actionId}/params/{paramName}") @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ACTION_PARAMETER_DESCRIPTION }) public Response typeActionParam(@PathParam("domainType") final String domainType, @PathParam("actionId") final String actionId, @PathParam("paramName") final String paramName) { final RepresentationType representationType = RepresentationType.ACTION_PARAMETER_DESCRIPTION; init(representationType, Where.ANYWHERE); final ObjectSpecification parentSpec = getSpecificationLoader().lookupBySpecId(ObjectSpecId.of(domainType)); if (parentSpec == null) { throw RestfulObjectsApplicationException.create(HttpStatusCode.NOT_FOUND); } final ObjectMember objectMember = parentSpec.getObjectAction(actionId); if (objectMember == null) { throw RestfulObjectsApplicationException.create(HttpStatusCode.NOT_FOUND); } final ObjectAction parentAction = (ObjectAction) objectMember; final ObjectActionParameter actionParam = parentAction.getParameterByName(paramName); final ActionParameterDescriptionReprRenderer renderer = new ActionParameterDescriptionReprRenderer(getResourceContext(), null, JsonRepresentation.newMap()); renderer.with(new ParentSpecAndActionParam(parentSpec, actionParam)).includesSelf(); return responseOfOk(renderer, Caching.ONE_DAY).build(); }
@Override @GET @Path("/{domainType}/actions/{actionId}/params/{paramName}") @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ACTION_PARAMETER_DESCRIPTION }) public Response typeActionParam(@PathParam("domainType") final String domainType, @PathParam("actionId") final String actionId, @PathParam("paramName") final String paramName) { final RepresentationType representationType = RepresentationType.ACTION_PARAMETER_DESCRIPTION; init(representationType, Where.ANYWHERE); final ObjectSpecification parentSpec = getSpecificationLoader().loadSpecification(domainType); if (parentSpec == null) { throw RestfulObjectsApplicationException.create(HttpStatusCode.NOT_FOUND); } final ObjectMember objectMember = parentSpec.getObjectAction(actionId); if (objectMember == null) { throw RestfulObjectsApplicationException.create(HttpStatusCode.NOT_FOUND); } final ObjectAction parentAction = (ObjectAction) objectMember; final ObjectActionParameter actionParam = parentAction.getParameterByName(paramName); final RendererFactory rendererFactory = rendererFactoryRegistry.find(representationType); final ActionParameterDescriptionReprRenderer renderer = (ActionParameterDescriptionReprRenderer) rendererFactory.newRenderer(getResourceContext(), null, JsonRepresentation.newMap()); renderer.with(new ParentSpecAndActionParam(parentSpec, actionParam)).includesSelf(); return responseOfOk(renderer, Caching.ONE_DAY).build(); }