Package org.apache.sling.api.wrappers

# Class ValueMapDecorator

java.lang.Object
org.apache.sling.api.wrappers.ValueMapDecorator

All Implemented Interfaces:
  `Map<String,Object>`, `ValueMap`

Direct Known Subclasses:
  `DeepReadValueMapDecorator`, `ModifiableValueMapDecorator`

public class ValueMapDecorator extends Object implements ValueMap
`ValueMapDecorator` decorates another `Map` to provide a basic implementation for the additional methods of a `ValueMap`.

## Nested Class Summary

## Nested classes/interfaces inherited from interface java.util.Map

`Map.Entry<K extends Object,V extends Object>`

## Field Summary

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

`EMPTY`

## Constructor Summary

Constructors
Constructor
Description
`ValueMapDecorator(Map<String,Object> base)`
Creates a new wrapper around a given map.

## Method Summary

Modifier and Type
Method
Description
`void`
`clear()`
`boolean`
`containsKey(Object key)`
`boolean`
`containsValue(Object value)`
`Set<Map.Entry<String,Object>>`
`entrySet()`
`boolean`
`equals(Object obj)`
`<T> T`
`get(@NotNull String name, @NotNull Class<T> type)`
Get a named property and convert it into the given type.
`<T> T`
`get(@NotNull String name, T defaultValue)`
Get a named property and convert it into the given type.
`Object`
`get(Object key)`
`int`
`hashCode()`
`boolean`
`isEmpty()`
`Set<String>`
`keySet()`
`Object`
`put(String key, Object value)`
`void`
`putAll(Map<? extends String,?> t)`
`Object`
`remove(Object key)`
`int`
`size()`
`String`
`toString()`
`Collection<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`

## Constructor Details

### ValueMapDecorator

public ValueMapDecorator(Map<String,Object> base)
Creates a new wrapper around a given map.

Parameters:
  `base` - wrapped object

## Method Details

### get

public <T> T get(@NotNull @NotNull String name, @NotNull @NotNull Class<T> type)
Get a named property and convert it into the given type. This method does not support conversion into a primitive type or an array of a primitive type. It should return `null` in this case.

Specified by:
  `get` in interface `ValueMap`
Type Parameters:
  `T` - The class of the type
Parameters:
  `name` - The name of the property
  `type` - The class of the type
Returns:
  Return named value converted to type T or `null` if non existing or can't be converted.

### get

@NotNull public <T> T get(@NotNull @NotNull String name, @NotNull T defaultValue)
Get a named property and convert it into the given type. This method does not support conversion into a primitive type or an array of a primitive type. It should return the default value in this case.
Implementation hint: In the past it was allowed to call this with a 2nd parameter being `null`. Therefore all implementations should internally call `Map.get(Object)` when the 2nd parameter has value `null`.

Specified by:
  `get` in interface `ValueMap`
Type Parameters:
  `T` - The expected type
Parameters:
  `name` - The name of the property
  `defaultValue` - The default value to use if the named property does not exist or cannot be converted to the requested type. The default value is also used to define the type to convert the value to. Must not be `null`. If you want to return `null` by default rather rely on `ValueMap.get(String, Class)`.
Returns:
  Return named value converted to type T or the default value if non existing or can't be converted.

### 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>`

### put

public Object put(String key, Object value)

Specified by:
  `put` in interface `Map<String,Object>`

### remove

public Object remove(Object key)

Specified by:
  `remove` in interface `Map<String,Object>`

### putAll

public void putAll(Map<? extends String,?> t)

Specified by:
  `putAll` in interface `Map<String,Object>`

### clear

public void clear()

Specified by:
  `clear` 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>`

### toString

public String toString()

Overrides:
  `toString` in class `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`