pátek 4. listopadu 2011

O sdílených třídách a IO operacích

V projektu carshare-domain, package com.carshare.domain.dto jsou tři třídy

  • User - veškeré informace o uživateli
  • UserLogin - jednoduchá třída pro přihlášení uživatele
  • UserUpdate - rozšiření User o heslo (protože standartně nechceme posílat heslo společně s info o uživateli, nicméně (např. pro registraci uživatele, změnu údajů) heslo zadat potřebujeme
Jsou to třídy se kterými pracuje carshare-service, třídy které očekává a které vrací v odpovědích. Settry a gettry jsou oanotovány anotacemi @Deserializable a @Serializable. Ty slouží serializerům a deserializerům, aby věděli co a jak kam zapisovat a číst při serializaci/deserializaci objektů.

Pro serializaci jedné instance z těchto tříd do XML pak stačí:

XmlSerializer serializer = new XmlSerializer();
AutoSerializer.factory(entity, serializer).serialize();
String output = serializer.getResult();

kde entity, je instance kterou chceme serializovat. Pro serializaci kolekce objektů pak:

XmlSerializer serializer = new XmlSerializer();
AutoSerializer.factory(rootName, recordName, entities, serializer).serialize();
String output = serializer.getResult();

kde rootName je název XML elementu, který bude celou kolekci obalovat, recordName je název XML elementu, který bude obalovat jednu instanci (pokud zůstane nevyplněny-nebo null-pak se použije název elementu definovaný nad třídy pomocí @Serializable) a entities je kolekce entit k serializaci.

Všechny výše zmíněné třídy pro IO práci jsou v knihovně neptuo-service, která je v svn v references/lib. Stačí ji tedy nalinkovat do projektu. Nemá zrovna moc valnou dokumentaci, na to prostě čas nebyl, nicméně tohle by mělo fungovat bez problémů a když ne, tak se ptejte.

Žádné komentáře:

Okomentovat