summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/database/query/similarity/PrimitiveSimilarityQuery.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/database/query/similarity/PrimitiveSimilarityQuery.java')
-rw-r--r--src/de/lmu/ifi/dbs/elki/database/query/similarity/PrimitiveSimilarityQuery.java43
1 files changed, 14 insertions, 29 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/database/query/similarity/PrimitiveSimilarityQuery.java b/src/de/lmu/ifi/dbs/elki/database/query/similarity/PrimitiveSimilarityQuery.java
index 58020239..f39383a2 100644
--- a/src/de/lmu/ifi/dbs/elki/database/query/similarity/PrimitiveSimilarityQuery.java
+++ b/src/de/lmu/ifi/dbs/elki/database/query/similarity/PrimitiveSimilarityQuery.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.database.query.similarity;
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
@@ -25,7 +25,6 @@ package de.lmu.ifi.dbs.elki.database.query.similarity;
import de.lmu.ifi.dbs.elki.database.ids.DBIDRef;
import de.lmu.ifi.dbs.elki.database.relation.Relation;
-import de.lmu.ifi.dbs.elki.distance.distancevalue.Distance;
import de.lmu.ifi.dbs.elki.distance.similarityfunction.PrimitiveSimilarityFunction;
/**
@@ -33,14 +32,15 @@ import de.lmu.ifi.dbs.elki.distance.similarityfunction.PrimitiveSimilarityFuncti
*
* @author Erich Schubert
*
+ * @apiviz.has PrimitiveSimilarityFunction
+ *
* @param <O> Database object type.
- * @param <D> Distance result type.
*/
-public class PrimitiveSimilarityQuery<O, D extends Distance<D>> extends AbstractSimilarityQuery<O, D> {
+public class PrimitiveSimilarityQuery<O> extends AbstractSimilarityQuery<O> {
/**
* The distance function we use.
*/
- final protected PrimitiveSimilarityFunction<? super O, D> similarityFunction;
+ final protected PrimitiveSimilarityFunction<? super O> similarityFunction;
/**
* Constructor.
@@ -48,48 +48,33 @@ public class PrimitiveSimilarityQuery<O, D extends Distance<D>> extends Abstract
* @param relation Relation to use.
* @param similarityFunction Our similarity function
*/
- public PrimitiveSimilarityQuery(Relation<? extends O> relation, PrimitiveSimilarityFunction<? super O, D> similarityFunction) {
+ public PrimitiveSimilarityQuery(Relation<? extends O> relation, PrimitiveSimilarityFunction<? super O> similarityFunction) {
super(relation);
this.similarityFunction = similarityFunction;
}
@Override
- public D similarity(DBIDRef id1, DBIDRef id2) {
- O o1 = relation.get(id1);
- O o2 = relation.get(id2);
- return similarity(o1, o2);
+ public double similarity(DBIDRef id1, DBIDRef id2) {
+ return similarity(relation.get(id1), relation.get(id2));
}
@Override
- public D similarity(O o1, DBIDRef id2) {
- O o2 = relation.get(id2);
- return similarity(o1, o2);
+ public double similarity(O o1, DBIDRef id2) {
+ return similarity(o1, relation.get(id2));
}
@Override
- public D similarity(DBIDRef id1, O o2) {
- O o1 = relation.get(id1);
- return similarity(o1, o2);
+ public double similarity(DBIDRef id1, O o2) {
+ return similarity(relation.get(id1), o2);
}
@Override
- public D similarity(O o1, O o2) {
- if (o1 == null) {
- throw new UnsupportedOperationException("This distance function can only be used for object instances.");
- }
- if (o2 == null) {
- throw new UnsupportedOperationException("This distance function can only be used for object instances.");
- }
+ public double similarity(O o1, O o2) {
return similarityFunction.similarity(o1, o2);
}
@Override
- public D getDistanceFactory() {
- return similarityFunction.getDistanceFactory();
- }
-
- @Override
- public PrimitiveSimilarityFunction<? super O, D> getSimilarityFunction() {
+ public PrimitiveSimilarityFunction<? super O> getSimilarityFunction() {
return similarityFunction;
}
}