Class ImmutableValueMap

java.lang.Object
org.apache.sling.testing.mock.sling.builder.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 Details

    • 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
    • size

      public int size()
      Specified by:
      size in interface Map<String,Object>
    • isEmpty

      public boolean isEmpty()
      Specified by:
      isEmpty in interface Map<String,Object>
    • containsKey

      public boolean containsKey(Object key)
      Specified by:
      containsKey in interface Map<String,Object>
    • containsValue

      public boolean containsValue(Object value)
      Specified by:
      containsValue in interface Map<String,Object>
    • get

      public Object get(Object key)
      Specified by:
      get in interface Map<String,Object>
    • keySet

      public Set<String> keySet()
      Specified by:
      keySet in interface Map<String,Object>
    • values

      public Collection<Object> values()
      Specified by:
      values in interface Map<String,Object>
    • entrySet

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

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

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

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

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

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

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

      @Deprecated public void clear()
      Deprecated.
      Unsupported operation
      Specified by:
      clear in interface Map<String,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 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
    • builder

      @NotNull public static @NotNull ImmutableValueMap.Builder builder()
      Returns a new builder. The generated builder is equivalent to the builder created by the ImmutableValueMap.Builder constructor.
      Returns:
      Builder
    • 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