net.sf.xsnapshot.transformers
Class ModelToSnapshotTransformer

java.lang.Object
  extended bynet.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

Constructor Summary
ModelToSnapshotTransformer()
           
 
Method Summary
 Object transform(Class returnClass, Object objectToTransform, TransformerArgs args, TransformContext context)
          Expects the arg1 of transformerArgs to be the name of a snapshot defined on the class of objectToTransform. returns the named snapshot of objectToTransform.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ModelToSnapshotTransformer

public ModelToSnapshotTransformer()
Method Detail

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)