// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.data.osm; import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.Set; public class DefaultChangesetCacheEvent implements ChangesetCacheEvent { private final Set<Changeset> added; private final Set<Changeset> modified; private final Set<Changeset> removed; private final ChangesetCache source; public DefaultChangesetCacheEvent(ChangesetCache source) { this.source = source; added = new HashSet<>(); modified = new HashSet<>(); removed = new HashSet<>(); } @Override public Collection<Changeset> getAddedChangesets() { return Collections.unmodifiableCollection(added); } @Override public Collection<Changeset> getRemovedChangesets() { return Collections.unmodifiableCollection(removed); } @Override public ChangesetCache getSource() { return source; } @Override public Collection<Changeset> getUpdatedChangesets() { return Collections.unmodifiableCollection(modified); } public void rememberAddedChangeset(Changeset cs) { if (cs == null) return; added.add(cs); } public void rememberUpdatedChangeset(Changeset cs) { if (cs == null) return; modified.add(cs); } public void rememberRemovedChangeset(Changeset cs) { if (cs == null) return; removed.add(cs); } public boolean isEmpty() { return added.isEmpty() && modified.isEmpty() && removed.isEmpty(); } }