Interface InvocableMap.Entry<K,​V>

    • Method Detail

      • getKey

        K getKey()
        Return the key corresponding to this entry. The resultant key does not necessarily exist within the containing Map, which is to say that InvocableMap.this.containsKey(getKey()) could return false. To test for the presence of this key within the Map, use isPresent(), and to create the entry for the key, use setValue(V).
        Specified by:
        getKey in interface Map.Entry<K,​V>
        Returns:
        the key corresponding to this entry; may be null if the underlying Map supports null keys
      • getValue

        V getValue()
        Return the value corresponding to this entry. If the entry does not exist, then the value will be null. To differentiate between a null value and a non-existent entry, use isPresent().

        Note: any modifications to the value retrieved using this method are not guaranteed to persist unless followed by a setValue(V) or update(com.tangosol.util.ValueUpdater<V, T>, T) call.

        Specified by:
        getValue in interface Map.Entry<K,​V>
        Returns:
        the value corresponding to this entry; may be null if the value is null or if the Entry does not exist in the Map
      • setValue

        V setValue​(V value)
        Store the value corresponding to this entry. If the entry does not exist, then the entry will be created by invoking this method, even with a null value (assuming the Map supports null values).
        Specified by:
        setValue in interface Map.Entry<K,​V>
        Parameters:
        value - the new value for this Entry
        Returns:
        the previous value of this Entry, or null if the Entry did not exist
      • getValue

        default V getValue​(V defaultValue)
        Return the value corresponding to this entry, or the specified defaultValue, if the entry value is null. To differentiate between a null value and a non-existent entry, use isPresent().

        Note: any modifications to the value retrieved using this method are not guaranteed to persist unless followed by a setValue(V) or update(com.tangosol.util.ValueUpdater<V, T>, T) call.

        Parameters:
        defaultValue - the default value to return if the entry value is null
        Returns:
        the value corresponding to this entry, or the specified defaultValue, if the entry value is null
      • getValue

        default V getValue​(Supplier<V> defaultValueSupplier)
        Return the value corresponding to this entry, or the default value returned by the defaultValueSupplier, if the entry value is null. To differentiate between a null value and a non-existent entry, use isPresent().

        Note: any modifications to the value retrieved using this method are not guaranteed to persist unless followed by a setValue(V) or update(com.tangosol.util.ValueUpdater<V, T>, T) call.

        Parameters:
        defaultValueSupplier - the default value supplier to use to create the default value if the entry value is null
        Returns:
        the value corresponding to this entry, or the value created by the specified defaultValueSupplier, if the entry value is null
        Since:
        21.12
      • setValue

        void setValue​(V value,
                      boolean fSynthetic)
        Store the value corresponding to this entry. If the entry does not exist, then the entry will be created by invoking this method, even with a null value (assuming the Map supports null values).

        Unlike the other form of setValue, this form does not return the previous value, and as a result may be significantly less expensive (in terms of cost of execution) for certain Map implementations.

        Parameters:
        value - the new value for this Entry
        fSynthetic - pass true only if the insertion into or modification of the Map should be treated as a synthetic event
      • update

        <T> void update​(ValueUpdater<V,​T> updater,
                        T value)
        Update the Entry's value. Calling this method is semantically equivalent to:
           V target = entry.getValue();
           updater.update(target, value);
           entry.setValue(target, false);
         
        The benefit of using this method is that it may allow the Entry implementation to significantly optimize the operation, such as for purposes of delta updates and backup maintenance.
        Type Parameters:
        T - the class of the value
        Parameters:
        updater - a ValueUpdater used to modify the Entry's value
        value - the new value for this Entry
      • isPresent

        boolean isPresent()
        Determine if this Entry exists in the Map. If the Entry is not present, it can be created by calling setValue(Object) or setValue(Object, boolean). If the Entry is present, it can be destroyed by calling remove(boolean).
        Returns:
        true iff this Entry is existent in the containing Map
      • isSynthetic

        boolean isSynthetic()
        Determine if this Entry has been synthetically mutated. This method returns false if either a non-synthetic update was made or the entry has not been modified.
        Returns:
        true if the Entry has been synthetically mutated
      • remove

        void remove​(boolean fSynthetic)
        Remove this Entry from the Map if it is present in the Map.

        This method supports both the operation corresponding to Map.remove(java.lang.Object) as well as synthetic operations such as eviction. If the containing Map does not differentiate between the two, then this method will always be identical to InvocableMap.this.remove(getKey()).

        Parameters:
        fSynthetic - pass true only if the removal from the Map should be treated as a synthetic event
      • asBinaryEntry

        default BinaryEntry<K,​V> asBinaryEntry()
        Return this entry as a BinaryEntry.

        This is a convenience method that allows you to avoid casting an Entry into a BinaryEntry within an InvocableMap.EntryProcessor implementation. It will *not* attempt to coerce this instance into a BinaryEntry.

        Returns:
        this entry as a BinaryEntry
        Throws:
        ClassCastException - if this entry is not an instance of a BinaryEntry
        Since:
        20.12