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 }