public final class ChangesetCache extends java.lang.Object implements PreferenceChangedListener
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 PreferenceChangeEvents. It
clears itself if the OSM API URL is changed in the preferences.| 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
|
(package private) java.util.concurrent.CopyOnWriteArrayList<ChangesetCacheListener> |
listeners |
| Modifier | Constructor and Description |
|---|---|
private |
ChangesetCache()
Constructs a new
ChangesetCache. |
| Modifier and Type | Method and Description |
|---|---|
void |
addChangesetCacheListener(ChangesetCacheListener listener)
Add a changeset cache listener.
|
void |
clear()
Clears the cache.
|
boolean |
contains(Changeset cs)
Determines if the cache contains an entry for given changeset.
|
boolean |
contains(int id)
Determines if the cache contains an entry for given changeset identifier.
|
private void |
fireChangesetCacheEvent(ChangesetCacheEvent e) |
Changeset |
get(int id)
Returns the entry for given changeset identifier.
|
java.util.Set<Changeset> |
getChangesets()
Returns the list of changesets contained in the cache.
|
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(PreferenceChangeEvent e)
Triggered when a preference entry value changes.
|
void |
remove(Changeset cs)
Remove the entry for the given changeset.
|
void |
remove(java.util.Collection<Changeset> changesets)
Removes the changesets in
changesets from the cache. |
void |
remove(int id)
Remove the entry for the given changeset identifier.
|
private void |
remove(int id,
DefaultChangesetCacheEvent e) |
void |
removeChangesetCacheListener(ChangesetCacheListener listener)
Remove a changeset cache listener.
|
int |
size()
Returns the number of changesets contained in the cache.
|
void |
update(Changeset cs)
Update a single changeset.
|
private void |
update(Changeset cs,
DefaultChangesetCacheEvent e) |
void |
update(java.util.Collection<Changeset> changesets)
Update a collection of changesets.
|
private static final ChangesetCache INSTANCE
final java.util.concurrent.CopyOnWriteArrayList<ChangesetCacheListener> listeners
private ChangesetCache()
ChangesetCache.public static ChangesetCache getInstance()
public void addChangesetCacheListener(ChangesetCacheListener listener)
listener - changeset cache listener to addpublic void removeChangesetCacheListener(ChangesetCacheListener listener)
listener - changeset cache listener to removeprivate void fireChangesetCacheEvent(ChangesetCacheEvent e)
private void update(Changeset cs, DefaultChangesetCacheEvent e)
public void update(Changeset cs)
cs - changeset to updatepublic void update(java.util.Collection<Changeset> changesets)
changesets - changesets to updatepublic boolean contains(int id)
id - changeset idtrue if the cache contains an entry for idpublic boolean contains(Changeset cs)
cs - changesettrue if the cache contains an entry for cspublic Changeset get(int id)
id - changeset idpublic java.util.Set<Changeset> getChangesets()
private void remove(int id, DefaultChangesetCacheEvent e)
public void remove(int id)
ChangesetCacheEvent is fired.id - changeset idpublic void remove(Changeset cs)
ChangesetCacheEvent is fired.cs - changesetpublic 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(PreferenceChangeEvent e)
PreferenceChangedListenerpreferenceChanged in interface PreferenceChangedListenere - the preference change event