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 Constructor Description AbstractConfigurationConverter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ObjectfromConfiguration(ConverterLookup converterLookup, PlexusConfiguration configuration, Class type, Class baseType, ClassLoader classLoader, ExpressionEvaluator expressionEvaluator)protected ObjectfromExpression(PlexusConfiguration configuration, ExpressionEvaluator expressionEvaluator)protected ObjectfromExpression(PlexusConfiguration configuration, ExpressionEvaluator expressionEvaluator, Class type)protected StringfromXML(String elementName)protected ClassgetClassForImplementationHint(Class type, PlexusConfiguration configuration, ClassLoader classLoader)We will check if user has provided a hint which class should be used for given field.protected ObjectinstantiateObject(Class clazz)protected ObjectinstantiateObject(String classname, ClassLoader classLoader)protected ClassloadClass(String classname, ClassLoader classLoader)protected StringtoXML(String fieldName)-
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
-
-
-
-
Method Detail
-
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
protected Object instantiateObject(Class clazz) throws ComponentConfigurationException
- Throws:
ComponentConfigurationException
-
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:
fromConfigurationin interfaceConfigurationConverter- Parameters:
converterLookup- Repository of available convertersconfiguration-PlexusConfigurationtype- 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
-
-