diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2012-11-18 09:54:03 +0100 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2012-11-18 09:54:03 +0100 |
| commit | 2e00c7a146e7718420be288e2073cc144d054f4f (patch) | |
| tree | 5d32af3fb31a6d133f7a5f4b81792368248b7b39 /main/src/cgeo/geocaching/utils | |
| parent | 1acd103d9c4a4104aa54ed3c2f693f80ba12a8a6 (diff) | |
| download | cgeo-2e00c7a146e7718420be288e2073cc144d054f4f.zip cgeo-2e00c7a146e7718420be288e2073cc144d054f4f.tar.gz cgeo-2e00c7a146e7718420be288e2073cc144d054f4f.tar.bz2 | |
refactoring: lazy initialized lists
* change more users to only take Iterable interface
* return unmodifiable list only
Diffstat (limited to 'main/src/cgeo/geocaching/utils')
| -rw-r--r-- | main/src/cgeo/geocaching/utils/LazyInitializedList.java | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/main/src/cgeo/geocaching/utils/LazyInitializedList.java b/main/src/cgeo/geocaching/utils/LazyInitializedList.java index 8c773cf..76876fc 100644 --- a/main/src/cgeo/geocaching/utils/LazyInitializedList.java +++ b/main/src/cgeo/geocaching/utils/LazyInitializedList.java @@ -1,6 +1,7 @@ package cgeo.geocaching.utils; import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -8,11 +9,6 @@ public abstract class LazyInitializedList<ElementType> implements Iterable<Eleme private volatile List<ElementType> list; - public List<ElementType> get() { - initializeList(); - return list; - } - private void initializeList() { if (list == null) { synchronized (this) { @@ -39,6 +35,10 @@ public abstract class LazyInitializedList<ElementType> implements Iterable<Eleme list = new ArrayList<ElementType>(elements); } + public void set(LazyInitializedList<ElementType> other) { + list = new ArrayList<ElementType>(other.asList()); + } + public boolean isEmpty() { initializeList(); return list.isEmpty(); @@ -69,4 +69,27 @@ public abstract class LazyInitializedList<ElementType> implements Iterable<Eleme initializeList(); return list.get(index); } + + public boolean contains(final ElementType element) { + initializeList(); + return list.contains(element); + } + + public boolean isNotEmpty() { + initializeList(); + return !list.isEmpty(); + } + + /** + * @return an unmodifiable list of the elements + */ + public List<ElementType> asList() { + initializeList(); + return Collections.unmodifiableList(list); + } + + public int indexOf(ElementType element) { + initializeList(); + return list.indexOf(element); + } } |
