public class FetchConfigurationImpl extends Object implements FetchConfiguration, Cloneable
Modifier and Type | Class and Description |
---|---|
protected static class |
FetchConfigurationImpl.ConfigurationState
Configurable state shared throughout a traversal chain.
|
DEFAULT, FETCH_LOAD, FETCH_NONE, FETCH_REF
LOCK_NONE, LOCK_READ, LOCK_WRITE
LOCKSCOPE_EXTENDED, LOCKSCOPE_NORMAL
FLUSH_FALSE, FLUSH_TRUE, FLUSH_WITH_CONNECTION
Modifier | Constructor and Description |
---|---|
|
FetchConfigurationImpl() |
protected |
FetchConfigurationImpl(FetchConfigurationImpl.ConfigurationState state) |
Modifier and Type | Method and Description |
---|---|
FetchConfiguration |
addFetchGroup(String name)
Adds
group to the set of fetch group names to
use when loading objects. |
FetchConfiguration |
addFetchGroups(Collection<String> groups)
Adds
groups to the set of fetch group names to
use when loading objects. |
FetchConfiguration |
addField(String field)
Adds
field to the set of fully-qualified field names to
use when loading objects. |
FetchConfiguration |
addFields(Collection<String> fields)
Adds
fields to the set of fully-qualified field names to
use when loading objects. |
FetchConfiguration |
clearFetchGroups()
Clears the set of fetch group names to use when loading
data.
|
FetchConfiguration |
clearFields()
Clears the set of field names to use when loading
data.
|
Object |
clone()
Clone this instance.
|
void |
copy(FetchConfiguration fetch)
Copy the state from the given fetch configuration to this one.
|
DataCacheRetrieveMode |
getCacheRetrieveMode()
Gets the current retrieve mode for data cache.
|
DataCacheStoreMode |
getCacheStoreMode()
Gets the current storage mode for data cache.
|
StoreContext |
getContext()
Return the context associated with this configuration;
may be null if it has not been set or this object has been serialized.
|
boolean |
getExtendedPathLookup()
Affirms if extended path lookup feature is active.
|
int |
getFetchBatchSize()
Return the fetch batch size for large result set support.
|
Set<String> |
getFetchGroups()
Returns immutable set of names of the fetch groups that this component
will use when loading objects.
|
Set<String> |
getFields()
Returns the set of fully-qualified field names that this component
will use when loading objects.
|
int |
getFlushBeforeQueries()
The query automatic flush configuration.
|
Object |
getHint(String name)
Get the hint value for the specific key as originally set by the caller, or null if the hint is not specified.
|
Map<String,Object> |
getHints()
Gets the current hints set on this receiver.
|
int |
getLockScope()
The lock scope for next fetch.
|
int |
getLockTimeout()
The number of milliseconds to wait for an object lock, or -1 for no
limit.
|
int |
getMaxFetchDepth()
Return the maximum depth of fetched instance graph.
|
boolean |
getQueryCacheEnabled()
Return whether or not query caching is enabled.
|
int |
getQueryTimeout()
The number of milliseconds to wait for a query, or -1 for no
limit.
|
int |
getReadLockLevel()
The lock level to use for locking loaded objects.
|
Set<Class<?>> |
getRootClasses()
Root classes for recursive operations.
|
Set<Object> |
getRootInstances()
Root instances for recursive operations.
|
Collection<String> |
getSupportedHints() |
int |
getWriteLockLevel()
The lock level to use for locking dirtied objects.
|
boolean |
hasFetchGroup(String group)
Return true if the given fetch group has been added.
|
boolean |
hasFetchGroupAll() |
boolean |
hasFetchGroupDefault() |
boolean |
hasField(String field)
Return true if the given fully-qualified field has been added.
|
boolean |
isDefaultPUFetchGroupConfigurationOnly()
Affirm if the Fetch Plan currently matches the Persistence Unit's configured default.
|
boolean |
isFetchConfigurationSQLCacheAdmissible()
Whether SQL generated by the FetchConfiguration's current configuration should be cached.
|
boolean |
isHintSet(String key)
Affirms if the given key is set as a hint.
|
void |
lock()
Synchronize on internal lock if multithreaded is true.
|
protected FetchConfigurationImpl |
newInstance(FetchConfigurationImpl.ConfigurationState state)
Return a new hollow instance.
|
ResultList<?> |
newResultList(ResultObjectProvider rop)
Return a new result list for the current fetch configuration.
|
protected static void |
populateHintSetter(Class<?> target,
String hint,
Class<?> type,
String... prefixes)
Populate static registry of hints.
|
protected static void |
populateHintSetter(Class<?> target,
String method,
String hint,
Class<?> type,
String... prefixes)
Populate static registry of hints.
|
FetchConfiguration |
removeFetchGroup(String group)
Remove the given fetch group.
|
FetchConfiguration |
removeFetchGroups(Collection<String> groups)
Removes
groups from the set of fetch group names
to use when loading objects. |
FetchConfiguration |
removeField(String field)
Remove the given fully-qualified field.
|
FetchConfiguration |
removeFields(Collection<String> fields)
Removes
fields from the set of fully-qualified field names
to use when loading objects. |
void |
removeHint(String... keys)
Removes the given keys and their hint value.
|
Object |
removeHint(String name) |
int |
requiresFetch(FieldMetaData fm)
Affirms if the given field requires to be fetched in the context
of current fetch operation.
|
boolean |
requiresLoad()
Return false if we know that the object being fetched with this
configuration does not require a load, because this configuration came
from a traversal of a
FetchConfiguration.FETCH_REF field. |
FetchConfiguration |
resetFetchGroups()
Resets the set of fetch groups to the list in the global configuration.
|
void |
setCacheRetrieveMode(DataCacheRetrieveMode mode)
Sets the current retrieve mode for data cache.
|
void |
setCacheStoreMode(DataCacheStoreMode mode)
Sets the current storage mode for data cache.
|
void |
setContext(StoreContext ctx)
Called automatically by the system to associate the fetch configuration
with a context before use.
|
FetchConfiguration |
setExtendedPathLookup(boolean flag)
Sets extended path lookup feature.
|
FetchConfiguration |
setFetchBatchSize(int fetchBatchSize)
Set the fetch batch size for large result set support.
|
FetchConfiguration |
setFlushBeforeQueries(int flush)
The query automatic flush configuration.
|
void |
setHint(String key,
Object value)
Same as
setHint(key, value, value) . |
void |
setHint(String key,
Object value,
Object original)
Sets the hint to the given value.
|
FetchConfiguration |
setLockScope(int scope)
The lock scope for next fetch.
|
FetchConfiguration |
setLockTimeout(int timeout)
The number of milliseconds to wait for an object lock, or -1 for no
limit.
|
FetchConfiguration |
setMaxFetchDepth(int depth)
Set the maximum depth of the fetched instance graph.
|
FetchConfiguration |
setQueryCacheEnabled(boolean cache)
Control whether or not query caching is enabled.
|
FetchConfiguration |
setQueryTimeout(int timeout)
The number of milliseconds to wait for a query, or -1 for no
limit.
|
FetchConfiguration |
setReadLockLevel(int level)
The lock level to use for locking loaded objects.
|
FetchConfiguration |
setRootClasses(Collection<Class<?>> classes)
Root classes for recursive operations.
|
FetchConfiguration |
setRootInstances(Collection<?> instances)
Root instances for recursive operations.
|
FetchConfiguration |
setWriteLockLevel(int level)
The lock level to use for locking dirtied objects.
|
String |
toString() |
protected String |
toString(Object o) |
FetchConfiguration |
traverse(FieldMetaData fm)
Traverse the given field to generate (possibly) a new configuration
state.
|
void |
unlock()
Release internal lock if multithreaded is true.
|
public FetchConfigurationImpl()
protected FetchConfigurationImpl(FetchConfigurationImpl.ConfigurationState state)
protected static void populateHintSetter(Class<?> target, String hint, Class<?> type, String... prefixes)
target
- The name of the target class that will receive this hint.hint
- the simple name of the hint without a prefix.type
- the value argument type of the target setter method.prefixes
- the prefixes will be added to the simple hint name.protected static void populateHintSetter(Class<?> target, String method, String hint, Class<?> type, String... prefixes)
target
- The name of the target class that will receive this hint.method
- The name of the method in the target class that will receive this hint.hint
- the simple name of the hint without a prefix.type
- the value argument type of the target setter method.prefixes
- the prefixes will be added to the simple hint name.public StoreContext getContext()
FetchConfiguration
getContext
in interface FetchConfiguration
public void setContext(StoreContext ctx)
FetchConfiguration
setContext
in interface FetchConfiguration
public Object clone()
clone
in interface FetchConfiguration
clone
in class Object
protected FetchConfigurationImpl newInstance(FetchConfigurationImpl.ConfigurationState state)
public void copy(FetchConfiguration fetch)
FetchConfiguration
copy
in interface FetchConfiguration
public int getFetchBatchSize()
FetchConfiguration
openjpa.FetchBatchSize
setting. Note
that this property will be ignored under some data stores.getFetchBatchSize
in interface FetchConfiguration
public FetchConfiguration setFetchBatchSize(int fetchBatchSize)
FetchConfiguration
openjpa.FetchBatchSize
setting. Note
that this property will be ignored under some data stores.setFetchBatchSize
in interface FetchConfiguration
public int getMaxFetchDepth()
FetchConfiguration
1
getMaxFetchDepth
in interface FetchConfiguration
public FetchConfiguration setMaxFetchDepth(int depth)
FetchConfiguration
setMaxFetchDepth
in interface FetchConfiguration
depth
- denotes limiting length of traversal path from a root
instance. -1
implies no limit. 0
is not
permissible.public boolean getQueryCacheEnabled()
FetchConfiguration
true
but the datacache plugin is not installed, caching
will not be enabled. If this
returns false
, query caching will not be used
even if the datacache plugin is installed.getQueryCacheEnabled
in interface FetchConfiguration
public FetchConfiguration setQueryCacheEnabled(boolean cache)
FetchConfiguration
setQueryCacheEnabled
in interface FetchConfiguration
public int getFlushBeforeQueries()
FetchConfiguration
getFlushBeforeQueries
in interface FetchConfiguration
public boolean getExtendedPathLookup()
FetchConfiguration
getExtendedPathLookup
in interface FetchConfiguration
public FetchConfiguration setExtendedPathLookup(boolean flag)
FetchConfiguration
setExtendedPathLookup
in interface FetchConfiguration
public FetchConfiguration setFlushBeforeQueries(int flush)
FetchConfiguration
setFlushBeforeQueries
in interface FetchConfiguration
public Set<String> getFetchGroups()
FetchConfiguration
openjpa.FetchGroups
setting. This set is not thread safe.getFetchGroups
in interface FetchConfiguration
public boolean hasFetchGroup(String group)
FetchConfiguration
hasFetchGroup
in interface FetchConfiguration
public boolean hasFetchGroupDefault()
public boolean hasFetchGroupAll()
public FetchConfiguration addFetchGroup(String name)
FetchConfiguration
group
to the set of fetch group names to
use when loading objects.addFetchGroup
in interface FetchConfiguration
public FetchConfiguration addFetchGroups(Collection<String> groups)
FetchConfiguration
groups
to the set of fetch group names to
use when loading objects.addFetchGroups
in interface FetchConfiguration
public FetchConfiguration removeFetchGroup(String group)
FetchConfiguration
removeFetchGroup
in interface FetchConfiguration
public FetchConfiguration removeFetchGroups(Collection<String> groups)
FetchConfiguration
groups
from the set of fetch group names
to use when loading objects.removeFetchGroups
in interface FetchConfiguration
public FetchConfiguration clearFetchGroups()
FetchConfiguration
clearFetchGroups
in interface FetchConfiguration
public FetchConfiguration resetFetchGroups()
FetchConfiguration
resetFetchGroups
in interface FetchConfiguration
public boolean isDefaultPUFetchGroupConfigurationOnly()
FetchConfiguration
isDefaultPUFetchGroupConfigurationOnly
in interface FetchConfiguration
public boolean isFetchConfigurationSQLCacheAdmissible()
FetchConfiguration
isFetchConfigurationSQLCacheAdmissible
in interface FetchConfiguration
public Set<String> getFields()
FetchConfiguration
getFields
in interface FetchConfiguration
public boolean hasField(String field)
FetchConfiguration
hasField
in interface FetchConfiguration
public FetchConfiguration addField(String field)
FetchConfiguration
field
to the set of fully-qualified field names to
use when loading objects.addField
in interface FetchConfiguration
public FetchConfiguration addFields(Collection<String> fields)
FetchConfiguration
fields
to the set of fully-qualified field names to
use when loading objects.addFields
in interface FetchConfiguration
public FetchConfiguration removeField(String field)
FetchConfiguration
removeField
in interface FetchConfiguration
public FetchConfiguration removeFields(Collection<String> fields)
FetchConfiguration
fields
from the set of fully-qualified field names
to use when loading objects.removeFields
in interface FetchConfiguration
public FetchConfiguration clearFields()
FetchConfiguration
clearFields
in interface FetchConfiguration
public DataCacheRetrieveMode getCacheRetrieveMode()
FetchConfiguration
getCacheRetrieveMode
in interface FetchConfiguration
public DataCacheStoreMode getCacheStoreMode()
FetchConfiguration
getCacheStoreMode
in interface FetchConfiguration
public void setCacheRetrieveMode(DataCacheRetrieveMode mode)
FetchConfiguration
setCacheRetrieveMode
in interface FetchConfiguration
public void setCacheStoreMode(DataCacheStoreMode mode)
FetchConfiguration
setCacheStoreMode
in interface FetchConfiguration
public int getLockTimeout()
FetchConfiguration
getLockTimeout
in interface FetchConfiguration
public FetchConfiguration setLockTimeout(int timeout)
FetchConfiguration
setLockTimeout
in interface FetchConfiguration
public int getQueryTimeout()
FetchConfiguration
getQueryTimeout
in interface FetchConfiguration
public FetchConfiguration setQueryTimeout(int timeout)
FetchConfiguration
setQueryTimeout
in interface FetchConfiguration
public int getLockScope()
FetchConfiguration
getLockScope
in interface FetchConfiguration
public FetchConfiguration setLockScope(int scope)
FetchConfiguration
setLockScope
in interface FetchConfiguration
public int getReadLockLevel()
FetchConfiguration
getReadLockLevel
in interface FetchConfiguration
public FetchConfiguration setReadLockLevel(int level)
FetchConfiguration
setReadLockLevel
in interface FetchConfiguration
public int getWriteLockLevel()
FetchConfiguration
getWriteLockLevel
in interface FetchConfiguration
public FetchConfiguration setWriteLockLevel(int level)
FetchConfiguration
setWriteLockLevel
in interface FetchConfiguration
public ResultList<?> newResultList(ResultObjectProvider rop)
FetchConfiguration
newResultList
in interface FetchConfiguration
public Map<String,Object> getHints()
getHints
in interface FetchConfiguration
public boolean isHintSet(String key)
isHintSet
in interface FetchConfiguration
public void removeHint(String... keys)
public Collection<String> getSupportedHints()
public void setHint(String key, Object value)
setHint(key, value, value)
.setHint
in interface FetchConfiguration
value
- the value of the hint. If the hint has a corresponding setter, then
the type of value must be same as the setter argument.setHint(String, Object, Object)
public void setHint(String key, Object value, Object original)
setHint
in interface FetchConfiguration
key
- a hint key. If it is one of the statically registered hint key then the setter is called.value
- to be set. The given value type must match the argument type of the setter, if one exists.original
- value as specified by the caller. This value is put in the hints map.IllegalArgumentException
- if the given value is not acceptable by the setter method, if one
exists corresponds the given hint key.public Object getHint(String name)
FetchConfiguration
getHint
in interface FetchConfiguration
public Set<Class<?>> getRootClasses()
FetchConfiguration
getRootClasses
in interface FetchConfiguration
public FetchConfiguration setRootClasses(Collection<Class<?>> classes)
FetchConfiguration
setRootClasses
in interface FetchConfiguration
public Set<Object> getRootInstances()
FetchConfiguration
getRootInstances
in interface FetchConfiguration
public FetchConfiguration setRootInstances(Collection<?> instances)
FetchConfiguration
setRootInstances
in interface FetchConfiguration
public void lock()
FetchConfiguration
lock
in interface FetchConfiguration
public void unlock()
FetchConfiguration
unlock
in interface FetchConfiguration
public int requiresFetch(FieldMetaData fm)
FetchConfiguration
FetchConfiguration.FETCH_NONE
,
FetchConfiguration.FETCH_LOAD
, FETCH_REF
.requiresFetch
in interface FetchConfiguration
public boolean requiresLoad()
FetchConfiguration
FetchConfiguration.FETCH_REF
field.requiresLoad
in interface FetchConfiguration
public FetchConfiguration traverse(FieldMetaData fm)
FetchConfiguration
traverse
in interface FetchConfiguration
Copyright © 2006–2017 Apache Software Foundation. All rights reserved.