Assignment 5 -- PTT13

Preparation

Always make sure to pull/clone/download the latest 101simplejava repo.

See the instructions here:

https://github.com/101companies/101simplejava/blob/master/README.md

Starting point

You want to look at Contribution:sax for reading and writing XML.

Further, you want to look at Contribution:javaReflection for reflection code on an object model for "101".

Basically, you need to get expressiveness of both projects (as part of the 101simplejava repo) into one.

All other reflection samples from the lecture are available through a separate Eclipse project on 101repo.

Task

Develop a reflection-based de-/serializer for Java objects with XML as serialization format. The serializer is like an object dumper which dumps objects to XML rather than text; the de-serializer parses XML and constructs the corresponding objects.

Hint

One should use the object model of Contribution:javaReflection. One can use, overall, the Walker code of the same contribution to develop the serialization code. The de-serialization code should be derived from the SAX parser of Contribution:sax. Other XML processing options such as DOM are Ok, too.

Testing

A company object should be serialized to XML and then de-serialized back into a company object while the salary total for the two company objects would be shown to be the same as some expected baseline.