Class DelegateBeanMap<T>
- Type Parameters:
T
- The class type of the wrapped bean.
BeanMap
where property values can be overridden, removed, or reordered without
affecting the underlying bean.
Provides the filterKeys(List)
method for specifying the keys to keep in the bean map and in what order
they should appear.
See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K extends Object,
V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object, V extends Object> -
Field Summary
Fields inherited from class org.apache.juneau.BeanMap
arrayPropertyCache, bean, meta, propertyCache
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Add a key in the next position.entrySet()
Returns all the properties associated with the bean.filterKeys
(List<String> keys) Remove all but the specified properties from this bean map.forEachProperty
(Predicate<BeanPropertyMeta> filter, Consumer<BeanPropertyMeta> action) Performs an action on each property in this bean map.Gets a property on the bean.getMeta()
Returns the metadata associated with this bean map.Returns a simple collection of properties for this bean map.keySet()
Returns the names of all properties associated with the bean.Sets a property on the bean.Methods inherited from class org.apache.juneau.BeanMap
add, containsKey, forEachValue, get, getBean, getBean, getBeanSession, getClassMeta, getProperties, getProperty, getPropertyMeta, getRaw, load, load, load, of, resolveVars
Methods inherited from class java.util.AbstractMap
clear, clone, containsValue, equals, hashCode, isEmpty, putAll, size, toString, values
Methods inherited from class java.lang.Object
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
-
DelegateBeanMap
Constructor.- Parameters:
bean
- The bean being wrapped.session
- The bean session that created this bean map.
-
-
Method Details
-
addKey
Add a key in the next position.- Parameters:
key
- The key to add.
-
put
Description copied from class:BeanMap
Sets a property on the bean.If there is a
ObjectSwap
associated with this bean property or bean property type class, then you must pass in a transformed value. For example, if the bean property type class is aDate
and the bean property has theTemporalDateSwap.IsoInstant
swap associated with it through the@Swap(value)
annotation, the value being passed in must be a String containing an ISO8601 date-time string value.Example:
// Construct a bean with a 'birthDate' Date field Personperson =new Person();// Create a bean context and add the ISO8601 date-time swap BeanContextbeanContext = BeanContext.create ().swaps(DateSwap.ISO8601DT.class ).build();// Wrap our bean in a bean map BeanMap<Person>beanMap =beanContext .toBeanMap(person );// Set the field beanMap .put("birthDate" ,"'1901-03-03T04:05:06-5000'" );- Specified by:
put
in interfaceMap<String,
Object> - Overrides:
put
in classBeanMap<T>
- Parameters:
key
- The name of the property to set.val
- The value to set the property to.- Returns:
- If the bean context setting
beanMapPutReturnsOldValue
istrue , then the old value of the property is returned. Otherwise, this method always returnsnull .
-
get
Description copied from class:BeanMap
Gets a property on the bean.If there is a
ObjectSwap
associated with this bean property or bean property type class, then this method will return the transformed value. For example, if the bean property type class is aDate
and the bean property has theTemporalDateSwap.IsoInstant
swap associated with it through the@Swap(value)
annotation, this method will return a String containing an ISO8601 date-time string value.Example:
// Construct a bean with a 'birthDate' Date field Personperson =new Person();person .setBirthDate(new Date(1, 2, 3, 4, 5, 6));// Create a bean context and add the ISO8601 date-time swap BeanContextbeanContext = BeanContext.create ().swaps(DateSwap.ISO8601DT.class ).build();// Wrap our bean in a bean map BeanMap<Person>beanMap =beanContext .toBeanMap(person );// Get the field as a string (i.e. "'1901-03-03T04:05:06-5000'") StringbirthDate =beanMap .get("birthDate" ); -
keySet
Description copied from class:BeanMap
Returns the names of all properties associated with the bean.The returned set is unmodifiable.
-
filterKeys
Remove all but the specified properties from this bean map.This does not affect the underlying bean.
- Parameters:
keys
- The remaining keys in the bean map (in the specified order).- Returns:
- This object.
-
remove
-
getMeta
Description copied from class:BeanMap
Returns the metadata associated with this bean map. -
entrySet
Description copied from class:BeanMap
Returns all the properties associated with the bean. -
getProperties
Description copied from class:BeanMap
Returns a simple collection of properties for this bean map.- Overrides:
getProperties
in classBeanMap<T>
- Returns:
- A simple collection of properties for this bean map.
-
forEachProperty
public BeanMap<T> forEachProperty(Predicate<BeanPropertyMeta> filter, Consumer<BeanPropertyMeta> action) Description copied from class:BeanMap
Performs an action on each property in this bean map.- Overrides:
forEachProperty
in classBeanMap<T>
- Parameters:
filter
- The filter to apply to properties.action
- The action.- Returns:
- This object.
-