Class PropertyMapper
- java.lang.Object
- org.springframework.boot.context.properties.PropertyMapper
public final class PropertyMapper extends Object
Utility that can be used to map values from a supplied source to a destination. Primarily intended to be help when mapping from@ConfigurationProperties
to third-party classes.Can filter values based on predicates and adapt values if needed. For example:
PropertyMapper map = PropertyMapper.get(); map.from(source::getName) .to(destination::setName); map.from(source::getTimeout) .whenNonNull() .asInt(Duration::getSeconds) .to(destination::setTimeoutSecs); map.from(source::isEnabled) .whenFalse(). .toCall(destination::disable);
Mappings can ultimately be applied to a
setter
, trigger amethod call
or create anew instance
.- Since:
- 2.0.0
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PropertyMapper.Source<T>
A source that is in the process of being mapped.static interface
PropertyMapper.SourceOperator
An operation that can be applied to aPropertyMapper.Source
.
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description PropertyMapper
alwaysApplying(PropertyMapper.SourceOperator operator)
Return a newPropertyMapper
instance that applies the givenPropertyMapper.SourceOperator
to every source.PropertyMapper
alwaysApplyingWhenNonNull()
Return a newPropertyMapper
instance that applieswhenNonNull
to every source.<T> PropertyMapper.Source<T>
from(Supplier<T> supplier)
Return a newPropertyMapper.Source
from the specified value supplier that can be used to perform the mapping.<T> PropertyMapper.Source<T>
from(T value)
Return a newPropertyMapper.Source
from the specified value that can be used to perform the mapping.static PropertyMapper
get()
Return the property mapper.
Method Detail
alwaysApplyingWhenNonNull
public PropertyMapper alwaysApplyingWhenNonNull()
Return a newPropertyMapper
instance that applieswhenNonNull
to every source.- Returns:
- a new property mapper instance
alwaysApplying
public PropertyMapper alwaysApplying(PropertyMapper.SourceOperator operator)
Return a newPropertyMapper
instance that applies the givenPropertyMapper.SourceOperator
to every source.- Parameters:
operator
- the source operator to apply- Returns:
- a new property mapper instance
from
public <T> PropertyMapper.Source<T> from(Supplier<T> supplier)
Return a newPropertyMapper.Source
from the specified value supplier that can be used to perform the mapping.- Type Parameters:
T
- the source type- Parameters:
supplier
- the value supplier- Returns:
- a
PropertyMapper.Source
that can be used to complete the mapping - See Also:
from(Object)
from
public <T> PropertyMapper.Source<T> from(T value)
Return a newPropertyMapper.Source
from the specified value that can be used to perform the mapping.- Type Parameters:
T
- the source type- Parameters:
value
- the value- Returns:
- a
PropertyMapper.Source
that can be used to complete the mapping
get
public static PropertyMapper get()
Return the property mapper.- Returns:
- the property mapper