net.sf.morph.transform.copiers
Class CumulativeCopier
java.lang.Object
net.sf.morph.transform.transformers.BaseTransformer
net.sf.morph.transform.transformers.BaseCompositeTransformer
net.sf.morph.transform.copiers.CumulativeCopier
- All Implemented Interfaces:
- net.sf.composite.Component, net.sf.composite.Composite, net.sf.composite.SimpleComposite, net.sf.composite.StrictlyTypedComposite, Converter, Copier, DecoratedConverter, DecoratedCopier, DecoratedTransformer, ExplicitTransformer, Transformer
public class CumulativeCopier
- extends BaseCompositeTransformer
- implements DecoratedCopier, DecoratedConverter
Composite Transformer whose children must be Copiers and which invokes
each child Copier in turn in the course of performing a copy operation.
- Since:
- Morph 1.1
- Author:
- Matt Benson
Method Summary |
protected void |
copyImpl(java.lang.Object destination,
java.lang.Object source,
java.util.Locale locale,
java.lang.Integer preferredTransformationType)
Implementation of the copy method. |
java.lang.Class |
getComponentType()
Return the component type of this transformer. |
protected java.lang.Class[] |
getDestinationClassesImpl()
Returns the destination classes supported by all components. |
protected java.lang.Class[] |
getSourceClassesImpl()
Returns the source classes supported by all components. |
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). |
void |
setDestinationClasses(java.lang.Class[] destinationClasses)
Configures the destinationClasses property of this
transformer. |
void |
setSourceClasses(java.lang.Class[] sourceClasses)
Configures the sourceClasses property of this transformer. |
Methods inherited from class net.sf.morph.transform.transformers.BaseTransformer |
clone, convert, convert, convertImpl, copy, copy, createDefaultReflector, createNewInstance, createNewInstanceImpl, createReusableSource, equals, equals, equalsUnidirectionalTest, getDestinationClasses, getInstantiatingReflector, getLocale, getLog, getNestedTransformer, getReflector, getReflector, getSourceClasses, getTransformableCallCache, getTransformerName, initialize, isAutomaticallyHandlingNulls, isCachingIsTransformableCalls, isImpreciseTransformation, isImpreciseTransformationImpl, isInitialized, isPerformingLogging, isTransformable, isTransformableImpl, setCachingIsTransformableCalls, setInitialized, setLog, setReflector, 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.Copier |
copy |
CumulativeCopier
public CumulativeCopier()
- Create a new CumulativeCopier.
CumulativeCopier
public CumulativeCopier(Transformer[] components)
- Create a new CumulativeCopier.
- Parameters:
components
-
setSourceClasses
public void setSourceClasses(java.lang.Class[] sourceClasses)
- Configures the
sourceClasses
property of this transformer.
Note that this method should be called before the transformer is used.
Otherwise, if another thread is in the middle of transforming an object
graph and this method is called, the behavior of the transformer can
change partway through the transformation.
- Overrides:
setSourceClasses
in class BaseTransformer
- Parameters:
sourceClasses
- the new sourceClasses
for this transformer- See Also:
BaseTransformer.setSourceClasses(java.lang.Class[])
getSourceClassesImpl
protected java.lang.Class[] getSourceClassesImpl()
throws java.lang.Exception
- Returns the source classes supported by all components.
- Specified by:
getSourceClassesImpl
in class BaseTransformer
- Returns:
- Class[]
- Throws:
java.lang.Exception
setDestinationClasses
public void setDestinationClasses(java.lang.Class[] destinationClasses)
- Configures the
destinationClasses
property of this
transformer. Note that this method should be called before the
transformer is used. Otherwise, if another thread is in the middle of
transforming an object graph and this method is called, the behavior of
the transformer can change partway through the transformation.
- Overrides:
setDestinationClasses
in class BaseTransformer
- Parameters:
destinationClasses
- the new destinationClasses
for this transformer- See Also:
BaseTransformer.setDestinationClasses(java.lang.Class[])
getDestinationClassesImpl
protected java.lang.Class[] getDestinationClassesImpl()
throws java.lang.Exception
- Returns the destination classes supported by all components.
- Specified by:
getDestinationClassesImpl
in class BaseTransformer
- Returns:
- Class[]
- Throws:
java.lang.Exception
getComponentType
public java.lang.Class getComponentType()
- Return the component type of this transformer.
- Specified by:
getComponentType
in interface net.sf.composite.StrictlyTypedComposite
- Overrides:
getComponentType
in class BaseCompositeTransformer
- Returns:
- Class
copyImpl
protected void copyImpl(java.lang.Object destination,
java.lang.Object source,
java.util.Locale locale,
java.lang.Integer preferredTransformationType)
throws java.lang.Exception
- Implementation of the copy method. By default, this method throws
UnsupportedOperationException.
- Overrides:
copyImpl
in class BaseTransformer
- Throws:
java.lang.Exception
- See Also:
BaseTransformer.copyImpl(java.lang.Object, java.lang.Object, java.util.Locale, java.lang.Integer)
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 BaseCompositeTransformer
- Returns:
true
- See Also:
BaseCompositeTransformer.isWrappingRuntimeExceptions()
Copyright © 2004-2008.