Tidigare idag fick jag tips från min kollega Mikael Elm om ramverket JSefa som de använder för att skapa fixed length records vid kommunikation med ett legacy-system.
JSefa är ett litet och smidigt ramverk för strömmande serialisering av javaobjekt till XML, CSV och FLR.
Nedanstående exempel visar FLR-användningen av JSefa
Objektet som ska serialiseras
@FlrDataType()
public class Person {
@FlrField(pos = 1, length = 30)
private String name;
@FlrField(pos = 2, length = 10, format = "dd.MM.yyyy", align = Align.RIGHT)
private Date birthDate;
}
Serialisering
Serializer serializer = FlrIOFactory.createFactory(Person.class).createSerializer();
StringWriter writer = new StringWriter();
serializer.open(writer);
// call serializer.write for every object to serialize...
serializer.close(true);
Resultatet blir då:
Erwin Schmidt 23.05.1964
Thomas Stumm 12.03.1979
Deserialisering
Deserializer deserializer = FlrIOFactory.createFactory(Person.class).createDeserializer();
StringReader reader = new StringReader(writer.toString());
deserializer.open(reader);
while (deserializer.hasNext()) {
Person p = deserializer.next();
// do something useful with it...
}
deserializer.close(true);
För att serialisera XML eller CSV används liknande konstruktioner med annotationer och Serializers/Deserializers.