001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.data.osm; 003 004import java.util.Collection; 005import java.util.Collections; 006import java.util.HashSet; 007import java.util.Set; 008 009public 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 @Override 024 public Collection<Changeset> getAddedChangesets() { 025 return Collections.unmodifiableCollection(added); 026 } 027 @Override 028 public Collection<Changeset> getRemovedChangesets() { 029 return Collections.unmodifiableCollection(removed); 030 } 031 @Override 032 public ChangesetCache getSource() { 033 return source; 034 } 035 @Override 036 public Collection<Changeset> getUpdatedChangesets() { 037 return Collections.unmodifiableCollection(modified); 038 } 039 040 public void rememberAddedChangeset(Changeset cs) { 041 if (cs == null) return; 042 added.add(cs); 043 } 044 045 public void rememberUpdatedChangeset(Changeset cs) { 046 if (cs == null) return; 047 modified.add(cs); 048 } 049 050 public void rememberRemovedChangeset(Changeset cs) { 051 if (cs == null) return; 052 removed.add(cs); 053 } 054 055 public boolean isEmpty() { 056 return added.isEmpty() && modified.isEmpty() && removed.isEmpty(); 057 } 058}