001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.data.osm;
003
004 import java.util.Collection;
005 import java.util.Collections;
006 import java.util.HashSet;
007 import java.util.Set;
008
009 public class DefaultChangesetCacheEvent implements ChangesetCacheEvent{
010
011 private final Set<Changeset> added;
012 private final Set<Changeset> modified;
013 private final Set<Changeset> removed;
014 private final ChangesetCache source;
015
016 public DefaultChangesetCacheEvent(ChangesetCache source) {
017 this.source = source;
018 added = new HashSet<Changeset>();
019 modified = new HashSet<Changeset>();
020 removed = new HashSet<Changeset>();
021 }
022
023 public Collection<Changeset> getAddedChangesets() {
024 return Collections.unmodifiableCollection(added);
025 }
026 public Collection<Changeset> getRemovedChangesets() {
027 return Collections.unmodifiableCollection(removed);
028 }
029 public ChangesetCache getSource() {
030 return source;
031 }
032 public Collection<Changeset> getUpdatedChangesets() {
033 return Collections.unmodifiableCollection(modified);
034 }
035
036 public void rememberAddedChangeset(Changeset cs) {
037 if (cs == null) return;
038 added.add(cs);
039 }
040
041 public void rememberUpdatedChangeset(Changeset cs) {
042 if (cs == null) return;
043 modified.add(cs);
044 }
045
046 public void rememberRemovedChangeset(Changeset cs) {
047 if (cs == null) return;
048 removed.add(cs);
049 }
050
051 public boolean isEmpty() {
052 return added.isEmpty() && modified.isEmpty() && removed.isEmpty();
053 }
054 }