package regexgolf2.services.persistence.changetracking; import com.google.java.contract.Ensures; import com.google.java.contract.Requires; import regexgolf2.model.ObservableObject; public interface PersistenceInformation { /** * Returns a PersistenceState object, that updates itself. */ @Requires("isTracked(object)") @Ensures("result != null") PersistenceState getPersistenceState(ObservableObject object); /** * Method to conveniently access the 'isNew' information for a tracked * object. */ @Requires("isTracked(object)") boolean isNew(ObservableObject object); /** * Method to conveniently access the 'isChanged' information for a tracked * object. */ @Requires("isTracked(object)") boolean isChanged(ObservableObject object); /** * Indicates if there is any persistence information about the given object * available. */ @Requires("object != null") boolean isTracked(ObservableObject object); }