Seminář 10 - Reflexe; Moduly

Zdroje

Úkol č. 10

Zadání

  1. 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;
		}
	}
  1. 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>
  1. Implementujte třídu Deserializer mající metodu Object deserialize(), která z XML souboru vytvoří daný objekt.

Poznámky