From 2e00c7a146e7718420be288e2073cc144d054f4f Mon Sep 17 00:00:00 2001 From: Bananeweizen Date: Sun, 18 Nov 2012 09:54:03 +0100 Subject: refactoring: lazy initialized lists * change more users to only take Iterable interface * return unmodifiable list only --- .../cgeo/geocaching/utils/LazyInitializedList.java | 33 ++++++++++++++++++---- 1 file changed, 28 insertions(+), 5 deletions(-) (limited to 'main/src/cgeo/geocaching/utils') 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 implements Iterable list; - public List get() { - initializeList(); - return list; - } - private void initializeList() { if (list == null) { synchronized (this) { @@ -39,6 +35,10 @@ public abstract class LazyInitializedList implements Iterable(elements); } + public void set(LazyInitializedList other) { + list = new ArrayList(other.asList()); + } + public boolean isEmpty() { initializeList(); return list.isEmpty(); @@ -69,4 +69,27 @@ public abstract class LazyInitializedList implements Iterable asList() { + initializeList(); + return Collections.unmodifiableList(list); + } + + public int indexOf(ElementType element) { + initializeList(); + return list.indexOf(element); + } } -- cgit v1.1