public abstract class AbstractResourceServiceBroker extends Object implements ResourceServiceBroker
Modifier and Type | Field and Description |
---|---|
static String |
EXCHANGE_HINT
Key name for the exchange hint, which can be used in cache key generation as an attribute name.
|
static String |
OPERATION_KEY
Key name for an invoked operation name, which can be used in cache key generation as an attribute name.
|
static String |
OPERATION_KEY_FIND_RESOURCES
Key name of
OPERATION_KEY in findResources(String, String, Map) operation invocation,
which can be used in cache key generation as an attribute name. |
static String |
OPERATION_KEY_RESOLVE
Key name of
OPERATION_KEY in resolve(String, String, Map) operation invocation, which
can be used in cache key generation as an attribute name. |
static String |
PATH_VARIABLES
Key name for the path variables to be used in the physical invocation path (or URI) expansion, which can
be used in cache key generation as an attribute name.
|
static String |
RESOURCE_PATH
Key name for the relative resource path in an invocation, which can be used in cache key generation as an
attribute name.
|
static String |
RESOURCE_SPACE
Key name for the resource space name in an invocation, which can be used in cache key generation as an attribute
name.
|
Constructor and Description |
---|
AbstractResourceServiceBroker()
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
Resource |
findResources(String resourceSpace,
String baseAbsPath)
Resolves a proper
ResourceResolver by the specified resourceSpace and search Resource
representations from baseAbsPath and returns a parent Resource representation which contains
a collection of child Resource representations. |
Resource |
findResources(String resourceSpace,
String baseAbsPath,
ExchangeHint exchangeHint)
Resolves a proper
ResourceResolver by the specified resourceSpace and search Resource
representations from baseAbsPath and returns a parent Resource representation which contains
a collection of child Resource representations. |
Resource |
findResources(String resourceSpace,
String baseAbsPath,
Map<String,Object> pathVariables)
Resolves a proper
ResourceResolver by the specified resourceSpace and search Resource
representations from baseAbsPath and returns a parent Resource representation which contains
a collection of child Resource representations. |
ResourceBeanMapper |
getResourceBeanMapper(String resourceSpace)
Returns a proper
ResourceBeanMapper for the given resourceSpace . |
ResourceDataCache |
getResourceDataCache(String resourceSpace)
Returns a proper resource cache store representation (
ResourceDataCache ) for the specified
resourceSpace , or null if caching is disabled. |
protected ResourceResolver |
getResourceResolver(String resourceSpace)
Finds and returns a
ResourceResolver by the specified resourceSpace . |
ResourceResolverProvider |
getResourceResolverProvider()
Returns
ResourceResolverProvider that finds and returns a proper ResourceResolver . |
Resource |
resolve(String resourceSpace,
String absResourcePath)
Resolves a proper
ResourceResolver by the specified resourceSpace and resolves single Resource
representation by absPath . |
Resource |
resolve(String resourceSpace,
String absResourcePath,
ExchangeHint exchangeHint)
Resolves a proper
ResourceResolver by the specified resourceSpace and resolves single Resource
representation by absPath . |
Resource |
resolve(String resourceSpace,
String absResourcePath,
Map<String,Object> pathVariables)
Resolves a proper
ResourceResolver by the specified resourceSpace and resolves single Resource
representation by absPath . |
Binary |
resolveBinary(String resourceSpace,
String absResourcePath)
Resolves a proper
ResourceResolver by the specified resourceSpace and resolves single Binary
representation by absPath . |
Binary |
resolveBinary(String resourceSpace,
String absResourcePath,
ExchangeHint exchangeHint)
Resolves a proper
ResourceResolver by the specified resourceSpace and resolves single Binary
representation by absPath . |
Binary |
resolveBinary(String resourceSpace,
String absResourcePath,
Map<String,Object> pathVariables)
Resolves a proper
ResourceResolver by the specified resourceSpace and resolves single Binary
representation by absPath . |
Resource |
resolveBinaryAsResource(String resourceSpace,
String absResourcePath)
Resolves a proper
ResourceResolver by the specified resourceSpace , resolves single Binary
representation by absPath , and converts the Binary representation into a Resource . |
Resource |
resolveBinaryAsResource(String resourceSpace,
String absResourcePath,
ExchangeHint exchangeHint)
Resolves a proper
ResourceResolver by the specified resourceSpace , resolves single Binary
representation by absPath , and converts the Binary representation into a Resource . |
Resource |
resolveBinaryAsResource(String resourceSpace,
String absResourcePath,
Map<String,Object> pathVariables)
Resolves a proper
ResourceResolver by the specified resourceSpace , resolves single Binary
representation by absPath , and converts the Binary representation into a Resource . |
URI |
resolveFullURI(String resourceSpace,
String absPath)
Resolves a full URI determined and resolved for the specific
resourceSpace and the absPath . |
URI |
resolveFullURI(String resourceSpace,
String absPath,
Map<String,Object> pathVariables)
Resolves a full URI determined and resolved for the specific
resourceSpace and the absPath . |
ResourceLink |
resolveLink(String resourceSpace,
Resource resource)
Resolves a proper
ResourceResolver by the specified resourceSpace and resolves a ResourceLink
for the given resource . |
ResourceLink |
resolveLink(String resourceSpace,
Resource resource,
Map<String,Object> linkVariables)
Resolves a proper
ResourceResolver by the specified resourceSpace and resolves a ResourceLink
for the given resource with passing linkVariables that can be used by implementation to
expand its internal link generation template. |
void |
setResourceResolverProvider(ResourceResolverProvider resourceResolverProvider)
Sets
ResourceResolverProvider that finds and returns a proper ResourceResolver . |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
findResources, resolve, resolveBinary, resolveBinaryAsResource
public static final String OPERATION_KEY
public static final String RESOURCE_SPACE
public static final String RESOURCE_PATH
public static final String PATH_VARIABLES
public static final String EXCHANGE_HINT
public static final String OPERATION_KEY_RESOLVE
OPERATION_KEY
in resolve(String, String, Map)
operation invocation, which
can be used in cache key generation as an attribute name.public static final String OPERATION_KEY_FIND_RESOURCES
OPERATION_KEY
in findResources(String, String, Map)
operation invocation,
which can be used in cache key generation as an attribute name.public AbstractResourceServiceBroker()
public ResourceResolverProvider getResourceResolverProvider()
ResourceResolverProvider
that finds and returns a proper ResourceResolver
.ResourceResolverProvider
that finds and returns a proper ResourceResolver
public void setResourceResolverProvider(ResourceResolverProvider resourceResolverProvider)
ResourceResolverProvider
that finds and returns a proper ResourceResolver
.resourceResolverProvider
- ResourceResolverProvider
that finds and returns a proper ResourceResolver
public Resource resolve(String resourceSpace, String absResourcePath) throws ResourceException
ResourceResolver
by the specified resourceSpace
and resolves single Resource
representation by absPath
.
absPath
is a domain-specific path template that should be meaningful to the backend.
For example, if the backend is a REST API, then absPath
can be a URI path or part of URL. Or, as
an example, the absPath
can be an index name of a search index, table name of databases or node
path in JCR, totally depending on ResourceResolver
implementations.
resolve
in interface ResourceServiceBroker
resourceSpace
- Resource space name to resolve a proper ResourceResolver
absResourcePath
- absolute path of a Resource
Resource
representation by absPath
ResourceException
- if resource resolution operation failspublic Resource resolve(String resourceSpace, String absResourcePath, ExchangeHint exchangeHint) throws ResourceException
ResourceResolver
by the specified resourceSpace
and resolves single Resource
representation by absPath
.
absPath
is a domain-specific path template that should be meaningful to the backend.
For example, if the backend is a REST API, then absPath
can be a URI path or part of URL. Or, as
an example, the absPath
can be an index name of a search index, table name of databases or node
path in JCR, totally depending on ResourceResolver
implementations.
If a non-null exchangeHint
is given, then it can be understood by the specific ResourceResolver
implementation for its specific backend.
resolve
in interface ResourceServiceBroker
resourceSpace
- Resource space name to resolve a proper ResourceResolver
absResourcePath
- absolute path of a Resource
exchangeHint
- a message exchange hint for the backendResource
representation by absPath
ResourceException
- if resource resolution operation failspublic Resource resolve(String resourceSpace, String absResourcePath, Map<String,Object> pathVariables) throws ResourceException
ResourceResolver
by the specified resourceSpace
and resolves single Resource
representation by absPath
.
absPath
is a domain-specific path template that should be meaningful to the backend.
For example, if the backend is a REST API, then absPath
can be a URI path or part of URL. Or, as
an example, the absPath
can be an index name of a search index, table name of databases or node
path in JCR, totally depending on ResourceResolver
implementations.
The absPath
template is expanded using the given path variables (pathVariables
), if any.
For example, if pathVariables
looks like {"var1":"hello","var2":"world"}
and absPath
is ".../some/path/{var1}/{var2}/overview"
, then it is expanded to
".../some/path/hello/world/overview"
by the pathVariables
when making a real request
to the backend.
resolve
in interface ResourceServiceBroker
resourceSpace
- Resource space name to resolve a proper ResourceResolver
absResourcePath
- absolute path of a Resource
pathVariables
- the variables to expand the template given by absPath
Resource
representation by absPath
ResourceException
- if resource resolution operation failspublic Binary resolveBinary(String resourceSpace, String absResourcePath) throws ResourceException
ResourceResolver
by the specified resourceSpace
and resolves single Binary
representation by absPath
.
absPath
is a domain-specific path template that should be meaningful to the backend.
For example, if the backend is a REST API, then absPath
can be a URI path or part of URL. Or, as
an example, the absPath
can be an index name of a search index, table name of databases or node
path in JCR, totally depending on ResourceResolver
implementations.
resolveBinary
in interface ResourceServiceBroker
resourceSpace
- Resource space name to resolve a proper ResourceResolver
absResourcePath
- absolute path of a Binary
Binary
representation by absPath
ResourceException
- if resource resolution operation failspublic Binary resolveBinary(String resourceSpace, String absResourcePath, ExchangeHint exchangeHint) throws ResourceException
ResourceResolver
by the specified resourceSpace
and resolves single Binary
representation by absPath
.
absPath
is a domain-specific path template that should be meaningful to the backend.
For example, if the backend is a REST API, then absPath
can be a URI path or part of URL. Or, as
an example, the absPath
can be an index name of a search index, table name of databases or node
path in JCR, totally depending on ResourceResolver
implementations.
If a non-null exchangeHint
is given, then it can be understood by the specific ResourceResolver
implementation for its specific backend.
resolveBinary
in interface ResourceServiceBroker
resourceSpace
- Resource space name to resolve a proper ResourceResolver
absResourcePath
- absolute path of a Binary
exchangeHint
- a message exchange hint for the backendBinary
representation by absPath
ResourceException
- if resource resolution operation failspublic Binary resolveBinary(String resourceSpace, String absResourcePath, Map<String,Object> pathVariables) throws ResourceException
ResourceResolver
by the specified resourceSpace
and resolves single Binary
representation by absPath
.
absPath
is a domain-specific path template that should be meaningful to the backend.
For example, if the backend is a REST API, then absPath
can be a URI path or part of URL. Or, as
an example, the absPath
can be an index name of a search index, table name of databases or node
path in JCR, totally depending on ResourceResolver
implementations.
The absPath
template is expanded using the given path variables (pathVariables
), if any.
For example, if pathVariables
looks like {"var1":"hello","var2":"world"}
and absPath
is ".../some/path/{var1}/{var2}/overview"
, then it is expanded to
".../some/path/hello/world/overview"
by the pathVariables
when making a real request
to the backend.
resolveBinary
in interface ResourceServiceBroker
resourceSpace
- Resource space name to resolve a proper ResourceResolver
absResourcePath
- absolute path of a Binary
pathVariables
- the variables to expand the template given by absPath
Binary
representation by absPath
ResourceException
- if resource resolution operation failspublic Resource resolveBinaryAsResource(String resourceSpace, String absResourcePath) throws ResourceException
ResourceServiceBroker
ResourceResolver
by the specified resourceSpace
, resolves single Binary
representation by absPath
, and converts the Binary
representation into a Resource
.
absPath
is a domain-specific path template that should be meaningful to the backend.
For example, if the backend is a REST API, then absPath
can be a URI path or part of URL. Or, as
an example, the absPath
can be an index name of a search index, table name of databases or node
path in JCR, totally depending on ResourceResolver
implementations.
resolveBinaryAsResource
in interface ResourceServiceBroker
resourceSpace
- Resource space name to resolve a proper ResourceResolver
absResourcePath
- absolute path of a Binary
Resource
object converted from the single Binary
representation by absPath
ResourceException
- if resource resolution operation failspublic Resource resolveBinaryAsResource(String resourceSpace, String absResourcePath, ExchangeHint exchangeHint) throws ResourceException
ResourceServiceBroker
ResourceResolver
by the specified resourceSpace
, resolves single Binary
representation by absPath
, and converts the Binary
representation into a Resource
.
absPath
is a domain-specific path template that should be meaningful to the backend.
For example, if the backend is a REST API, then absPath
can be a URI path or part of URL. Or, as
an example, the absPath
can be an index name of a search index, table name of databases or node
path in JCR, totally depending on ResourceResolver
implementations.
If a non-null exchangeHint
is given, then it can be understood by the specific ResourceResolver
implementation for its specific backend.
resolveBinaryAsResource
in interface ResourceServiceBroker
resourceSpace
- Resource space name to resolve a proper ResourceResolver
absResourcePath
- absolute path of a Binary
exchangeHint
- a message exchange hint for the backendResource
object converted from the single Binary
representation by absPath
ResourceException
- if resource resolution operation failspublic Resource resolveBinaryAsResource(String resourceSpace, String absResourcePath, Map<String,Object> pathVariables) throws ResourceException
ResourceServiceBroker
ResourceResolver
by the specified resourceSpace
, resolves single Binary
representation by absPath
, and converts the Binary
representation into a Resource
.
absPath
is a domain-specific path template that should be meaningful to the backend.
For example, if the backend is a REST API, then absPath
can be a URI path or part of URL. Or, as
an example, the absPath
can be an index name of a search index, table name of databases or node
path in JCR, totally depending on ResourceResolver
implementations.
The absPath
template is expanded using the given path variables (pathVariables
), if any.
For example, if pathVariables
looks like {"var1":"hello","var2":"world"}
and absPath
is ".../some/path/{var1}/{var2}/overview"
, then it is expanded to
".../some/path/hello/world/overview"
by the pathVariables
when making a real request
to the backend.
resolveBinaryAsResource
in interface ResourceServiceBroker
resourceSpace
- Resource space name to resolve a proper ResourceResolver
absResourcePath
- absolute path of a Binary
pathVariables
- the variables to expand the template given by absPath
Resource
object converted from the single Binary
representation by absPath
ResourceException
- if resource resolution operation failspublic Resource findResources(String resourceSpace, String baseAbsPath) throws ResourceException
ResourceResolver
by the specified resourceSpace
and search Resource
representations from baseAbsPath
and returns a parent Resource
representation which contains
a collection of child Resource
representations.
baseAbsPath
is a domain-specific path template that should be meaningful to the backend.
For example, if the backend is a REST API, then baseAbsPath
can be a URI path or part of URL. Or, as
an example, the baseAbsPath
can be an index name of a search index, table name of databases or node
path in JCR, totally depending on ResourceResolver
implementations.
findResources
in interface ResourceServiceBroker
resourceSpace
- Resource space name to resolve a proper ResourceResolver
baseAbsPath
- base absolute path of a Resource
Resource
representation which contains a collection of child Resource
representationsResourceException
- if resource resolution operation failspublic Resource findResources(String resourceSpace, String baseAbsPath, ExchangeHint exchangeHint) throws ResourceException
ResourceResolver
by the specified resourceSpace
and search Resource
representations from baseAbsPath
and returns a parent Resource
representation which contains
a collection of child Resource
representations.
baseAbsPath
is a domain-specific path template that should be meaningful to the backend.
For example, if the backend is a REST API, then baseAbsPath
can be a URI path or part of URL. Or, as
an example, the baseAbsPath
can be an index name of a search index, table name of databases or node
path in JCR, totally depending on ResourceResolver
implementations.
If a non-null exchangeHint
is given, then it can be understood by the specific ResourceResolver
implementation for its specific backend.
findResources
in interface ResourceServiceBroker
resourceSpace
- Resource space name to resolve a proper ResourceResolver
baseAbsPath
- base absolute path of a Resource
exchangeHint
- a message exchange hint for the backendResource
representation which contains a collection of child Resource
representationsResourceException
- if resource resolution operation failspublic Resource findResources(String resourceSpace, String baseAbsPath, Map<String,Object> pathVariables) throws ResourceException
ResourceResolver
by the specified resourceSpace
and search Resource
representations from baseAbsPath
and returns a parent Resource
representation which contains
a collection of child Resource
representations.
baseAbsPath
is a domain-specific path template that should be meaningful to the backend.
For example, if the backend is a REST API, then baseAbsPath
can be a URI path or part of URL. Or, as
an example, the baseAbsPath
can be an index name of a search index, table name of databases or node
path in JCR, totally depending on ResourceResolver
implementations.
The baseAbsPath
template is expanded using the given path variables (pathVariables
), if any.
For example, if pathVariables
looks like {"var1":"hello","var2":"world"}
and baseAbsPath
is ".../some/path/{var1}/{var2}/overview"
, then it is expanded to
".../some/path/hello/world/overview"
by the pathVariables
when making a real request
to the backend.
findResources
in interface ResourceServiceBroker
resourceSpace
- Resource space name to resolve a proper ResourceResolver
baseAbsPath
- base absolute path of a Resource
pathVariables
- the variables to expand the template given by absPath
Resource
representation which contains a collection of child Resource
representationsResourceException
- if resource resolution operation failspublic ResourceLink resolveLink(String resourceSpace, Resource resource) throws ResourceException
ResourceResolver
by the specified resourceSpace
and resolves a ResourceLink
for the given resource
.resolveLink
in interface ResourceServiceBroker
resourceSpace
- Resource space name to resolve a proper ResourceResolver
resource
- resource representationResourceLink
for the given resource
ResourceException
- if resource resolution operation failspublic ResourceLink resolveLink(String resourceSpace, Resource resource, Map<String,Object> linkVariables) throws ResourceException
ResourceResolver
by the specified resourceSpace
and resolves a ResourceLink
for the given resource
with passing linkVariables
that can be used by implementation to
expand its internal link generation template.
How the linkVariables
is used in link generation template expansion is totally up to an implementation.
resolveLink
in interface ResourceServiceBroker
resourceSpace
- Resource space name to resolve a proper ResourceResolver
resource
- resource representationlinkVariables
- the variables to expand the internal link generation templateResourceLink
for the given resource
ResourceException
- if resource resolution operation failspublic ResourceDataCache getResourceDataCache(String resourceSpace) throws ResourceException
ResourceDataCache
) for the specified
resourceSpace
, or null if caching is disabled.
An implementation may return a default resource cache store representation (ResourceDataCache
)
as a fallback if the resolved ResourceResolver
doesn't have its own ResourceDataCache
instance
(in other words, if the resolved ResourceCacheResolvable.getResourceDataCache()
return null).
If an underlying resource resolver is explicitly disabled on caching (in other words, if the resolved
ResourceCacheResolvable.isCacheEnabled()
returns false), it should return null.
getResourceDataCache
in interface ResourceServiceBroker
resourceSpace
- Resource space name to resolve a proper ResourceResolver
ResourceDataCache
) for the specified
resourceSpace
, or a fallback ResourceDataCache
if the resolved ResourceResolver
doesn't have its own ResourceDataCache
instanceResourceException
- if resource space is not foundpublic ResourceBeanMapper getResourceBeanMapper(String resourceSpace) throws ResourceException
ResourceBeanMapper
for the given resourceSpace
.getResourceBeanMapper
in interface ResourceServiceBroker
resourceSpace
- Resource space name to resolve a proper ResourceResolver
ResourceBeanMapper
for the given resourceSpace
ResourceException
- if resource space is not foundpublic URI resolveFullURI(String resourceSpace, String absPath) throws ResourceException
ResourceServiceBroker
resourceSpace
and the absPath
.
Or returns null if the backend cannot support a full URI access.
absPath
is a domain-specific path template that should be meaningful to the backend.
For example, if the backend is a REST API, then absPath
can be a URI path or part of URL. Or, as
an example, the absPath
can be an index name of a search index, table name of databases or node
path in JCR, totally depending on ResourceResolver
implementations.
resolveFullURI
in interface ResourceServiceBroker
resourceSpace
- Resource space name to resolve a proper ResourceResolver
absPath
- absolute path of a Resource
absPath
ResourceException
- if resource resolution operation failspublic URI resolveFullURI(String resourceSpace, String absPath, Map<String,Object> pathVariables) throws ResourceException
ResourceServiceBroker
resourceSpace
and the absPath
.
Or returns null if the backend cannot support a full URI access.
absPath
is a domain-specific path template that should be meaningful to the backend.
For example, if the backend is a REST API, then absPath
can be a URI path or part of URL. Or, as
an example, the absPath
can be an index name of a search index, table name of databases or node
path in JCR, totally depending on ResourceResolver
implementations.
The absPath
template is expanded using the given path variables (pathVariables
), if any.
For example, if pathVariables
looks like {"var1":"hello","var2":"world"}
and absPath
is ".../some/path/{var1}/{var2}/overview"
, then it is expanded to
".../some/path/hello/world/overview"
by the pathVariables
.
resolveFullURI
in interface ResourceServiceBroker
resourceSpace
- Resource space name to resolve a proper ResourceResolver
absPath
- absolute path of a Resource
pathVariables
- the variables to expand the template given by absPath
absPath
ResourceException
- if resource resolution operation failsprotected ResourceResolver getResourceResolver(String resourceSpace) throws ResourceException
ResourceResolver
by the specified resourceSpace
.resourceSpace
- resource space nameResourceResolver
by the specified resourceSpace
ResourceException
- if resource resolve is not foundCopyright © 2017–2020 Hippo B.V. (http://www.onehippo.com). All rights reserved.