Generic Data Transfer Object checked into p4j5 📎
Beyond pure data transport the GDTO can be also used for validation. The flexibility of the GDTO costs also performance - there are more instances involved.
It is also not very easy to work with GDTO directly:
private GenericDTO generic;
public void setUp(){
this.generic = new GenericDTO("Cart");
}
public void testAdd() {
assertEquals(0,this.generic.getNumberOfAttributes());
StringType description = new StringType(null,"a simple cart for test purposes");
this.generic.add("description", description);
assertEquals(1,this.generic.getNumberOfAttributes());
assertFalse(this.generic.isEmpty());
String toString = generic.toString();
assertNotNull(toString);
System.out.println(toString);
}
However it's intended to be used in reflective way (e.g. binding the UI automatically to the GDTO). Changes to the underlying data also do not affect the compatibility of the interfaces/layers - however the stability of the interface requires more testing. The lack or renaming of attributes can cause runtime exceptions.