summaryrefslogtreecommitdiff
path: root/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling
diff options
context:
space:
mode:
Diffstat (limited to 'elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling')
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/AbstractParameterizer.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/InternalParameterizationErrors.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/NoParameterValueException.java3
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/OptionID.java1
-rwxr-xr-xelki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/OptionUtil.java3
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/ParameterException.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/Parameterizer.java1
-rwxr-xr-xelki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/UnspecifiedParameterException.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/UnusedParameterException.java4
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/WrongParameterValueException.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/AbstractNumberConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/AllOrNoneMustBeSetGlobalConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/CommonConstraints.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/EqualSizeGlobalConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/EqualStringConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GlobalListSizeConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GlobalParameterConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GlobalVectorListElementSizeConstraint.java21
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GreaterConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GreaterEqualConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessEqualConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessEqualGlobalConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessGlobalConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ListEachConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ListParameterNoDuplicateValueConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ListSizeConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/NoDuplicateValueGlobalConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/OneMustBeSetGlobalConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/OnlyOneIsAllowedToBeSetGlobalConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ParameterConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ParameterFlagGlobalConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/StringLengthConstraint.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/AbstractParameterization.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ChainedParameterization.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/EmptyParameterization.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ListParameterization.java91
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/MergedParameterization.java30
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/Parameterization.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/SerializedParameterization.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/TrackParameters.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/TrackedParameter.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/UnParameterization.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/AbstractParameter.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ClassListParameter.java18
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ClassParameter.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/DoubleArrayListParameter.java (renamed from elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/VectorListParameter.java)78
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/DoubleListParameter.java6
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/DoubleParameter.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/EnumParameter.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/FileListParameter.java15
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/FileParameter.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/Flag.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/IntListParameter.java27
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/IntParameter.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ListParameter.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/LongParameter.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/NumberParameter.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ObjectListParameter.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ObjectParameter.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/Parameter.java11
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/PatternParameter.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/RandomParameter.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/StringParameter.java1
64 files changed, 258 insertions, 101 deletions
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/AbstractParameterizer.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/AbstractParameterizer.java
index f8a7b390..a3559e86 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/AbstractParameterizer.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/AbstractParameterizer.java
@@ -30,6 +30,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.Parameteriz
* Abstract base class that handles the parameterization of a class.
*
* @author Erich Schubert
+ * @since 0.4.0
*
* @apiviz.uses Parameterization
* @apiviz.has de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/InternalParameterizationErrors.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/InternalParameterizationErrors.java
index 3301c31c..9173cc24 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/InternalParameterizationErrors.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/InternalParameterizationErrors.java
@@ -32,6 +32,7 @@ import java.util.Collection;
* This is meant for reporting re-parameterization errors.
*
* @author Erich Schubert
+ * @since 0.3
*/
public class InternalParameterizationErrors extends ParameterException {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/NoParameterValueException.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/NoParameterValueException.java
index 50ad6215..36c23718 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/NoParameterValueException.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/NoParameterValueException.java
@@ -25,6 +25,9 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling;
/**
* Thrown by OptionHandler in case of incorrect parameter-array.
+ *
+ * @author Arthur Zimek
+ * @since 0.2
*/
public class NoParameterValueException extends ParameterException {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/OptionID.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/OptionID.java
index 20cdc6c7..67c6326e 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/OptionID.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/OptionID.java
@@ -29,6 +29,7 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling;
* within this class.
*
* @author Elke Achtert
+ * @since 0.2
*/
public final class OptionID {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/OptionUtil.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/OptionUtil.java
index a72035f9..2f0def2b 100755
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/OptionUtil.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/OptionUtil.java
@@ -39,6 +39,9 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
/**
* Utility functions related to Option handling.
*
+ * @author Erich Schubert
+ * @since 0.2
+ *
* @apiviz.uses Parameter
*/
public final class OptionUtil {
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/ParameterException.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/ParameterException.java
index 2a456fed..9527b946 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/ParameterException.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/ParameterException.java
@@ -28,6 +28,7 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling;
* Abstract super class for all exceptions thrown during parameterization.
*
* @author Elke Achtert
+ * @since 0.2
*/
@SuppressWarnings("serial")
public abstract class ParameterException extends Exception {
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/Parameterizer.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/Parameterizer.java
index 2931309f..c0134b40 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/Parameterizer.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/Parameterizer.java
@@ -31,6 +31,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.Parameteriz
* To instantiate a class, use {@link Parameterization#tryInstantiate(Class)}!
*
* @author Erich Schubert
+ * @since 0.4.0
*/
public interface Parameterizer {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/UnspecifiedParameterException.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/UnspecifiedParameterException.java
index c7a9909c..5569a648 100755
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/UnspecifiedParameterException.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/UnspecifiedParameterException.java
@@ -29,6 +29,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
* Exception when a required parameter was not given.
*
* @author Erich Schubert
+ * @since 0.2
*/
public class UnspecifiedParameterException extends WrongParameterValueException {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/UnusedParameterException.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/UnusedParameterException.java
index 016cdf76..7cd86f8c 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/UnusedParameterException.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/UnusedParameterException.java
@@ -23,9 +23,11 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling;
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-
/**
* Thrown by OptionHandler in case of request of an unused parameter.
+ *
+ * @author Arthur Zimek
+ * @since 0.2
*/
@SuppressWarnings("serial")
public class UnusedParameterException extends ParameterException {
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/WrongParameterValueException.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/WrongParameterValueException.java
index c0bd4b40..cd24cf66 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/WrongParameterValueException.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/WrongParameterValueException.java
@@ -29,6 +29,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
* Thrown by a Parameterizable object in case of wrong parameter format.
*
* @author Steffi Wanka
+ * @since 0.2
*/
public class WrongParameterValueException extends ParameterException {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/AbstractNumberConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/AbstractNumberConstraint.java
index b08da639..815ccdef 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/AbstractNumberConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/AbstractNumberConstraint.java
@@ -27,6 +27,7 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling.constraints;
* Abstract super class for constraints dealing with a certain number value.
*
* @author Elke Achtert
+ * @since 0.2
*
* @apiviz.uses
* de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.NumberParameter
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/AllOrNoneMustBeSetGlobalConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/AllOrNoneMustBeSetGlobalConstraint.java
index f468af92..3430fd81 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/AllOrNoneMustBeSetGlobalConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/AllOrNoneMustBeSetGlobalConstraint.java
@@ -35,6 +35,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
* parameters ({@link Parameter}) must be set, or none of them.
*
* @author Steffi Wanka
+ * @since 0.2
*/
public class AllOrNoneMustBeSetGlobalConstraint implements GlobalParameterConstraint {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/CommonConstraints.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/CommonConstraints.java
index 3507e946..09df14df 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/CommonConstraints.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/CommonConstraints.java
@@ -27,6 +27,7 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling.constraints;
* Class storing a number of very common constraints.
*
* @author Erich Schubert
+ * @since 0.6.0
*
* @apiviz.landmark
* @apiviz.composedOf ParameterConstraint
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/EqualSizeGlobalConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/EqualSizeGlobalConstraint.java
index ae817a7a..e6257e47 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/EqualSizeGlobalConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/EqualSizeGlobalConstraint.java
@@ -34,6 +34,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ListParameter;
* ) must have equal list sizes.
*
* @author Steffi Wanka
+ * @since 0.2
*/
public class EqualSizeGlobalConstraint implements GlobalParameterConstraint {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/EqualStringConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/EqualStringConstraint.java
index 52ac3ff6..e7379b6a 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/EqualStringConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/EqualStringConstraint.java
@@ -35,6 +35,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.WrongParameterValueException
* ) to be tested is equal to the specified constraint-strings.
*
* @author Steffi Wanka
+ * @since 0.2
*
* @apiviz.uses de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.StringParameter
*/
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GlobalListSizeConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GlobalListSizeConstraint.java
index 05d391b3..21669a38 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GlobalListSizeConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GlobalListSizeConstraint.java
@@ -34,6 +34,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ListParameter;
* specified by the integer parameter ({@link IntParameter}) given.
*
* @author Steffi Wanka
+ * @since 0.2
*/
public class GlobalListSizeConstraint implements GlobalParameterConstraint {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GlobalParameterConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GlobalParameterConstraint.java
index c01802bc..ae1ea824 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GlobalParameterConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GlobalParameterConstraint.java
@@ -35,6 +35,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.ParameterException;
* The proper constraint test should be implemented in the method {@link #test()}.
* </p>
* @author Steffi Wanka
+ * @since 0.2
*
*/
public interface GlobalParameterConstraint {
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GlobalVectorListElementSizeConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GlobalVectorListElementSizeConstraint.java
index 79d67a2c..b162fc4a 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GlobalVectorListElementSizeConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GlobalVectorListElementSizeConstraint.java
@@ -23,24 +23,24 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling.constraints;
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-import de.lmu.ifi.dbs.elki.math.linearalgebra.Vector;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.ParameterException;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.WrongParameterValueException;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.IntParameter;
-import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.VectorListParameter;
+import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.DoubleArrayListParameter;
/**
* Global parameter constraint for testing if the dimensions of each vector
- * specified by a given vector list parameter ({@link VectorListParameter})
+ * specified by a given vector list parameter ({@link DoubleArrayListParameter})
* correspond to the value of a integer parameter ({@link IntParameter}) given.
*
* @author Steffi Wanka
+ * @since 0.2
*/
public class GlobalVectorListElementSizeConstraint implements GlobalParameterConstraint {
/**
* Vector list parameter.
*/
- private VectorListParameter vector;
+ private DoubleArrayListParameter vector;
/**
* Integer parameter providing the size constraint.
@@ -56,7 +56,7 @@ public class GlobalVectorListElementSizeConstraint implements GlobalParameterCon
* @param vector the vector list parameter
* @param sizeConstraint the integer parameter providing the size constraint
*/
- public GlobalVectorListElementSizeConstraint(VectorListParameter vector, IntParameter sizeConstraint) {
+ public GlobalVectorListElementSizeConstraint(DoubleArrayListParameter vector, IntParameter sizeConstraint) {
this.vector = vector;
this.size = sizeConstraint;
}
@@ -73,9 +73,12 @@ public class GlobalVectorListElementSizeConstraint implements GlobalParameterCon
return;
}
- for(Vector vec : vector.getValue()) {
- if(vec.getDimensionality() != size.intValue()) {
- throw new WrongParameterValueException("Global Parameter Constraint Error.\n" + "The vectors of vector list parameter " + vector.getName() + " have not the required dimension of " + size.getValue() + " given by integer parameter " + size.getName() + ".");
+ for(double[] vec : vector.getValue()) {
+ if(vec.length != size.intValue()) {
+ throw new WrongParameterValueException("Global Parameter Constraint Error.\n" //
+ + "The vectors of vector list parameter " + vector.getName() //
+ + " have not the required dimension of " + size.getValue() //
+ + " given by integer parameter " + size.getName() + ".");
}
}
}
@@ -84,4 +87,4 @@ public class GlobalVectorListElementSizeConstraint implements GlobalParameterCon
public String getDescription() {
return "The dimensionality of the vectors of vector list parameter " + vector.getName() + " must have the value of integer parameter " + size.getName();
}
-} \ No newline at end of file
+}
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GreaterConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GreaterConstraint.java
index 002ff4f3..b9e445d1 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GreaterConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GreaterConstraint.java
@@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.NumberParameter;
* constraint value.
*
* @author Steffi Wanka
+ * @since 0.2
*/
public class GreaterConstraint extends AbstractNumberConstraint<Number> {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GreaterEqualConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GreaterEqualConstraint.java
index fab416d4..a8791f97 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GreaterEqualConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/GreaterEqualConstraint.java
@@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.NumberParameter;
* than the specified constraint value.
*
* @author Steffi Wanka
+ * @since 0.2
*/
public class GreaterEqualConstraint extends AbstractNumberConstraint<Number> {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessConstraint.java
index c63fa1ea..c2b73d1d 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessConstraint.java
@@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.NumberParameter;
* constraint value.
*
* @author Steffi Wanka
+ * @since 0.2
*/
public class LessConstraint extends AbstractNumberConstraint<Number> {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessEqualConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessEqualConstraint.java
index 8aef29b4..a8c210d4 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessEqualConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessEqualConstraint.java
@@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.NumberParameter;
* the specified constraint value.
*
* @author Steffi Wanka
+ * @since 0.2
*/
public class LessEqualConstraint extends AbstractNumberConstraint<Number> {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessEqualGlobalConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessEqualGlobalConstraint.java
index c3f4ef09..10f12988 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessEqualGlobalConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessEqualGlobalConstraint.java
@@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.NumberParameter;
* the value of the second number parameter ({@link NumberParameter}).
*
* @author Steffi Wanka
+ * @since 0.2
* @param <T> Number type
*/
public class LessEqualGlobalConstraint<T extends Number> implements GlobalParameterConstraint {
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessGlobalConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessGlobalConstraint.java
index 0ab9fbae..57b9d473 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessGlobalConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/LessGlobalConstraint.java
@@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.NumberParameter;
* value of the second number parameter ({@link NumberParameter}) given.
*
* @author Steffi Wanka
+ * @since 0.2
* @param <T> Number type
*/
public class LessGlobalConstraint<T extends Number> implements GlobalParameterConstraint {
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ListEachConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ListEachConstraint.java
index 764b1773..ff1aba69 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ListEachConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ListEachConstraint.java
@@ -32,6 +32,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.ParameterException;
* Applies constraints to all elements of a list.
*
* @author Erich Schubert
+ * @since 0.5.5
*
* @apiviz.composedOf ParameterConstraint oneway 1 n
*/
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ListParameterNoDuplicateValueConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ListParameterNoDuplicateValueConstraint.java
index e0dfe3e1..f5c052b6 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ListParameterNoDuplicateValueConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ListParameterNoDuplicateValueConstraint.java
@@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.WrongParameterValueException
* is not allowed to have duplicate values.
*
* @author Arthur Zimek
+ * @since 0.5.5
*/
public class ListParameterNoDuplicateValueConstraint<T extends Object> implements ParameterConstraint<List<T>> {
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ListSizeConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ListSizeConstraint.java
index 0969ac06..c9f273de 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ListSizeConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ListSizeConstraint.java
@@ -37,6 +37,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ListParameter;
* FIXME: Unfortunately, we cannot have good type safety anymore right now.
*
* @author Steffi Wanka
+ * @since 0.2
*
* @apiviz.uses
* de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ListParameter
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/NoDuplicateValueGlobalConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/NoDuplicateValueGlobalConstraint.java
index 4efd6118..55ea5363 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/NoDuplicateValueGlobalConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/NoDuplicateValueGlobalConstraint.java
@@ -40,6 +40,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
* parameters ({@link NumberParameter}) are not allowed to have the same value.
*
* @author Steffi Wanka
+ * @since 0.2
*/
public class NoDuplicateValueGlobalConstraint implements GlobalParameterConstraint {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/OneMustBeSetGlobalConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/OneMustBeSetGlobalConstraint.java
index af35e3e9..9ed325f4 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/OneMustBeSetGlobalConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/OneMustBeSetGlobalConstraint.java
@@ -37,6 +37,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
* set.
*
* @author Steffi Wanka
+ * @since 0.2
*/
public class OneMustBeSetGlobalConstraint implements GlobalParameterConstraint {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/OnlyOneIsAllowedToBeSetGlobalConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/OnlyOneIsAllowedToBeSetGlobalConstraint.java
index c37a05f2..58c69dd9 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/OnlyOneIsAllowedToBeSetGlobalConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/OnlyOneIsAllowedToBeSetGlobalConstraint.java
@@ -38,6 +38,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
* parameters ({@link Parameter}) is allowed to be set.
*
* @author Steffi Wanka
+ * @since 0.2
*/
public class OnlyOneIsAllowedToBeSetGlobalConstraint implements GlobalParameterConstraint {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ParameterConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ParameterConstraint.java
index 99009941..9061533b 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ParameterConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ParameterConstraint.java
@@ -37,6 +37,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.ParameterException;
* </p>
*
* @author Steffi Wanka
+ * @since 0.2
* @param <T> the type of the parameter the constraint applies to
*/
public interface ParameterConstraint<T> {
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ParameterFlagGlobalConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ParameterFlagGlobalConstraint.java
index 03e4b9e1..3de8ecb2 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ParameterFlagGlobalConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/ParameterFlagGlobalConstraint.java
@@ -38,6 +38,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
* not.
*
* @author Steffi Wanka
+ * @since 0.2
*
* @apiviz.uses de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Flag
* @apiviz.uses
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/StringLengthConstraint.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/StringLengthConstraint.java
index 50417b21..7a6acd32 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/StringLengthConstraint.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/constraints/StringLengthConstraint.java
@@ -32,6 +32,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.WrongParameterValueException
* .
*
* @author Erich Schubert
+ * @since 0.4.0
*
* @apiviz.uses de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.StringParameter
*/
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/AbstractParameterization.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/AbstractParameterization.java
index 4980af5f..67180790 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/AbstractParameterization.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/AbstractParameterization.java
@@ -39,6 +39,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
* Abstract class with shared code for parameterization handling.
*
* @author Erich Schubert
+ * @since 0.3
*/
public abstract class AbstractParameterization implements Parameterization {
// TODO: refactor "tryInstantiate" even in a higher class?
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ChainedParameterization.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ChainedParameterization.java
index 98cfa5a9..f4f8ca3c 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ChainedParameterization.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ChainedParameterization.java
@@ -39,6 +39,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
* for examples.
*
* @author Erich Schubert
+ * @since 0.3
*/
public class ChainedParameterization extends AbstractParameterization {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/EmptyParameterization.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/EmptyParameterization.java
index fe1de0be..c89a1420 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/EmptyParameterization.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/EmptyParameterization.java
@@ -29,6 +29,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
* Parameterization handler that only allows the use of default values.
*
* @author Erich Schubert
+ * @since 0.3
*/
public class EmptyParameterization extends AbstractParameterization {
@Override
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ListParameterization.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ListParameterization.java
index c67533a6..542c98ef 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ListParameterization.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/ListParameterization.java
@@ -33,24 +33,25 @@ 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.parameters.Flag;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
-import de.lmu.ifi.dbs.elki.utilities.pairs.Pair;
/**
* Parameterization handler using a List and OptionIDs, for programmatic use.
*
* @author Erich Schubert
+ * @since 0.3
*/
public class ListParameterization extends AbstractParameterization {
/**
* The actual parameters, for storage
*/
- LinkedList<Pair<OptionID, Object>> parameters = new LinkedList<>();
+ List<ParameterPair> parameters;
/**
* Default constructor.
*/
public ListParameterization() {
super();
+ this.parameters = new LinkedList<>();
}
/**
@@ -58,10 +59,11 @@ public class ListParameterization extends AbstractParameterization {
*
* @param dbParameters existing parameter collection
*/
- public ListParameterization(Collection<Pair<OptionID, Object>> dbParameters) {
+ public ListParameterization(Collection<ParameterPair> dbParameters) {
this();
- for (Pair<OptionID, Object> pair : dbParameters) {
- addParameter(pair.first, pair.second);
+ this.parameters = new LinkedList<>();
+ for(ParameterPair pair : dbParameters) {
+ addParameter(pair.option, pair.value);
}
}
@@ -71,7 +73,7 @@ public class ListParameterization extends AbstractParameterization {
* @param optionid Option ID
*/
public void addFlag(OptionID optionid) {
- parameters.add(new Pair<OptionID, Object>(optionid, Flag.SET));
+ parameters.add(new ParameterPair(optionid, Flag.SET));
}
/**
@@ -81,7 +83,7 @@ public class ListParameterization extends AbstractParameterization {
* @param value Value
*/
public void addParameter(OptionID optionid, Object value) {
- parameters.add(new Pair<>(optionid, value));
+ parameters.add(new ParameterPair(optionid, value));
}
/**
@@ -90,7 +92,7 @@ public class ListParameterization extends AbstractParameterization {
* @param flag Flag to add, if set
*/
public void forwardOption(Flag flag) {
- if (flag.isDefined() && flag.getValue().booleanValue()) {
+ if(flag.isDefined() && flag.getValue().booleanValue()) {
addFlag(flag.getOptionID());
}
}
@@ -101,19 +103,19 @@ public class ListParameterization extends AbstractParameterization {
* @param param Parameter to add
*/
public void forwardOption(Parameter<?> param) {
- if (param.isDefined()) {
+ if(param.isDefined()) {
addParameter(param.getOptionID(), param.getValue());
}
}
@Override
public boolean setValueForOption(Parameter<?> opt) throws ParameterException {
- Iterator<Pair<OptionID, Object>> iter = parameters.iterator();
- while (iter.hasNext()) {
- Pair<OptionID, Object> pair = iter.next();
- if (pair.first == opt.getOptionID()) {
+ Iterator<ParameterPair> iter = parameters.iterator();
+ while(iter.hasNext()) {
+ ParameterPair pair = iter.next();
+ if(pair.option == opt.getOptionID()) {
iter.remove();
- opt.setValue(pair.second);
+ opt.setValue(pair.value);
return true;
}
}
@@ -125,7 +127,7 @@ public class ListParameterization extends AbstractParameterization {
*
* @return Unused parameters.
*/
- public List<Pair<OptionID, Object>> getRemainingParameters() {
+ public List<ParameterPair> getRemainingParameters() {
return parameters;
}
@@ -145,9 +147,9 @@ public class ListParameterization extends AbstractParameterization {
@Override
public String toString() {
StringBuilder buf = new StringBuilder();
- for (Pair<OptionID, Object> pair : parameters) {
- buf.append('-').append(pair.getFirst().toString()).append(' ');
- buf.append(pair.getSecond().toString()).append(' ');
+ for(ParameterPair pair : parameters) {
+ buf.append('-').append(pair.option.toString()).append(' ');
+ buf.append(pair.value.toString()).append(' ');
}
return buf.toString();
}
@@ -159,16 +161,53 @@ public class ListParameterization extends AbstractParameterization {
*/
public ArrayList<String> serialize() {
ArrayList<String> params = new ArrayList<>();
- for (Pair<OptionID, Object> pair : parameters) {
- params.add("-" + pair.getFirst().toString());
- if (pair.getSecond() instanceof String) {
- params.add((String) pair.getSecond());
- } else if (pair.getSecond() instanceof Class) {
- params.add(((Class<?>) pair.getSecond()).getCanonicalName());
- } else { // Fallback:
- params.add(pair.getSecond().toString());
+ for(ParameterPair pair : parameters) {
+ params.add("-" + pair.option.toString());
+ if(pair.value instanceof String) {
+ params.add((String) pair.value);
+ }
+ else if(pair.value instanceof Class) {
+ params.add(((Class<?>) pair.value).getCanonicalName());
+ }
+ else { // Fallback:
+ params.add(pair.value.toString());
}
}
return params;
}
+
+ /**
+ * Parameter pair, package-private.
+ *
+ * @author Erich Schubert
+ *
+ * @apiviz.exclude
+ */
+ static final class ParameterPair {
+ /**
+ * Option key.
+ */
+ public OptionID option;
+
+ /**
+ * Option value.
+ */
+ public Object value;
+
+ /**
+ * Constructor.
+ *
+ * @param key Option key
+ * @param value Option value
+ */
+ public ParameterPair(OptionID key, Object value) {
+ this.option = key;
+ this.value = value;
+ }
+
+ @Override
+ public String toString() {
+ return "-" + option.getName() + " " + value;
+ }
+ }
}
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/MergedParameterization.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/MergedParameterization.java
index 4faa3c60..926e660f 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/MergedParameterization.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/MergedParameterization.java
@@ -23,17 +23,16 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization;
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-import java.util.Collection;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
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.parameterization.ListParameterization.ParameterPair;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
-import de.lmu.ifi.dbs.elki.utilities.pairs.Pair;
/**
* This configuration can be "rewound" to allow the same values to be consumed
@@ -42,6 +41,7 @@ import de.lmu.ifi.dbs.elki.utilities.pairs.Pair;
* e.g. in visualization classes.
*
* @author Erich Schubert
+ * @since 0.3
*/
// TODO: Can we merge MergedParameterization and TrackParameters into one?
public class MergedParameterization implements Parameterization {
@@ -58,7 +58,7 @@ public class MergedParameterization implements Parameterization {
/**
* Parameters to rewind.
*/
- final private List<Pair<OptionID, Object>> used;
+ final private List<ParameterPair> used;
/**
* Constructor.
@@ -79,7 +79,7 @@ public class MergedParameterization implements Parameterization {
* @param current Current parameterization to re-used
* @param used Used parameters list.
*/
- private MergedParameterization(Parameterization inner, ListParameterization current, List<Pair<OptionID, Object>> used) {
+ private MergedParameterization(Parameterization inner, ListParameterization current, List<ParameterPair> used) {
super();
this.inner = inner;
this.current = current;
@@ -91,8 +91,8 @@ public class MergedParameterization implements Parameterization {
*/
public void rewind() {
synchronized(used) {
- for(Pair<OptionID, Object> pair : used) {
- current.addParameter(pair.first, pair.second);
+ for(ParameterPair pair : used) {
+ current.addParameter(pair.option, pair.value);
}
used.clear();
}
@@ -102,7 +102,7 @@ public class MergedParameterization implements Parameterization {
public boolean setValueForOption(Parameter<?> opt) throws ParameterException {
try {
if(current.setValueForOption(opt)) {
- used.add(new Pair<OptionID, Object>(opt.getOptionID(), opt.getValue()));
+ used.add(new ParameterPair(opt.getOptionID(), opt.getValue()));
return true;
}
}
@@ -110,10 +110,10 @@ public class MergedParameterization implements Parameterization {
current.reportError(e);
}
if(inner.setValueForOption(opt)) {
- used.add(new Pair<OptionID, Object>(opt.getOptionID(), opt.getValue()));
+ used.add(new ParameterPair(opt.getOptionID(), opt.getValue()));
return true;
}
- used.add(new Pair<OptionID, Object>(opt.getOptionID(), opt.getDefaultValue()));
+ used.add(new ParameterPair(opt.getOptionID(), opt.getDefaultValue()));
return false;
}
@@ -128,7 +128,7 @@ public class MergedParameterization implements Parameterization {
public Collection<ParameterException> getErrors() {
return current.getErrors();
}
-
+
@Override
public boolean hasErrors() {
return current.hasErrors();
@@ -142,11 +142,11 @@ public class MergedParameterization implements Parameterization {
@Override
public boolean grab(Parameter<?> opt) {
try {
- if (setValueForOption(opt)) {
+ if(setValueForOption(opt)) {
return true;
}
// Try default value instead.
- if (opt.tryDefaultValue()) {
+ if(opt.tryDefaultValue()) {
return true;
}
// No value available.
@@ -175,7 +175,7 @@ public class MergedParameterization 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;
}
}
@@ -186,7 +186,7 @@ public class MergedParameterization 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/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/Parameterization.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/Parameterization.java
index f165942e..29c22e27 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/Parameterization.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/Parameterization.java
@@ -40,6 +40,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
* @apiviz.uses ParameterException
*
* @author Erich Schubert
+ * @since 0.3
*/
public interface Parameterization {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/SerializedParameterization.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/SerializedParameterization.java
index b5ba3e58..2837983d 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/SerializedParameterization.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/SerializedParameterization.java
@@ -39,6 +39,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
* When building parameter lists, use {@link ListParameterization} where possible.
*
* @author Erich Schubert
+ * @since 0.3
*/
public class SerializedParameterization extends AbstractParameterization {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/TrackParameters.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/TrackParameters.java
index 5429ea8b..4b8ea073 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/TrackParameters.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/TrackParameters.java
@@ -42,6 +42,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
* All actual Parameterization operations are forwarded to the inner class.
*
* @author Erich Schubert
+ * @since 0.3
*
* @apiviz.composedOf TrackedParameter
*/
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/TrackedParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/TrackedParameter.java
index caa87440..e039f492 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/TrackedParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/TrackedParameter.java
@@ -28,6 +28,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
* Class containing an object, and the associated value.
*
* @author Erich Schubert
+ * @since 0.3
*/
public class TrackedParameter {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/UnParameterization.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/UnParameterization.java
index a1d58676..ea48655c 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/UnParameterization.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameterization/UnParameterization.java
@@ -40,6 +40,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter;
* in a non-recursive way.
*
* @author Erich Schubert
+ * @since 0.3
*/
public class UnParameterization implements Parameterization {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/AbstractParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/AbstractParameter.java
index d78d0dcc..17d17c6d 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/AbstractParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/AbstractParameter.java
@@ -44,6 +44,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.constraints.ParameterConstra
*
* @author Steffi Wanka
* @author Erich Schubert
+ * @since 0.3
*
* @apiviz.composedOf OptionID
* @apiviz.uses ParameterConstraint
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ClassListParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ClassListParameter.java
index d9d1a3a2..b0ce1bc7 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ClassListParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ClassListParameter.java
@@ -40,6 +40,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.Parameteriz
*
* @author Steffi Wanka
* @author Erich Schubert
+ * @since 0.3
*
* @apiviz.uses ELKIServiceRegistry
*
@@ -96,6 +97,23 @@ public class ClassListParameter<C> extends ListParameter<ClassListParameter<C>,
return buf.toString();
}
+ @Override
+ public String getDefaultValueAsString() {
+ StringBuilder buf = new StringBuilder();
+ final String defPackage = restrictionClass.getPackage().getName() + ".";
+ for(Class<? extends C> c : getDefaultValue()) {
+ if(buf.length() > 0) {
+ buf.append(LIST_SEP);
+ }
+ String name = c.getName();
+ if(name.startsWith(defPackage)) {
+ name = name.substring(defPackage.length());
+ }
+ buf.append(name);
+ }
+ return buf.toString();
+ }
+
@SuppressWarnings("unchecked")
@Override
protected List<Class<? extends C>> parseValue(Object obj) throws ParameterException {
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ClassParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ClassParameter.java
index 6f562838..39e0daae 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ClassParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ClassParameter.java
@@ -43,6 +43,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.Parameteriz
*
* @author Steffi Wanka
* @author Erich Schubert
+ * @since 0.2
*
* @apiviz.uses ELKIServiceRegistry
*
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/VectorListParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/DoubleArrayListParameter.java
index b6d999fb..696adbff 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/VectorListParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/DoubleArrayListParameter.java
@@ -3,7 +3,7 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2015
+ Copyright (C) 2016
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -23,12 +23,11 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters;
*/
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
-import de.lmu.ifi.dbs.elki.math.linearalgebra.Vector;
import de.lmu.ifi.dbs.elki.utilities.FormatUtil;
-import de.lmu.ifi.dbs.elki.utilities.datastructures.arraylike.DoubleArray;
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.WrongParameterValueException;
@@ -39,8 +38,9 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.constraints.ParameterConstra
*
* @author Steffi Wanka
* @author Erich Schubert
+ * @since 0.3
*/
-public class VectorListParameter extends ListParameter<VectorListParameter, List<Vector>> {
+public class DoubleArrayListParameter extends ListParameter<DoubleArrayListParameter, List<double[]>> {
/**
* Constructs a vector list parameter with the given name and description.
*
@@ -48,7 +48,7 @@ public class VectorListParameter extends ListParameter<VectorListParameter, List
* @param constraint Constraint
* @param defaultValue Default value
*/
- public VectorListParameter(OptionID optionID, ParameterConstraint<List<Vector>> constraint, List<Vector> defaultValue) {
+ public DoubleArrayListParameter(OptionID optionID, ParameterConstraint<List<double[]>> constraint, List<double[]> defaultValue) {
super(optionID, defaultValue);
addConstraint(constraint);
}
@@ -60,7 +60,7 @@ public class VectorListParameter extends ListParameter<VectorListParameter, List
* @param constraint Constraint
* @param optional Optional flag
*/
- public VectorListParameter(OptionID optionID, ParameterConstraint<List<Vector>> constraint, boolean optional) {
+ public DoubleArrayListParameter(OptionID optionID, ParameterConstraint<List<double[]>> constraint, boolean optional) {
super(optionID, optional);
addConstraint(constraint);
}
@@ -71,7 +71,7 @@ public class VectorListParameter extends ListParameter<VectorListParameter, List
* @param optionID Option ID
* @param constraint Constraint
*/
- public VectorListParameter(OptionID optionID, ParameterConstraint<List<Vector>> constraint) {
+ public DoubleArrayListParameter(OptionID optionID, ParameterConstraint<List<double[]>> constraint) {
super(optionID);
addConstraint(constraint);
}
@@ -82,11 +82,9 @@ public class VectorListParameter extends ListParameter<VectorListParameter, List
* @param optionID Option ID
* @param defaultValue Default value
*/
- // Indiscernible from optionID, constraints
- /*
- * public VectorListParameter(OptionID optionID, List<Vector> defaultValue) {
- * super(optionID, defaultValue); }
- */
+ public DoubleArrayListParameter(OptionID optionID, List<double[]> defaultValue) {
+ super(optionID, defaultValue);
+ }
/**
* Constructs a vector list parameter with the given name and description.
@@ -94,7 +92,7 @@ public class VectorListParameter extends ListParameter<VectorListParameter, List
* @param optionID Option ID
* @param optional Optional flag
*/
- public VectorListParameter(OptionID optionID, boolean optional) {
+ public DoubleArrayListParameter(OptionID optionID, boolean optional) {
super(optionID, optional);
}
@@ -103,17 +101,17 @@ public class VectorListParameter extends ListParameter<VectorListParameter, List
*
* @param optionID Option ID
*/
- public VectorListParameter(OptionID optionID) {
+ public DoubleArrayListParameter(OptionID optionID) {
super(optionID);
}
@Override
public String getValueAsString() {
StringBuilder buf = new StringBuilder();
- List<Vector> val = getValue();
- Iterator<Vector> valiter = val.iterator();
+ List<double[]> val = getValue();
+ Iterator<double[]> valiter = val.iterator();
while(valiter.hasNext()) {
- buf.append(FormatUtil.format(valiter.next().getArrayRef(), LIST_SEP));
+ buf.append(FormatUtil.format(valiter.next(), LIST_SEP));
// Append separation character
if(valiter.hasNext()) {
buf.append(VECTOR_SEP);
@@ -122,47 +120,47 @@ public class VectorListParameter extends ListParameter<VectorListParameter, List
return buf.toString();
}
- @SuppressWarnings("unchecked")
@Override
- protected List<Vector> parseValue(Object obj) throws ParameterException {
- try {
- List<?> l = List.class.cast(obj);
- // do extra validation:
- for(Object o : l) {
- List<?> v = List.class.cast(o);
- for(Object c : v) {
- if(!(c instanceof Double)) {
- throw new WrongParameterValueException("Wrong parameter format for parameter \"" + getName() + "\". Given list contains objects of different type!");
- }
- }
+ public String getDefaultValueAsString() {
+ StringBuilder buf = new StringBuilder();
+ List<double[]> val = getDefaultValue();
+ Iterator<double[]> valiter = val.iterator();
+ while(valiter.hasNext()) {
+ buf.append(FormatUtil.format(valiter.next(), LIST_SEP));
+ // Append separation character
+ if(valiter.hasNext()) {
+ buf.append(VECTOR_SEP);
}
- // TODO: can we use reflection to get extra checks?
- // TODO: Should we copy the list and vectors?
- return (List<Vector>) l;
- }
- catch(ClassCastException e) {
- // continue with other attempts.
}
+ return buf.toString();
+ }
+
+ @Override
+ protected List<double[]> parseValue(Object obj) throws ParameterException {
if(obj instanceof String) {
String[] vectors = VECTOR_SPLIT.split((String) obj);
if(vectors.length == 0) {
throw new WrongParameterValueException("Wrong parameter format! Given list of vectors for parameter \"" + getName() + "\" is empty!");
}
- ArrayList<Vector> vecs = new ArrayList<>();
+ ArrayList<double[]> vecs = new ArrayList<>();
- DoubleArray vectorCoord = new DoubleArray();
+ double[] buf = new double[11];
+ int used = 0;
for(String vector : vectors) {
- vectorCoord.clear();
+ used = 0;
String[] coordinates = SPLIT.split(vector);
for(String coordinate : coordinates) {
try {
- vectorCoord.add(FormatUtil.parseDouble(coordinate));
+ if(used == buf.length) {
+ buf = Arrays.copyOf(buf, buf.length << 1);
+ }
+ buf[used++] = FormatUtil.parseDouble(coordinate);
}
catch(NumberFormatException e) {
throw new WrongParameterValueException("Wrong parameter format! Coordinates of vector \"" + vector + "\" are not valid!");
}
}
- vecs.add(new Vector(vectorCoord.toArray()));
+ vecs.add(Arrays.copyOf(buf, used));
}
return vecs;
}
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/DoubleListParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/DoubleListParameter.java
index 074bb0ed..a9fe5471 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/DoubleListParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/DoubleListParameter.java
@@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.WrongParameterValueException
*
* @author Steffi Wanka
* @author Erich Schubert
+ * @since 0.3
*/
public class DoubleListParameter extends ListParameter<DoubleListParameter, double[]> {
/**
@@ -60,6 +61,11 @@ public class DoubleListParameter extends ListParameter<DoubleListParameter, doub
}
@Override
+ public String getDefaultValueAsString() {
+ return FormatUtil.format(getDefaultValue(), LIST_SEP);
+ }
+
+ @Override
protected double[] parseValue(Object obj) throws ParameterException {
if(obj instanceof double[]) {
return double[].class.cast(obj);
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/DoubleParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/DoubleParameter.java
index a28f8d38..ef7d4a88 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/DoubleParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/DoubleParameter.java
@@ -32,6 +32,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.WrongParameterValueException
*
* @author Steffi Wanka
* @author Erich Schubert
+ * @since 0.2
*/
public class DoubleParameter extends NumberParameter<DoubleParameter, Double> {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/EnumParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/EnumParameter.java
index 0cad6e11..d1fafa79 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/EnumParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/EnumParameter.java
@@ -60,6 +60,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.WrongParameterValueException
* </p>
*
* @author Florian Nuecke
+ * @since 0.4.0
*
* @param <E> Enum type
*/
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/FileListParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/FileListParameter.java
index e5f1b021..cc6d885f 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/FileListParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/FileListParameter.java
@@ -37,6 +37,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.WrongParameterValueException
*
* @author Steffi Wanka
* @author Erich Schubert
+ * @since 0.3
*/
public class FileListParameter extends ListParameter<FileListParameter, List<File>> {
/**
@@ -89,6 +90,20 @@ public class FileListParameter extends ListParameter<FileListParameter, List<Fil
return buf.toString();
}
+ @Override
+ public String getDefaultValueAsString() {
+ StringBuilder buf = new StringBuilder();
+ List<File> val = getDefaultValue();
+ Iterator<File> veciter = val.iterator();
+ while(veciter.hasNext()) {
+ buf.append(veciter.next());
+ if (veciter.hasNext()) {
+ buf.append(LIST_SEP);
+ }
+ }
+ return buf.toString();
+ }
+
@SuppressWarnings("unchecked")
@Override
protected List<File> parseValue(Object obj) throws ParameterException {
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/FileParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/FileParameter.java
index 0e865f2d..9571a018 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/FileParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/FileParameter.java
@@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.WrongParameterValueException
*
* @author Steffi Wanka
* @author Erich Schubert
+ * @since 0.3
*/
// TODO: turn FileType into a Constraint?
public class FileParameter extends AbstractParameter<FileParameter, File> {
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/Flag.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/Flag.java
index 8d83ed2c..d1e29eb7 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/Flag.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/Flag.java
@@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.WrongParameterValueException
*
* @author Steffi Wanka
* @author Erich Schubert
+ * @since 0.3
*/
public class Flag extends AbstractParameter<Flag, Boolean> {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/IntListParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/IntListParameter.java
index 756dbb90..59bfb3a5 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/IntListParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/IntListParameter.java
@@ -23,7 +23,6 @@ package de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters;
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-import de.lmu.ifi.dbs.elki.utilities.BitsUtil;
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.WrongParameterValueException;
@@ -33,6 +32,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.WrongParameterValueException
*
* @author Elke Achtert
* @author Erich Schubert
+ * @since 0.2
*/
public class IntListParameter extends ListParameter<IntListParameter, int[]> {
/**
@@ -70,6 +70,21 @@ public class IntListParameter extends ListParameter<IntListParameter, int[]> {
}
@Override
+ public String getDefaultValueAsString() {
+ int[] val = getDefaultValue();
+ if(val.length == 0) {
+ return "";
+ }
+ StringBuilder buf = new StringBuilder();
+ buf.append(val[0]);
+ for(int i = 1; i < val.length; i++) {
+ buf.append(LIST_SEP);
+ buf.append(val[i]);
+ }
+ return buf.toString();
+ }
+
+ @Override
protected int[] parseValue(Object obj) throws ParameterException {
if(obj instanceof int[]) {
return (int[]) obj;
@@ -95,7 +110,7 @@ public class IntListParameter extends ListParameter<IntListParameter, int[]> {
/**
* Returns a string representation of the parameter's type.
- *
+ *
* @return &quot;&lt;int_1,...,int_n&gt;&quot;
*/
@Override
@@ -105,7 +120,9 @@ public class IntListParameter extends ListParameter<IntListParameter, int[]> {
/**
* Get the values as a bitmask.
- *
+ *
+ * See also: {@link de.lmu.ifi.dbs.elki.utilities.BitsUtil}
+ *
* @return Bitmask
*/
public long[] getValueAsBitSet() {
@@ -114,9 +131,9 @@ public class IntListParameter extends ListParameter<IntListParameter, int[]> {
for(int d : value) {
maxd = (d > maxd) ? d : maxd;
}
- long[] dimensions = BitsUtil.zero(maxd);
+ long[] dimensions = new long[(maxd >>> 6) + 1];
for(int d : value) {
- BitsUtil.setI(dimensions, d);
+ dimensions[d >>> 6] |= 1L << (d & 0x3F);
}
return dimensions;
}
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/IntParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/IntParameter.java
index d6adf273..9ed15e95 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/IntParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/IntParameter.java
@@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.WrongParameterValueException
*
* @author Steffi Wanka
* @author Erich Schubert
+ * @since 0.3
*/
public class IntParameter extends NumberParameter<IntParameter, Integer> {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ListParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ListParameter.java
index 097475fb..82c4a46d 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ListParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ListParameter.java
@@ -32,6 +32,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.OptionID;
*
* @author Steffi Wanka
* @author Erich Schubert
+ * @since 0.2
*
* @param <THIS> Type self-reference
* @param <T> List type
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/LongParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/LongParameter.java
index 11aff3cb..f44f759d 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/LongParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/LongParameter.java
@@ -32,6 +32,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.WrongParameterValueException
*
* @author Steffi Wanka
* @author Erich Schubert
+ * @since 0.2
*/
public class LongParameter extends NumberParameter<LongParameter, Long> {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/NumberParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/NumberParameter.java
index c71db779..bb5c6864 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/NumberParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/NumberParameter.java
@@ -30,6 +30,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.OptionID;
*
* @author Steffi Wanka
* @author Erich Schubert
+ * @since 0.2
*
* @param <THIS> type self-reference
* @param <T> the type of a possible value (i.e., the type of the option)
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ObjectListParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ObjectListParameter.java
index baaa2765..d31c4117 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ObjectListParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ObjectListParameter.java
@@ -37,6 +37,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.Parameteriz
* Parameter that represents a list of objects (in contrast to a class list parameter, they will be instanced at most once.)
*
* @author Erich Schubert
+ * @since 0.3
*
* @param <C> Class type
*/
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ObjectParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ObjectParameter.java
index 40d5b49a..aa0e4a17 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ObjectParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ObjectParameter.java
@@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.Parameteriz
*
* @author Steffi Wanka
* @author Erich Schubert
+ * @since 0.3
* @param <C> Class type
*/
public class ObjectParameter<C> extends ClassParameter<C> {
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/Parameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/Parameter.java
index 9c2d7ea8..99751076 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/Parameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/Parameter.java
@@ -1,10 +1,5 @@
package de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters;
-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.UnspecifiedParameterException;
-import de.lmu.ifi.dbs.elki.utilities.optionhandling.constraints.ParameterConstraint;
-
/*
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
@@ -28,6 +23,11 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.constraints.ParameterConstra
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+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.UnspecifiedParameterException;
+import de.lmu.ifi.dbs.elki.utilities.optionhandling.constraints.ParameterConstraint;
+
/**
* Interface for the parameter of a class.
*
@@ -38,6 +38,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.constraints.ParameterConstra
*
* @author Steffi Wanka
* @author Erich Schubert
+ * @since 0.3
*
* @apiviz.composedOf OptionID
* @apiviz.uses ParameterConstraint
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/PatternParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/PatternParameter.java
index 3c010db6..f2160d53 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/PatternParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/PatternParameter.java
@@ -36,6 +36,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.WrongParameterValueException
*
* @author Steffi Wanka
* @author Erich Schubert
+ * @since 0.3
*/
public class PatternParameter extends AbstractParameter<PatternParameter, Pattern> {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/RandomParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/RandomParameter.java
index 0d5f3741..5e7d6c66 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/RandomParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/RandomParameter.java
@@ -32,6 +32,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.WrongParameterValueException
* Parameter for random generators and/or random seeds.
*
* @author Erich Schubert
+ * @since 0.5.5
*/
public class RandomParameter extends AbstractParameter<RandomParameter, RandomFactory> {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/StringParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/StringParameter.java
index 0f06beef..7882c9ee 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/StringParameter.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/StringParameter.java
@@ -33,6 +33,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.WrongParameterValueException
*
* @author Steffi Wanka
* @author Erich Schubert
+ * @since 0.3
*/
public class StringParameter extends AbstractParameter<StringParameter, String> {
/**