Interface MapProperty<K,​V>

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      MapProperty<K,​V> convention​(Map<? extends K,​? extends V> value)
      Specifies the value to use as the convention for this property.
      MapProperty<K,​V> convention​(Provider<? extends Map<? extends K,​? extends V>> valueProvider)
      Specifies the provider of the value to use as the convention for this property.
      MapProperty<K,​V> empty()
      Sets the value of this property to an empty map, and replaces any existing value.
      void finalizeValue()
      Disallows further changes to the value of this property.
      Provider<V> getting​(K key)
      Returns a provider that resolves to the value of the mapping of the given key.
      Provider<Set<K>> keySet()
      Returns a Provider that returns the set of keys for the map that is the property value.
      void put​(K key, Provider<? extends V> providerOfValue)
      Adds a map entry to the property value.
      void put​(K key, V value)
      Adds a map entry to the property value.
      void putAll​(Map<? extends K,​? extends V> entries)
      Adds all entries from another Map to the property value.
      void putAll​(Provider<? extends Map<? extends K,​? extends V>> provider)
      Adds all entries from another Map to the property value.
      void set​(Map<? extends K,​? extends V> entries)
      Sets the value of this property to the entries of the given Map, and replaces any existing value.
      void set​(Provider<? extends Map<? extends K,​? extends V>> provider)
      Sets the property to have the same value of the given provider, and replaces any existing value.
    • Method Detail

      • empty

        MapProperty<K,​V> empty()
        Sets the value of this property to an empty map, and replaces any existing value.
        Returns:
        this property.
      • getting

        Provider<V> getting​(K key)
        Returns a provider that resolves to the value of the mapping of the given key. It will have no value if the property has no value, or if it does not contain a mapping for the key.

        The returned provider will track the value of this property and query its value when it is queried.

        This method is equivalent to

        
             map(m -> m.get(key))
         
        but possibly more efficient.
        Parameters:
        key - the key
        Returns:
        a Provider for the value
      • set

        void set​(@Nullable
                 Map<? extends K,​? extends V> entries)
        Sets the value of this property to the entries of the given Map, and replaces any existing value. This property will query the entries of the map each time the value of this property is queried.

        This method can also be used to clear the value of the property, by passing null as the value.

        Parameters:
        entries - the entries, can be null
      • set

        void set​(Provider<? extends Map<? extends K,​? extends V>> provider)
        Sets the property to have the same value of the given provider, and replaces any existing value. This property will track the value of the provider and query its value each time the value of this property is queried. When the provider has no value, this property will also have no value.
        Parameters:
        provider - Provider of the entries.
      • put

        void put​(K key,
                 V value)
        Adds a map entry to the property value.
        Parameters:
        key - the key
        value - the value
      • put

        void put​(K key,
                 Provider<? extends V> providerOfValue)
        Adds a map entry to the property value.

        The given provider will be queried when the value of this property is queried. This property will have no value when the given provider has no value.

        Parameters:
        key - the key
        providerOfValue - the provider of the value
      • putAll

        void putAll​(Map<? extends K,​? extends V> entries)
        Adds all entries from another Map to the property value.
        Parameters:
        entries - a Map containing the entries to add
      • putAll

        void putAll​(Provider<? extends Map<? extends K,​? extends V>> provider)
        Adds all entries from another Map to the property value.

        The given provider will be queried when the value of this property is queried. This property will have no value when the given provider has no value.

        Parameters:
        provider - the provider of the entries
      • keySet

        Provider<Set<K>> keySet()
        Returns a Provider that returns the set of keys for the map that is the property value.

        The returned provider will track the value of this property and query its value when it is queried.

        This method is equivalent to

        
             map(m -> m.keySet())
         
        but possibly more efficient.
        Returns:
        a Provider that provides the set of keys for the map
      • convention

        MapProperty<K,​V> convention​(Map<? extends K,​? extends V> value)
        Specifies the value to use as the convention for this property. The convention is used when no value has been set for this property.
        Parameters:
        value - The value.
        Returns:
        this
      • convention

        MapProperty<K,​V> convention​(Provider<? extends Map<? extends K,​? extends V>> valueProvider)
        Specifies the provider of the value to use as the convention for this property. The convention is used when no value has been set for this property.
        Parameters:
        valueProvider - The provider of the value.
        Returns:
        this
      • finalizeValue

        void finalizeValue()
        Disallows further changes to the value of this property. Calls to methods that change the value of this property, such as set(Map) or put(Object, Object) will fail.

        When this property has elements provided by a Provider, the value of the provider is queried when this method is called and the value of the provider will no longer be tracked.

        Note that although the value of the property will not change, the resulting collection may contain mutable objects. Calling this method does not guarantee that the value will become immutable.