public class PropertyLoader extends Object
| Modifier and Type | Field and Description |
|---|---|
protected ClassLoader |
classLoader |
protected Properties |
compiled |
protected Properties |
defaults |
protected ConverterManager |
manager |
protected PropertyProvider |
propertyProvider |
| Modifier and Type | Method and Description |
|---|---|
protected void |
checkConfigurationClass(Class<?> clazz)
Check that given class is interface.
|
protected void |
checkRequired(String key,
AnnotatedElement element)
Throws an exception if given element is required.
|
protected void |
compileProperties(Class<?> clazz)
Compile properties to
compiled field. |
protected Object |
convertValue(AnnotatedElement element,
String value)
Convert given value to specified type.
|
ClassLoader |
getClassLoader() |
protected Class<?> |
getCollectionElementType(Type genericType)
Get collection element type for given type.
|
Properties |
getCompiled() |
protected Converter |
getConverterForElementWithUseAnnotation(AnnotatedElement element)
Returns new instance of converter specified in
Use annotation for
given element. |
Properties |
getDefaults() |
protected String |
getKey(String prefix,
AnnotatedElement element)
Get property key for specified element with given prefix.
|
protected String |
getPropertyDefaultValue(AnnotatedElement element)
Get the default value for given element.
|
PropertyProvider |
getPropertyProvider() |
protected Type |
getValueGenericType(AnnotatedElement element)
Returns the generic type of the value for given element.
|
protected Class<?> |
getValueType(AnnotatedElement element)
Returns the type of the value for given element.
|
protected boolean |
isRequired(AnnotatedElement element)
Returns true if annotatedElement marked as required with
Required. |
static PropertyLoader |
newInstance()
Do not instance class by yourself.
|
<T> T |
populate(Class<T> clazz) |
<T> T |
populate(Class<T> clazz,
Set<Class> resolvedConfigs)
Shortcut for
populate(String, Class, Set). |
void |
populate(Object bean)
Populate given bean using properties from
defaults and
PropertyProvider.provide(ClassLoader, Class) |
<T> T |
populate(String prefix,
Class<T> clazz,
Set<Class> resolvedConfigs)
Creates a proxy instance of given configuration.
|
<T> PropertyLoader |
register(Converter<T> converter,
Class<T> type)
Register custom converter for given type.
|
protected <T extends AnnotatedElement> |
resolveProperties(String keyPrefix,
T[] elements)
Return
PropertyInfo for each of given elements. |
protected <T extends AnnotatedElement> |
resolveProperties(T[] elements)
Shortcut for
resolveProperties(String, AnnotatedElement[]). |
void |
setClassLoader(ClassLoader classLoader) |
void |
setDefaults(Properties defaults) |
void |
setPropertyProvider(PropertyProvider propertyProvider) |
protected void |
setValueToField(Field field,
Object bean,
Object value)
Set given value to specified field of given object.
|
protected boolean |
shouldDecorate(AnnotatedElement element)
Returns true if given annotatedElement should be decorated,
false otherwise.
|
PropertyLoader |
withClassLoader(ClassLoader classLoader)
Fluent-api builder.
|
PropertyLoader |
withDefaults(Properties defaults)
Fluent-api builder.
|
PropertyLoader |
withPropertyProvider(PropertyProvider propertyProvider)
Fluent-api builder.
|
protected ClassLoader classLoader
protected Properties defaults
protected Properties compiled
protected PropertyProvider propertyProvider
protected final ConverterManager manager
public void populate(Object bean)
defaults and
PropertyProvider.provide(ClassLoader, Class)public <T> T populate(Class<T> clazz)
public <T> T populate(Class<T> clazz, Set<Class> resolvedConfigs)
populate(String, Class, Set).public <T> T populate(String prefix, Class<T> clazz, Set<Class> resolvedConfigs)
protected void setValueToField(Field field, Object bean, Object value)
PropertyLoaderException - if some exceptions occurs during reflection calls.AccessibleObject.setAccessible(boolean),
Field.set(Object, Object)protected void checkConfigurationClass(Class<?> clazz)
protected void compileProperties(Class<?> clazz)
compiled field.protected <T extends AnnotatedElement> Map<T,PropertyInfo> resolveProperties(T[] elements)
resolveProperties(String, AnnotatedElement[]).protected <T extends AnnotatedElement> Map<T,PropertyInfo> resolveProperties(String keyPrefix, T[] elements)
PropertyInfo for each of given elements.protected boolean shouldDecorate(AnnotatedElement element)
protected void checkRequired(String key, AnnotatedElement element)
isRequired(AnnotatedElement)protected boolean isRequired(AnnotatedElement element)
Required.protected String getPropertyDefaultValue(AnnotatedElement element)
Property should
be present.protected String getKey(String prefix, AnnotatedElement element)
Property should
be present.protected Object convertValue(AnnotatedElement element, String value)
Use annotation
use getConverterForElementWithUseAnnotation(AnnotatedElement) converter, otherwise
if element has collection type convert collection and finally try to convert element
using registered converters.protected Class<?> getValueType(AnnotatedElement element)
protected Type getValueGenericType(AnnotatedElement element)
protected Class<?> getCollectionElementType(Type genericType) throws ConversionException
Collection. For collections without
generic returns String.ConversionExceptionprotected Converter getConverterForElementWithUseAnnotation(AnnotatedElement element)
Use annotation for
given element.element - given element with Use annotation.public <T> PropertyLoader register(Converter<T> converter, Class<T> type)
public Properties getCompiled()
public ClassLoader getClassLoader()
public void setClassLoader(ClassLoader classLoader)
classLoaderpublic PropertyLoader withClassLoader(ClassLoader classLoader)
setClassLoader(ClassLoader)public Properties getDefaults()
public void setDefaults(Properties defaults)
defaultspublic PropertyLoader withDefaults(Properties defaults)
setDefaults(Properties)public PropertyProvider getPropertyProvider()
public void setPropertyProvider(PropertyProvider propertyProvider)
propertyProviderpublic PropertyLoader withPropertyProvider(PropertyProvider propertyProvider)
public static PropertyLoader newInstance()
Copyright © 2015 QATools. All Rights Reserved.