summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeDirectoryEntry.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeDirectoryEntry.java')
-rw-r--r--src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeDirectoryEntry.java44
1 files changed, 20 insertions, 24 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeDirectoryEntry.java b/src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeDirectoryEntry.java
index 3902973f..92d0a7ea 100644
--- a/src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeDirectoryEntry.java
+++ b/src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/MTreeDirectoryEntry.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -29,7 +29,6 @@ import java.io.ObjectOutput;
import de.lmu.ifi.dbs.elki.database.ids.DBID;
import de.lmu.ifi.dbs.elki.database.ids.DBIDUtil;
-import de.lmu.ifi.dbs.elki.distance.distancevalue.Distance;
import de.lmu.ifi.dbs.elki.index.tree.AbstractDirectoryEntry;
/**
@@ -39,10 +38,9 @@ import de.lmu.ifi.dbs.elki.index.tree.AbstractDirectoryEntry;
* the routing object of the entry to its parent's routing object in the M-Tree.
*
* @author Elke Achtert
- * @param <D> the type of Distance used in the M-Tree
*/
-public class MTreeDirectoryEntry<D extends Distance<D>> extends AbstractDirectoryEntry implements MTreeEntry<D> {
- private static final long serialVersionUID = 1;
+public class MTreeDirectoryEntry extends AbstractDirectoryEntry implements MTreeEntry {
+ private static final long serialVersionUID = 2;
/**
* The id of routing object of this entry.
@@ -53,12 +51,12 @@ public class MTreeDirectoryEntry<D extends Distance<D>> extends AbstractDirector
* The distance from the routing object of this entry to its parent's routing
* object.
*/
- private D parentDistance;
+ private double parentDistance;
/**
* The covering radius of the entry.
*/
- private D coveringRadius;
+ private double coveringRadius;
/**
* Empty constructor for serialization purposes.
@@ -76,7 +74,7 @@ public class MTreeDirectoryEntry<D extends Distance<D>> extends AbstractDirector
* @param nodeID the id of the underlying node
* @param coveringRadius the covering radius of the entry
*/
- public MTreeDirectoryEntry(DBID objectID, D parentDistance, Integer nodeID, D coveringRadius) {
+ public MTreeDirectoryEntry(DBID objectID, double parentDistance, Integer nodeID, double coveringRadius) {
super(nodeID);
this.routingObjectID = objectID;
this.parentDistance = parentDistance;
@@ -89,7 +87,7 @@ public class MTreeDirectoryEntry<D extends Distance<D>> extends AbstractDirector
* @return the covering radius of this entry
*/
@Override
- public final D getCoveringRadius() {
+ public final double getCoveringRadius() {
return coveringRadius;
}
@@ -99,7 +97,7 @@ public class MTreeDirectoryEntry<D extends Distance<D>> extends AbstractDirector
* @param coveringRadius the covering radius to be set
*/
@Override
- public final void setCoveringRadius(D coveringRadius) {
+ public final void setCoveringRadius(double coveringRadius) {
this.coveringRadius = coveringRadius;
}
@@ -131,7 +129,7 @@ public class MTreeDirectoryEntry<D extends Distance<D>> extends AbstractDirector
* routing object.
*/
@Override
- public final D getParentDistance() {
+ public final double getParentDistance() {
return parentDistance;
}
@@ -141,7 +139,7 @@ public class MTreeDirectoryEntry<D extends Distance<D>> extends AbstractDirector
* @param parentDistance the distance to be set
*/
@Override
- public final void setParentDistance(D parentDistance) {
+ public final void setParentDistance(double parentDistance) {
this.parentDistance = parentDistance;
}
@@ -153,8 +151,8 @@ public class MTreeDirectoryEntry<D extends Distance<D>> extends AbstractDirector
public void writeExternal(ObjectOutput out) throws IOException {
super.writeExternal(out);
out.writeInt(DBIDUtil.asInteger(routingObjectID));
- out.writeObject(parentDistance);
- out.writeObject(coveringRadius);
+ out.writeDouble(parentDistance);
+ out.writeDouble(coveringRadius);
}
/**
@@ -162,12 +160,11 @@ public class MTreeDirectoryEntry<D extends Distance<D>> extends AbstractDirector
* and the coveringRadius of this entry from the specified input stream.
*/
@Override
- @SuppressWarnings( { "unchecked" })
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
super.readExternal(in);
this.routingObjectID = DBIDUtil.importInteger(in.readInt());
- this.parentDistance = (D) in.readObject();
- this.coveringRadius = (D) in.readObject();
+ this.parentDistance = in.readDouble();
+ this.coveringRadius = in.readDouble();
}
/**
@@ -189,24 +186,23 @@ public class MTreeDirectoryEntry<D extends Distance<D>> extends AbstractDirector
* and routingObjectID as this entry.
*/
@Override
- @SuppressWarnings("unchecked")
public boolean equals(Object o) {
- if(this == o) {
+ if (this == o) {
return true;
}
- if(o == null || getClass() != o.getClass()) {
+ if (o == null || getClass() != o.getClass()) {
return false;
}
- if(!super.equals(o)) {
+ if (!super.equals(o)) {
return false;
}
- final MTreeDirectoryEntry<D> that = (MTreeDirectoryEntry<D>) o;
+ final MTreeDirectoryEntry that = (MTreeDirectoryEntry) o;
- if(coveringRadius != null ? !coveringRadius.equals(that.coveringRadius) : that.coveringRadius != null) {
+ if (Math.abs(coveringRadius - that.coveringRadius) < Double.MIN_NORMAL) {
return false;
}
- if(parentDistance != null ? !parentDistance.equals(that.parentDistance) : that.parentDistance != null) {
+ if (Math.abs(parentDistance - that.parentDistance) < Double.MIN_NORMAL) {
return false;
}
return !(routingObjectID != null ? !DBIDUtil.equal(routingObjectID, that.routingObjectID) : that.routingObjectID != null);