summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/utilities/iterator
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/utilities/iterator')
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/iterator/AbstractFilteredIterator.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/iterator/EmptyIterator.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/iterator/IterableIterator.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/iterator/IterableIteratorAdapter.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/iterator/IterableUtil.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/iterator/MergedIterator.java29
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/iterator/OneItemIterator.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/iterator/ReverseListIterator.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/iterator/TypeFilterIterator.java11
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/iterator/UnmodifiableIterator.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/iterator/UnmodifiableListIterator.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/iterator/package-info.java2
12 files changed, 36 insertions, 24 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/iterator/AbstractFilteredIterator.java b/src/de/lmu/ifi/dbs/elki/utilities/iterator/AbstractFilteredIterator.java
index 8cb14df3..a56b34db 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/iterator/AbstractFilteredIterator.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/iterator/AbstractFilteredIterator.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.iterator;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2011
+ Copyright (C) 2012
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/iterator/EmptyIterator.java b/src/de/lmu/ifi/dbs/elki/utilities/iterator/EmptyIterator.java
index 10fbca1c..98a3539e 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/iterator/EmptyIterator.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/iterator/EmptyIterator.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.iterator;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2011
+ Copyright (C) 2012
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/iterator/IterableIterator.java b/src/de/lmu/ifi/dbs/elki/utilities/iterator/IterableIterator.java
index 7a8e0c73..d416faa6 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/iterator/IterableIterator.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/iterator/IterableIterator.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.iterator;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2011
+ Copyright (C) 2012
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/iterator/IterableIteratorAdapter.java b/src/de/lmu/ifi/dbs/elki/utilities/iterator/IterableIteratorAdapter.java
index 3976319b..4a8cb512 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/iterator/IterableIteratorAdapter.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/iterator/IterableIteratorAdapter.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.iterator;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2011
+ Copyright (C) 2012
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/iterator/IterableUtil.java b/src/de/lmu/ifi/dbs/elki/utilities/iterator/IterableUtil.java
index fa748248..8e4afd80 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/iterator/IterableUtil.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/iterator/IterableUtil.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.iterator;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2011
+ Copyright (C) 2012
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/iterator/MergedIterator.java b/src/de/lmu/ifi/dbs/elki/utilities/iterator/MergedIterator.java
index 2676a4fb..9208ab14 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/iterator/MergedIterator.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/iterator/MergedIterator.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.iterator;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2011
+ Copyright (C) 2012
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -34,15 +34,15 @@ import java.util.Iterator;
*
* @apiviz.stereotype adapter
* @apiviz.uses Iterator oneway
- *
+ *
* @param <E> Entry type
*/
-public class MergedIterator<E> implements Iterator<E> {
+public class MergedIterator<E> implements IterableIterator<E> {
/**
* All the iterators we process
*/
final Iterator<Iterator<E>> iterators;
-
+
/**
* The iterator we are currently processing
*/
@@ -52,7 +52,7 @@ public class MergedIterator<E> implements Iterator<E> {
* The last iterator we returned an object for, for remove()
*/
Iterator<E> last = null;
-
+
/**
* Main constructor.
*
@@ -83,20 +83,22 @@ public class MergedIterator<E> implements Iterator<E> {
@Override
public boolean hasNext() {
- while((current != null && current.hasNext()) || iterators.hasNext()) {
- // Next element in current iterator?
- if (current != null && current.hasNext()) {
+ do {
+ if(current != null && current.hasNext()) {
return true;
}
+ if(!iterators.hasNext()) {
+ return false;
+ }
// advance master iterator and retry
current = iterators.next();
}
- return false;
+ while(true);
}
@Override
public E next() {
- while (!current.hasNext()) {
+ while(!current.hasNext()) {
current = iterators.next();
}
last = current;
@@ -105,9 +107,14 @@ public class MergedIterator<E> implements Iterator<E> {
@Override
public void remove() {
- if (last == null) {
+ if(last == null) {
throw new RuntimeException("Iterator.remove() called without next()");
}
last.remove();
}
+
+ @Override
+ public Iterator<E> iterator() {
+ return this;
+ }
}
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/iterator/OneItemIterator.java b/src/de/lmu/ifi/dbs/elki/utilities/iterator/OneItemIterator.java
index d67503af..a81dcc18 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/iterator/OneItemIterator.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/iterator/OneItemIterator.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.iterator;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2011
+ Copyright (C) 2012
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/iterator/ReverseListIterator.java b/src/de/lmu/ifi/dbs/elki/utilities/iterator/ReverseListIterator.java
index 52cab893..c207e44c 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/iterator/ReverseListIterator.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/iterator/ReverseListIterator.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.iterator;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2011
+ Copyright (C) 2012
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/iterator/TypeFilterIterator.java b/src/de/lmu/ifi/dbs/elki/utilities/iterator/TypeFilterIterator.java
index 9bf2ecfc..cd687542 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/iterator/TypeFilterIterator.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/iterator/TypeFilterIterator.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.iterator;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2011
+ Copyright (C) 2012
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -33,7 +33,7 @@ import java.util.Iterator;
* @param <IN> Input datatype
* @param <OUT> Output datatype
*/
-public class TypeFilterIterator<IN, OUT extends IN> extends AbstractFilteredIterator<IN, OUT> {
+public class TypeFilterIterator<IN, OUT extends IN> extends AbstractFilteredIterator<IN, OUT> implements IterableIterator<OUT> {
/**
* Class restriction
*/
@@ -83,4 +83,9 @@ public class TypeFilterIterator<IN, OUT extends IN> extends AbstractFilteredIter
return null;
}
}
-}
+
+ @Override
+ public Iterator<OUT> iterator() {
+ return this;
+ }
+} \ No newline at end of file
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/iterator/UnmodifiableIterator.java b/src/de/lmu/ifi/dbs/elki/utilities/iterator/UnmodifiableIterator.java
index 271ba495..03c1119c 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/iterator/UnmodifiableIterator.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/iterator/UnmodifiableIterator.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.iterator;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2011
+ Copyright (C) 2012
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/iterator/UnmodifiableListIterator.java b/src/de/lmu/ifi/dbs/elki/utilities/iterator/UnmodifiableListIterator.java
index 0123216d..7b9c9d79 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/iterator/UnmodifiableListIterator.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/iterator/UnmodifiableListIterator.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.iterator;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2011
+ Copyright (C) 2012
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/iterator/package-info.java b/src/de/lmu/ifi/dbs/elki/utilities/iterator/package-info.java
index 52359156..9a889d1d 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/iterator/package-info.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/iterator/package-info.java
@@ -5,7 +5,7 @@
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
-Copyright (C) 2011
+Copyright (C) 2012
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team