summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/result/optics/ClusterOrderResult.java
diff options
context:
space:
mode:
authorAndrej Shadura <andrewsh@debian.org>2019-03-09 22:30:33 +0000
committerAndrej Shadura <andrewsh@debian.org>2019-03-09 22:30:33 +0000
commitace5fa7f57d49756c0e1b111a30f3b6a9436c1cb (patch)
tree041e034bddeeaf574c02ca8f040b1359cef00133 /src/de/lmu/ifi/dbs/elki/result/optics/ClusterOrderResult.java
parentc36aa2a8fd31ca5e225ff30278e910070cd2c8c1 (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.java50
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();
}