diff options
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); + } } |
