public final class ChangesetCache extends java.lang.Object implements Preferences.PreferenceChangedListener
getInstance()
.
Clients interested in cache updates can register for ChangesetCacheEvent
s
using addChangesetCacheListener(ChangesetCacheListener)
. They can use
removeChangesetCacheListener(ChangesetCacheListener)
to unregister as
cache event listener.
The cache itself listens to PreferenceChangeEvent
s. It
clears itself if the OSM API URL is changed in the preferences.
ChangesetCacheEvent
s are delivered on the EDT.Modifier and Type | Field and Description |
---|---|
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 |
Modifier | Constructor and Description |
---|---|
private |
ChangesetCache() |
Modifier and Type | Method and Description |
---|---|
void |
addChangesetCacheListener(ChangesetCacheListener listener) |
void |
clear() |
boolean |
contains(Changeset cs) |
boolean |
contains(int id) |
private 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()
Replies the list of open changesets.
|
java.util.List<Changeset> |
getOpenChangesetsForCurrentUser()
|
void |
preferenceChanged(Preferences.PreferenceChangeEvent e)
Trigerred when a preference entry value changes.
|
void |
remove(Changeset cs) |
void |
remove(java.util.Collection<Changeset> changesets)
Removes the changesets in
changesets from the cache. |
void |
remove(int id) |
private void |
remove(int id,
DefaultChangesetCacheEvent e) |
void |
removeChangesetCacheListener(ChangesetCacheListener listener) |
int |
size() |
void |
update(Changeset cs) |
private void |
update(Changeset cs,
DefaultChangesetCacheEvent e) |
void |
update(java.util.Collection<Changeset> changesets) |
private static final ChangesetCache instance
private final java.util.concurrent.CopyOnWriteArrayList<ChangesetCacheListener> listeners
private ChangesetCache()
public static ChangesetCache getInstance()
public void addChangesetCacheListener(ChangesetCacheListener listener)
public void removeChangesetCacheListener(ChangesetCacheListener listener)
private void fireChangesetCacheEvent(ChangesetCacheEvent e)
private void update(Changeset cs, DefaultChangesetCacheEvent e)
public boolean contains(int id)
public java.util.Set<Changeset> getChangesets()
private void remove(int id, DefaultChangesetCacheEvent e)
public void remove(int id)
public void remove(java.util.Collection<Changeset> changesets)
changesets
from the cache. A
ChangesetCacheEvent
is fired.changesets
- the changesets to remove. Ignored if null.public int size()
public void clear()
public java.util.List<Changeset> getOpenChangesets()
public java.util.List<Changeset> getOpenChangesetsForCurrentUser()
is known
, the open changesets
for the current user
are returned. Otherwise,
the unfiltered open changesets
are returned.public void preferenceChanged(Preferences.PreferenceChangeEvent e)
Preferences.PreferenceChangedListener
preferenceChanged
in interface Preferences.PreferenceChangedListener
e
- the preference change event