Interface CreateRequest

All Superinterfaces:
Request

public interface CreateRequest extends Request
A request to create a new JSON resource.
  • Field Details

    • ACTION_ID_CREATE

      static final String ACTION_ID_CREATE
      The name of the action which is reserved for performing "create" operations.
    • FIELD_CONTENT

      static final String FIELD_CONTENT
      The name of the field which contains the resource content in the JSON representation.
      See Also:
    • FIELD_NEW_RESOURCE_ID

      static final String FIELD_NEW_RESOURCE_ID
      The name of the field which contains the new resource ID in the JSON representation.
      See Also:
  • Method Details

    • accept

      <R, P> R accept(RequestVisitor<R,P> v, P p)
      Description copied from interface: Request
      Applies a RequestVisitor to this Request.
      Specified by:
      accept in interface Request
      Type Parameters:
      R - The return type of the visitor's methods.
      P - The type of the additional parameters to the visitor's methods.
      Parameters:
      v - The request visitor.
      p - Optional additional visitor parameter.
      Returns:
      A result as specified by the visitor.
    • addField

      CreateRequest addField(JsonPointer... fields)
      Description copied from interface: Request
      Adds one or more fields which should be included with each JSON resource returned by this request.
      Specified by:
      addField in interface Request
      Parameters:
      fields - The fields which should be included with each JSON resource returned by this request.
      Returns:
      This request.
    • addField

      CreateRequest addField(String... fields)
      Description copied from interface: Request
      Adds one or more fields which should be included with each JSON resource returned by this request.
      Specified by:
      addField in interface Request
      Parameters:
      fields - The fields which should be included with each JSON resource returned by this request.
      Returns:
      This request.
    • getAdditionalParameter

      String getAdditionalParameter(String name)
      Description copied from interface: Request
      Returns the additional parameter which should be used to control the behavior of this action request.
      Specified by:
      getAdditionalParameter in interface Request
      Parameters:
      name - The name of the additional parameter.
      Returns:
      The additional parameter which should be used to control the behavior of this action request
    • getAdditionalParameters

      Map<String,String> getAdditionalParameters()
      Description copied from interface: Request
      Returns the additional parameters which should be used to control the behavior of this action request. The returned map may be modified if permitted by this action request.
      Specified by:
      getAdditionalParameters in interface Request
      Returns:
      The additional parameters which should be used to control the behavior of this action request (never null).
    • getContent

      JsonValue getContent()
      Returns the content of the JSON resource to be created.
      Returns:
      The content of the JSON resource to be created.
    • getFields

      List<JsonPointer> getFields()
      Description copied from interface: Request
      Returns the list of fields which should be included with each JSON resource returned by this request. The returned list may be modified if permitted by this query request. An empty list indicates that all fields should be included.

      NOTE: field filtering alters the structure of a JSON resource and MUST only be performed once while processing a request. It is therefore the responsibility of front-end implementations (e.g. HTTP listeners, Servlets, etc) to perform field filtering. Request handler and resource provider implementations SHOULD NOT filter fields, but MAY choose to optimise their processing in order to return a resource containing only the fields targeted by the field filters.

      Specified by:
      getFields in interface Request
      Returns:
      The list of fields which should be included with each JSON resource returned by this request (never null).
    • getNewResourceId

      String getNewResourceId()
      Returns the client provided ID of the resource to be created. The new resource ID will be appended to the resource path in order to obtain the full path of the new resource.

      The new resource ID is optional and should be used in cases where the client wishes to determine the path of the resource to be created. If the new resource ID is not provided then the server will be responsible for generating the ID of the new resource.

      Returns:
      The client provided ID of the resource to be created, or null if the server should be responsible for generating the resource ID.
      See Also:
    • getPreferredLocales

      PreferredLocales getPreferredLocales()
      Description copied from interface: Request
      Get the locale preference for the request.
      Specified by:
      getPreferredLocales in interface Request
      Returns:
      The PreferredLocales instance for the request.
    • getRequestType

      RequestType getRequestType()
      Description copied from interface: Request
      Returns the type of this request.
      Specified by:
      getRequestType in interface Request
      Returns:
      The type of this request.
    • getResourcePath

      String getResourcePath()
      Returns the path of the JSON resource container beneath which the new resource should be created.

      The path of the newly created resource will be the concatenation of the resource path and either the client provided resource ID, if provided, or a server generated resource ID.

      Specified by:
      getResourcePath in interface Request
      Returns:
      The path of the JSON resource container beneath which the new resource should be created.
      See Also:
    • getResourcePathObject

      ResourcePath getResourcePathObject()
      Description copied from interface: Request
      Returns the non-null path of the JSON resource to which this request should be targeted. The resource path is relative and never begins or ends with a forward slash, but may be empty.

      NOTE: for resource provider implementations the resource path is relative to the current resource being accessed. See the description of UriRouterContext for more information.

      Specified by:
      getResourcePathObject in interface Request
      Returns:
      The non-null path of the JSON resource to which this request should be targeted, which may be the empty string.
    • getResourceVersion

      Version getResourceVersion()
      Description copied from interface: Request
      Gets the requested API version of the resource.
      Specified by:
      getResourceVersion in interface Request
      Returns:
      The requested API version of the resource.
    • setAdditionalParameter

      CreateRequest setAdditionalParameter(String name, String value) throws BadRequestException
      Description copied from interface: Request
      Sets an additional parameter which should be used to control the behavior of this action request.
      Specified by:
      setAdditionalParameter in interface Request
      Parameters:
      name - The name of the additional parameter.
      value - The additional parameter's value.
      Returns:
      This request.
      Throws:
      BadRequestException - If this request does not permit the additional parameter to be set.
    • setContent

      CreateRequest setContent(JsonValue content)
      Sets the content of the JSON resource to be created.
      Parameters:
      content - The content of the JSON resource to be created.
      Returns:
      This create request.
      Throws:
      UnsupportedOperationException - If this create request does not permit changes to the content.
    • setNewResourceId

      CreateRequest setNewResourceId(String id)
      Sets the client provided ID of the resource to be created. The new resource ID will be appended to the resource path in order to obtain the full path of the new resource.

      The new resource ID is optional and should be used in cases where the client wishes to determine the path of the resource to be created. If the new resource ID is not provided then the server will be responsible for generating the ID of the new resource.

      Parameters:
      id - The client provided ID of the resource to be created, or null if the server should be responsible for generating the resource ID.
      Returns:
      This create request.
      Throws:
      UnsupportedOperationException - If this create request does not permit changes to the new resource ID.
      See Also:
    • setPreferredLocales

      CreateRequest setPreferredLocales(PreferredLocales preferredLocales)
      Description copied from interface: Request
      Set the locale preference for the request.
      Specified by:
      setPreferredLocales in interface Request
      Parameters:
      preferredLocales - The PreferredLocales instance for the request.
      Returns:
      This request.
    • setResourcePath

      CreateRequest setResourcePath(String path)
      Sets the path of the JSON resource container beneath which the new resource should be created.

      The path of the newly created resource will be the concatenation of the resource path and either the client provided resource ID, if provided, or a server generated resource ID.

      Specified by:
      setResourcePath in interface Request
      Parameters:
      path - The path of the JSON resource container beneath which the new resource should be created.
      Returns:
      This create request.
      Throws:
      UnsupportedOperationException - If this create request does not permit changes to the resource path.
      See Also:
    • setResourcePath

      CreateRequest setResourcePath(ResourcePath path)
      Description copied from interface: Request
      Sets the non-null path of the JSON resource to which this request should be targeted. The resource path is relative and never begins or ends with a forward slash, but may be empty.

      NOTE: for resource provider implementations the resource path is relative to the current resource being accessed. See the description of UriRouterContext for more information.

      Specified by:
      setResourcePath in interface Request
      Parameters:
      path - The non-null path of the JSON resource to which this request should be targeted, which may be the empty string.
      Returns:
      This request.
    • setResourceVersion

      CreateRequest setResourceVersion(Version resourceVersion)
      Description copied from interface: Request
      Sets the requested API version of the resource.
      Specified by:
      setResourceVersion in interface Request
      Parameters:
      resourceVersion - The requested API version of the resource.
      Returns:
      This request.
    • toJsonValue

      JsonValue toJsonValue()
      Description copied from interface: Request
      Return a JsonValue representation of this request.
      Specified by:
      toJsonValue in interface Request
      Returns:
      this request as a JsonValue