@GET @Path( "/{" + RodaConstants.API_PATH_PARAM_REPRESENTATION_UUID + "}/" + RodaConstants.API_DESCRIPTIVE_METADATA + "/") @ApiOperation( value = "List descriptive metadata", notes = "List descriptive metadata", response = DescriptiveMetadataList.class, responseContainer = "List") @ApiResponses( value = { @ApiResponse( code = 200, message = "OK", response = DescriptiveMetadataList.class, responseContainer = "List"), @ApiResponse( code = 404, message = "Representation not found", response = ApiResponseMessage.class) }) public Response retrieveDescriptiveMetadataListFromRepresentation( @ApiParam(value = "The ID of the existing Representation", required = true) @PathParam(RodaConstants.API_PATH_PARAM_REPRESENTATION_UUID) String representationId, @ApiParam(value = "Index of the first element to return", defaultValue = "0") @QueryParam(RodaConstants.API_QUERY_KEY_START) String start, @ApiParam(value = "Maximum number of elements to return", defaultValue = "100") @QueryParam(RodaConstants.API_QUERY_KEY_LIMIT) String limit, @ApiParam( value = "Choose format in which to get the representation", allowableValues = RodaConstants.API_GET_LIST_MEDIA_TYPES) @QueryParam(RodaConstants.API_QUERY_KEY_ACCEPT_FORMAT) String acceptFormat) throws RODAException { String mediaType = ApiUtils.getMediaType(acceptFormat, request); // get user User user = UserUtility.getApiUser(request); // delegate action to controller EntityResponse metadataList = Browser.listRepresentationDescriptiveMetadata( user, representationId, start, limit, acceptFormat); if (metadataList instanceof ObjectResponse) { ObjectResponse<DescriptiveMetadataList> dmlist = (ObjectResponse<DescriptiveMetadataList>) metadataList; return Response.ok(dmlist.getObject(), mediaType).build(); } else { return ApiUtils.okResponse((StreamResponse) metadataList); } }