package regexgolf2.services.persistence; import com.google.java.contract.Requires; import regexgolf2.model.ObservableObject; import regexgolf2.model.containers.ContainerChangedEvent; import regexgolf2.model.containers.ContainerChangedListener; import regexgolf2.services.persistence.changetracking.ChangeTrackingService; public class TrackHandler implements ContainerChangedListener<ObservableObject> { private final ChangeTrackingService _cts; @Requires("changeTrackingService != null") public TrackHandler(ChangeTrackingService changeTrackingService) { _cts = changeTrackingService; } @Override public void containerChanged(ContainerChangedEvent<? extends ObservableObject> event) { ObservableObject addedObject = event.getAddedItem(); if (addedObject != null) _cts.track(event.getAddedItem()); if (event.getRemovedItem() != null) _cts.untrack(event.getRemovedItem()); } }