...it's really a java thing, but each class is exposing the private properties via a getter & setter. The fact that all the properties are exposed - at least indirectly - might lead one to question whether there is too much cohesion between the classes.

Not that this is really a complaint specific to your task, but it does seem to be a prevalent pattern in Java design.