Class AbstractConfigurationConverter
java.lang.Object
org.codehaus.plexus.component.configurator.converters.AbstractConfigurationConverter
- All Implemented Interfaces:
ConfigurationConverter
- Direct Known Subclasses:
AbstractBasicConverter
,ArrayConverter
,ClassRealmConverter
,CollectionConverter
,EnumConverter
,MapConverter
,ObjectWithFieldsConverter
,PlexusConfigurationConverter
,PropertiesConverter
public abstract class AbstractConfigurationConverter
extends Object
implements ConfigurationConverter
- Author:
- Michal Maczka
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfromConfiguration
(ConverterLookup converterLookup, PlexusConfiguration configuration, Class type, Class baseType, ClassLoader classLoader, ExpressionEvaluator expressionEvaluator) protected Object
fromExpression
(PlexusConfiguration configuration, ExpressionEvaluator expressionEvaluator) protected Object
fromExpression
(PlexusConfiguration configuration, ExpressionEvaluator expressionEvaluator, Class type) protected String
protected Class
getClassForImplementationHint
(Class type, PlexusConfiguration configuration, ClassLoader classLoader) We will check if user has provided a hint which class should be used for given field.protected Object
instantiateObject
(Class clazz) protected Object
instantiateObject
(String classname, ClassLoader classLoader) protected Class
loadClass
(String classname, ClassLoader classLoader) protected String
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.codehaus.plexus.component.configurator.converters.ConfigurationConverter
canConvert, fromConfiguration
-
Constructor Details
-
AbstractConfigurationConverter
public AbstractConfigurationConverter()
-
-
Method Details
-
getClassForImplementationHint
protected Class getClassForImplementationHint(Class type, PlexusConfiguration configuration, ClassLoader classLoader) throws ComponentConfigurationException We will check if user has provided a hint which class should be used for given field. So we will check if something like<foo implementation="com.MyFoo">
is present in configuraion. If 'implementation' hint was provided we will try to load correspoding class If we are unable to do so error will be reported- Parameters:
type
-Class
.configuration
-PlexusConfiguration
.classLoader
-ClassLoader
.- Returns:
- The class.
- Throws:
ComponentConfigurationException
- in case of an error.
-
loadClass
protected Class loadClass(String classname, ClassLoader classLoader) throws ComponentConfigurationException - Throws:
ComponentConfigurationException
-
instantiateObject
protected Object instantiateObject(String classname, ClassLoader classLoader) throws ComponentConfigurationException - Throws:
ComponentConfigurationException
-
instantiateObject
- Throws:
ComponentConfigurationException
-
fromXML
-
toXML
-
fromExpression
protected Object fromExpression(PlexusConfiguration configuration, ExpressionEvaluator expressionEvaluator, Class type) throws ComponentConfigurationException - Throws:
ComponentConfigurationException
-
fromExpression
protected Object fromExpression(PlexusConfiguration configuration, ExpressionEvaluator expressionEvaluator) throws ComponentConfigurationException - Throws:
ComponentConfigurationException
-
fromConfiguration
public Object fromConfiguration(ConverterLookup converterLookup, PlexusConfiguration configuration, Class type, Class baseType, ClassLoader classLoader, ExpressionEvaluator expressionEvaluator) throws ComponentConfigurationException - Specified by:
fromConfiguration
in interfaceConfigurationConverter
- Parameters:
converterLookup
- Repository of available convertersconfiguration
-PlexusConfiguration
type
- the type of object to readbaseType
- the type of object the the source isclassLoader
- ClassLoader which should be used for loading classesexpressionEvaluator
- the expression evaluator to use for expressions- Returns:
- the object
- Throws:
ComponentConfigurationException
- in case of an error. TODO: a better way, instead of baseType, would be to pass in a factory for new classes that could be based from the given package
-