Materiály k semináři
- Text k semináři
- Zdrojové kódy k semináři
- The Java Tutorial: Reflection API
- The Java Tutorial: Annotations
- Zdrojové kódy k semináři
Úkoly
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 pro danou 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. Seznam tříd, se kterými třída Deserializer bude umět pracovat, by jí měl být předán v konstruktoru.
Můžete použít libovolnou knihovnu pro práci s XML.
Vyřešené úkoly zašlete do 17.5.2022 17:00 CET na email roman.vyjidacek@upol.cz s předmětem: JJ2_11. Zasílejte pouze zdrojové kódy. Pokud chcete zdrojové kódy poslat zkomprimované, použijte formát zip..