aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/utils
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/utils')
-rw-r--r--main/src/cgeo/geocaching/utils/LazyInitializedList.java33
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);
+ }
}