public class PropertySourcePropertyResolver extends Object implements PropertyResolver
A PropertyResolver that resolves from one or many PropertySource instances.
| Modifier and Type | Class and Description |
|---|---|
protected static class |
PropertySourcePropertyResolver.PropertyCatalog
The property catalog to use.
|
| Modifier and Type | Field and Description |
|---|---|
protected Map<String,Object>[] |
catalog |
protected ConversionService<?> |
conversionService |
protected Map<String,Object>[] |
nonGenerated |
protected PropertyPlaceholderResolver |
propertyPlaceholderResolver |
protected Map<String,PropertySource> |
propertySources |
protected Map<String,Object>[] |
rawCatalog |
| Constructor and Description |
|---|
PropertySourcePropertyResolver()
Creates a new, initially empty,
PropertySourcePropertyResolver. |
PropertySourcePropertyResolver(ConversionService<?> conversionService)
Creates a new, initially empty,
PropertySourcePropertyResolver for the given ConversionService. |
PropertySourcePropertyResolver(PropertySource... propertySources)
Creates a new
PropertySourcePropertyResolver for the given PropertySource instances. |
| Modifier and Type | Method and Description |
|---|---|
PropertySourcePropertyResolver |
addPropertySource(PropertySource propertySource)
Add a
PropertySource to this resolver. |
PropertySourcePropertyResolver |
addPropertySource(String name,
Map<String,? super Object> values)
Add a property source for the given map.
|
boolean |
containsProperties(String name)
Whether the given property or any nested properties exist for the key given key within this resolver.
|
boolean |
containsProperty(String name)
Whether the given property is contained within this resolver.
|
Map<String,Object> |
getAllProperties(StringConvention keyConvention,
MapFormat.MapTransformation transformation)
Returns a combined Map of all properties in the catalog.
|
Map<String,Object> |
getProperties(String name,
StringConvention keyFormat)
Return all the properties under the given key.
|
<T> Optional<T> |
getProperty(String name,
ArgumentConversionContext<T> conversionContext)
Resolve the given property for the given name, type and generic type arguments.
|
Collection<String> |
getPropertyEntries(String name)
Returns a collection of properties entries under the given key.
|
protected void |
processPropertySource(PropertySource properties,
PropertySource.PropertyConvention convention) |
protected void |
resetCaches()
Subclasses can override to reset caches.
|
protected Map<String,Object> |
resolveEntriesForKey(String name,
boolean allowCreate) |
protected Map<String,Object> |
resolveEntriesForKey(String name,
boolean allowCreate,
PropertySourcePropertyResolver.PropertyCatalog propertyCatalog) |
protected Map<String,Object> |
resolveSubMap(String name,
Map<String,Object> entries,
ArgumentConversionContext<?> conversionContext) |
protected Map<String,Object> |
resolveSubMap(String name,
Map<String,Object> entries,
ArgumentConversionContext<?> conversionContext,
StringConvention keyConvention,
MapFormat.MapTransformation transformation)
Resolves a submap for the given name and parameters.
|
protected Properties |
resolveSubProperties(String name,
Map<String,Object> entries,
ArgumentConversionContext<?> conversionContext) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitget, getProperties, getProperty, getProperty, getProperty, getProperty, getRequiredProperty, nameOfget, get, getprotected final ConversionService<?> conversionService
protected final PropertyPlaceholderResolver propertyPlaceholderResolver
protected final Map<String,PropertySource> propertySources
public PropertySourcePropertyResolver(ConversionService<?> conversionService)
PropertySourcePropertyResolver for the given ConversionService.conversionService - The ConversionServicepublic PropertySourcePropertyResolver()
PropertySourcePropertyResolver.public PropertySourcePropertyResolver(PropertySource... propertySources)
PropertySourcePropertyResolver for the given PropertySource instances.propertySources - The PropertySource instancespublic PropertySourcePropertyResolver addPropertySource(@Nullable PropertySource propertySource)
PropertySource to this resolver.propertySource - The PropertySource to addPropertySourcePropertyResolverpublic PropertySourcePropertyResolver addPropertySource(String name, @Nullable Map<String,? super Object> values)
name - The name of the property sourcevalues - The valuespublic boolean containsProperty(@Nullable String name)
PropertyResolverWhether the given property is contained within this resolver.
Note that this method will return false for nested properties. In other words given a key of foo.bar this method will
return false for: resolver.containsProperty("foo")
To check for nested properties using PropertyResolver.containsProperties(String) instead.
containsProperty in interface PropertyResolvername - The name of the propertypublic boolean containsProperties(@Nullable String name)
PropertyResolvercontainsProperties in interface PropertyResolvername - The name of the property@NonNull public Collection<String> getPropertyEntries(@NonNull String name)
PropertyResolver
datasource.default.url=localhost
datasource.another.url=someother
Calling getPropertyEntries(String) with a value of datasource will result in a collection
containing default and other.getPropertyEntries in interface PropertyResolvername - The name to resolve@NonNull public Map<String,Object> getProperties(String name, StringConvention keyFormat)
PropertyResolverStringConvention.RAW.getProperties in interface PropertyResolvername - The namekeyFormat - The key format to use for the keys. Default is kebab-case.public <T> Optional<T> getProperty(@NonNull String name, @NonNull ArgumentConversionContext<T> conversionContext)
PropertyResolverResolve the given property for the given name, type and generic type arguments.
Implementers can choose to implement more intelligent type conversion by analyzing the typeArgument.
getProperty in interface PropertyResolverT - The concrete typename - The nameconversionContext - The conversion contextpublic Map<String,Object> getAllProperties(StringConvention keyConvention, MapFormat.MapTransformation transformation)
keyConvention - The map key conventiontransformation - The map formatprotected Properties resolveSubProperties(String name, Map<String,Object> entries, ArgumentConversionContext<?> conversionContext)
name - The property nameentries - The entriesconversionContext - The conversion contextprotected Map<String,Object> resolveSubMap(String name, Map<String,Object> entries, ArgumentConversionContext<?> conversionContext)
name - The property nameentries - The entriesconversionContext - The conversion context@NonNull protected Map<String,Object> resolveSubMap(String name, Map<String,Object> entries, ArgumentConversionContext<?> conversionContext, @Nullable StringConvention keyConvention, MapFormat.MapTransformation transformation)
name - The nameentries - The entriesconversionContext - The conversion contextkeyConvention - The key convention to usetransformation - The map transformation to applyprotected void processPropertySource(PropertySource properties, PropertySource.PropertyConvention convention)
properties - The property sourceconvention - The property conventionprotected Map<String,Object> resolveEntriesForKey(String name, boolean allowCreate)
name - The nameallowCreate - Whether allows creationprotected Map<String,Object> resolveEntriesForKey(String name, boolean allowCreate, @Nullable PropertySourcePropertyResolver.PropertyCatalog propertyCatalog)
name - The nameallowCreate - Whether allows creationpropertyCatalog - The string conventionprotected void resetCaches()