net.sf.xsnapshot.transformers
Class ModelToSnapshotTransformer
java.lang.Object
net.sf.xsnapshot.transformers.ModelToSnapshotTransformer
- All Implemented Interfaces:
- Transformer
- public class ModelToSnapshotTransformer
- extends Object
- implements Transformer
Transformer that returns a snapshot defined on the value it is passed in.
The name of the snapshot is specified in the transformer args. There
should be no need to specify this transformer explicitly in the xdoclet
markup as it is invoked behind the scenes. However, you can customize
model-to-snapshot transformation by subclassing this transformer and
registering it as the "model-to-snapshot" transformer with the XSnapshotRegistry.
- Author:
- Daniel Kokotov
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ModelToSnapshotTransformer
public ModelToSnapshotTransformer()
transform
public Object transform(Class returnClass,
Object objectToTransform,
TransformerArgs args,
TransformContext context)
throws XSnapshotTransformException
- Expects the arg1 of transformerArgs to be the name of a snapshot
defined on the class of objectToTransform. returns
the named snapshot of objectToTransform.
- Specified by:
transform
in interface Transformer
- Parameters:
returnClass
- the class of the object that should be returned
by this method. If not null, returned object must be an instance of this class,
ie returnObject instanceof returnClass must be true.
May be null, in which case the converter is not constrained
in the class of the object it returns. Implementations may impose more
restrictive semantics on this parameter.objectToTransform
- the object that should be transformed. If the
original property to which the transormation is being applied
was primitive-valued, then this will be the java.lang equivalent of
the primitive value.args
- the arguments for transformation. these come from the
{model,snapshot}-converter-arg-{1-9} attributes. For each arg, if the
value is null, then no arg at that index was specified. It is up to
to implementations to impose more precise semantics on this parameter.context
- the TransformContext for the overall transformation in progress
- Returns:
- the transformed value. If returnClass was specified, this
must be an instance of that class, unless it represents a primitive type,
in which case the returned value should be as follows, for possible values of returnClass:
- short, int, long, byte, float, double
- an instance of java.lang.Number
- char
- an instance of java.lang.Character
- boolean
- an instance of java.lang.Boolean
- Throws:
XSnapshotTransformException
- if the conversion could not be performed- See Also:
Transformer.transform(java.lang.Class, java.lang.Object, net.sf.xsnapshot.TransformerArgs, net.sf.xsnapshot.TransformContext)