org.openstreetmap.josm.data.osm
Class ChangesetCache

java.lang.Object
  extended by org.openstreetmap.josm.data.osm.ChangesetCache
All Implemented Interfaces:
Preferences.PreferenceChangedListener

public class ChangesetCache
extends java.lang.Object
implements Preferences.PreferenceChangedListener

ChangesetCache is global in-memory cache for changesets downloaded from an OSM API server. The unique instance is available as singleton, see getInstance(). Clients interested in cache updates can register for ChangesetCacheEvents using addChangesetCacheListener(ChangesetCacheListener). They can use removeChangesetCacheListener(ChangesetCacheListener) to unregister as cache event listener. The cache itself listens to java.util.prefs.PreferenceChangeEvents. It clears itself if the OSM API URL is changed in the preferences. ChangesetCacheEvents are delivered on the EDT.


Field Summary
private  java.util.Map<java.lang.Integer,Changeset> cache
          the cached changesets
private static ChangesetCache instance
          the unique instance
private  java.util.concurrent.CopyOnWriteArrayList<ChangesetCacheListener> listeners
           
 
Constructor Summary
private ChangesetCache()
           
 
Method Summary
 void addChangesetCacheListener(ChangesetCacheListener listener)
           
 void clear()
           
 boolean contains(Changeset cs)
           
 boolean contains(int id)
           
protected  void fireChangesetCacheEvent(ChangesetCacheEvent e)
           
 Changeset get(int id)
           
 java.util.Set<Changeset> getChangesets()
           
static ChangesetCache getInstance()
          Replies the unique instance of the cache
 java.util.List<Changeset> getOpenChangesets()
           
 void preferenceChanged(Preferences.PreferenceChangeEvent e)
           
 void remove(Changeset cs)
           
 void remove(java.util.Collection<Changeset> changesets)
          Removes the changesets in changesets from the cache.
 void remove(int id)
           
protected  void remove(int id, DefaultChangesetCacheEvent e)
           
 void removeChangesetCacheListener(ChangesetCacheListener listener)
           
 int size()
           
 void update(Changeset cs)
           
protected  void update(Changeset cs, DefaultChangesetCacheEvent e)
           
 void update(java.util.Collection<Changeset> changesets)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

instance

private static final ChangesetCache instance
the unique instance


cache

private final java.util.Map<java.lang.Integer,Changeset> cache
the cached changesets


listeners

private final java.util.concurrent.CopyOnWriteArrayList<ChangesetCacheListener> listeners
Constructor Detail

ChangesetCache

private ChangesetCache()
Method Detail

getInstance

public static ChangesetCache getInstance()
Replies the unique instance of the cache

Returns:
the unique instance of the cache

addChangesetCacheListener

public void addChangesetCacheListener(ChangesetCacheListener listener)

removeChangesetCacheListener

public void removeChangesetCacheListener(ChangesetCacheListener listener)

fireChangesetCacheEvent

protected void fireChangesetCacheEvent(ChangesetCacheEvent e)

update

protected void update(Changeset cs,
                      DefaultChangesetCacheEvent e)

update

public void update(Changeset cs)

update

public void update(java.util.Collection<Changeset> changesets)

contains

public boolean contains(int id)

contains

public boolean contains(Changeset cs)

get

public Changeset get(int id)

getChangesets

public java.util.Set<Changeset> getChangesets()

remove

protected void remove(int id,
                      DefaultChangesetCacheEvent e)

remove

public void remove(int id)

remove

public void remove(Changeset cs)

remove

public void remove(java.util.Collection<Changeset> changesets)
Removes the changesets in changesets from the cache. A ChangesetCacheEvent is fired.

Parameters:
changesets - the changesets to remove. Ignored if null.

size

public int size()

clear

public void clear()

getOpenChangesets

public java.util.List<Changeset> getOpenChangesets()

preferenceChanged

public void preferenceChanged(Preferences.PreferenceChangeEvent e)
Specified by:
preferenceChanged in interface Preferences.PreferenceChangedListener


JOSM