[
https://issues.apache.org/jira/browse/CONFIGURATION-508?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Oliver Heger resolved CONFIGURATION-508.
----------------------------------------
Resolution: Fixed
Fix Version/s: 2.0
Generic get() methods have been added to the {{Configuration}} interface. These
methods delegate to a {{ConversionHandler}} object which is responsible for all
data type conversions. It is possible to replace the default conversion handler
to customize the conversion mechanism.
> Add generic get method to convert config property to any object
> ---------------------------------------------------------------
>
> Key: CONFIGURATION-508
> URL: https://issues.apache.org/jira/browse/CONFIGURATION-508
> Project: Commons Configuration
> Issue Type: Improvement
> Components: Type conversion
> Affects Versions: 1.9
> Reporter: Matt Bertolini
> Labels: configuration, constructor, conversion, convert,
> generic, property, static, type, valueof
> Fix For: 2.0
>
>
> Now that commons configuration requires java 5.0+, I think we should consider
> adding a couple of new generic getter methods that will enable developers to
> automatically convert the configuration property to the object of their
> choice. I envision the API looking like the below:
> {code:java}
> public <T> T get(String key, Class<T> clazz);
> public <T> T get(String key, Class<T> clazz, T defaultValue);
> {code}
> The method would perform a five step process:
> # First it would get the string value, post interpolation.
> # Then it would check the given class for the existence of a static "valueOf"
> method with one String argument. If found, it would invoke that method with
> the interpolated string value.
> # If no static "valueOf" method is found, it would search for a constructor
> with one String argument. If that is found, it would construct a new instance
> of the class passing the interpolated string value.
> # If no constructor or static method is found, it will check if a default
> value was given, returning it if true.
> # Finally, if no default value is given, it checks to see if
> throwExceptionOnMissing is set to true. If so, it will throw the exception.
> If false, it will return null.
> This behavior is similar to how the Spring conversion service works. I
> believe that this feature would be a great help to developers as many of the
> values contained in configuration properties often times map over to various
> model objects.
> I am looking for some feedback on the idea. Let me know your thoughts. Thanks.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira