Package org.apache.sling.api.wrappers

# Class DeepReadValueMapDecorator

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

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

Direct Known Subclasses:
  `DeepReadModifiableValueMapDecorator`

public class DeepReadValueMapDecorator extends ValueMapDecorator
A value map wrapper which implements deep reading of properties based on the resource tree.

Since:
  2.5 (Sling API Bundle 2.7.0)

## 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
`DeepReadValueMapDecorator(Resource resource, ValueMap base)`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`containsKey(Object key)`
`<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)`

### Methods inherited from class org.apache.sling.api.wrappers.ValueMapDecorator

`clear, containsValue, entrySet, equals, hashCode, isEmpty, keySet, put, putAll, remove, size, toString, 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

### DeepReadValueMapDecorator

public DeepReadValueMapDecorator(Resource resource, ValueMap base)

## Method Details

### get

public <T> T get(@NotNull @NotNull String name, @NotNull @NotNull Class<T> type)
Description copied from class: `ValueMapDecorator`
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`
Overrides:
  `get` in class `ValueMapDecorator`
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.
See Also:
  - `ValueMap.get(java.lang.String, java.lang.Class)`

### get

@NotNull public <T> T get(@NotNull @NotNull String name, @NotNull T defaultValue)
Description copied from class: `ValueMapDecorator`
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`
Overrides:
  `get` in class `ValueMapDecorator`
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.
See Also:
  - `ValueMap.get(java.lang.String, java.lang.Object)`

### containsKey

public boolean containsKey(Object key)
Description copied from class: `ValueMapDecorator`

Specified by:
  `containsKey` in interface `Map<String,Object>`
Overrides:
  `containsKey` in class `ValueMapDecorator`
See Also:
  - `ValueMapDecorator.containsKey(java.lang.Object)`

### get

public Object get(Object key)
Description copied from class: `ValueMapDecorator`

Specified by:
  `get` in interface `Map<String,Object>`
Overrides:
  `get` in class `ValueMapDecorator`
See Also:
  - `ValueMapDecorator.get(java.lang.Object)`