diff options
Diffstat (limited to 'elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling')
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 "<int_1,...,int_n>" */ @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> { /** |