Class AbstractStore

    • Field Detail

      • attributeExtractors

        protected final java.util.Map<java.lang.String,​AttributeExtractor> attributeExtractors
        search attribute extractors
      • searchManager

        protected final SearchManager searchManager
        search manager
    • Constructor Detail

      • AbstractStore

        protected AbstractStore()
        Constructor for stores that do not support search
      • AbstractStore

        protected AbstractStore​(SearchManager searchManager,
                                java.lang.String cacheName)
        Constructor for stores that do support search
        Parameters:
        searchManager - the search manager to use
    • Method Detail

      • getEventListenerList

        protected java.util.List<StoreListener> getEventListenerList()
        onLoad initializer
      • isCacheCoherent

        public boolean isCacheCoherent()
        Indicates whether this store provides a coherent view of all the elements in a cache. Note that this is same as calling Store.isClusterCoherent() (introduced since 2.0) Use Store.isNodeCoherent() to find out if the cache is coherent in the current node in the cluster
        Specified by:
        isCacheCoherent in interface Store
        Returns:
        true if the store is coherent; or false if the store potentially splits the cache storage with another store or isn't internally coherent
        See Also:
        Store.isCacheCoherent()
      • isClusterCoherent

        public boolean isClusterCoherent()
        Returns true if the cache is in coherent mode cluster-wide. Returns false otherwise.

        It applies to coherent clustering mechanisms only e.g. Terracotta

        Specified by:
        isClusterCoherent in interface Store
        Returns:
        true if the cache is in coherent mode cluster-wide, false otherwise
        See Also:
        Store.isClusterCoherent()
      • isNodeCoherent

        public boolean isNodeCoherent()
        Returns true if the cache is in coherent mode for the current node. Returns false otherwise.

        It applies to coherent clustering mechanisms only e.g. Terracotta

        Specified by:
        isNodeCoherent in interface Store
        Returns:
        true if the cache is in coherent mode cluster-wide, false otherwise
        See Also:
        Store.isNodeCoherent()
      • setNodeCoherent

        public void setNodeCoherent​(boolean coherent)
                             throws java.lang.UnsupportedOperationException
        Sets the cache in coherent or incoherent mode for the current node depending on the parameter. Calling setNodeCoherent(true) when the cache is already in coherent mode or calling setNodeCoherent(false) when already in incoherent mode will be a no-op.

        It applies to coherent clustering mechanisms only e.g. Terracotta

        Specified by:
        setNodeCoherent in interface Store
        Parameters:
        coherent - true transitions to coherent mode, false to incoherent mode
        Throws:
        java.lang.UnsupportedOperationException - if this store does not support cache coherence, like RMI replication
        See Also:
        Store.setNodeCoherent(boolean)
      • waitUntilClusterCoherent

        public void waitUntilClusterCoherent()
                                      throws java.lang.UnsupportedOperationException,
                                             TerracottaNotRunningException,
                                             java.lang.InterruptedException
        This method waits until the cache is in coherent mode in all the connected nodes. If the cache is already in coherent mode it returns immediately

        It applies to coherent clustering mechanisms only e.g. Terracotta

        Specified by:
        waitUntilClusterCoherent in interface Store
        Throws:
        java.lang.InterruptedException
        TerracottaNotRunningException
        java.lang.UnsupportedOperationException - if this store does not support cache coherence, like RMI replication
        See Also:
        Store.waitUntilClusterCoherent()
      • setAttributeExtractors

        public void setAttributeExtractors​(java.util.Map<java.lang.String,​AttributeExtractor> extractors)
        Inform this store of the configured attribute extractors. Stores that will not invoke extractors are free to ignore this call
        Specified by:
        setAttributeExtractors in interface Store
      • executeQuery

        public Results executeQuery​(StoreQuery query)
        Execute the given query on this store
        Specified by:
        executeQuery in interface Store
        Parameters:
        query - query to execute
        Returns:
        query results
      • getSearchAttribute

        public <T> Attribute<T> getSearchAttribute​(java.lang.String attributeName)
                                            throws CacheException
        Retrieve the given named search attribute
        Specified by:
        getSearchAttribute in interface Store
        Type Parameters:
        T - type of the attribute
        Parameters:
        attributeName - the name of the attribute to retrieve
        Returns:
        the search attribute or null if non-existent
        Throws:
        CacheException
      • getSearchAttributes

        public java.util.Set<Attribute> getSearchAttributes()
        Specified by:
        getSearchAttributes in interface Store
        Returns:
        all search attributes known to this store at the time of invoking the method
      • putAll

        public void putAll​(java.util.Collection<Element> elements)
                    throws CacheException
        Puts a collection of elements into the store.
        Specified by:
        putAll in interface Store
        Parameters:
        elements - Collection of elements to be put in the store
        Throws:
        CacheException
      • removeAll

        public void removeAll​(java.util.Collection<?> keys)
        Removes a collection of elements from the cache.
        Specified by:
        removeAll in interface Store
      • getAllQuiet

        public java.util.Map<java.lang.Object,​Element> getAllQuiet​(java.util.Collection<?> keys)
        Retries the elements associated with a set of keys without updating the statistics Keys which are not present in the cache will have null values associated with them in the returned map
        Specified by:
        getAllQuiet in interface Store
        Parameters:
        keys - a collection of keys to look for
        Returns:
        a map of keys and their corresponding values
      • getAll

        public java.util.Map<java.lang.Object,​Element> getAll​(java.util.Collection<?> keys)
        Retries the elements associated with a set of keys and update the statistics Keys which are not present in the cache will have null values associated with them in the returned map
        Specified by:
        getAll in interface Store
        Parameters:
        keys - a collection of keys to look for
        Returns:
        a map of keys and their corresponding values
      • hasAbortedSizeOf

        public boolean hasAbortedSizeOf()
        Checks if the cache may contain elements for which the SizeOf engine gave up and only partially calculated the size.
        Specified by:
        hasAbortedSizeOf in interface Store
        Returns:
        true if at least one partially sized element may be in the cache
      • recalculateSize

        public void recalculateSize​(java.lang.Object key)
        Recalculate size of the element mapped to the key
        Specified by:
        recalculateSize in interface Store
        Parameters:
        key - the key