Class DescribableRequestHandler
- All Implemented Interfaces:
RequestHandler
,org.forgerock.services.descriptor.Describable<org.forgerock.api.models.ApiDescription,
Request>
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.forgerock.services.descriptor.Describable
org.forgerock.services.descriptor.Describable.Listener
-
Constructor Summary
ConstructorDescriptionDescribableRequestHandler
(RequestHandler handler) Builds an object decorating the provided handler. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addDescriptorListener
(org.forgerock.services.descriptor.Describable.Listener listener) org.forgerock.api.models.ApiDescription
api
(org.forgerock.http.ApiProducer<org.forgerock.api.models.ApiDescription> producer) handleAction
(org.forgerock.services.context.Context context, ActionRequest request) Handles performing an action on a resource, and optionally returns an associated result.org.forgerock.api.models.ApiDescription
handleApiRequest
(org.forgerock.services.context.Context context, Request request) handleCreate
(org.forgerock.services.context.Context context, CreateRequest request) Adds a new JSON resource, returning aPromise
that will be completed when the resource has been added.handleDelete
(org.forgerock.services.context.Context context, DeleteRequest request) Deletes a JSON resource, returning aPromise
that will be completed when the resource has been deleted.handlePatch
(org.forgerock.services.context.Context context, PatchRequest request) Updates a JSON resource by applying a set of changes to its existing content, returning aPromise
that will be completed when the resource has been updated.handleQuery
(org.forgerock.services.context.Context context, QueryRequest request, QueryResourceHandler handler) Searches for all JSON resources matching a user specified set of criteria, returning aPromise
that will be completed when the search has completed.handleRead
(org.forgerock.services.context.Context context, ReadRequest request) Reads a JSON resource, returning aPromise
that will be completed when the resource has been read.handleUpdate
(org.forgerock.services.context.Context context, UpdateRequest request) Updates a JSON resource by replacing its existing content with new content, returning aPromise
that will be completed when the resource has been updated.void
removeDescriptorListener
(org.forgerock.services.descriptor.Describable.Listener listener) protected org.forgerock.services.context.Context
wrap
(org.forgerock.services.context.Context context) Allows sub classes to wrap the provided context and return the wrapping context.
-
Constructor Details
-
DescribableRequestHandler
Builds an object decorating the provided handler.- Parameters:
handler
- the handler to decorate.
-
-
Method Details
-
handleAction
public Promise<ActionResponse,ResourceException> handleAction(org.forgerock.services.context.Context context, ActionRequest request) Description copied from interface:RequestHandler
Handles performing an action on a resource, and optionally returns an associated result. The execution of an action is allowed to incur side effects.Actions are parametric; a set of named parameters is provided as input to the action. The action result is a JSON object structure composed of basic Java types; its overall structure is defined by a specific implementation.
On completion, the action result (or null) must be used to complete the returned
Promise
. On failure, the returnedPromise
must be completed with the exception.Action expects failure exceptions as follows:
ForbiddenException
if access to the resource is forbidden.NotSupportedException
if the requested functionality is not implemented/supportedBadRequestException
if the passed identifier, parameters or filter is invalidNotFoundException
if the specified resource could not be found.- Specified by:
handleAction
in interfaceRequestHandler
- Parameters:
context
- The request server context, such as associated principal.request
- The action request.- Returns:
- A
Promise
containing the result of the operation.
-
handleCreate
public Promise<ResourceResponse,ResourceException> handleCreate(org.forgerock.services.context.Context context, CreateRequest request) Description copied from interface:RequestHandler
Adds a new JSON resource, returning aPromise
that will be completed when the resource has been added.Create expects failure exceptions as follows:
CreateNotSupportedException
if create is not implemented or supported by the RequestHandler.ForbiddenException
if access to the resource is forbidden.NotSupportedException
if the requested functionality is not implemented/supportedPreconditionFailedException
if a resource with the same ID already existsBadRequestException
if the passed identifier or value is invalidNotFoundException
if the specified id could not be resolved, for example when an intermediate resource in the hierarchy does not exist.
- Specified by:
handleCreate
in interfaceRequestHandler
- Parameters:
context
- The request server context, such as associated principal.request
- The create request.- Returns:
- A
Promise
containing the result of the operation.
-
handleDelete
public Promise<ResourceResponse,ResourceException> handleDelete(org.forgerock.services.context.Context context, DeleteRequest request) Description copied from interface:RequestHandler
Deletes a JSON resource, returning aPromise
that will be completed when the resource has been deleted.Delete expects failure exceptions as follows:
ForbiddenException
if access to the resource is forbiddenNotSupportedException
if the requested functionality is not implemented/supportedBadRequestException
if the passed identifier is invalidNotFoundException
if the specified resource could not be foundPreconditionRequiredException
if version is required, but isnull
PreconditionFailedException
if version did not match the existing resource.
- Specified by:
handleDelete
in interfaceRequestHandler
- Parameters:
context
- The request server context, such as associated principal.request
- The delete request.- Returns:
- A
Promise
containing the result of the operation.
-
handlePatch
public Promise<ResourceResponse,ResourceException> handlePatch(org.forgerock.services.context.Context context, PatchRequest request) Description copied from interface:RequestHandler
Updates a JSON resource by applying a set of changes to its existing content, returning aPromise
that will be completed when the resource has been updated.Patch expects failure exceptions as follows:
ForbiddenException
if access to the resource is forbiddenNotSupportedException
if the requested functionality is not implemented/supportedPreconditionRequiredException
if version is required, but isnull
PreconditionFailedException
if version did not match the existing resourceBadRequestException
if the passed identifier or filter is invalidNotFoundException
if the specified resource could not be foundConflictException
if patch could not be applied for the given resource state.
- Specified by:
handlePatch
in interfaceRequestHandler
- Parameters:
context
- The request server context, such as associated principal.request
- The patch request.- Returns:
- A
Promise
containing the result of the operation.
-
handleQuery
public Promise<QueryResponse,ResourceException> handleQuery(org.forgerock.services.context.Context context, QueryRequest request, QueryResourceHandler handler) Description copied from interface:RequestHandler
Searches for all JSON resources matching a user specified set of criteria, returning aPromise
that will be completed when the search has completed.Implementations must invoke
QueryResourceHandler.handleResource(ResourceResponse)
for each resource which matches the query criteria. Once all matching resources have been returned implementations are required to return either aQueryResponse
if the query has completed successfully, orResourceException
if the query did not complete successfully (even if some matching resources were returned).Query expects failure exceptions as follows:
ForbiddenException
if access to the resource is forbiddenNotSupportedException
if the requested functionality is not implemented/supportedBadRequestException
if the passed identifier, parameters or filter is invalidNotFoundException
if the specified resource could not be found
- Specified by:
handleQuery
in interfaceRequestHandler
- Parameters:
context
- The request server context, such as associated principal.request
- The query request.handler
- The query resource handler to be notified for each matching resource.- Returns:
- A
Promise
containing the result of the operation.
-
handleRead
public Promise<ResourceResponse,ResourceException> handleRead(org.forgerock.services.context.Context context, ReadRequest request) Description copied from interface:RequestHandler
Reads a JSON resource, returning aPromise
that will be completed when the resource has been read.Read expects failure exceptions as follows:
ForbiddenException
if access to the resource is forbidden.NotSupportedException
if the requested functionality is not implemented/supportedBadRequestException
if the passed identifier or filter is invalidNotFoundException
if the specified resource could not be found.
- Specified by:
handleRead
in interfaceRequestHandler
- Parameters:
context
- The request server context, such as associated principal.request
- The read request.- Returns:
- A
Promise
containing the result of the operation.
-
handleUpdate
public Promise<ResourceResponse,ResourceException> handleUpdate(org.forgerock.services.context.Context context, UpdateRequest request) Description copied from interface:RequestHandler
Updates a JSON resource by replacing its existing content with new content, returning aPromise
that will be completed when the resource has been updated.Update expects failure the following failure exceptions:
ForbiddenException
if access to the resource is forbiddenNotSupportedException
if the requested functionality is not implemented/supportedPreconditionRequiredException
if version is required, but isnull
PreconditionFailedException
if version did not match the existing resourceBadRequestException
if the passed identifier or filter is invalidNotFoundException
if the specified resource could not be found.
- Specified by:
handleUpdate
in interfaceRequestHandler
- Parameters:
context
- The request server context, such as associated principal.request
- The update request.- Returns:
- A
Promise
containing the result of the operation.
-
wrap
protected org.forgerock.services.context.Context wrap(org.forgerock.services.context.Context context) Allows sub classes to wrap the provided context and return the wrapping context.- Parameters:
context
- the context to wrap- Returns:
- the wrapping context that should be used
-
api
public org.forgerock.api.models.ApiDescription api(org.forgerock.http.ApiProducer<org.forgerock.api.models.ApiDescription> producer) - Specified by:
api
in interfaceorg.forgerock.services.descriptor.Describable<org.forgerock.api.models.ApiDescription,
Request>
-
handleApiRequest
public org.forgerock.api.models.ApiDescription handleApiRequest(org.forgerock.services.context.Context context, Request request) - Specified by:
handleApiRequest
in interfaceorg.forgerock.services.descriptor.Describable<org.forgerock.api.models.ApiDescription,
Request>
-
addDescriptorListener
public void addDescriptorListener(org.forgerock.services.descriptor.Describable.Listener listener) - Specified by:
addDescriptorListener
in interfaceorg.forgerock.services.descriptor.Describable<org.forgerock.api.models.ApiDescription,
Request>
-
removeDescriptorListener
public void removeDescriptorListener(org.forgerock.services.descriptor.Describable.Listener listener) - Specified by:
removeDescriptorListener
in interfaceorg.forgerock.services.descriptor.Describable<org.forgerock.api.models.ApiDescription,
Request>
-