Object parse(String s);The following table shows the result of adding two vectors. Each vector is represented by an ordered pair which represents it's X and Y dimensions. The class CartesianVector is used to parse, display, and sum the vectors.
| fitnesse.testutil.VectorSum | ||
| v1 | v2 | sum? |
| (0,0) | (0,1) | (0,1) |
| (0,1) | (0,1) | (0,2) |
| (1,1) | (1,1) | (2,2) |
It is not always possible to add a parse method on the Object returned by the fixture.
For Ex. if your fixture returns java.awt.Point class which does not have a
Object parse(String s);method, this approach won't work.
Following approach can be used to delegate the parse method to a different class (Parse Delegate class). The parse delegate class has the
Object parse(String s);method which returns the Object we are interested in.
The following table shows the result of adding two points. Each point is represented by an ordered pair which represents it's X and Y dimensions.
| fitnesse.testutil.ObjectTranslatePoint | ||
| p1 | p2 | sum? |
| (0,0) | (0,1) | (0,1) |
| (0,1) | (0,1) | (0,2) |
| (1,1) | (1,1) | (2,2) |
In the ObjectTranslatePoint fixture, we have a static block which registers the parse delegate object for a give Class type.
Ex:
static
{
TypeAdapter.registerParseDelegate(java.awt.Point.class, new ObjectDelegatePointParser());
}
Please note that we are passing a Object of the Parse Delegate class. It is also possible to pass a class instead of the object. Only difference being the parse delegate class should have a public static Object parse(String s);method.
| fitnesse.testutil.ClassTranslatePoint | ||
| p1 | p2 | sum? |
| (0,0) | (0,1) | (0,1) |
| (0,1) | (0,1) | (0,2) |
| (1,1) | (1,1) | (2,2) |
In the ClassTranslatePoint fixture, we have a static block which registers the parse delegate class for a give Class type.
Ex:
static
{
TypeAdapter.registerParseDelegate(java.awt.Point.class, ClassDelegatePointParser.class);
}