net.sf.morph.transform.converters
Class PrimitiveWrapperConverter
java.lang.Object
net.sf.morph.transform.transformers.BaseTransformer
net.sf.morph.transform.converters.PrimitiveWrapperConverter
- All Implemented Interfaces:
- net.sf.composite.Component, Converter, DecoratedConverter, DecoratedTransformer, ExplicitTransformer, Transformer
public class PrimitiveWrapperConverter
- extends BaseTransformer
- implements DecoratedConverter, ExplicitTransformer
Converts primitive objects to their Object wrappers and vice-versa. Cannot
convert a primitive to a primitive or a wrapper to a wrapper (for those
conversions, use the
IdentityConverter
.
- Since:
- Jun 14, 2006
- Author:
- Matt Sgarlata
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 |
PrimitiveWrapperConverter
public PrimitiveWrapperConverter()
getSourceClassesImpl
protected java.lang.Class[] getSourceClassesImpl()
throws java.lang.Exception
Transformer.getSourceClasses()
implementation template method.
- Specified by:
getSourceClassesImpl
in class BaseTransformer
- Returns:
- Class[]
- Throws:
java.lang.Exception
getDestinationClassesImpl
protected java.lang.Class[] getDestinationClassesImpl()
throws java.lang.Exception
Transformer.getDestinationClasses()
implementation template method.
- Specified by:
getDestinationClassesImpl
in class BaseTransformer
- Returns:
- Class[]
- Throws:
java.lang.Exception
isTransformableImpl
protected boolean isTransformableImpl(java.lang.Class destinationType,
java.lang.Class sourceType)
throws java.lang.Exception
- 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 testsourceType
- the source type to test
- Returns:
- whether the destination type is transformable to the source
type
- Throws:
TransformationException
- if it could not be determined if sourceType
is transformable into destinationType
java.lang.Exception
convertImpl
protected java.lang.Object convertImpl(java.lang.Class destinationClass,
java.lang.Object source,
java.util.Locale locale)
throws java.lang.Exception
- 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:
java.lang.Exception
isWrappingRuntimeExceptions
protected boolean isWrappingRuntimeExceptions()
- Indicates whether runtime exceptions should be wrapped as
TransformationException
s. 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
Copyright © 2004-2008.