de.dfki.util.xmlrpc.conversion
Class EnhancedTypeConverter

java.lang.Object
  extended by de.dfki.util.xmlrpc.conversion.StandardXmlRpcTypeConverter
      extended by de.dfki.util.xmlrpc.conversion.EnhancedTypeConverter
All Implemented Interfaces:
TypeConverter

public class EnhancedTypeConverter
extends StandardXmlRpcTypeConverter

Advanced type converter able to handle user-specific types which define conversion methods to XML-RPC compliant types.

Author:
lauer

Field Summary
static byte[] NULL_MASK_VALUE
           
 
Constructor Summary
EnhancedTypeConverter()
           
 
Method Summary
protected  java.lang.Object convertArrayToUserRepresentation(ApiParameter apiParam, java.util.Collection<?> parameterInXmlRpcRep)
           
protected  java.lang.Object convertArrayToXmlRpc(ApiParameter apiParam, java.lang.Object parameterInUserRep)
           
 java.lang.Object convertCollectionToUserRepresentation(java.lang.Class<?> apiContainerClass, ApiParameter apiParam, java.util.Collection<?> parameterInXmlRpcRep)
          Converts a whole collection recursively.
protected  java.lang.Object convertCollectionToXmlRpc(ApiParameter apiParam, java.util.Collection<?> parameterInUserRep)
          Converts a whole collection recursively.
 java.lang.Object convertMapToUserRepresentation(java.lang.Class<?> apiContainerClass, ApiParameter apiParam, java.util.Map<?,?> parameterInXmlRpcRep)
          Converts a whole map recursively.
protected  java.lang.Object convertMapToXmlRpc(ApiParameter apiParam, java.util.Map<?,?> parameterInUserRep)
          Converts a whole map recursively.
 java.lang.Object convertToUserRepresentation(ApiParameter apiParam, java.lang.Object parameterValueInXmlRpcRep)
          Converts the given object from a generic XML-RPC representation into the required user-representation.
protected  java.lang.Object convertToUserRepWithConvertable(java.lang.Object parameterValueInXmlRpcRep, XmlRpc.Type xmlRpcType, java.lang.Class<? extends Convertible<?>> convertableCls)
           
protected  java.lang.Object convertToUserRepWithConverter(ApiParameter apiParam, java.lang.Object parameterInXmlRpcRep)
          Try to convert an object in XML-RPC representation into a parameter object compatible with the used api.
protected  java.lang.Object convertToUserRepWithSeparateConverter(java.lang.Object parameterValueInXmlRpcRep, ParameterConverter<?,?> converter)
           
 java.lang.Object convertToXmlRpcRepresentation(ApiParameter apiParam, java.lang.Object parameterValue)
          Converts the given object into its generic XML-RPC representation.
protected  java.lang.Object convertToXmlRpcWithConvertable(java.lang.Object parameterInUserRep)
           
protected  java.lang.Object convertToXmlRpcWithSeparateConverter(java.lang.Object parameterValueInUserRep, ParameterConverter<?,?> converter)
          conversion: will pass null values to a converter.
protected  java.util.Collection<java.lang.Object> createCollectionContainer(java.lang.Class<?> apiContainerClass)
           
protected  java.util.Map<java.lang.Object,java.lang.Object> createMapContainer(java.lang.Class<?> apiContainerClass)
           
 boolean isNullMaskValue(java.lang.Object value)
           
static java.util.logging.Logger log()
           
 
Methods inherited from class de.dfki.util.xmlrpc.conversion.StandardXmlRpcTypeConverter
areCompatible, convertToXmlRpcRepresentationClass, mapJavaTypeToXmlRpcType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NULL_MASK_VALUE

public static byte[] NULL_MASK_VALUE
Constructor Detail

EnhancedTypeConverter

public EnhancedTypeConverter()
Method Detail

log

public static java.util.logging.Logger log()

isNullMaskValue

public boolean isNullMaskValue(java.lang.Object value)

convertToUserRepresentation

public java.lang.Object convertToUserRepresentation(ApiParameter apiParam,
                                                    java.lang.Object parameterValueInXmlRpcRep)
                                             throws TypeConversionException
Description copied from interface: TypeConverter
Converts the given object from a generic XML-RPC representation into the required user-representation.

Specified by:
convertToUserRepresentation in interface TypeConverter
Overrides:
convertToUserRepresentation in class StandardXmlRpcTypeConverter
Throws:
TypeConversionException

convertToXmlRpcRepresentation

public java.lang.Object convertToXmlRpcRepresentation(ApiParameter apiParam,
                                                      java.lang.Object parameterValue)
                                               throws TypeConversionException
Description copied from interface: TypeConverter
Converts the given object into its generic XML-RPC representation.

Specified by:
convertToXmlRpcRepresentation in interface TypeConverter
Overrides:
convertToXmlRpcRepresentation in class StandardXmlRpcTypeConverter
Throws:
TypeConversionException - if a conversion was not possible (wrong type, no valid constructor, wrong factory).

convertCollectionToXmlRpc

protected java.lang.Object convertCollectionToXmlRpc(ApiParameter apiParam,
                                                     java.util.Collection<?> parameterInUserRep)
                                              throws TypeConversionException
Converts a whole collection recursively. TODO: avoid collection copy, if conversion does not change values.

Throws:
TypeConversionException

convertMapToXmlRpc

protected java.lang.Object convertMapToXmlRpc(ApiParameter apiParam,
                                              java.util.Map<?,?> parameterInUserRep)
                                       throws TypeConversionException
Converts a whole map recursively. TODO: avoid map copy, if conversion does not change values.

Throws:
TypeConversionException

convertArrayToXmlRpc

protected java.lang.Object convertArrayToXmlRpc(ApiParameter apiParam,
                                                java.lang.Object parameterInUserRep)
                                         throws TypeConversionException
Throws:
TypeConversionException

convertToXmlRpcWithConvertable

protected java.lang.Object convertToXmlRpcWithConvertable(java.lang.Object parameterInUserRep)
                                                   throws TypeConversionException
Throws:
TypeConversionException

convertToXmlRpcWithSeparateConverter

protected java.lang.Object convertToXmlRpcWithSeparateConverter(java.lang.Object parameterValueInUserRep,
                                                                ParameterConverter<?,?> converter)
                                                         throws TypeConversionException
conversion: will pass null values to a converter.

Throws:
TypeConversionException

createCollectionContainer

protected java.util.Collection<java.lang.Object> createCollectionContainer(java.lang.Class<?> apiContainerClass)
                                                                    throws TypeConversionException
Throws:
TypeConversionException

createMapContainer

protected java.util.Map<java.lang.Object,java.lang.Object> createMapContainer(java.lang.Class<?> apiContainerClass)
                                                                       throws TypeConversionException
Throws:
TypeConversionException

convertCollectionToUserRepresentation

public java.lang.Object convertCollectionToUserRepresentation(java.lang.Class<?> apiContainerClass,
                                                              ApiParameter apiParam,
                                                              java.util.Collection<?> parameterInXmlRpcRep)
                                                       throws TypeConversionException
Converts a whole collection recursively. TODO: avoid collection copy, if conversion does not change values.

Throws:
TypeConversionException

convertMapToUserRepresentation

public java.lang.Object convertMapToUserRepresentation(java.lang.Class<?> apiContainerClass,
                                                       ApiParameter apiParam,
                                                       java.util.Map<?,?> parameterInXmlRpcRep)
                                                throws TypeConversionException
Converts a whole map recursively. TODO: avoid map copy, if conversion does not change values.

Throws:
TypeConversionException

convertArrayToUserRepresentation

protected java.lang.Object convertArrayToUserRepresentation(ApiParameter apiParam,
                                                            java.util.Collection<?> parameterInXmlRpcRep)
                                                     throws TypeConversionException
Throws:
TypeConversionException

convertToUserRepWithConverter

protected java.lang.Object convertToUserRepWithConverter(ApiParameter apiParam,
                                                         java.lang.Object parameterInXmlRpcRep)
                                                  throws TypeConversionException
Try to convert an object in XML-RPC representation into a parameter object compatible with the used api. First check: do we have a bound converter (parameter class does conversion itself). Second check: do we have an autonomous converter (a separate class which does the conversion)

Throws:
TypeConversionException

convertToUserRepWithConvertable

protected java.lang.Object convertToUserRepWithConvertable(java.lang.Object parameterValueInXmlRpcRep,
                                                           XmlRpc.Type xmlRpcType,
                                                           java.lang.Class<? extends Convertible<?>> convertableCls)
                                                    throws TypeConversionException
Throws:
TypeConversionException

convertToUserRepWithSeparateConverter

protected java.lang.Object convertToUserRepWithSeparateConverter(java.lang.Object parameterValueInXmlRpcRep,
                                                                 ParameterConverter<?,?> converter)
                                                          throws TypeConversionException
Throws:
TypeConversionException


Copyright © 2012. All Rights Reserved.