diff options
author | Erich Schubert <erich@debian.org> | 2012-06-02 17:47:03 +0200 |
---|---|---|
committer | Andrej Shadura <andrewsh@debian.org> | 2019-03-09 22:30:32 +0000 |
commit | 593eae6c91717eb9f4ff5088ba460dd4210509c0 (patch) | |
tree | d97e8cefb48773a382542e9e9d4a6796202a044a /src/de/lmu/ifi/dbs/elki/datasource/bundle/MultipleObjectsBundle.java | |
parent | e580e42664ca92fbf8792bc39b8d59383db829fe (diff) | |
parent | c36aa2a8fd31ca5e225ff30278e910070cd2c8c1 (diff) |
Import Debian changes 0.5.0~beta2-1
elki (0.5.0~beta2-1) unstable; urgency=low
* New upstream beta release.
* Needs GNU Trove 3, in NEW.
* Build with OpenJDK7, as OpenJDK6 complains.
elki (0.5.0~beta1-1) unstable; urgency=low
* New upstream beta release.
* Needs GNU Trove 3, not yet in Debian (private package)
* Build with OpenJDK7, as OpenJDK6 complains.
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/datasource/bundle/MultipleObjectsBundle.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/datasource/bundle/MultipleObjectsBundle.java | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/datasource/bundle/MultipleObjectsBundle.java b/src/de/lmu/ifi/dbs/elki/datasource/bundle/MultipleObjectsBundle.java index cb78ed84..51107098 100644 --- a/src/de/lmu/ifi/dbs/elki/datasource/bundle/MultipleObjectsBundle.java +++ b/src/de/lmu/ifi/dbs/elki/datasource/bundle/MultipleObjectsBundle.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.datasource.bundle; 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 @@ -27,6 +27,8 @@ import java.util.ArrayList; import java.util.List; import de.lmu.ifi.dbs.elki.data.type.SimpleTypeInformation; +import de.lmu.ifi.dbs.elki.datasource.bundle.BundleStreamSource.Event; +import de.lmu.ifi.dbs.elki.logging.LoggingUtil; import de.lmu.ifi.dbs.elki.utilities.exceptions.AbortException; /** @@ -207,6 +209,48 @@ public class MultipleObjectsBundle implements ObjectBundle { } /** + * Convert an object stream to a bundle + * + * @param source Object stream + * @return Static bundle + */ + public static MultipleObjectsBundle fromStream(BundleStreamSource source) { + MultipleObjectsBundle bundle = new MultipleObjectsBundle(); + boolean stop = false; + while(!stop) { + Event ev = source.nextEvent(); + switch(ev) { + case END_OF_STREAM: + stop = true; + break; + case META_CHANGED: + BundleMeta smeta = source.getMeta(); + // rebuild bundle meta + bundle.meta = new BundleMeta(); + for(int i = 0; i < bundle.columns.size(); i++) { + bundle.meta.add(smeta.get(i)); + } + for(int i = bundle.metaLength(); i < smeta.size(); i++) { + List<Object> data = new ArrayList<Object>(bundle.dataLength() + 1); + bundle.appendColumn(smeta.get(i), data); + } + continue; + case NEXT_OBJECT: + for (int i = 0; i < bundle.metaLength(); i++) { + @SuppressWarnings("unchecked") + final List<Object> col = (List<Object>) bundle.columns.get(i); + col.add(source.data(i)); + } + continue; + default: + LoggingUtil.warning("Unknown event: " + ev); + continue; + } + } + return bundle; + } + + /** * Get an object row. * * @param row Row number |