net.sf.morph.integration.commons.beanutils
Class BeanUtilsConverter

java.lang.Object
  extended by net.sf.morph.transform.transformers.BaseTransformer
      extended by net.sf.morph.integration.commons.beanutils.BeanUtilsConverter
All Implemented Interfaces:
net.sf.composite.Component, Converter, DecoratedConverter, DecoratedTransformer, ExplicitTransformer, Transformer
Direct Known Subclasses:
BeanUtilsConverter

public class BeanUtilsConverter
extends BaseTransformer
implements Converter, DecoratedConverter

A converter which delegates to Commons BeanUtils.

Since:
October 25, 2004
Author:
Matt Sgarlata

Field Summary
static java.lang.Class[] ALL_OBJECTS
          Source-destination classes.
 
Fields inherited from class net.sf.morph.transform.transformers.BaseTransformer
destinationClasses, log, sourceClasses
 
Fields inherited from interface net.sf.morph.transform.Transformer
TRANSFORMATION_TYPE_CONVERT, TRANSFORMATION_TYPE_COPY
 
Fields inherited from interface net.sf.morph.transform.Transformer
TRANSFORMATION_TYPE_CONVERT, TRANSFORMATION_TYPE_COPY
 
Fields inherited from interface net.sf.morph.transform.Transformer
TRANSFORMATION_TYPE_CONVERT, TRANSFORMATION_TYPE_COPY
 
Constructor Summary
BeanUtilsConverter()
           
 
Method Summary
protected  java.lang.Object convertImpl(java.lang.Class destinationClass, java.lang.Object source, java.util.Locale locale)
          The implementation of the convert method, which may omit the invalid argument checks already performed by this base class.
 org.apache.commons.beanutils.ConvertUtilsBean getConvertUtilsBean()
          Returns the ConvertUtilsBean set with the setConvertUtilsBean method, or the default ConvertUtilsBean instance that is used by the static methods in ConvertUtils.
 java.lang.Class[] getDestinationClassesImpl()
          Transformer.getDestinationClasses() implementation template method.
 java.lang.Class[] getSourceClassesImpl()
          Transformer.getSourceClasses() implementation template method.
protected  boolean isNaivelyConvertible(java.lang.Class destinationClass, java.lang.Class sourceClass)
          Learn whether the given source-destination combination is "naively" convertible.
protected  boolean isTransformableImpl(java.lang.Class destinationType, java.lang.Class sourceType)
          Default implementation for Transformer#isTransformable(Class, Class) that assumes that each source type can be converted into each destination type.
protected  boolean isWrappingRuntimeExceptions()
          Indicates whether runtime exceptions should be wrapped as TransformationExceptions.
 void setConvertUtilsBean(org.apache.commons.beanutils.ConvertUtilsBean convertUtilsBean)
          Set the ConvertUtilsBean to use.
 
Methods inherited from class net.sf.morph.transform.transformers.BaseTransformer
clone, convert, convert, copy, copy, copyImpl, createDefaultReflector, createNewInstance, createNewInstanceImpl, createReusableSource, equals, equals, equalsUnidirectionalTest, getDestinationClasses, getInstantiatingReflector, getLocale, getLog, getNestedTransformer, getReflector, getReflector, getSourceClasses, getTransformableCallCache, getTransformerName, initialize, initializeImpl, isAutomaticallyHandlingNulls, isCachingIsTransformableCalls, isImpreciseTransformation, isImpreciseTransformationImpl, isInitialized, isPerformingLogging, isTransformable, setCachingIsTransformableCalls, setDestinationClasses, setInitialized, setLog, setNestedTransformer, setReflector, setSourceClasses, setTransformableCallCache, setTransformerName, toString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface net.sf.morph.transform.Transformer
getDestinationClasses, getSourceClasses
 
Methods inherited from interface net.sf.morph.transform.DecoratedConverter
convert, equals, equals
 
Methods inherited from interface net.sf.morph.transform.Transformer
getDestinationClasses, getSourceClasses
 
Methods inherited from interface net.sf.morph.transform.Transformer
getDestinationClasses, getSourceClasses
 
Methods inherited from interface net.sf.morph.transform.ExplicitTransformer
isTransformable
 

Field Detail

ALL_OBJECTS

public static final java.lang.Class[] ALL_OBJECTS
Source-destination classes.

Constructor Detail

BeanUtilsConverter

public BeanUtilsConverter()
Method Detail

isTransformableImpl

protected boolean isTransformableImpl(java.lang.Class destinationType,
                                      java.lang.Class sourceType)
Default implementation for Transformer#isTransformable(Class, Class) that assumes that each source type can be converted into each destination type.

Overrides:
isTransformableImpl in class BaseTransformer
Parameters:
destinationType - the destination type to test
sourceType - the source type to test
Returns:
whether the destination type is transformable to the source type

convertImpl

protected java.lang.Object convertImpl(java.lang.Class destinationClass,
                                       java.lang.Object source,
                                       java.util.Locale locale)
                                throws TransformationException
The implementation of the convert method, which may omit the invalid argument checks already performed by this base class. By default, this method creates a new instance of the destinationClass and copies information from the source to the destination. This implementation should be fine as-is for Copiers, but Converters will need to implement this method since they will not be implementing the copy method.

Overrides:
convertImpl in class BaseTransformer
locale - the locale in which the conversion should take place. for converters that are not locale-aware, the local argument can simply be ignored
Throws:
TransformationException

getConvertUtilsBean

public org.apache.commons.beanutils.ConvertUtilsBean getConvertUtilsBean()
Returns the ConvertUtilsBean set with the setConvertUtilsBean method, or the default ConvertUtilsBean instance that is used by the static methods in ConvertUtils.

Returns:
the ConvertUtilsBean set with the setConvertUtilsBean method, or the default ConvertUtilsBean instance that is used by the static methods in ConvertUtils.

setConvertUtilsBean

public void setConvertUtilsBean(org.apache.commons.beanutils.ConvertUtilsBean convertUtilsBean)
Set the ConvertUtilsBean to use.

Parameters:
convertUtilsBean -

isNaivelyConvertible

protected boolean isNaivelyConvertible(java.lang.Class destinationClass,
                                       java.lang.Class sourceClass)
Learn whether the given source-destination combination is "naively" convertible.

Parameters:
destinationClass -
sourceClass -
Returns:
boolean

isWrappingRuntimeExceptions

protected boolean isWrappingRuntimeExceptions()
Indicates whether runtime exceptions should be wrapped as TransformationExceptions. By default, this method returns true.

Simple transformers in Morph that operate on JDK types like Numbers and Strings will usually set this value to true so that they throw TransformationExceptions if problems occur. More complex transformers that operate on graphs of objects are encouraged to set this value to false so that runtime exceptions are not wrapped. This way, problems accessing data will be expressed by the native API of a user's domain objects and avoid the need to catch Morph-specific exceptions (assuming the use of runtime exceptions in said domain objects).

Overrides:
isWrappingRuntimeExceptions in class BaseTransformer
Returns:
true

getSourceClassesImpl

public java.lang.Class[] getSourceClassesImpl()
Transformer.getSourceClasses() implementation template method.

Specified by:
getSourceClassesImpl in class BaseTransformer
Returns:
Class[]

getDestinationClassesImpl

public java.lang.Class[] getDestinationClassesImpl()
Transformer.getDestinationClasses() implementation template method.

Specified by:
getDestinationClassesImpl in class BaseTransformer
Returns:
Class[]


Copyright © 2004-2008.