summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization
diff options
context:
space:
mode:
authorErich Schubert <erich@debian.org>2014-10-31 03:43:51 +0100
committerAndrej Shadura <andrewsh@debian.org>2019-03-09 22:30:40 +0000
commit596d8876dca5627dd76e8c23bf40a24cc305eeed (patch)
treed269ddb46561469f6b1fff67b19e0cd2b4608f5b /src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization
parentee31d687b1a0e2f2f1e6e71375c7cc3b094919b8 (diff)
parent337087b668d3a54f3afee3a9adb597a32e9f7e94 (diff)
Import Debian changes 0.6.5~20141030-1
elki (0.6.5~20141030-1) unstable; urgency=medium * New upstream beta release * Urgency medium: 0.6.0 suffers from a performance issue with duplicates. * Repackaged tarball from .jar to .tar.bz2 * Add dependency on libsvm3-java * Enable line numbers for debugging (ant debuglevel)
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization')
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/AbstractParameterization.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ChainedParameterization.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/EmptyParameterization.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ListParameterization.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/MergedParameterization.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/Parameterization.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/SerializedParameterization.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/TrackParameters.java66
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/TrackedParameter.java71
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/UnParameterization.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/package-info.java2
11 files changed, 111 insertions, 44 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/AbstractParameterization.java b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/AbstractParameterization.java
index 75a5be86..6b804777 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/AbstractParameterization.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/AbstractParameterization.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization;
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
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ChainedParameterization.java b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ChainedParameterization.java
index 97cdb51f..9d8c171b 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ChainedParameterization.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ChainedParameterization.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization;
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
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/EmptyParameterization.java b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/EmptyParameterization.java
index 02802593..b43fed45 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/EmptyParameterization.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/EmptyParameterization.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization;
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
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ListParameterization.java b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ListParameterization.java
index b870b57b..3cb309f5 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ListParameterization.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ListParameterization.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization;
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
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/MergedParameterization.java b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/MergedParameterization.java
index 9f765963..8e6e10c8 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/MergedParameterization.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/MergedParameterization.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization;
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
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/Parameterization.java b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/Parameterization.java
index 01c46583..32ab5bdb 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/Parameterization.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/Parameterization.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization;
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
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/SerializedParameterization.java b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/SerializedParameterization.java
index b3e3f214..7eb3cf45 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/SerializedParameterization.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/SerializedParameterization.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization;
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
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/TrackParameters.java b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/TrackParameters.java
index 5a20bd9e..a9ccda98 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/TrackParameters.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/TrackParameters.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization;
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
@@ -32,11 +32,9 @@ import java.util.Map;
import de.lmu.ifi.dbs.elki.logging.LoggingUtil;
import de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.InternalParameterizationErrors;
-import de.lmu.ifi.dbs.elki.utilities.optionhandling.OptionID;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.ParameterException;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.constraints.GlobalParameterConstraint;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
-import de.lmu.ifi.dbs.elki.utilities.pairs.Pair;
/**
* Utility wrapper to track parameters for a configuration session.
@@ -54,7 +52,7 @@ public class TrackParameters implements Parameterization {
/**
* Tracking storage
*/
- List<Pair<Object, Parameter<?>>> options = new ArrayList<>();
+ List<TrackedParameter> options = new ArrayList<>();
/**
* Tree information: parent links
@@ -70,7 +68,7 @@ public class TrackParameters implements Parameterization {
/**
* Current parent for nested parameterization
*/
- Object cur = null;
+ Object owner = null;
/**
* Constructor.
@@ -83,18 +81,30 @@ public class TrackParameters implements Parameterization {
}
/**
+ * Constructor.
+ *
+ * @param inner Inner parameterization to wrap.
+ * @param owner Class/instance owning the parameter
+ */
+ public TrackParameters(Parameterization inner, Object owner) {
+ super();
+ this.inner = inner;
+ this.owner = owner;
+ }
+
+ /**
* Internal constructor, for nested tracking.
*
* @param inner Inner parameterization
- * @param option Option
+ * @param owner Object owning the current parameters
* @param options List of options
* @param parents Parent map
* @param children Child map
*/
- private TrackParameters(Parameterization inner, Object option, List<Pair<Object, Parameter<?>>> options, Map<Object, Object> parents, Map<Object, List<Object>> children) {
+ private TrackParameters(Parameterization inner, Object owner, List<TrackedParameter> options, Map<Object, Object> parents, Map<Object, List<Object>> children) {
super();
- this.inner = inner.descend(option);
- this.cur = option;
+ this.inner = inner.descend(owner);
+ this.owner = owner;
this.options = options;
this.parents = parents;
this.children = children;
@@ -113,7 +123,7 @@ public class TrackParameters implements Parameterization {
@Override
public boolean grab(Parameter<?> opt) {
registerChild(opt);
- options.add(new Pair<Object, Parameter<?>>(cur, opt));
+ options.add(new TrackedParameter(owner, opt));
return inner.grab(opt);
}
@@ -130,7 +140,7 @@ public class TrackParameters implements Parameterization {
@Override
public boolean setValueForOption(Parameter<?> opt) throws ParameterException {
registerChild(opt);
- options.add(new Pair<Object, Parameter<?>>(cur, opt));
+ options.add(new TrackedParameter(owner, opt));
return inner.setValueForOption(opt);
}
@@ -139,33 +149,19 @@ public class TrackParameters implements Parameterization {
*
* @return Parameters seen
*/
- public Collection<Pair<Object, Parameter<?>>> getAllParameters() {
+ public Collection<TrackedParameter> getAllParameters() {
return options;
}
- /**
- * Get the tracked parameters that were actually set.
- *
- * @return Parameters given
- */
- public Collection<Pair<OptionID, Object>> getGivenParameters() {
- ArrayList<Pair<OptionID, Object>> ret = new ArrayList<>();
- for(Pair<Object, Parameter<?>> pair : options) {
- if(pair.second.isDefined() && pair.second.getGivenValue() != null) {
- ret.add(new Pair<>(pair.second.getOptionID(), pair.second.getGivenValue()));
- }
- }
- return ret;
- }
-
@Override
public boolean checkConstraint(GlobalParameterConstraint constraint) {
return inner.checkConstraint(constraint);
}
/**
- * {@inheritDoc} Track parameters using a shared options list with parent
- * tracker.
+ * {@inheritDoc}
+ *
+ * Track parameters using a shared options list with parent tracker.
*/
@Override
public Parameterization descend(Object option) {
@@ -174,14 +170,14 @@ public class TrackParameters implements Parameterization {
}
private void registerChild(Object opt) {
- if(opt == cur) {
+ if(opt == owner) {
LoggingUtil.exception("Options shouldn't have themselves as parents!", new Throwable());
}
- parents.put(opt, cur);
- List<Object> c = children.get(cur);
+ parents.put(opt, owner);
+ List<Object> c = children.get(owner);
if(c == null) {
c = new ArrayList<>();
- children.put(cur, c);
+ children.put(owner, c);
}
if(!c.contains(opt)) {
c.add(opt);
@@ -204,7 +200,7 @@ public class TrackParameters implements Parameterization {
return ClassGenericsUtil.tryInstantiate(r, c, this);
}
catch(Exception e) {
- reportError(new InternalParameterizationErrors("Error instantiating internal class: "+c.getName(), e));
+ reportError(new InternalParameterizationErrors("Error instantiating internal class: " + c.getName(), e));
return null;
}
}
@@ -215,7 +211,7 @@ public class TrackParameters implements Parameterization {
return ClassGenericsUtil.tryInstantiate(c, c, this);
}
catch(Exception e) {
- reportError(new InternalParameterizationErrors("Error instantiating internal class: "+c.getName(), e));
+ reportError(new InternalParameterizationErrors("Error instantiating internal class: " + c.getName(), e));
return null;
}
}
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/TrackedParameter.java b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/TrackedParameter.java
new file mode 100644
index 00000000..01969302
--- /dev/null
+++ b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/TrackedParameter.java
@@ -0,0 +1,71 @@
+package de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization;
+
+/*
+ This file is part of ELKI:
+ Environment for Developing KDD-Applications Supported by Index-Structures
+
+ Copyright (C) 2014
+ Ludwig-Maximilians-Universität München
+ Lehr- und Forschungseinheit für Datenbanksysteme
+ ELKI Development Team
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
+
+/**
+ * Class containing an object, and the associated value.
+ *
+ * @author Erich Schubert
+ */
+public class TrackedParameter {
+ /**
+ * Option ID
+ */
+ private Object owner;
+
+ /**
+ * Parameter value
+ */
+ private Parameter<?> parameter;
+
+ /**
+ * Constructor.
+ *
+ * @param owner Object owning the parameter value
+ * @param parameter Parameter
+ */
+ public TrackedParameter(Object owner, Parameter<?> parameter) {
+ this.owner = owner;
+ this.parameter = parameter;
+ }
+
+ /**
+ * Get the owner object.
+ *
+ * @return Parameter owner
+ */
+ public Object getOwner() {
+ return owner;
+ }
+
+ /**
+ * Get the parameter observed.
+ *
+ * @return Parameter
+ */
+ public Parameter<?> getParameter() {
+ return parameter;
+ }
+} \ No newline at end of file
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/UnParameterization.java b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/UnParameterization.java
index 2a05a766..dfdbe7ac 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/UnParameterization.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/UnParameterization.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization;
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
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/package-info.java b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/package-info.java
index ce9c89b4..d330d343 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/package-info.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/package-info.java
@@ -8,7 +8,7 @@
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