Interface PlatformConverterService
Service that provides common functionality that can be used by any Platform API based HypermediaConverter when
serializing resources to Platform API style JSON.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final SortOrderstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final String -
Method Summary
Modifier and TypeMethodDescriptionbuildChildren(ConverterContext context, ModelDescription description, HypermediaConverter converter) Build the children JSONArray that can be added to the response body.buildLinksObject(ConverterContext context, Resource resource, ModelDescription description) Builds the links JSONObject that can be added to the response body.buildPageObject(ConverterContext context, String nextValue, String resourcePath, String category, int count) Build the page JSONObject that can be added to the response body.buildProps(Resource resource, ModelDescription description, ApiProperty.SCOPE scope) Build a map of the properties to be serialized into the response body, filtered by the provided scope.buildURL(ConverterContext context, String resourcePath) Builds a URL for a resource that can be used in the response.getApiPrefix(ConverterContext context, String category) Get the API prefix that can be used when building URLs for API managed resources.getOrderBy(HttpServletRequest request) Get the ordering parameters from the request that will be used to build a paginated child entity list.intGet the pagination limit value that will be used to build a paginated child entity list.Get the pagination start value that will be used to build a paginated child entity list.voidpopulateHeaders(ConverterResponseBuilder builder, ModelDescription description) Builds the response headers as defined in the model using the ApiHeader annotations and sets them in the response builder.voidpopulateLinkHeader(ConverterResponseBuilder builder, ConverterContext context, Resource resource, ModelDescription description, ApiLink.SCOPE scope) Builds the link header for the response based on the ApiHeader annotations in the model, filtered by the scope parameter supplied.
-
Field Details
-
REL_ADOBECLOUD
- See Also:
-
REL_ADOBECLOUD_DIRECTORY
- See Also:
-
REL_ADOBECLOUD_DELETE
- See Also:
-
REL_SELF
- See Also:
-
REL_PARENT
- See Also:
-
REL_LATEST_VERSION
- See Also:
-
REL_COLLECTION
- See Also:
-
HEADER_LINK
- See Also:
-
PARAM_START
- See Also:
-
PARAM_LIMIT
- See Also:
-
PARAM_ORDERBY
- See Also:
-
PARAM_SORTORDER
- See Also:
-
PROP_NEXT
- See Also:
-
PROP_PAGE
- See Also:
-
PROP_PROPERTY
- See Also:
-
PROP_TYPE
- See Also:
-
PROP_COUNT
- See Also:
-
PROP_NAME
- See Also:
-
JSON_NAME_PAGE
- See Also:
-
JSON_NAME_LINKS
- See Also:
-
JSON_NAME_CHILDREN
- See Also:
-
JSON_NAME_HREF
- See Also:
-
DEFAULT_SORTORDER
-
-
Method Details
-
populateHeaders
Builds the response headers as defined in the model using the ApiHeader annotations and sets them in the response builder.- Parameters:
builder- The ConverterResponseBuilder responsible for building the response.description- The metadata description of the model.
-
populateLinkHeader
void populateLinkHeader(ConverterResponseBuilder builder, ConverterContext context, Resource resource, ModelDescription description, ApiLink.SCOPE scope) throws URISyntaxException, UnsupportedEncodingException Builds the link header for the response based on the ApiHeader annotations in the model, filtered by the scope parameter supplied.- Parameters:
builder- The ConverterResponseBuilder responsible for building the response.context- The ConverterContext providing information about the request.resource- The resource being serialized.description- The metadata description of the model.scope- The scope a link should satisfy in order to be serialized into the link header.- Throws:
UnsupportedEncodingException- If encoding is not supported.URISyntaxException
-
buildLinksObject
@Nonnull JSONObject buildLinksObject(ConverterContext context, Resource resource, ModelDescription description) throws JSONException, URISyntaxException, UnsupportedEncodingException Builds the links JSONObject that can be added to the response body.- Parameters:
context- The ConverterContext providing information about the request.resource- The resource being serialized.description- The metadata description of the model.- Returns:
- The JSONObject that is the links object.
- Throws:
JSONException- If an error occurs when creating the links object.URISyntaxException- If an error occurs building the URL.UnsupportedEncodingException- If encoding is not supported.
-
buildProps
@Nonnull Map<String,Object> buildProps(Resource resource, ModelDescription description, ApiProperty.SCOPE scope) Build a map of the properties to be serialized into the response body, filtered by the provided scope.- Parameters:
resource- The resource being serialized.description- The metadata description of the model.scope- The scope a property should satisfy in order to be serialized into the Map.- Returns:
- The Map of properties to be serialized.
-
buildChildren
@Nonnull JSONArray buildChildren(ConverterContext context, ModelDescription description, HypermediaConverter converter) Build the children JSONArray that can be added to the response body.- Parameters:
context- The ConverterContext providing information about the request.description- The metadata description of the model.converter- The HypermediaConverter to be used to render the children resources as sub entities.- Returns:
- The JSONArray that represents the children to be serialized.
-
buildPageObject
@CheckForNull JSONObject buildPageObject(ConverterContext context, String nextValue, String resourcePath, String category, int count) throws JSONException Build the page JSONObject that can be added to the response body.- Parameters:
context- The ConverterContext providing information about the request.nextValue- The value to be used to get the next page.resourcePath- The path to the resource.category- The API category.count- The number of resources contained in the children array.- Returns:
- The JSONObject that is the page object.
- Throws:
JSONException- If an error occurs when creating the JSONObject.
-
buildURL
@Nonnull String buildURL(ConverterContext context, String resourcePath) throws URISyntaxException, UnsupportedEncodingException Builds a URL for a resource that can be used in the response.- Parameters:
context- The ConverterContext providing information about the request.resourcePath- The path to the resource.- Returns:
- The URL to the resource.
- Throws:
URISyntaxException- If an error occurs building the URL.UnsupportedEncodingException- If encoding is not supported.
-
getApiPrefix
Get the API prefix that can be used when building URLs for API managed resources.- Parameters:
context- The ConverterContext providing information about the request.category- The API category the resource is being managed under.- Returns:
- The API prefix string.
-
getPaginationStartValue
Get the pagination start value that will be used to build a paginated child entity list.- Parameters:
request- The HTTPServletRequest.- Returns:
- The pagination start value.
-
getPaginationLimitValue
Get the pagination limit value that will be used to build a paginated child entity list.- Parameters:
request- The HTTPServletRequest.- Returns:
- The pagination limit value.
-
getOrderBy
Get the ordering parameters from the request that will be used to build a paginated child entity list.- Parameters:
request- The HTTPServletRequest.- Returns:
- The pagination ordering parameters.
-