Введение
Поскольку прошло немало времени и библиотека изменилась, то решил продолжить описание и осветить некоторые моменты. Огромное спасибо пользователям за конструктивную критику, которая надеюсь помогла повысить usability.
Первое, что хотелось бы отметить, так это то, что из основного фасадного класса XmlDataStore была убрана группа методов для работы с root объектами. Теперь разделение объектов на корневые и остальные отсутствует.
Интерфейс IXmlDataStoreIdentifiable
Поскольку, при обсуждении первой версии было правильно подмечено, что методы getId() и setId() могут быть использованы разработчиками модели данных в каких-то своих целях и необязательно они будут работать с типом java.lang.String, то название методов изменилось на getDataStoreId() и setDataStoreId(). И интерфейс соответственно выглядит следующим образом:
public interface IXmlDataStoreIdentifiable {
String getDataStoreId();
void setDataStoreId(String dataStoreId);
}
Также был добавлен абстрактный класс, реализующий этот интерфейс:
public abstract class AbstractXmlDataStoreIdentifiable
implements IXmlDataStoreIdentifiable {
private String dataStoreId;
@Override
public String getDataStoreId() {
return dataStoreId;
}
@Override
public void setDataStoreId(final String dataStoreId) {
this.dataStoreId = dataStoreId;
}
}
Наследоваться можно как от интерфейса, так и от абстрактного класса.