Class ImmutableValueMap

  • All Implemented Interfaces:
    Map<String,​Object>, org.apache.sling.api.resource.ValueMap

    @ProviderType
    public final class ImmutableValueMap
    extends Object
    implements org.apache.sling.api.resource.ValueMap
    ValueMap that does not support changing its content.

    All methods that may change the content will throw a UnsupportedOperationException.

    Static convenience methods provide similar behavior as Guava ImmutableMap variants.

    • Method Detail

      • get

        @Nullable
        public <T> T get​(@NotNull
                         @NotNull String name,
                         @NotNull
                         @NotNull Class<T> type)
        Specified by:
        get in interface org.apache.sling.api.resource.ValueMap
      • get

        @NotNull
        public <T> T get​(@NotNull
                         @NotNull String name,
                         @NotNull
                         T defaultValue)
        Specified by:
        get in interface org.apache.sling.api.resource.ValueMap
      • of

        @NotNull
        public static @NotNull ImmutableValueMap of()
        Returns the empty map. This map behaves and performs comparably to Collections.emptyMap(), and is preferable mainly for consistency and maintainability of your code.
        Returns:
        ImmutableValueMap
      • of

        @NotNull
        public static @NotNull ImmutableValueMap of​(@NotNull
                                                    @NotNull String k1,
                                                    @NotNull
                                                    @NotNull Object v1)
        Returns an immutable map containing a single entry. This map behaves and performs comparably to Collections.singletonMap(K, V) but will not accept a null key or value. It is preferable mainly for consistency and maintainability of your code.
        Parameters:
        k1 - Key 1
        v1 - Value 1
        Returns:
        ImmutableValueMap
      • of

        @NotNull
        public static @NotNull ImmutableValueMap of​(@NotNull
                                                    @NotNull String k1,
                                                    @NotNull
                                                    @NotNull Object v1,
                                                    @NotNull
                                                    @NotNull String k2,
                                                    @NotNull
                                                    @NotNull Object v2)
        Returns an immutable map containing the given entries, in order.
        Parameters:
        k1 - Key 1
        v1 - Value 1
        k2 - Key 2
        v2 - Value 2
        Returns:
        ImmutableValueMap
        Throws:
        IllegalArgumentException - if duplicate keys are provided
      • of

        @NotNull
        public static @NotNull ImmutableValueMap of​(@NotNull
                                                    @NotNull String k1,
                                                    @NotNull
                                                    @NotNull Object v1,
                                                    @NotNull
                                                    @NotNull String k2,
                                                    @NotNull
                                                    @NotNull Object v2,
                                                    @NotNull
                                                    @NotNull String k3,
                                                    @NotNull
                                                    @NotNull Object v3)
        Returns an immutable map containing the given entries, in order.
        Parameters:
        k1 - Key 1
        v1 - Value 1
        k2 - Key 2
        v2 - Value 2
        k3 - Key 3
        v3 - Value 3
        Returns:
        ImmutableValueMap
        Throws:
        IllegalArgumentException - if duplicate keys are provided
      • of

        @NotNull
        public static @NotNull ImmutableValueMap of​(@NotNull
                                                    @NotNull String k1,
                                                    @NotNull
                                                    @NotNull Object v1,
                                                    @NotNull
                                                    @NotNull String k2,
                                                    @NotNull
                                                    @NotNull Object v2,
                                                    @NotNull
                                                    @NotNull String k3,
                                                    @NotNull
                                                    @NotNull Object v3,
                                                    @NotNull
                                                    @NotNull String k4,
                                                    @NotNull
                                                    @NotNull Object v4)
        Returns an immutable map containing the given entries, in order.
        Parameters:
        k1 - Key 1
        v1 - Value 1
        k2 - Key 2
        v2 - Value 2
        k3 - Key 3
        v3 - Value 3
        k4 - Key 4
        v4 - Value 4
        Returns:
        ImmutableValueMap
        Throws:
        IllegalArgumentException - if duplicate keys are provided
      • of

        public static ImmutableValueMap of​(@NotNull
                                           @NotNull String k1,
                                           @NotNull
                                           @NotNull Object v1,
                                           @NotNull
                                           @NotNull String k2,
                                           @NotNull
                                           @NotNull Object v2,
                                           @NotNull
                                           @NotNull String k3,
                                           @NotNull
                                           @NotNull Object v3,
                                           @NotNull
                                           @NotNull String k4,
                                           @NotNull
                                           @NotNull Object v4,
                                           @NotNull
                                           @NotNull String k5,
                                           @NotNull
                                           @NotNull Object v5)
        Returns an immutable map containing the given entries, in order.
        Parameters:
        k1 - Key 1
        v1 - Value 1
        k2 - Key 2
        v2 - Value 2
        k3 - Key 3
        v3 - Value 3
        k4 - Key 4
        v4 - Value 4
        k5 - Key 5
        v5 - Value 5
        Returns:
        ImmutableValueMap
        Throws:
        IllegalArgumentException - if duplicate keys are provided
      • copyOf

        @NotNull
        public static @NotNull ImmutableValueMap copyOf​(@NotNull
                                                        @NotNull Map<String,​Object> map)
        Returns an immutable map containing the same entries as map. If map somehow contains entries with duplicate keys (for example, if it is a SortedMap whose comparator is not consistent with equals), the results of this method are undefined.

        Despite the method name, this method attempts to avoid actually copying the data when it is safe to do so. The exact circumstances under which a copy will or will not be performed are undocumented and subject to change.

        Parameters:
        map - Map
        Returns:
        ImmutableValueMap
        Throws:
        NullPointerException - if any key or value in map is null