Ú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.