Class QueryCacheStoreQuery

  • All Implemented Interfaces:
    java.io.Serializable, QueryOperations, StoreQuery

    public class QueryCacheStoreQuery
    extends java.lang.Object
    implements StoreQuery
    A StoreQuery implementation that caches the OIDs involved in the query, and can determine whether or not the query has been dirtied.
    Since:
    0.2.5.0
    Author:
    Patrick Linskey
    See Also:
    Serialized Form
    • Constructor Detail

      • QueryCacheStoreQuery

        public QueryCacheStoreQuery​(StoreQuery query,
                                    QueryCache cache)
        Create a new instance that delegates to query if no cached results are available.
    • Method Detail

      • getCache

        public QueryCache getCache()
        Return the QueryCache that this object is associated with.
      • getDelegate

        public StoreQuery getDelegate()
        Delegate.
      • writeReplace

        public java.lang.Object writeReplace()
                                      throws java.io.ObjectStreamException
        Throws:
        java.io.ObjectStreamException
      • setContext

        public void setContext​(QueryContext qctx)
        Description copied from interface: StoreQuery
        Set the current query context. This will be called before use.
        Specified by:
        setContext in interface StoreQuery
      • setQuery

        public boolean setQuery​(java.lang.Object query)
        Description copied from interface: StoreQuery
        This is invoked when the user or a facade creates a new query with an object that the system does not recognize. Return true if the object is recognized by the store, false otherwise.
        Specified by:
        setQuery in interface StoreQuery
      • getFilterListener

        public FilterListener getFilterListener​(java.lang.String tag)
        Description copied from interface: StoreQuery
        Return the standard filter listener for the given tag, or null.
        Specified by:
        getFilterListener in interface StoreQuery
      • newCompilationKey

        public java.lang.Object newCompilationKey()
        Description copied from interface: StoreQuery
        Create a new key for caching compiled query information. May be null.
        Specified by:
        newCompilationKey in interface StoreQuery
      • newCompilation

        public java.lang.Object newCompilation()
        Description copied from interface: StoreQuery
        Create a new compilation for this query. May be null.
        Specified by:
        newCompilation in interface StoreQuery
      • getCompilation

        public java.lang.Object getCompilation()
        Description copied from interface: StoreQuery
        Get the current compilation for this query. If it is null, do not create.
        Specified by:
        getCompilation in interface StoreQuery
      • populateFromCompilation

        public void populateFromCompilation​(java.lang.Object comp)
        Description copied from interface: StoreQuery
        Populate internal data from compilation.
        Specified by:
        populateFromCompilation in interface StoreQuery
      • invalidateCompilation

        public void invalidateCompilation()
        Description copied from interface: StoreQuery
        Invalidate any internal compilation state.
        Specified by:
        invalidateCompilation in interface StoreQuery
      • supportsDataStoreExecution

        public boolean supportsDataStoreExecution()
        Description copied from interface: StoreQuery
        True if this query supports datastore execution, false if it can only run in memory.
        Specified by:
        supportsDataStoreExecution in interface StoreQuery
      • supportsInMemoryExecution

        public boolean supportsInMemoryExecution()
        Description copied from interface: StoreQuery
        True if this query supports in-memory execution, false if it can only run against the datastore.
        Specified by:
        supportsInMemoryExecution in interface StoreQuery
      • newInMemoryExecutor

        public StoreQuery.Executor newInMemoryExecutor​(ClassMetaData meta,
                                                       boolean subs)
        Description copied from interface: StoreQuery
        Return an executor for in-memory execution of this query. Executors must be cachable and thread safe. If this class returns true from StoreQuery.supportsAbstractExecutors(), the given metadata will always be for the candidate class of this query, or possibly null if the candidate class is not itself persistence capable (like an interface or abstract base class). Otherwise, the given type will be a mapped class.
        Specified by:
        newInMemoryExecutor in interface StoreQuery
        subs - whether to include dependent mapped subclasses in the results; independent subclasses should never be included
      • newDataStoreExecutor

        public StoreQuery.Executor newDataStoreExecutor​(ClassMetaData meta,
                                                        boolean subs)
        Description copied from interface: StoreQuery
        Return an executor for datastore execution of this query. Executors must be cachable and thread safe. If this class returns true from StoreQuery.supportsAbstractExecutors(), the given metadata will always be for the candidate class of this query, or possibly null if the candidate class is not itself persistence capable (like an interface or abstract base class). Otherwise, the given type will be a mapped class.
        Specified by:
        newDataStoreExecutor in interface StoreQuery
        subs - whether to include dependent mapped subclasses in the results; independent subclasses should never be included
      • supportsAbstractExecutors

        public boolean supportsAbstractExecutors()
        Description copied from interface: StoreQuery
        Return true if this query supports execution against abstract or interface types. Returns false by default, meaning we will only request executors for persistent classes. In this case, we will automatically combine the results of the executors for all implementing classes if we execute a query for an interface for abstract type.
        Specified by:
        supportsAbstractExecutors in interface StoreQuery
      • requiresCandidateType

        public boolean requiresCandidateType()
        Description copied from interface: StoreQuery
        Whether this query requires a candidate class.
        Specified by:
        requiresCandidateType in interface StoreQuery
      • requiresParameterDeclarations

        public boolean requiresParameterDeclarations()
        Description copied from interface: StoreQuery
        Whether this query requires parameters to be declared.
        Specified by:
        requiresParameterDeclarations in interface StoreQuery
      • supportsParameterDeclarations

        public boolean supportsParameterDeclarations()
        Description copied from interface: StoreQuery
        Whether this query supports declared parameters.
        Specified by:
        supportsParameterDeclarations in interface StoreQuery
      • evaluate

        public java.lang.Object evaluate​(java.lang.Object value,
                                         java.lang.Object ob,
                                         java.lang.Object[] params,
                                         OpenJPAStateManager sm)
        Specified by:
        evaluate in interface StoreQuery