Package org.eclipse.sisu.plexus
Class PlexusXmlBeanConverter
- java.lang.Object
-
- org.eclipse.sisu.plexus.PlexusXmlBeanConverter
-
- All Implemented Interfaces:
PlexusBeanConverter
public final class PlexusXmlBeanConverter extends java.lang.Object implements PlexusBeanConverter
PlexusBeanConverterModulethat converts Plexus XML configuration into beans.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.StringCONVERSION_ERRORprivate java.util.Collection<com.google.inject.spi.TypeConverterBinding>typeConverterBindings
-
Constructor Summary
Constructors Constructor Description PlexusXmlBeanConverter(com.google.inject.Injector injector)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Objectconvert(com.google.inject.TypeLiteral role, java.lang.String value)Converts the given constant value to a bean of the given type.private java.lang.ObjectconvertText(java.lang.String value, com.google.inject.TypeLiteral<?> toType)Converts the given string to the target type, usingTypeConverters registered with theInjector.private static java.lang.Class<?>loadImplementation(java.lang.String name, java.lang.Class<?> defaultClazz)Attempts to load the named implementation, uses default implementation if no name is given.private static <T> TnewImplementation(java.lang.Class<T> clazz)Creates an instance of the given implementation using the default constructor.private static <T> TnewImplementation(java.lang.Class<T> clazz, java.lang.String value)Creates an instance of the given implementation using the given string, assumes a public string constructor.private static <T> TnewImplementation(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, java.lang.Class<T> defaultClazz)Creates an instance of the implementation named in the current XML element, or the default if no name is given.private java.lang.Objectparse(org.codehaus.plexus.util.xml.pull.MXParser parser, com.google.inject.TypeLiteral<?> toType)Parses a sequence of XML elements and converts them to the given target type.private java.lang.ObjectparseArray(org.codehaus.plexus.util.xml.pull.MXParser parser, com.google.inject.TypeLiteral<?> toType)Parses a sequence of XML elements and converts them to the appropriate array type.private java.lang.ObjectparseBean(org.codehaus.plexus.util.xml.pull.MXParser parser, com.google.inject.TypeLiteral<?> toType, java.lang.Class<?> rawType)Parses a sequence of XML elements and converts them to the appropriate bean type.private java.util.Collection<java.lang.Object>parseCollection(org.codehaus.plexus.util.xml.pull.MXParser parser, com.google.inject.TypeLiteral<?> toType)Parses a sequence of XML elements and converts them to the appropriateCollectiontype.private static java.lang.StringparseImplementation(org.codehaus.plexus.util.xml.pull.XmlPullParser parser)Parses an XML element looking for the name of a custom implementation.private java.util.Map<java.lang.String,java.lang.Object>parseMap(org.codehaus.plexus.util.xml.pull.MXParser parser, com.google.inject.TypeLiteral<?> toType)Parses a sequence of XML elements and converts them to the appropriateMaptype.private static java.util.PropertiesparseProperties(org.codehaus.plexus.util.xml.pull.XmlPullParser parser)Parses a sequence of XML elements and converts them to the appropriatePropertiestype.private static org.codehaus.plexus.util.xml.Xpp3DomparseXpp3Dom(org.codehaus.plexus.util.xml.pull.XmlPullParser parser)Parses an XML subtree and converts it to theXpp3Domtype.
-
-
-
Field Detail
-
CONVERSION_ERROR
private static final java.lang.String CONVERSION_ERROR
- See Also:
- Constant Field Values
-
typeConverterBindings
private final java.util.Collection<com.google.inject.spi.TypeConverterBinding> typeConverterBindings
-
-
Method Detail
-
convert
public java.lang.Object convert(com.google.inject.TypeLiteral role, java.lang.String value)Description copied from interface:PlexusBeanConverterConverts the given constant value to a bean of the given type.- Specified by:
convertin interfacePlexusBeanConverter- Parameters:
role- The expected bean typevalue- The constant value- Returns:
- Bean of the given type, based on the given constant value
-
parse
private java.lang.Object parse(org.codehaus.plexus.util.xml.pull.MXParser parser, com.google.inject.TypeLiteral<?> toType) throws java.lang.ExceptionParses a sequence of XML elements and converts them to the given target type.- Parameters:
parser- The XML parsertoType- The target type- Returns:
- Converted instance of the target type
- Throws:
java.lang.Exception
-
parseXpp3Dom
private static org.codehaus.plexus.util.xml.Xpp3Dom parseXpp3Dom(org.codehaus.plexus.util.xml.pull.XmlPullParser parser) throws java.lang.ExceptionParses an XML subtree and converts it to theXpp3Domtype.- Parameters:
parser- The XML parser- Returns:
- Converted Xpp3Dom instance
- Throws:
java.lang.Exception
-
parseProperties
private static java.util.Properties parseProperties(org.codehaus.plexus.util.xml.pull.XmlPullParser parser) throws java.lang.ExceptionParses a sequence of XML elements and converts them to the appropriatePropertiestype.- Parameters:
parser- The XML parser- Returns:
- Converted Properties instance
- Throws:
java.lang.Exception
-
parseMap
private java.util.Map<java.lang.String,java.lang.Object> parseMap(org.codehaus.plexus.util.xml.pull.MXParser parser, com.google.inject.TypeLiteral<?> toType) throws java.lang.ExceptionParses a sequence of XML elements and converts them to the appropriateMaptype.- Parameters:
parser- The XML parser- Returns:
- Converted Map instance
- Throws:
java.lang.Exception
-
parseCollection
private java.util.Collection<java.lang.Object> parseCollection(org.codehaus.plexus.util.xml.pull.MXParser parser, com.google.inject.TypeLiteral<?> toType) throws java.lang.ExceptionParses a sequence of XML elements and converts them to the appropriateCollectiontype.- Parameters:
parser- The XML parser- Returns:
- Converted Collection instance
- Throws:
java.lang.Exception
-
parseArray
private java.lang.Object parseArray(org.codehaus.plexus.util.xml.pull.MXParser parser, com.google.inject.TypeLiteral<?> toType) throws java.lang.ExceptionParses a sequence of XML elements and converts them to the appropriate array type.- Parameters:
parser- The XML parser- Returns:
- Converted array instance
- Throws:
java.lang.Exception
-
parseBean
private java.lang.Object parseBean(org.codehaus.plexus.util.xml.pull.MXParser parser, com.google.inject.TypeLiteral<?> toType, java.lang.Class<?> rawType) throws java.lang.ExceptionParses a sequence of XML elements and converts them to the appropriate bean type.- Parameters:
parser- The XML parser- Returns:
- Converted bean instance
- Throws:
java.lang.Exception
-
parseImplementation
private static java.lang.String parseImplementation(org.codehaus.plexus.util.xml.pull.XmlPullParser parser)
Parses an XML element looking for the name of a custom implementation.- Parameters:
parser- The XML parser- Returns:
- Name of the custom implementation; otherwise
null
-
loadImplementation
private static java.lang.Class<?> loadImplementation(java.lang.String name, java.lang.Class<?> defaultClazz)Attempts to load the named implementation, uses default implementation if no name is given.- Parameters:
name- The optional implementation namedefaultClazz- The default implementation type- Returns:
- Custom implementation type if one was given; otherwise default implementation type
-
newImplementation
private static <T> T newImplementation(java.lang.Class<T> clazz)
Creates an instance of the given implementation using the default constructor.- Parameters:
clazz- The implementation type- Returns:
- Instance of given implementation
-
newImplementation
private static <T> T newImplementation(java.lang.Class<T> clazz, java.lang.String value)Creates an instance of the given implementation using the given string, assumes a public string constructor.- Parameters:
clazz- The implementation typevalue- The string argument- Returns:
- Instance of given implementation, constructed using the the given string
-
newImplementation
private static <T> T newImplementation(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, java.lang.Class<T> defaultClazz)Creates an instance of the implementation named in the current XML element, or the default if no name is given.- Parameters:
parser- The XML parserdefaultClazz- The default implementation type- Returns:
- Instance of custom implementation if one was given; otherwise instance of default type
-
convertText
private java.lang.Object convertText(java.lang.String value, com.google.inject.TypeLiteral<?> toType)Converts the given string to the target type, usingTypeConverters registered with theInjector.- Parameters:
value- The string valuetoType- The target type- Returns:
- Converted instance of the target type
-
-