summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/datasource/filter/AbstractStreamFilter.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/datasource/filter/AbstractStreamFilter.java')
-rw-r--r--src/de/lmu/ifi/dbs/elki/datasource/filter/AbstractStreamFilter.java31
1 files changed, 23 insertions, 8 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/datasource/filter/AbstractStreamFilter.java b/src/de/lmu/ifi/dbs/elki/datasource/filter/AbstractStreamFilter.java
index 6a210db3..dca3d221 100644
--- a/src/de/lmu/ifi/dbs/elki/datasource/filter/AbstractStreamFilter.java
+++ b/src/de/lmu/ifi/dbs/elki/datasource/filter/AbstractStreamFilter.java
@@ -1,14 +1,10 @@
package de.lmu.ifi.dbs.elki.datasource.filter;
-import de.lmu.ifi.dbs.elki.datasource.bundle.BundleStreamSource;
-import de.lmu.ifi.dbs.elki.datasource.bundle.MultipleObjectsBundle;
-import de.lmu.ifi.dbs.elki.datasource.bundle.StreamFromBundle;
-
/*
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2013
+ Copyright (C) 2014
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -26,6 +22,10 @@ import de.lmu.ifi.dbs.elki.datasource.bundle.StreamFromBundle;
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+import de.lmu.ifi.dbs.elki.database.ids.DBIDVar;
+import de.lmu.ifi.dbs.elki.datasource.bundle.BundleStreamSource;
+import de.lmu.ifi.dbs.elki.datasource.bundle.MultipleObjectsBundle;
+
/**
* Abstract base class for streaming filters.
*
@@ -39,12 +39,27 @@ public abstract class AbstractStreamFilter implements StreamFilter {
@Override
public MultipleObjectsBundle filter(MultipleObjectsBundle objects) {
- init(new StreamFromBundle(objects));
- return MultipleObjectsBundle.fromStream(this);
+ return init(objects.asStream()).asMultipleObjectsBundle();
}
@Override
- public void init(BundleStreamSource source) {
+ public BundleStreamSource init(BundleStreamSource source) {
this.source = source;
+ return this;
+ }
+
+ @Override
+ public boolean hasDBIDs() {
+ return source.hasDBIDs();
+ }
+
+ @Override
+ public boolean assignDBID(DBIDVar var) {
+ return source.assignDBID(var);
+ }
+
+ @Override
+ public MultipleObjectsBundle asMultipleObjectsBundle() {
+ return MultipleObjectsBundle.fromStream(this);
}
}