Úkoly č. 11

Navrhněte anotace, které vám usnadní serializaci a deserializaci jednoduchých objektů do formátu XML. Předpokládejte, že objekty mají bezparametrický konstruktor a pomocí parametru anotace je určený element XML dokumentu obsahující příslušnou hodnotu.

Metody třídy by mělo být možné označit následovně:

@Serialize(as = "emp")
@Deserialize(as = "emp")
class Employee {
    
    private String name;
    private int age;
    private double salary;

    public Employee() { }

    @Deserialize(as = "name")
    public void setName(String name) {
        this.name = name;
    }

    @Serialize(as = "name")
    public String getName() {
        return this.name;
    }

    @Deserialize(as = "age")
    public void setAge(int age) {
        this.age = age;
    }

    @Serialize(as = "age")
    public int getAge() {
        return this.age;
    }

    @Deserialize(as = "income")
    public void setSalary(int salary) {
        this.salary = salary;
    }

    @Serialize(as = "income")
    public int getSalary() {
        return this.salary;
    }
}

Implementujte třídu Serializer mající metodu void serialize(Object obj), která využije anotací a vygeneruje XML soubor ve tvaru:

<emp>
  <name>Tomas Marny</name>
  <income>58000</income>
  <age>42</age>
</emp>

Implementujte třídu Deserializer mající metodu Object deserialize(), která z XML souboru vytvoří daný objekt.

Třídy Serializer a Deserializer by měly být obecné, tj. musí ukládat nebo načítat libovolné objekty vybavené příslušnými anotacemi.

Můžete použít libovolnou knihovnu pro práci s XML.

Vyřešené úkoly zašlete do 2.5.2017 11:00 CEST na email petr.krajca (zavináč) upol.cz s předmětem ZP4JV11. Zasílejte pouze zdrojové kódy.

Last update on 24. 4. 2018 14:50
Powered by Schemik.

© Petr Krajča, 2010, 2012
petr.krajca (at) upol.cz