Есть класс адаптер для Writer:
class EntityOutputWriter implements EntityOutput {
private final Writer out;
public EntityOutputWriter(Writer out) {
this.out = out;
}
@Override
public void writePerson(Person person) throws IOException {
int age = person.getAge();
String name = person.getName();
out.write("<person>\n");
out.write(" <age>" + age + "</age>\n");
out.write(" <name>" + name + "</name>\n");
out.write("</person>\n");
out.flush();
}
@Override
public void writePoint(Point point) throws IOException {
out.write("<point x = '" + point.getX() + "' y = '" + point.getY() + "'/>\n");
out.flush();
}
}
После использования данного класса, в файл записываются данные следующего вида (Значения приведены для примера. В реальности они указываются при записм в файл в конструкторе):
<point x = '11' y = '15'/>
<person>
<age>28</age>
<name>Nick</name>
</person>
Нужно написать адаптер для Reader у которого методы чтения будут возвращать объекты Point и Person:
class EntityInputReader implements EntityInput {
private final Reader src;
public EntityInputReader(Reader src) {
this.src = src;
}
@Override
public Person readPerson() throws IOException {
// some code
// return new Person(???, ???);
}
@Override
public Point readPoint() throws IOException {
// some code
// return new Point(???, ???);
}
}
Как написать данные методы чтения? Как считать только данные: 11, 15, "Nick", 28, чтобы их передать в конструктор в методах readPoint() и readPerson()?