Class FetchPlanImpl

  • All Implemented Interfaces:
    FetchPlan
    Direct Known Subclasses:
    JDBCFetchPlanImpl

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

      • _precedence

        protected static java.util.Map<java.lang.String,​java.util.List<java.lang.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 java.util.Map<java.lang.String,​HintValueConverter[]> _hints
        Structure holds one or more converters for a user-specified hint value.
    • Constructor Detail

      • FetchPlanImpl

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

      • registerHint

        protected static void registerHint​(java.lang.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.
      • 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
      • getFetchGroups

        public java.util.Collection<java.lang.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​(java.lang.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​(java.lang.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​(java.util.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
      • removeFetchGroups

        public FetchPlan removeFetchGroups​(java.lang.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​(java.util.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 java.util.Collection<java.lang.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​(java.lang.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​(java.lang.Class cls,
                                java.lang.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​(java.lang.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​(java.lang.Class cls,
                                  java.lang.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​(java.lang.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​(java.lang.Class cls,
                                   java.lang.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​(java.util.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​(java.lang.Class cls,
                                   java.util.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​(java.lang.String field)
        Description copied from interface: FetchPlan
        Remove the given fully-qualified field.
        Specified by:
        removeField in interface FetchPlan
      • removeField

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

        public FetchPlan removeFields​(java.lang.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​(java.lang.Class cls,
                                      java.lang.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​(java.util.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​(java.lang.Class cls,
                                      java.util.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
      • getHint

        public java.lang.Object getHint​(java.lang.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​(java.lang.String key,
                            java.lang.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​(java.util.Map<java.lang.String,​java.lang.Object> hints)
      • getHints

        public java.util.Map<java.lang.String,​java.lang.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 java.lang.Object
      • equals

        public boolean equals​(java.lang.Object other)
        Overrides:
        equals in class java.lang.Object