net.sf.morph.transform.copiers
Class PropertyNameMappingCopier
java.lang.Object
net.sf.morph.transform.transformers.BaseTransformer
net.sf.morph.transform.transformers.BaseReflectorTransformer
net.sf.morph.transform.copiers.BasePropertyNameCopier
net.sf.morph.transform.copiers.PropertyNameMappingCopier
- All Implemented Interfaces:
- net.sf.composite.Component, Converter, Copier, DecoratedConverter, DecoratedCopier, DecoratedTransformer, ExplicitTransformer, NodeCopier, Transformer
public class PropertyNameMappingCopier
- extends BasePropertyNameCopier
Copies properties from the source to the destination based on a mapping of
property names.
By default, property name mappings are considered bidirectional, so if you
call addMapping("foo", "bar")
, the copy method will copy the
value of foo
to bar
and will also copy
bar
to foo
. Mappings specified by the
setMapping
method are considered bidirectional as well. If
this behavior is not desired, just set the bidirectional
property to false.
If a property in the mapping
cannot be copied, by default a
TransformationException
will be thrown. To turn off this
behavior, set errorOnMissingProperty
to false
.
- Since:
- Jan 25, 2005
- Author:
- Matt Sgarlata, Alexander Volanis
Method Summary |
void |
addMapping(java.lang.String sourcePropertyName,
java.lang.String destinationPropertyName)
Add a single mapping. |
protected void |
copyImpl(java.lang.Object destination,
java.lang.Object source,
java.util.Locale locale,
java.lang.Integer preferredTransformationType)
Implementation of the copy method. |
protected java.util.Map |
getMapping()
Get the property mapping. |
protected void |
initializeImpl()
Gives subclasses a chance to perform any computations needed to
initialize the transformer. |
boolean |
isBidirectional()
Learn whether this copier is bidirectional. |
void |
setBidirectional(boolean bidirectional)
Set whether this copier is bidirectional. |
void |
setMapping(java.util.Map mapping)
Set the property mapping. |
Methods inherited from class net.sf.morph.transform.copiers.BasePropertyNameCopier |
chooseTransformer, copyProperty, createReusableSource, getDestinationClassesImpl, getNestedTransformer, getPreferredTransformationType, getPropertyTransformers, getSourceClassesImpl, isErrorOnMissingProperty, isWrappingRuntimeExceptions, setDestinationClasses, setErrorOnMissingProperty, setNestedTransformer, setPropertyTransformers, setSourceClasses |
Methods inherited from class net.sf.morph.transform.transformers.BaseTransformer |
clone, convert, convert, convertImpl, copy, copy, createDefaultReflector, createNewInstance, createNewInstanceImpl, equals, equals, equalsUnidirectionalTest, getDestinationClasses, getInstantiatingReflector, getLocale, getLog, 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 |
Methods inherited from interface net.sf.morph.transform.Copier |
copy |
PropertyNameMappingCopier
public PropertyNameMappingCopier()
- Create a new PropertyNameMappingCopier.
PropertyNameMappingCopier
public PropertyNameMappingCopier(boolean errorOnMissingProperty)
- Create a new PropertyNameMappingCopier.
- Parameters:
errorOnMissingProperty
-
initializeImpl
protected void initializeImpl()
throws java.lang.Exception
- Gives subclasses a chance to perform any computations needed to
initialize the transformer.
- Overrides:
initializeImpl
in class BaseTransformer
- Throws:
java.lang.Exception
copyImpl
protected void copyImpl(java.lang.Object destination,
java.lang.Object source,
java.util.Locale locale,
java.lang.Integer preferredTransformationType)
throws TransformationException
- Implementation of the copy method. By default, this method throws
UnsupportedOperationException.
- Overrides:
copyImpl
in class BaseTransformer
- Throws:
TransformationException
getMapping
protected java.util.Map getMapping()
- Get the property mapping.
- Returns:
- Map
setMapping
public void setMapping(java.util.Map mapping)
- Set the property mapping.
- Parameters:
mapping
-
addMapping
public void addMapping(java.lang.String sourcePropertyName,
java.lang.String destinationPropertyName)
- Add a single mapping.
- Parameters:
sourcePropertyName
- destinationPropertyName
-
isBidirectional
public boolean isBidirectional()
- Learn whether this copier is bidirectional.
- Returns:
- boolean
setBidirectional
public void setBidirectional(boolean bidirectional)
- Set whether this copier is bidirectional.
- Parameters:
bidirectional
-
Copyright © 2004-2008.