Описание интерфейсов#
Вектор изменений#
Вектор изменений — API, предоставляющий информацию об изменениях, выполненных в рамках БД транзакции.
ChangeVector— корневой интерфейс, содержащий коллекциюChangeSet;ChangeSet— информация о наборе изменений, сброшенных в БД методомflush. В рамках одной транзакции может быть несколькоChangeSet;ChangeEvent— интерфейс описывает события изменений в БД, таких, какinsert,update,delete;CreateEvent— расширениеChangeEvent, описывающее вставку записи в БД;UpdateEvent— расширениеChangeEvent, описывающее обновление записи в БД;DeleteEvent— расширениеChangeEvent, описывающее удаление записи из БД;CollectionModification— интерфейс, описывающий изменение коллекции (расшифровочной таблицы либо обратной ссылки);PropertyChange— интерфейс, описывающий изменение свойства сущности.
public interface ChangeVector extends Serializable {
Collection<ChangeSet> getChangeSets();
boolean isEmpty();
}
public interface ChangeSet extends Serializable {
Collection<CreateEvent> getCreateEvents();
Collection<UpdateEvent> getUpdateEvents();
Collection<DeleteEvent> getDeleteEvents();
boolean isEmpty();
}
public interface ChangeEvent extends Serializable {
String getAlias();
Serializable getId();
Serializable getVersion();
}
public interface CreateEvent extends ChangeEvent {
Map<String, Serializable> getPrimitives();
Map<String, Serializable> getReferences();
Map<String, Collection<Serializable>> getPrimitiveCollections();
Map<String, Collection<Serializable>> getReferenceCollections();
}
public interface UpdateEvent extends ChangeEvent {
Serializable getPreviousVersion();
Map<String, PropertyChange> getPrimitiveChanges();
Map<String, PropertyChange> getReferenceChanges();
Map<String, CollectionModification> getPrimitiveCollectionsChanges();
Map<String, CollectionModification> getReferenceCollectionsChanges();
}
public interface DeleteEvent extends ChangeEvent {
}
public interface CollectionModification extends Serializable {
boolean isCleared();
Collection<Serializable> getAdded();
Collection<Serializable> getRemoved();
boolean isEmpty();
}
public interface PropertyChange extends Serializable {
Serializable getOldValue();
Serializable getNewValue();
}