diff options
author | Andrej Shadura <andrewsh@debian.org> | 2019-03-09 22:30:33 +0000 |
---|---|---|
committer | Andrej Shadura <andrewsh@debian.org> | 2019-03-09 22:30:33 +0000 |
commit | ace5fa7f57d49756c0e1b111a30f3b6a9436c1cb (patch) | |
tree | 041e034bddeeaf574c02ca8f040b1359cef00133 /src/de/lmu/ifi/dbs/elki/result/optics/ClusterOrderResult.java | |
parent | c36aa2a8fd31ca5e225ff30278e910070cd2c8c1 (diff) |
Import Upstream version 0.5.0
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/result/optics/ClusterOrderResult.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/result/optics/ClusterOrderResult.java | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/result/optics/ClusterOrderResult.java b/src/de/lmu/ifi/dbs/elki/result/optics/ClusterOrderResult.java index 6eea3415..66b53dd2 100644 --- a/src/de/lmu/ifi/dbs/elki/result/optics/ClusterOrderResult.java +++ b/src/de/lmu/ifi/dbs/elki/result/optics/ClusterOrderResult.java @@ -24,15 +24,20 @@ package de.lmu.ifi.dbs.elki.result.optics; */ import java.util.ArrayList; -import java.util.HashMap; import java.util.Iterator; import java.util.List; import de.lmu.ifi.dbs.elki.data.type.SimpleTypeInformation; import de.lmu.ifi.dbs.elki.data.type.TypeUtil; import de.lmu.ifi.dbs.elki.database.Database; +import de.lmu.ifi.dbs.elki.database.datastore.DataStore; +import de.lmu.ifi.dbs.elki.database.datastore.DataStoreFactory; +import de.lmu.ifi.dbs.elki.database.datastore.DataStoreUtil; +import de.lmu.ifi.dbs.elki.database.datastore.WritableDataStore; import de.lmu.ifi.dbs.elki.database.ids.ArrayModifiableDBIDs; import de.lmu.ifi.dbs.elki.database.ids.DBID; +import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; +import de.lmu.ifi.dbs.elki.database.ids.DBIDRef; import de.lmu.ifi.dbs.elki.database.ids.DBIDUtil; import de.lmu.ifi.dbs.elki.database.ids.DBIDs; import de.lmu.ifi.dbs.elki.database.ids.ModifiableDBIDs; @@ -43,9 +48,6 @@ import de.lmu.ifi.dbs.elki.result.IterableResult; import de.lmu.ifi.dbs.elki.result.OrderingResult; import de.lmu.ifi.dbs.elki.result.ResultAdapter; import de.lmu.ifi.dbs.elki.result.ResultHierarchy; -import de.lmu.ifi.dbs.elki.utilities.iterator.IterableIterator; -import de.lmu.ifi.dbs.elki.utilities.iterator.IterableIteratorAdapter; -import de.lmu.ifi.dbs.elki.utilities.iterator.IterableUtil; /** * Class to store the result of an ordering clustering algorithm such as OPTICS. @@ -70,7 +72,7 @@ public class ClusterOrderResult<D extends Distance<D>> extends BasicResult imple /** * Map of object IDs to their cluster order entry */ - private HashMap<DBID, ClusterOrderEntry<D>> map; + private WritableDataStore<ClusterOrderEntry<D>> map; /** * The DBIDs we are defined for @@ -86,8 +88,8 @@ public class ClusterOrderResult<D extends Distance<D>> extends BasicResult imple public ClusterOrderResult(String name, String shortname) { super(name, shortname); clusterOrder = new ArrayList<ClusterOrderEntry<D>>(); - map = new HashMap<DBID, ClusterOrderEntry<D>>(); dbids = DBIDUtil.newHashSet(); + map = DataStoreUtil.makeStorage(dbids, DataStoreFactory.HINT_DB, ClusterOrderEntry.class); addChildResult(new ClusterOrderAdapter(clusterOrder)); addChildResult(new ReachabilityDistanceAdapter(map, dbids)); @@ -174,23 +176,21 @@ public class ClusterOrderResult<D extends Distance<D>> extends BasicResult imple public DBIDs getDBIDs() { return dbids; } - + /** * Use the cluster order to sort the given collection ids. * * Implementation of the {@link OrderingResult} interface. */ @Override - public IterableIterator<DBID> iter(DBIDs ids) { + public ArrayModifiableDBIDs iter(DBIDs ids) { ArrayModifiableDBIDs res = DBIDUtil.newArray(ids.size()); for(ClusterOrderEntry<D> e : clusterOrder) { if(ids.contains(e.getID())) { res.add(e.getID()); } } - - // TODO: elements in ids that are not in clusterOrder are lost! - return new IterableIteratorAdapter<DBID>(res); + return res; } @Override @@ -213,7 +213,7 @@ public class ClusterOrderResult<D extends Distance<D>> extends BasicResult imple /** * Access reference. */ - private HashMap<DBID, ClusterOrderEntry<D>> map; + private DataStore<ClusterOrderEntry<D>> map; /** * DBIDs @@ -226,14 +226,14 @@ public class ClusterOrderResult<D extends Distance<D>> extends BasicResult imple * @param map Map that stores the results. * @param dbids DBIDs we are defined for. */ - public ReachabilityDistanceAdapter(HashMap<DBID, ClusterOrderEntry<D>> map, DBIDs dbids) { + public ReachabilityDistanceAdapter(DataStore<ClusterOrderEntry<D>> map, DBIDs dbids) { super(); this.map = map; this.dbids = dbids; } @Override - public D get(DBID objID) { + public D get(DBIDRef objID) { return map.get(objID).getReachability(); } @@ -253,8 +253,8 @@ public class ClusterOrderResult<D extends Distance<D>> extends BasicResult imple } @Override - public IterableIterator<DBID> iterDBIDs() { - return IterableUtil.fromIterator(dbids.iterator()); + public DBIDIter iterDBIDs() { + return dbids.iter(); } @Override @@ -268,12 +268,12 @@ public class ClusterOrderResult<D extends Distance<D>> extends BasicResult imple } @Override - public void set(DBID id, D val) { + public void set(DBIDRef id, D val) { throw new UnsupportedOperationException(); } @Override - public void delete(DBID id) { + public void delete(DBIDRef id) { throw new UnsupportedOperationException(); } @@ -302,7 +302,7 @@ public class ClusterOrderResult<D extends Distance<D>> extends BasicResult imple /** * Access reference. */ - private HashMap<DBID, ClusterOrderEntry<D>> map; + private DataStore<ClusterOrderEntry<D>> map; /** * Database IDs @@ -315,14 +315,14 @@ public class ClusterOrderResult<D extends Distance<D>> extends BasicResult imple * @param map Map that stores the results. * @param dbids DBIDs we are defined for */ - public PredecessorAdapter(HashMap<DBID, ClusterOrderEntry<D>> map, DBIDs dbids) { + public PredecessorAdapter(DataStore<ClusterOrderEntry<D>> map, DBIDs dbids) { super(); this.map = map; this.dbids = dbids; } @Override - public DBID get(DBID objID) { + public DBID get(DBIDRef objID) { return map.get(objID).getPredecessorID(); } @@ -342,8 +342,8 @@ public class ClusterOrderResult<D extends Distance<D>> extends BasicResult imple } @Override - public IterableIterator<DBID> iterDBIDs() { - return IterableUtil.fromIterator(dbids.iterator()); + public DBIDIter iterDBIDs() { + return dbids.iter(); } @Override @@ -357,12 +357,12 @@ public class ClusterOrderResult<D extends Distance<D>> extends BasicResult imple } @Override - public void set(DBID id, DBID val) { + public void set(DBIDRef id, DBID val) { throw new UnsupportedOperationException(); } @Override - public void delete(DBID id) { + public void delete(DBIDRef id) { throw new UnsupportedOperationException(); } |