Interface PropertyResolver
-
- All Superinterfaces:
ValueResolver<java.lang.String>
- All Known Implementing Classes:
MapPropertyResolver
public interface PropertyResolver extends ValueResolver<java.lang.String>
A property resolver is capable of resolving properties from an underlying property source.- Since:
- 1.0
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description boolean
containsProperties(java.lang.String name)
Whether the given property or any nested properties exist for the key given key within this resolver.boolean
containsProperty(java.lang.String name)
Whether the given property is contained within this resolver.default <T> java.util.Optional<T>
get(java.lang.String name, ArgumentConversionContext<T> conversionContext)
Resolve the given property for the given name.default java.util.Map<java.lang.String,java.lang.Object>
getProperties(java.lang.String name)
Return all the properties under the given key.default java.util.Map<java.lang.String,java.lang.Object>
getProperties(java.lang.String name, StringConvention keyFormat)
Return all the properties under the given key.<T> java.util.Optional<T>
getProperty(java.lang.String name, ArgumentConversionContext<T> conversionContext)
Resolve the given property for the given name, type and generic type arguments.default <T> java.util.Optional<T>
getProperty(java.lang.String name, Argument<T> argument)
Resolve the given property for the given name, type and generic type arguments.default <T> java.util.Optional<T>
getProperty(java.lang.String name, java.lang.Class<T> requiredType)
Resolve the given property for the given name.default <T> java.util.Optional<T>
getProperty(java.lang.String name, java.lang.Class<T> requiredType, ConversionContext context)
Resolve the given property for the given name, type and generic type arguments.default <T> T
getProperty(java.lang.String name, java.lang.Class<T> requiredType, T defaultValue)
Resolve the given property for the given name.default java.util.Collection<java.lang.String>
getPropertyEntries(java.lang.String name)
Returns a collection of properties entries under the given key.default <T> T
getRequiredProperty(java.lang.String name, java.lang.Class<T> requiredType)
Resolve the given property for the given name.static java.lang.String
nameOf(java.lang.String... path)
Builds a property name for the given property path.-
Methods inherited from interface io.micronaut.core.value.ValueResolver
get, get, get
-
-
-
-
Method Detail
-
containsProperty
boolean containsProperty(@NonNull java.lang.String name)
Whether 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 returnfalse
for:resolver.containsProperty("foo")
To check for nested properties using
containsProperties(String)
instead.- Parameters:
name
- The name of the property- Returns:
- True if it is
-
containsProperties
boolean containsProperties(@NonNull java.lang.String name)
Whether the given property or any nested properties exist for the key given key within this resolver.- Parameters:
name
- The name of the property- Returns:
- True if it is
-
getProperty
@NonNull <T> java.util.Optional<T> getProperty(@NonNull java.lang.String name, @NonNull ArgumentConversionContext<T> conversionContext)
Resolve 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.
- Type Parameters:
T
- The concrete type- Parameters:
name
- The nameconversionContext
- The conversion context- Returns:
- An optional containing the property value if it exists
-
getPropertyEntries
@NonNull default java.util.Collection<java.lang.String> getPropertyEntries(@NonNull java.lang.String name)
Returns a collection of properties entries under the given key. For example given the following keys:datasource.default.url=localhost datasource.another.url=someother
getPropertyEntries(String)
with a value ofdatasource
will result in a collection containingdefault
andother
.- Parameters:
name
- The name to resolve- Returns:
- The property entries.
-
getProperty
@NonNull default <T> java.util.Optional<T> getProperty(@NonNull java.lang.String name, @NonNull Argument<T> argument)
Resolve 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.
- Type Parameters:
T
- The concrete type- Parameters:
name
- The nameargument
- The required type- Returns:
- An optional containing the property value if it exists
-
getProperties
@NonNull default java.util.Map<java.lang.String,java.lang.Object> getProperties(@NonNull java.lang.String name)
Return all the properties under the given key.- Parameters:
name
- The name- Returns:
- The properties
-
getProperties
@NonNull default java.util.Map<java.lang.String,java.lang.Object> getProperties(@Nullable java.lang.String name, @Nullable StringConvention keyFormat)
Return all the properties under the given key. By default Micronaut stores keys in keb-case, such that normalized lookups are more efficient. You can obtain the raw key values by passing inStringConvention.RAW
.- Parameters:
name
- The namekeyFormat
- The key format to use for the keys. Default is kebab-case.- Returns:
- The properties
-
getProperty
@NonNull default <T> java.util.Optional<T> getProperty(@NonNull java.lang.String name, @NonNull java.lang.Class<T> requiredType, @NonNull ConversionContext context)
Resolve 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.
- Type Parameters:
T
- The concrete type- Parameters:
name
- The namerequiredType
- The required typecontext
- TheConversionContext
to apply to any conversion- Returns:
- An optional containing the property value if it exists
-
get
@NonNull default <T> java.util.Optional<T> get(@NonNull java.lang.String name, @NonNull ArgumentConversionContext<T> conversionContext)
Description copied from interface:ValueResolver
Resolve the given property for the given name.- Specified by:
get
in interfaceValueResolver<java.lang.String>
- Type Parameters:
T
- The concrete type- Parameters:
name
- The nameconversionContext
- The conversion context- Returns:
- An optional containing the property value if it exists and is able to be converted
-
getProperty
@NonNull default <T> java.util.Optional<T> getProperty(@NonNull java.lang.String name, @NonNull java.lang.Class<T> requiredType)
Resolve the given property for the given name.- Type Parameters:
T
- The concrete type- Parameters:
name
- The namerequiredType
- The required type- Returns:
- An optional containing the property value if it exists
-
getProperty
@Nullable default <T> T getProperty(@NonNull java.lang.String name, @NonNull java.lang.Class<T> requiredType, @Nullable T defaultValue)
Resolve the given property for the given name.- Type Parameters:
T
- The concrete type- Parameters:
name
- The namerequiredType
- The required typedefaultValue
- The default value- Returns:
- An optional containing the property value if it exists
-
getRequiredProperty
@NonNull default <T> T getRequiredProperty(@NonNull java.lang.String name, @NonNull java.lang.Class<T> requiredType) throws PropertyNotFoundException
Resolve the given property for the given name.- Type Parameters:
T
- The concrete type- Parameters:
name
- The name of the propertyrequiredType
- The required type- Returns:
- The value of the property
- Throws:
PropertyNotFoundException
- exception when property does not exist
-
nameOf
static java.lang.String nameOf(java.lang.String... path)
Builds a property name for the given property path.- Parameters:
path
- The path- Returns:
- The property name
-
-