Matt Bertolini created CONFIGURATION-508:
--------------------------------------------
Summary: 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
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