public class ClassScheme extends AbstractLocalCachingScheme<Object> implements ParameterizedBuilder<Object>, ParameterizedBuilder.ReflectionSupport
ClassScheme
class is responsible for building custom CachingScheme
s and
custom CacheStoreScheme
s.
Note: The ParameterizedBuilder
interface is needed by both
CacheStoreScheme
and ElementProcessorHelper
.
This class will automatically inject the following types and named values into realized classes that have been annotated with @Injectable.
BackingMapManagerContext
(optionally named "manager-context")
ConfigurableCacheFactory
String
.class named "cache-name")
ClassLoader
(optionally named "class-loader")
ResourceRegistry
CacheConfig
ResourceRegistry
provided by the
ConfigurableCacheFactory
.
Injectable
ParameterizedBuilder.ReflectionSupport
MapBuilder.Dependencies
m_serviceDependencies
DELIM_APPLICATION_SCOPE, DELIM_DOMAIN_PARTITION
Constructor and Description |
---|
ClassScheme() |
Modifier and Type | Method and Description |
---|---|
List<NamedEventInterceptorBuilder> |
getEventInterceptorBuilders()
|
String |
getServiceType()
Return the service type.
|
boolean |
isRunningClusterNeeded()
Return true if a running cluster is needed before using a service.
|
Object |
realize(com.tangosol.config.expression.ParameterResolver resolver,
ClassLoader loader,
ParameterList listParameters)
Realizes (creates if necessary) an instance of a object of type T, using the provided
ParameterResolver
to resolve values any referenced Parameter s. |
NamedCache |
realizeCache(com.tangosol.config.expression.ParameterResolver resolver,
MapBuilder.Dependencies dependencies)
Realizes a
NamedCache (possibly "ensuring it") based on the state
of the builder, the provided ParameterResolver and MapBuilder
dependencies. |
Map |
realizeMap(com.tangosol.config.expression.ParameterResolver resolver,
MapBuilder.Dependencies dependencies)
Realize a
Map based on the state of the MapBuilder ,
resolvable parameters and provided MapBuilder.Dependencies . |
boolean |
realizes(Class<?> clzClass,
com.tangosol.config.expression.ParameterResolver resolver,
ClassLoader loader)
Determines if the
ParameterizedBuilder will realize an instance of the specified class (without
requiring the builder to actually realize an object). |
protected void |
validate()
Validate the ClassScheme properties.
|
getCustomBuilder, setCustomBuilder
establishMapListeners, getDefaultParameterResolver, getListenerBuilder, realizeBackingMapManager, setListenerBuilder, validate
getDefaultServiceName, getScopedServiceName, getScopeName, getServiceBuilder, getServiceDependencies, getServiceName, getXml, injectScopeNameIntoService, isAutoStart, realizeService, setAutoStart, setScopeName, setServiceDependencies, setServiceName, setXml
getSchemeName, isAnonymous, setSchemeName
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getScopedServiceName, getServiceBuilder, getServiceName, isAutoStart
getSchemeName, isAnonymous
public String getServiceType()
getServiceType
in interface ServiceScheme
getServiceType
in class AbstractLocalCachingScheme<Object>
public List<NamedEventInterceptorBuilder> getEventInterceptorBuilders()
List
of NamedEventInterceptorBuilder
s that have been
defined for the ServiceScheme
.
Note: For those ServiceScheme
s don't support event interceptors,
the returned value must be an empty list.
getEventInterceptorBuilders
in interface ServiceScheme
getEventInterceptorBuilders
in class AbstractLocalCachingScheme<Object>
List
over NamedEventInterceptorBuilder
spublic boolean isRunningClusterNeeded()
isRunningClusterNeeded
in interface ServiceBuilder
isRunningClusterNeeded
in class AbstractLocalCachingScheme<Object>
true
if a running cluster is needed before using a servicepublic NamedCache realizeCache(com.tangosol.config.expression.ParameterResolver resolver, MapBuilder.Dependencies dependencies)
NamedCache
(possibly "ensuring it") based on the state
of the builder, the provided ParameterResolver
and MapBuilder
dependencies.
The MapBuilder
dependencies are required to satisfy the requirement
when realizing a NamedCache
additionally involves realizing one
or more internal Map
s.
realizeCache
in interface NamedCacheBuilder
realizeCache
in class AbstractCachingScheme
resolver
- the ParameterResolverdependencies
- the MapBuilder
dependenciesNamedCache
public Map realizeMap(com.tangosol.config.expression.ParameterResolver resolver, MapBuilder.Dependencies dependencies)
Map
based on the state of the MapBuilder
,
resolvable parameters and provided MapBuilder.Dependencies
.realizeMap
in interface MapBuilder
realizeMap
in class AbstractCachingScheme
resolver
- the ParameterResolver
dependencies
- the MapBuilder.Dependencies
for realizing the Map
Map
public Object realize(com.tangosol.config.expression.ParameterResolver resolver, ClassLoader loader, ParameterList listParameters)
ParameterResolver
to resolve values any referenced Parameter
s.realize
in interface ParameterizedBuilder<Object>
resolver
- the ParameterResolver
for resolving named Parameter
sloader
- the ClassLoader
for loading any necessary classes and if null
the
ClassLoader
used to load the builder will be used insteadlistParameters
- an optional ParameterList
(may be null
) to be used for realizing the
instance, eg: used as constructor parameterspublic boolean realizes(Class<?> clzClass, com.tangosol.config.expression.ParameterResolver resolver, ClassLoader loader)
ParameterizedBuilder
will realize an instance of the specified class (without
requiring the builder to actually realize an object).
This method is synonymous with the Java keyword instanceof
but allows dynamic runtime type
querying of the types of objects a builder may realize.
realizes
in interface ParameterizedBuilder.ReflectionSupport
clzClass
- the expected typeresolver
- the ParameterResolver
to use for resolving necessary Parameter
sloader
- the ClassLoader
for loading any necessary classes and if null
the
ClassLoader
used to load the builder will be used insteadtrue
if the ParameterizedBuilder
will realize an instance of the class,
false
otherwiseprotected void validate()
validate
in class AbstractScheme