aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/utils/LazyInitializedList.java
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2013-02-03 14:32:06 +0100
committerSamuel Tardieu <sam@rfc1149.net>2013-02-03 14:39:11 +0100
commit0f2eb5549ee2177ba1725213804dd712b740ef0b (patch)
tree70db7d1cb9b0ac3640e5441abbc2dbcfa4af8dfc /main/src/cgeo/geocaching/utils/LazyInitializedList.java
parentb53b6303ae321276d8c25d6a492372ac615580a2 (diff)
downloadcgeo-0f2eb5549ee2177ba1725213804dd712b740ef0b.zip
cgeo-0f2eb5549ee2177ba1725213804dd712b740ef0b.tar.gz
cgeo-0f2eb5549ee2177ba1725213804dd712b740ef0b.tar.bz2
Make LazyInitializedList<E> a List<E>
Diffstat (limited to 'main/src/cgeo/geocaching/utils/LazyInitializedList.java')
-rw-r--r--main/src/cgeo/geocaching/utils/LazyInitializedList.java62
1 files changed, 13 insertions, 49 deletions
diff --git a/main/src/cgeo/geocaching/utils/LazyInitializedList.java b/main/src/cgeo/geocaching/utils/LazyInitializedList.java
index 25af811..6ea132c 100644
--- a/main/src/cgeo/geocaching/utils/LazyInitializedList.java
+++ b/main/src/cgeo/geocaching/utils/LazyInitializedList.java
@@ -1,11 +1,10 @@
package cgeo.geocaching.utils;
+import java.util.AbstractList;
import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
import java.util.List;
-public abstract class LazyInitializedList<ElementType> implements Iterable<ElementType> {
+public abstract class LazyInitializedList<ElementType> extends AbstractList<ElementType> {
private volatile List<ElementType> list;
@@ -21,83 +20,48 @@ public abstract class LazyInitializedList<ElementType> implements Iterable<Eleme
protected abstract List<ElementType> loadFromDatabase();
- public void add(final ElementType element) {
+ @Override
+ public boolean add(final ElementType element) {
initializeList();
- list.add(element);
+ return list.add(element);
}
public void prepend(final ElementType element) {
- initializeList();
- list.add(0, element);
+ add(0, element);
}
public void set(final List<ElementType> elements) {
- if (elements != null) {
- list = new ArrayList<ElementType>(elements);
- } else {
- list = new ArrayList<ElementType>();
- }
- }
-
- public void set(LazyInitializedList<ElementType> other) {
- if (other != null) {
- list = new ArrayList<ElementType>(other.asList());
- } else {
- list = new ArrayList<ElementType>();
- }
+ list = elements != null ? new ArrayList<ElementType>(elements) : new ArrayList<ElementType>();
}
- public boolean isEmpty() {
+ @Override
+ public ElementType set(final int index, final ElementType element) {
initializeList();
- return list.isEmpty();
+ return list.set(index, element);
}
+ @Override
public ElementType remove(final int index) {
initializeList();
return list.remove(index);
}
+ @Override
public void add(int index, final ElementType element) {
initializeList();
list.add(index, element);
}
+ @Override
public int size() {
initializeList();
return list.size();
}
@Override
- public Iterator<ElementType> iterator() {
- initializeList();
- return list.iterator();
- }
-
public ElementType get(final int index) {
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);
- }
}