Class ImmutableValueMap

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

    @ProviderType
    public final class ImmutableValueMap
    extends java.lang.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.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  ImmutableValueMap.Builder
      Builder interface for ImmutableValueMap.
      • Nested classes/interfaces inherited from interface java.util.Map

        java.util.Map.Entry<K extends java.lang.Object,​V extends java.lang.Object>
    • Field Summary

      • Fields inherited from interface org.apache.sling.api.resource.ValueMap

        EMPTY
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      static @NotNull ImmutableValueMap.Builder builder()
      Returns a new builder.
      void clear()
      Deprecated.
      Unsupported operation
      boolean containsKey​(java.lang.Object key)  
      boolean containsValue​(java.lang.Object value)  
      static @NotNull ImmutableValueMap copyOf​(@NotNull java.util.Map<java.lang.String,​java.lang.Object> map)
      Returns an immutable map containing the same entries as map.
      java.util.Set<java.util.Map.Entry<java.lang.String,​java.lang.Object>> entrySet()  
      boolean equals​(java.lang.Object obj)  
      <T> T get​(@NotNull java.lang.String name, @NotNull java.lang.Class<T> type)  
      <T> T get​(@NotNull java.lang.String name, T defaultValue)  
      java.lang.Object get​(java.lang.Object key)  
      int hashCode()  
      boolean isEmpty()  
      java.util.Set<java.lang.String> keySet()  
      static @NotNull ImmutableValueMap of()
      Returns the empty map.
      static @NotNull ImmutableValueMap of​(@NotNull java.lang.String k1, @NotNull java.lang.Object v1)
      Returns an immutable map containing a single entry.
      static @NotNull ImmutableValueMap of​(@NotNull java.lang.String k1, @NotNull java.lang.Object v1, @NotNull java.lang.String k2, @NotNull java.lang.Object v2)
      Returns an immutable map containing the given entries, in order.
      static @NotNull ImmutableValueMap of​(@NotNull java.lang.String k1, @NotNull java.lang.Object v1, @NotNull java.lang.String k2, @NotNull java.lang.Object v2, @NotNull java.lang.String k3, @NotNull java.lang.Object v3)
      Returns an immutable map containing the given entries, in order.
      static @NotNull ImmutableValueMap of​(@NotNull java.lang.String k1, @NotNull java.lang.Object v1, @NotNull java.lang.String k2, @NotNull java.lang.Object v2, @NotNull java.lang.String k3, @NotNull java.lang.Object v3, @NotNull java.lang.String k4, @NotNull java.lang.Object v4)
      Returns an immutable map containing the given entries, in order.
      static ImmutableValueMap of​(@NotNull java.lang.String k1, @NotNull java.lang.Object v1, @NotNull java.lang.String k2, @NotNull java.lang.Object v2, @NotNull java.lang.String k3, @NotNull java.lang.Object v3, @NotNull java.lang.String k4, @NotNull java.lang.Object v4, @NotNull java.lang.String k5, @NotNull java.lang.Object v5)
      Returns an immutable map containing the given entries, in order.
      java.lang.Object put​(java.lang.String key, java.lang.Object value)
      Deprecated.
      Unsupported operation
      void putAll​(java.util.Map<? extends java.lang.String,​? extends java.lang.Object> m)
      Deprecated.
      Unsupported operation
      java.lang.Object remove​(java.lang.Object key)
      Deprecated.
      Unsupported operation
      int size()  
      java.lang.String toString()  
      java.util.Collection<java.lang.Object> values()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Map

        compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
    • Method Detail

      • get

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

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

        public int size()
        Specified by:
        size in interface java.util.Map<java.lang.String,​java.lang.Object>
      • isEmpty

        public boolean isEmpty()
        Specified by:
        isEmpty in interface java.util.Map<java.lang.String,​java.lang.Object>
      • containsKey

        public boolean containsKey​(java.lang.Object key)
        Specified by:
        containsKey in interface java.util.Map<java.lang.String,​java.lang.Object>
      • containsValue

        public boolean containsValue​(java.lang.Object value)
        Specified by:
        containsValue in interface java.util.Map<java.lang.String,​java.lang.Object>
      • get

        public java.lang.Object get​(java.lang.Object key)
        Specified by:
        get in interface java.util.Map<java.lang.String,​java.lang.Object>
      • keySet

        public java.util.Set<java.lang.String> keySet()
        Specified by:
        keySet in interface java.util.Map<java.lang.String,​java.lang.Object>
      • values

        public java.util.Collection<java.lang.Object> values()
        Specified by:
        values in interface java.util.Map<java.lang.String,​java.lang.Object>
      • entrySet

        public java.util.Set<java.util.Map.Entry<java.lang.String,​java.lang.Object>> entrySet()
        Specified by:
        entrySet in interface java.util.Map<java.lang.String,​java.lang.Object>
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface java.util.Map<java.lang.String,​java.lang.Object>
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Specified by:
        equals in interface java.util.Map<java.lang.String,​java.lang.Object>
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • put

        @Deprecated
        public java.lang.Object put​(java.lang.String key,
                                    java.lang.Object value)
        Deprecated.
        Unsupported operation
        Specified by:
        put in interface java.util.Map<java.lang.String,​java.lang.Object>
      • remove

        @Deprecated
        public java.lang.Object remove​(java.lang.Object key)
        Deprecated.
        Unsupported operation
        Specified by:
        remove in interface java.util.Map<java.lang.String,​java.lang.Object>
      • putAll

        @Deprecated
        public void putAll​(java.util.Map<? extends java.lang.String,​? extends java.lang.Object> m)
        Deprecated.
        Unsupported operation
        Specified by:
        putAll in interface java.util.Map<java.lang.String,​java.lang.Object>
      • clear

        @Deprecated
        public void clear()
        Deprecated.
        Unsupported operation
        Specified by:
        clear in interface java.util.Map<java.lang.String,​java.lang.Object>
      • 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 java.lang.String k1,
                                                    @NotNull
                                                    @NotNull java.lang.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 java.lang.String k1,
                                                    @NotNull
                                                    @NotNull java.lang.Object v1,
                                                    @NotNull
                                                    @NotNull java.lang.String k2,
                                                    @NotNull
                                                    @NotNull java.lang.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:
        java.lang.IllegalArgumentException - if duplicate keys are provided
      • of

        @NotNull
        public static @NotNull ImmutableValueMap of​(@NotNull
                                                    @NotNull java.lang.String k1,
                                                    @NotNull
                                                    @NotNull java.lang.Object v1,
                                                    @NotNull
                                                    @NotNull java.lang.String k2,
                                                    @NotNull
                                                    @NotNull java.lang.Object v2,
                                                    @NotNull
                                                    @NotNull java.lang.String k3,
                                                    @NotNull
                                                    @NotNull java.lang.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:
        java.lang.IllegalArgumentException - if duplicate keys are provided
      • of

        @NotNull
        public static @NotNull ImmutableValueMap of​(@NotNull
                                                    @NotNull java.lang.String k1,
                                                    @NotNull
                                                    @NotNull java.lang.Object v1,
                                                    @NotNull
                                                    @NotNull java.lang.String k2,
                                                    @NotNull
                                                    @NotNull java.lang.Object v2,
                                                    @NotNull
                                                    @NotNull java.lang.String k3,
                                                    @NotNull
                                                    @NotNull java.lang.Object v3,
                                                    @NotNull
                                                    @NotNull java.lang.String k4,
                                                    @NotNull
                                                    @NotNull java.lang.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:
        java.lang.IllegalArgumentException - if duplicate keys are provided
      • of

        public static ImmutableValueMap of​(@NotNull
                                           @NotNull java.lang.String k1,
                                           @NotNull
                                           @NotNull java.lang.Object v1,
                                           @NotNull
                                           @NotNull java.lang.String k2,
                                           @NotNull
                                           @NotNull java.lang.Object v2,
                                           @NotNull
                                           @NotNull java.lang.String k3,
                                           @NotNull
                                           @NotNull java.lang.Object v3,
                                           @NotNull
                                           @NotNull java.lang.String k4,
                                           @NotNull
                                           @NotNull java.lang.Object v4,
                                           @NotNull
                                           @NotNull java.lang.String k5,
                                           @NotNull
                                           @NotNull java.lang.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:
        java.lang.IllegalArgumentException - if duplicate keys are provided
      • copyOf

        @NotNull
        public static @NotNull ImmutableValueMap copyOf​(@NotNull
                                                        @NotNull java.util.Map<java.lang.String,​java.lang.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:
        java.lang.NullPointerException - if any key or value in map is null