Package org.apache.sling.api.wrappers

# Class CompositeValueMap

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

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

@Deprecated public class CompositeValueMap extends Object implements ValueMap
Deprecated.
Use `ValueMapUtil.merge(ValueMap...)` instead. Note that it does not support the parameter `merge = false`. However, this could easily be achieved with another decorator that restricts the set of allowed keys.
An implementation of the `ValueMap` based on two `ValueMap`s: - One containing the properties - Another one containing the defaults to use in case the properties map does not contain the values. In case you would like to avoid duplicating properties on multiple resources, you can use a `CompositeValueMap` to get a concatenated map of properties.

Since:
  2.3 (Sling API Bundle 2.5.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
`CompositeValueMap(ValueMap properties, ValueMap defaults)`
Deprecated.
Constructor
`CompositeValueMap(ValueMap properties, ValueMap defaults, boolean merge)`
Deprecated.
Constructor

## Method Summary

Modifier and Type
Method
Description
`void`
`clear()`
Deprecated.
`boolean`
`containsKey(Object key)`
Deprecated.
`boolean`
`containsValue(Object value)`
Deprecated.
`Set<Map.Entry<String,Object>>`
`entrySet()`
Deprecated.
`<T> T`
`get(@NotNull String name, @NotNull Class<T> type)`
Deprecated.
Get a named property and convert it into the given type.
`<T> T`
`get(@NotNull String name, T defaultValue)`
Deprecated.
Get a named property and convert it into the given type.
`Object`
`get(Object key)`
Deprecated.
`boolean`
`isEmpty()`
Deprecated.
`Set<String>`
`keySet()`
Deprecated.
`Object`
`put(String aKey, Object value)`
Deprecated.
`void`
`putAll(Map<? extends String,?> properties)`
Deprecated.
`Object`
`remove(Object key)`
Deprecated.
`int`
`size()`
Deprecated.
`Collection<Object>`
`values()`
Deprecated.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface java.util.Map

`compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll`

## Constructor Details

### CompositeValueMap

public CompositeValueMap(ValueMap properties, ValueMap defaults)
Deprecated.
Constructor

Parameters:
  `properties` - The `ValueMap` to read from
  `defaults` - The default `ValueMap` to use as fallback

### CompositeValueMap

public CompositeValueMap(ValueMap properties, ValueMap defaults, boolean merge)
Deprecated.
Constructor

Parameters:
  `properties` - The `ValueMap` to read from
  `defaults` - The default `ValueMap` to use as fallback
  `merge` - Merge flag - If `true`, getting a key would return the current property map's value (if available), even if the corresponding default does not exist. - If `false`, getting a key would return `null` if the corresponding default does not exist

## Method Details

### get

@Nullable public <T> T get(@NotNull @NotNull String name, @NotNull @NotNull Class<T> type)
Deprecated.
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)
Deprecated.
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()
Deprecated.

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

### isEmpty

public boolean isEmpty()
Deprecated.

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

### containsKey

public boolean containsKey(Object key)
Deprecated.

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

### containsValue

public boolean containsValue(Object value)
Deprecated.

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

### get

public Object get(Object key)
Deprecated.

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

### put

public Object put(String aKey, Object value)
Deprecated.

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

### remove

public Object remove(Object key)
Deprecated.

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

### putAll

public void putAll(Map<? extends String,?> properties)
Deprecated.

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

### clear

public void clear()
Deprecated.

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

### keySet

public Set<String> keySet()
Deprecated.

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

### values

public Collection<Object> values()
Deprecated.

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

### entrySet

public Set<Map.Entry<String,Object>> entrySet()
Deprecated.

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