net.sf.xsnapshot.transformers
Class InverseNestedPropertyTransformer
java.lang.Object
net.sf.xsnapshot.transformers.InverseNestedPropertyTransformer
- All Implemented Interfaces:
- Transformer
- public class InverseNestedPropertyTransformer
- extends Object
- implements Transformer
inverse transformer for nested properties. given a value that was the result of
a nested property lookup, and the property name, attempts to lookup the original
property.
This is of course impossible in the general case.
TODO: actually implement, and then describe correctly in javadoc
- Author:
- Daniel Kokotov
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
InverseNestedPropertyTransformer
public InverseNestedPropertyTransformer()
transform
public Object transform(Class returnClass,
Object objectToTransform,
TransformerArgs args,
TransformContext context)
throws XSnapshotTransformException
- expects arg1
to be a property on objectToConvert, possibly nested. Returns the value of that property.
If a nested property, and any intermediate property value in the nested chain returns null,
returns null
- 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)