Class FetchPlanImpl

java.lang.Object
org.apache.openjpa.persistence.FetchPlanImpl
All Implemented Interfaces:
FetchPlan
Direct Known Subclasses:
JDBCFetchPlanImpl

public class FetchPlanImpl extends Object implements FetchPlan
Implements FetchPlan via delegation to FetchConfiguration.
Since:
0.4.1
Author:
Abe White, Pinaki Poddar
  • Field Details

    • _precedence

      protected static Map<String,List<String>> _precedence
      Structure holds ranking of equivalent hint keys. Each entry value is a list of other keys that are higher rank than the entry key.
    • _hints

      protected static Map<String,HintValueConverter[]> _hints
      Structure holds one or more converters for a user-specified hint value.
  • Constructor Details

    • FetchPlanImpl

      public FetchPlanImpl(FetchConfiguration fetch)
      Constructor; supply delegate.
  • Method Details

    • registerHint

      protected static void registerHint(String[] keys, HintValueConverter... converters)
      Registers a hint key with its value converters.
      Parameters:
      keys - a set of keys in increasing order of ranking. Can not be null or empty.
      converters - array of converters that are attempts in order to convert a user-specified hint value to a value that is consumable by the kernel.
    • newDelegatingFetchConfiguration

      protected DelegatingFetchConfiguration newDelegatingFetchConfiguration(FetchConfiguration fetch)
      Create a new exception-translating delegating fetch configuration.
    • getDelegate

      public FetchConfiguration getDelegate()
      Delegate.
      Specified by:
      getDelegate in interface FetchPlan
    • getMaxFetchDepth

      public int getMaxFetchDepth()
      Description copied from interface: FetchPlan
      The maximum fetch depth when loading an object.
      Specified by:
      getMaxFetchDepth in interface FetchPlan
    • setMaxFetchDepth

      public FetchPlan setMaxFetchDepth(int depth)
      Description copied from interface: FetchPlan
      The maximum fetch depth when loading an object.
      Specified by:
      setMaxFetchDepth in interface FetchPlan
    • getFetchBatchSize

      public int getFetchBatchSize()
      Description copied from interface: FetchPlan
      Return the fetch batch size for large result set support. Defaults to the openjpa.FetchBatchSize setting. Note that this property will be ignored under some data stores.
      Specified by:
      getFetchBatchSize in interface FetchPlan
    • setFetchBatchSize

      public FetchPlan setFetchBatchSize(int fetchBatchSize)
      Description copied from interface: FetchPlan
      Set the fetch batch size for large result set support. Defaults to the openjpa.FetchBatchSize setting. Note that this property will be ignored under some data stores.
      Specified by:
      setFetchBatchSize in interface FetchPlan
    • getQueryResultCacheEnabled

      public boolean getQueryResultCacheEnabled()
      Description copied from interface: FetchPlan
      Return whether or not query caching is enabled. If this returns 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.
      Specified by:
      getQueryResultCacheEnabled in interface FetchPlan
    • setQueryResultCacheEnabled

      public FetchPlan setQueryResultCacheEnabled(boolean cache)
      Description copied from interface: FetchPlan
      Control whether or not query caching is enabled. This has no effect if the datacache plugin is not installed, or if the query cache size is set to zero.
      Specified by:
      setQueryResultCacheEnabled in interface FetchPlan
    • getQueryResultCache

      public boolean getQueryResultCache()
      Specified by:
      getQueryResultCache in interface FetchPlan
    • setQueryResultCache

      public FetchPlan setQueryResultCache(boolean cache)
      Specified by:
      setQueryResultCache in interface FetchPlan
    • getFetchGroups

      public Collection<String> getFetchGroups()
      Description copied from interface: FetchPlan
      Returns the names of the fetch groups that this component will use when loading objects. Defaults to the openjpa.FetchGroups setting.
      Specified by:
      getFetchGroups in interface FetchPlan
    • addFetchGroup

      public FetchPlan addFetchGroup(String group)
      Description copied from interface: FetchPlan
      Adds group to the set of fetch group to use when loading objects.
      Specified by:
      addFetchGroup in interface FetchPlan
    • addFetchGroups

      public FetchPlan addFetchGroups(String... groups)
      Description copied from interface: FetchPlan
      Adds groups to the set of fetch group names to use when loading objects.
      Specified by:
      addFetchGroups in interface FetchPlan
    • addFetchGroups

      public FetchPlan addFetchGroups(Collection groups)
      Description copied from interface: FetchPlan
      Adds groups to the set of fetch group names to use when loading objects.
      Specified by:
      addFetchGroups in interface FetchPlan
    • removeFetchGroup

      public FetchPlan removeFetchGroup(String group)
      Description copied from interface: FetchPlan
      Remove the given fetch group.
      Specified by:
      removeFetchGroup in interface FetchPlan
    • removeFetchGroups

      public FetchPlan removeFetchGroups(String... groups)
      Description copied from interface: FetchPlan
      Removes groups from the set of fetch group names to use when loading objects.
      Specified by:
      removeFetchGroups in interface FetchPlan
    • removeFetchGroups

      public FetchPlan removeFetchGroups(Collection groups)
      Description copied from interface: FetchPlan
      Removes groups from the set of fetch group names to use when loading objects.
      Specified by:
      removeFetchGroups in interface FetchPlan
    • clearFetchGroups

      public FetchPlan clearFetchGroups()
      Description copied from interface: FetchPlan
      Clears the set of fetch group names to use wen loading data. After this operation is invoked, only those fields in the default fetch group (and any requested field) will be loaded when loading an object.
      Specified by:
      clearFetchGroups in interface FetchPlan
    • resetFetchGroups

      public FetchPlan resetFetchGroups()
      Description copied from interface: FetchPlan
      Resets the set of fetch groups to the list in the global configuration.
      Specified by:
      resetFetchGroups in interface FetchPlan
    • getFields

      public Collection<String> getFields()
      Description copied from interface: FetchPlan
      Returns the fully qualified names of the fields that this component will use when loading objects. Defaults to the empty set.
      Specified by:
      getFields in interface FetchPlan
    • hasField

      public boolean hasField(String field)
      Description copied from interface: FetchPlan
      Return true if the given field has been added.
      Specified by:
      hasField in interface FetchPlan
    • hasField

      public boolean hasField(Class cls, String field)
      Description copied from interface: FetchPlan
      Return true if the given field has been added.
      Specified by:
      hasField in interface FetchPlan
    • addField

      public FetchPlan addField(String field)
      Description copied from interface: FetchPlan
      Adds field to the set of fully-qualified field names to use when loading objects.
      Specified by:
      addField in interface FetchPlan
    • addField

      public FetchPlan addField(Class cls, String field)
      Description copied from interface: FetchPlan
      Adds field to the set of field names to use when loading objects.
      Specified by:
      addField in interface FetchPlan
    • addFields

      public FetchPlan addFields(String... fields)
      Description copied from interface: FetchPlan
      Adds fields to the set of fully-qualified field names to use when loading objects.
      Specified by:
      addFields in interface FetchPlan
    • addFields

      public FetchPlan addFields(Class cls, String... fields)
      Description copied from interface: FetchPlan
      Adds fields to the set of field names to use when loading objects.
      Specified by:
      addFields in interface FetchPlan
    • addFields

      public FetchPlan addFields(Collection fields)
      Description copied from interface: FetchPlan
      Adds fields to the set of fully-qualified field names to use when loading objects.
      Specified by:
      addFields in interface FetchPlan
    • addFields

      public FetchPlan addFields(Class cls, Collection fields)
      Description copied from interface: FetchPlan
      Adds fields to the set of field names to use when loading objects.
      Specified by:
      addFields in interface FetchPlan
    • removeField

      public FetchPlan removeField(String field)
      Description copied from interface: FetchPlan
      Remove the given fully-qualified field.
      Specified by:
      removeField in interface FetchPlan
    • removeField

      public FetchPlan removeField(Class cls, String field)
      Description copied from interface: FetchPlan
      Remove the given field.
      Specified by:
      removeField in interface FetchPlan
    • removeFields

      public FetchPlan removeFields(String... fields)
      Description copied from interface: FetchPlan
      Removes fields from the set of fully-qualified field names to use when loading objects.
      Specified by:
      removeFields in interface FetchPlan
    • removeFields

      public FetchPlan removeFields(Class cls, String... fields)
      Description copied from interface: FetchPlan
      Removes fields from the set of field names to use when loading objects.
      Specified by:
      removeFields in interface FetchPlan
    • removeFields

      public FetchPlan removeFields(Collection fields)
      Description copied from interface: FetchPlan
      Removes fields from the set of fully-qualified field names to use when loading objects.
      Specified by:
      removeFields in interface FetchPlan
    • removeFields

      public FetchPlan removeFields(Class cls, Collection fields)
      Description copied from interface: FetchPlan
      Removes fields from the set of field names to use when loading objects.
      Specified by:
      removeFields in interface FetchPlan
    • clearFields

      public FetchPlan clearFields()
      Description copied from interface: FetchPlan
      Clears the set of field names to use wen loading data. After this operation is invoked, only those fields in the configured fetch groups will be loaded when loading an object.
      Specified by:
      clearFields in interface FetchPlan
    • getLockTimeout

      public int getLockTimeout()
      Description copied from interface: FetchPlan
      The number of milliseconds to wait for an object lock, or -1 for no limit.
      Specified by:
      getLockTimeout in interface FetchPlan
    • setLockTimeout

      public FetchPlan setLockTimeout(int timeout)
      Description copied from interface: FetchPlan
      The number of milliseconds to wait for an object lock, or -1 for no limit.
      Specified by:
      setLockTimeout in interface FetchPlan
    • getLockScope

      public jakarta.persistence.PessimisticLockScope getLockScope()
      Description copied from interface: FetchPlan
      The lock scope to use for locking loaded objects.
      Specified by:
      getLockScope in interface FetchPlan
    • setLockScope

      public FetchPlan setLockScope(jakarta.persistence.PessimisticLockScope scope)
      Description copied from interface: FetchPlan
      The lock scope to use for locking loaded objects.
      Specified by:
      setLockScope in interface FetchPlan
    • getQueryTimeout

      public int getQueryTimeout()
      Description copied from interface: FetchPlan
      The number of milliseconds to wait for a query, or -1 for no limit.
      Specified by:
      getQueryTimeout in interface FetchPlan
    • setQueryTimeout

      public FetchPlan setQueryTimeout(int timeout)
      Description copied from interface: FetchPlan
      The number of milliseconds to wait for a query, or -1 for no limit.
      Specified by:
      setQueryTimeout in interface FetchPlan
    • getReadLockMode

      public jakarta.persistence.LockModeType getReadLockMode()
      Description copied from interface: FetchPlan
      The lock level to use for locking loaded objects.
      Specified by:
      getReadLockMode in interface FetchPlan
    • setReadLockMode

      public FetchPlan setReadLockMode(jakarta.persistence.LockModeType mode)
      Description copied from interface: FetchPlan
      The lock level to use for locking loaded objects.
      Specified by:
      setReadLockMode in interface FetchPlan
    • getWriteLockMode

      public jakarta.persistence.LockModeType getWriteLockMode()
      Description copied from interface: FetchPlan
      The lock level to use for locking dirtied objects.
      Specified by:
      getWriteLockMode in interface FetchPlan
    • setWriteLockMode

      public FetchPlan setWriteLockMode(jakarta.persistence.LockModeType mode)
      Description copied from interface: FetchPlan
      The lock level to use for locking dirtied objects.
      Specified by:
      setWriteLockMode in interface FetchPlan
    • getExtendedPathLookup

      public boolean getExtendedPathLookup()
      Description copied from interface: FetchPlan
      Affirms if extended path lookup feature is active.
      Specified by:
      getExtendedPathLookup in interface FetchPlan
    • setExtendedPathLookup

      public FetchPlan setExtendedPathLookup(boolean flag)
      Description copied from interface: FetchPlan
      Sets extended path lookup feature.
      Specified by:
      setExtendedPathLookup in interface FetchPlan
    • getHint

      public Object getHint(String key)
      Description copied from interface: FetchPlan
      Get the hint value for the given key.
      Specified by:
      getHint in interface FetchPlan
      Returns:
      null if the key has not been set.
    • setHint

      public void setHint(String key, Object value)
      Sets the hint after converting the value appropriately. If a higher ranking equivalent hint is already set, then bypasses this hint.
      Specified by:
      setHint in interface FetchPlan
      value - the value of the hint.
    • setHints

      public void setHints(Map<String,Object> hints)
    • getHints

      public Map<String,Object> getHints()
      Description copied from interface: FetchPlan
      Get the hints and their values currently set on this receiver.
      Specified by:
      getHints in interface FetchPlan
      Returns:
      empty map if no hint has been set.
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • getCacheRetrieveMode

      public DataCacheRetrieveMode getCacheRetrieveMode()
      Description copied from interface: FetchPlan
      Gets the current retrieve mode for data cache.
      Specified by:
      getCacheRetrieveMode in interface FetchPlan
    • getCacheStoreMode

      public DataCacheStoreMode getCacheStoreMode()
      Description copied from interface: FetchPlan
      Gets the current storage mode for data cache.
      Specified by:
      getCacheStoreMode in interface FetchPlan
    • setCacheStoreMode

      public FetchPlan setCacheStoreMode(DataCacheStoreMode mode)
      Description copied from interface: FetchPlan
      Sets the current storage mode for data cache.
      Specified by:
      setCacheStoreMode in interface FetchPlan
    • setCacheRetrieveMode

      public FetchPlan setCacheRetrieveMode(DataCacheRetrieveMode mode)
      Description copied from interface: FetchPlan
      Sets the current retrieve mode for data cache.
      Specified by:
      setCacheRetrieveMode in interface FetchPlan