Interface MapIndex<K,​V,​E>

  • Type Parameters:
    K - the key type
    V - the type of the value from which an extracted value is obtained
    E - the type of the extracted value that is being indexed
    All Known Implementing Classes:
    ConditionalIndex, ForwardOnlyMapIndex, SimpleMapIndex

    public interface MapIndex<K,​V,​E>
    MapIndex is used to correlate values stored in an indexed Map (or attributes of those values) to the corresponding keys in the indexed Map.
    Author:
    cp/gg 2002.10.31
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static Object NO_VALUE
      Constant used to indicate that the index does not contain requested value.
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      void delete​(Map.Entry<? extends K,​? extends V> entry)
      Update this index in response to a remove operation on a cache.
      Object get​(K key)
      Using the index information if possible, get the value associated with the specified key.
      Comparator<E> getComparator()
      Get the Comparator used to sort the index.
      Map<E,​Set<K>> getIndexContents()
      Get the Map that contains the index contents.
      default long getUnits()  
      ValueExtractor<V,​E> getValueExtractor()
      Obtain the ValueExtractor object that the MapIndex uses to extract an indexable Object from a value stored in the indexed Map.
      void insert​(Map.Entry<? extends K,​? extends V> entry)
      Update this index in response to a insert operation on a cache.
      boolean isOrdered()
      Determine if the MapIndex orders the contents of the indexed information.
      boolean isPartial()
      Determine if indexed information for any entry in the indexed Map has been excluded from this index.
      void update​(Map.Entry<? extends K,​? extends V> entry)
      Update this index in response to an update operation on a cache.
    • Field Detail

      • NO_VALUE

        static final Object NO_VALUE
        Constant used to indicate that the index does not contain requested value.
    • Method Detail

      • getValueExtractor

        ValueExtractor<V,​E> getValueExtractor()
        Obtain the ValueExtractor object that the MapIndex uses to extract an indexable Object from a value stored in the indexed Map. This property is never null.
        Returns:
        a ValueExtractor object, never null
      • isOrdered

        boolean isOrdered()
        Determine if the MapIndex orders the contents of the indexed information. To determine in which way the contents are ordered, get the Comparator from the index contents SortedMap object.
        Returns:
        true if the index contents are ordered, false otherwise
      • isPartial

        boolean isPartial()
        Determine if indexed information for any entry in the indexed Map has been excluded from this index. This information is used for IndexAwareFilter implementations to determine the most optimal way to apply the index.

        Note: Queries that use a partial index are allowed not to return entries that are not indexed even though they would match the corresponding filter were they evaluated during the full scan (if there were no index). However, it's not allowable for a query to return entries that do not match the corresponding filter, regardless of their presence in the index.

        Returns:
        true if any entry of the indexed Map has been excluded from the index, false otherwise
        Since:
        Coherence 3.6
      • getIndexContents

        Map<E,​Set<K>> getIndexContents()
        Get the Map that contains the index contents.

        The keys of the Map are the return values from the ValueExtractor operating against the indexed Map's values, and for each key, the corresponding value stored in the Map is a Set of keys to the indexed Map.

        If the MapIndex is known to be ordered, then the returned Map object will be an instance of SortedMap. The SortedMap may or may not have a Comparator object associated with it; see SortedMap.comparator().

        A client should assume that the returned Map object is read-only and must not attempt to modify it.

        Returns:
        a Map (or a SortedMap) of the index contents
      • get

        Object get​(K key)
        Using the index information if possible, get the value associated with the specified key. This is expected to be more efficient than using the ValueExtractor against an object containing the value, because the index should already have the necessary information at hand.
        Parameters:
        key - the key that specifies the object to extract the value from
        Returns:
        the value that would be extracted by this MapIndex's ValueExtractor from the object specified by the passed key; NO_VALUE if the index does not have the necessary information
      • getComparator

        Comparator<E> getComparator()
        Get the Comparator used to sort the index.
        Returns:
        the comparator
        Since:
        Coherence 3.5
      • insert

        void insert​(Map.Entry<? extends K,​? extends V> entry)
        Update this index in response to a insert operation on a cache.
        Parameters:
        entry - the entry representing the object being inserted
        Since:
        Coherence 3.5
      • update

        void update​(Map.Entry<? extends K,​? extends V> entry)
        Update this index in response to an update operation on a cache.
        Parameters:
        entry - the entry representing the object being updated
        Since:
        Coherence 3.5
      • delete

        void delete​(Map.Entry<? extends K,​? extends V> entry)
        Update this index in response to a remove operation on a cache.
        Parameters:
        entry - the entry representing the object being removed
        Since:
        Coherence 3.5
      • getUnits

        default long getUnits()