summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeFactory.java')
-rw-r--r--src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeFactory.java77
1 files changed, 22 insertions, 55 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeFactory.java b/src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeFactory.java
index c0f12895..45a2e85f 100644
--- a/src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeFactory.java
+++ b/src/de/lmu/ifi/dbs/elki/index/tree/metrical/mtreevariants/mktrees/mkapp/MkAppTreeFactory.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.mktrees.mkapp;
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
@@ -24,10 +24,10 @@ package de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.mktrees.mkapp;
*/
import de.lmu.ifi.dbs.elki.database.relation.Relation;
-import de.lmu.ifi.dbs.elki.distance.distancefunction.DistanceFunction;
import de.lmu.ifi.dbs.elki.distance.distancevalue.NumberDistance;
import de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.AbstractMTreeFactory;
import de.lmu.ifi.dbs.elki.persistent.PageFile;
+import de.lmu.ifi.dbs.elki.persistent.PageFileFactory;
import de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.OptionID;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.constraints.GreaterConstraint;
@@ -46,7 +46,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.IntParameter;
* @param <O> Object type
* @param <D> Distance type
*/
-public class MkAppTreeFactory<O, D extends NumberDistance<D, ?>> extends AbstractMTreeFactory<O, D, MkAppTreeNode<O, D>, MkAppEntry<D>, MkAppTreeIndex<O, D>> {
+public class MkAppTreeFactory<O, D extends NumberDistance<D, ?>> extends AbstractMTreeFactory<O, D, MkAppTreeNode<O, D>, MkAppEntry, MkAppTreeIndex<O, D>, MkAppTreeSettings<O, D>> {
/**
* Parameter for nolog
*/
@@ -63,42 +63,19 @@ public class MkAppTreeFactory<O, D extends NumberDistance<D, ?>> extends Abstrac
public static final OptionID P_ID = new OptionID("mkapp.p", "positive integer specifying the order of the polynomial approximation.");
/**
- * Parameter k.
- */
- private int k_max;
-
- /**
- * Parameter p.
- */
- private int p;
-
- /**
- * Flag log.
- */
- private boolean log;
-
- /**
* Constructor.
*
- * @param fileName
- * @param pageSize
- * @param cacheSize
- * @param distanceFunction
- * @param k_max
- * @param p
- * @param log
+ * @param pageFileFactory Data storage
+ * @param settings Tree settings
*/
- public MkAppTreeFactory(String fileName, int pageSize, long cacheSize, DistanceFunction<O, D> distanceFunction, int k_max, int p, boolean log) {
- super(fileName, pageSize, cacheSize, distanceFunction);
- this.k_max = k_max;
- this.p = p;
- this.log = log;
+ public MkAppTreeFactory(PageFileFactory<?> pageFileFactory, MkAppTreeSettings<O, D> settings) {
+ super(pageFileFactory, settings);
}
@Override
public MkAppTreeIndex<O, D> instantiate(Relation<O> relation) {
PageFile<MkAppTreeNode<O, D>> pagefile = makePageFile(getNodeClass());
- return new MkAppTreeIndex<O, D>(relation, pagefile, distanceFunction.instantiate(relation), distanceFunction, k_max, p, log);
+ return new MkAppTreeIndex<>(relation, pagefile, settings);
}
protected Class<MkAppTreeNode<O, D>> getNodeClass() {
@@ -112,46 +89,36 @@ public class MkAppTreeFactory<O, D extends NumberDistance<D, ?>> extends Abstrac
*
* @apiviz.exclude
*/
- public static class Parameterizer<O, D extends NumberDistance<D, ?>> extends AbstractMTreeFactory.Parameterizer<O, D> {
- /**
- * Parameter k.
- */
- protected int k_max;
-
- /**
- * Parameter p.
- */
- protected int p;
-
- /**
- * Flag log.
- */
- protected boolean log;
-
+ public static class Parameterizer<O, D extends NumberDistance<D, ?>> extends AbstractMTreeFactory.Parameterizer<O, D, MkAppTreeNode<O, D>, MkAppEntry, MkAppTreeSettings<O, D>> {
@Override
protected void makeOptions(Parameterization config) {
super.makeOptions(config);
IntParameter kP = new IntParameter(K_ID);
kP.addConstraint(new GreaterConstraint(0));
- if(config.grab(kP)) {
- k_max = kP.getValue();
+ if (config.grab(kP)) {
+ settings.k_max = kP.getValue();
}
IntParameter pP = new IntParameter(P_ID);
pP.addConstraint(new GreaterConstraint(0));
- if(config.grab(pP)) {
- p = pP.getValue();
+ if (config.grab(pP)) {
+ settings.p = pP.getValue();
}
Flag nologF = new Flag(NOLOG_ID);
- if(config.grab(nologF)) {
- log = !nologF.getValue();
+ if (config.grab(nologF)) {
+ settings.log = !nologF.getValue();
}
}
@Override
protected MkAppTreeFactory<O, D> makeInstance() {
- return new MkAppTreeFactory<O, D>(fileName, pageSize, cacheSize, distanceFunction, k_max, p, log);
+ return new MkAppTreeFactory<>(pageFileFactory, settings);
+ }
+
+ @Override
+ protected MkAppTreeSettings<O, D> makeSettings() {
+ return new MkAppTreeSettings<>();
}
}
-} \ No newline at end of file
+}