This is an automated email from the ASF dual-hosted git repository. asf-gitbox-commits pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-statistics.git
commit 66a75ddecc889dcb85885a7b4ca04c8433618625 Author: Alex Herbert <[email protected]> AuthorDate: Fri Sep 18 20:35:41 2026 +0100 Fix picolli usage for the distribution application Output options that are a sub-class type must be declared in the command class so that picolli can create the correct instance to set arguments from the command line. Use of inheritance and chained constructors has been removed as this only works for default arguments. --- .../AbstractContinuousDistributionCommand.java | 19 +-------- .../AbstractDiscreteDistributionCommand.java | 19 +-------- .../examples/distribution/BetaCommand.java | 47 +++++++++++++-------- .../examples/distribution/BinomialCommand.java | 47 +++++++++++++-------- .../examples/distribution/CauchyCommand.java | 47 +++++++++++++-------- .../examples/distribution/ChiSquaredCommand.java | 47 +++++++++++++-------- .../examples/distribution/ExpCommand.java | 47 +++++++++++++-------- .../statistics/examples/distribution/FCommand.java | 47 +++++++++++++-------- .../examples/distribution/FoldedNormalCommand.java | 49 +++++++++++++--------- .../examples/distribution/GammaCommand.java | 47 +++++++++++++-------- .../examples/distribution/GeometricCommand.java | 47 +++++++++++++-------- .../examples/distribution/GumbelCommand.java | 47 +++++++++++++-------- .../distribution/HypergeometricCommand.java | 47 +++++++++++++-------- .../examples/distribution/LaplaceCommand.java | 47 +++++++++++++-------- .../examples/distribution/LevyCommand.java | 47 +++++++++++++-------- .../examples/distribution/LogNormalCommand.java | 47 +++++++++++++-------- .../examples/distribution/LogUniformCommand.java | 47 +++++++++++++-------- .../examples/distribution/LogisticCommand.java | 47 +++++++++++++-------- .../examples/distribution/NakagamiCommand.java | 47 +++++++++++++-------- .../examples/distribution/NormalCommand.java | 47 +++++++++++++-------- .../examples/distribution/ParetoCommand.java | 47 +++++++++++++-------- .../examples/distribution/PascalCommand.java | 47 +++++++++++++-------- .../examples/distribution/PoissonCommand.java | 47 +++++++++++++-------- .../statistics/examples/distribution/TCommand.java | 47 +++++++++++++-------- .../examples/distribution/TrapezoidalCommand.java | 47 +++++++++++++-------- .../examples/distribution/TriangularCommand.java | 47 +++++++++++++-------- .../distribution/TruncatedNormalCommand.java | 47 +++++++++++++-------- .../distribution/UniformContinuousCommand.java | 47 +++++++++++++-------- .../distribution/UniformDiscreteCommand.java | 47 +++++++++++++-------- .../examples/distribution/WeibullCommand.java | 47 +++++++++++++-------- .../examples/distribution/ZetaCommand.java | 47 +++++++++++++-------- .../examples/distribution/ZipfCommand.java | 48 ++++++++++++--------- 32 files changed, 875 insertions(+), 576 deletions(-) diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractContinuousDistributionCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractContinuousDistributionCommand.java index 3d9fbb89..e79ab7e4 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractContinuousDistributionCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractContinuousDistributionCommand.java @@ -19,7 +19,6 @@ package org.apache.commons.statistics.examples.distribution; import java.util.List; import java.util.concurrent.Callable; import org.apache.commons.statistics.distribution.ContinuousDistribution; -import picocli.CommandLine.ArgGroup; import picocli.CommandLine.Mixin; /** @@ -45,21 +44,9 @@ abstract class AbstractContinuousDistributionCommand implements Callable<Void> { @Mixin private StandardOptions standardOptions; - /** The distribution options. */ - @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) - private OutputOptions outputOptions; - - /** - * Create an instance. - * - * @param outputOptions the output options - */ - AbstractContinuousDistributionCommand(OutputOptions outputOptions) { - this.outputOptions = outputOptions; - } - @Override public Void call() { + final OutputOptions outputOptions = getOutputOptions(); final List<Distribution<ContinuousDistribution>> distributions = getDistributions(); // Set the function based on the class name final String name = getClass().getSimpleName(); @@ -113,7 +100,5 @@ abstract class AbstractContinuousDistributionCommand implements Callable<Void> { * * @return the output options */ - protected OutputOptions getOutputOptions() { - return outputOptions; - } + protected abstract OutputOptions getOutputOptions(); } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractDiscreteDistributionCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractDiscreteDistributionCommand.java index 9c1422b6..b4e77340 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractDiscreteDistributionCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractDiscreteDistributionCommand.java @@ -19,7 +19,6 @@ package org.apache.commons.statistics.examples.distribution; import java.util.List; import java.util.concurrent.Callable; import org.apache.commons.statistics.distribution.DiscreteDistribution; -import picocli.CommandLine.ArgGroup; import picocli.CommandLine.Mixin; /** @@ -45,21 +44,9 @@ abstract class AbstractDiscreteDistributionCommand implements Callable<Void> { @Mixin private StandardOptions standardOptions; - /** The distribution options. */ - @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) - private OutputOptions outputOptions; - - /** - * Create an instance. - * - * @param outputOptions the output options - */ - AbstractDiscreteDistributionCommand(OutputOptions outputOptions) { - this.outputOptions = outputOptions; - } - @Override public Void call() { + final OutputOptions outputOptions = getOutputOptions(); final List<Distribution<DiscreteDistribution>> distributions = getDistributions(); // Set the function based on the class name final String name = getClass().getSimpleName(); @@ -109,7 +96,5 @@ abstract class AbstractDiscreteDistributionCommand implements Callable<Void> { * * @return the output options */ - protected OutputOptions getOutputOptions() { - return outputOptions; - } + protected abstract OutputOptions getOutputOptions(); } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BetaCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BetaCommand.java index 5a31735a..1f4ab88e 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BetaCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BetaCommand.java @@ -64,15 +64,6 @@ class BetaCommand extends AbstractDistributionCommand { private double[] beta = {0.5, 1, 3, 2, 5}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { double[] alpha = params.alpha; @@ -94,17 +85,33 @@ class BetaCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(0, 1)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(0, 1); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -112,9 +119,13 @@ class BetaCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Beta distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BinomialCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BinomialCommand.java index 0c905083..e66918dc 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BinomialCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BinomialCommand.java @@ -65,15 +65,6 @@ class BinomialCommand extends AbstractDistributionCommand { private double[] p = {0.5, 0.7, 0.5}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<DiscreteDistribution>> getDistributions() { int[] trials = params.trials; @@ -95,17 +86,33 @@ class BinomialCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new DiscreteDistributionOptions(0, 40)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends DiscreteDistributionOptions { + /** Set defaults. */ + private Options() { + super(0, 40); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseDiscreteDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseDiscreteDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -113,9 +120,13 @@ class BinomialCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Binomial distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/CauchyCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/CauchyCommand.java index 91e586d4..25fe5c20 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/CauchyCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/CauchyCommand.java @@ -64,15 +64,6 @@ class CauchyCommand extends AbstractDistributionCommand { private double[] scale = {0.5, 1, 2, 1}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { double[] location = params.location; @@ -94,17 +85,33 @@ class CauchyCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(-5, 5)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(-5, 5); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -112,9 +119,13 @@ class CauchyCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Cauchy distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ChiSquaredCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ChiSquaredCommand.java index 965ca43f..7d7d8026 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ChiSquaredCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ChiSquaredCommand.java @@ -58,15 +58,6 @@ class ChiSquaredCommand extends AbstractDistributionCommand { private double[] df = {1, 2, 3, 4, 6, 9}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { // Create distributions @@ -81,17 +72,33 @@ class ChiSquaredCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(0, 8)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(0, 8); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -99,9 +106,13 @@ class ChiSquaredCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Chi-squared distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ExpCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ExpCommand.java index 75374750..8ed10bbf 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ExpCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ExpCommand.java @@ -57,15 +57,6 @@ class ExpCommand extends AbstractDistributionCommand { private double[] mean = {2, 1, 2.0 / 3}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { // Create distributions @@ -80,17 +71,33 @@ class ExpCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(0, 5)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(0, 5); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -98,9 +105,13 @@ class ExpCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Exponential distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FCommand.java index 8c29f5ef..d327628e 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FCommand.java @@ -64,15 +64,6 @@ class FCommand extends AbstractDistributionCommand { private double[] df2 = {1, 1, 2, 1, 100}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { double[] df1 = params.df1; @@ -94,17 +85,33 @@ class FCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(0, 5)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(0, 5); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -112,9 +119,13 @@ class FCommand extends AbstractDistributionCommand { @Command(name = "info", description = "F distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FoldedNormalCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FoldedNormalCommand.java index 76e752ba..80d2bba1 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FoldedNormalCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FoldedNormalCommand.java @@ -67,15 +67,6 @@ class FoldedNormalCommand extends AbstractDistributionCommand { private double[] sigma = {1, 2, 1, 1}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { double[] mean = params.mu; @@ -97,27 +88,47 @@ class FoldedNormalCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(0, 5)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(0, 5); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Information command. */ @Command(name = "info", - description = "Folded normal distribution information.") + description = "Zeta distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GammaCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GammaCommand.java index 0e73e0b8..59b0f516 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GammaCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GammaCommand.java @@ -65,15 +65,6 @@ class GammaCommand extends AbstractDistributionCommand { private double[] scale = {2, 2, 2, 1, 0.5, 1, 1}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { double[] shape = params.shape; @@ -95,17 +86,33 @@ class GammaCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(0, 20)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(0, 20); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -113,9 +120,13 @@ class GammaCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Gamme distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GeometricCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GeometricCommand.java index 6737db44..9bc4084d 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GeometricCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GeometricCommand.java @@ -58,15 +58,6 @@ class GeometricCommand extends AbstractDistributionCommand { private double[] p = {0.2, 0.5, 0.8}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<DiscreteDistribution>> getDistributions() { // Create distributions @@ -81,17 +72,33 @@ class GeometricCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new DiscreteDistributionOptions(0, 10)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends DiscreteDistributionOptions { + /** Set defaults. */ + private Options() { + super(0, 10); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseDiscreteDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseDiscreteDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -99,9 +106,13 @@ class GeometricCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Geometric distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GumbelCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GumbelCommand.java index 9054c7af..7edd35c3 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GumbelCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GumbelCommand.java @@ -64,15 +64,6 @@ class GumbelCommand extends AbstractDistributionCommand { private double[] beta = {2, 2, 3, 4}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { double[] location = params.mu; @@ -94,17 +85,33 @@ class GumbelCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(-5, 20)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(-5, 20); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -112,9 +119,13 @@ class GumbelCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Gumbel distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/HypergeometricCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/HypergeometricCommand.java index 1486fbf6..d6f255c2 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/HypergeometricCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/HypergeometricCommand.java @@ -74,15 +74,6 @@ class HypergeometricCommand extends AbstractDistributionCommand { private int[] n = {100, 200, 300}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<DiscreteDistribution>> getDistributions() { int[] popSize = params.popSize; @@ -106,17 +97,33 @@ class HypergeometricCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new DiscreteDistributionOptions(0, 60)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends DiscreteDistributionOptions { + /** Set defaults. */ + private Options() { + super(0, 60); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseDiscreteDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseDiscreteDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -124,9 +131,13 @@ class HypergeometricCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Hypergeometric distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LaplaceCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LaplaceCommand.java index d79c78cc..97731bc1 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LaplaceCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LaplaceCommand.java @@ -64,15 +64,6 @@ class LaplaceCommand extends AbstractDistributionCommand { private double[] beta = {1, 2, 4, 4}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { double[] location = params.mu; @@ -94,17 +85,33 @@ class LaplaceCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(-10, 10)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(-10, 10); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -112,9 +119,13 @@ class LaplaceCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Laplace distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LevyCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LevyCommand.java index 032d92ea..a2b3db57 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LevyCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LevyCommand.java @@ -64,15 +64,6 @@ class LevyCommand extends AbstractDistributionCommand { private double[] c = {0.5, 1, 2, 4, 8}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { double[] location = params.mu; @@ -94,17 +85,33 @@ class LevyCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(0, 3)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(0, 3); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -112,9 +119,13 @@ class LevyCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Levy distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogNormalCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogNormalCommand.java index 28c91f0b..e31656d0 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogNormalCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogNormalCommand.java @@ -65,15 +65,6 @@ class LogNormalCommand extends AbstractDistributionCommand { private double[] sigma = {0.125, 0.25, 0.5, 1, 1.5, 10}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { double[] mean = params.mu; @@ -95,17 +86,33 @@ class LogNormalCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(0, 3)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(0, 3); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -113,9 +120,13 @@ class LogNormalCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Log-normal distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogUniformCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogUniformCommand.java index 6b7dbcc6..fc44ee70 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogUniformCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogUniformCommand.java @@ -67,15 +67,6 @@ class LogUniformCommand extends AbstractDistributionCommand { private double[] upper = {4, 6}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { double[] lower = params.lower; @@ -97,17 +88,33 @@ class LogUniformCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(-5, 5)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(-5, 5); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -115,9 +122,13 @@ class LogUniformCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Log uniform distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogisticCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogisticCommand.java index 469c63a5..e857bafe 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogisticCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogisticCommand.java @@ -64,15 +64,6 @@ class LogisticCommand extends AbstractDistributionCommand { private double[] s = {2, 3, 4, 2, 1}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { double[] location = params.mu; @@ -94,17 +85,33 @@ class LogisticCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(-5, 20)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(-5, 20); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -112,9 +119,13 @@ class LogisticCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Logistic distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NakagamiCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NakagamiCommand.java index c1ac0a59..ef01f03a 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NakagamiCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NakagamiCommand.java @@ -64,15 +64,6 @@ class NakagamiCommand extends AbstractDistributionCommand { private double[] omega = {3, 3, 3, 0.5, 1}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { double[] shape = params.mu; @@ -94,17 +85,33 @@ class NakagamiCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(0, 4)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(0, 4); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -112,9 +119,13 @@ class NakagamiCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Nakagami distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NormalCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NormalCommand.java index 7b785340..3b5048e4 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NormalCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NormalCommand.java @@ -66,15 +66,6 @@ class NormalCommand extends AbstractDistributionCommand { private double[] sigma = {Math.sqrt(0.2), 1, Math.sqrt(5), Math.sqrt(0.5)}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { double[] mean = params.mu; @@ -96,17 +87,33 @@ class NormalCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(-5, 5)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(-5, 5); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -114,9 +121,13 @@ class NormalCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Normal distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ParetoCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ParetoCommand.java index 264133a1..d0fb0df0 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ParetoCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ParetoCommand.java @@ -65,15 +65,6 @@ class ParetoCommand extends AbstractDistributionCommand { private double[] shape = {3, 2, 1}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { double[] scale = params.scale; @@ -95,17 +86,33 @@ class ParetoCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(0, 5)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(0, 5); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -113,9 +120,13 @@ class ParetoCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Pareto distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PascalCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PascalCommand.java index a07234f8..8beb1c3c 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PascalCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PascalCommand.java @@ -68,15 +68,6 @@ class PascalCommand extends AbstractDistributionCommand { private double[] p = {1.0 / 11, 2.0 / 12, 3.0 / 13, 4.0 / 14, 5.0 / 15, 10.0 / 20, 20.0 / 30, 40.0 / 50}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<DiscreteDistribution>> getDistributions() { int[] r = params.r; @@ -98,17 +89,33 @@ class PascalCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new DiscreteDistributionOptions(0, 25)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends DiscreteDistributionOptions { + /** Set defaults. */ + private Options() { + super(0, 25); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseDiscreteDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseDiscreteDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -116,9 +123,13 @@ class PascalCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Pascal distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PoissonCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PoissonCommand.java index 12054773..00a81908 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PoissonCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PoissonCommand.java @@ -58,15 +58,6 @@ class PoissonCommand extends AbstractDistributionCommand { private double[] mean = {1, 4, 10}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<DiscreteDistribution>> getDistributions() { // Create distributions @@ -81,17 +72,33 @@ class PoissonCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new DiscreteDistributionOptions(0, 20)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends DiscreteDistributionOptions { + /** Set defaults. */ + private Options() { + super(0, 20); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseDiscreteDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseDiscreteDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -99,9 +106,13 @@ class PoissonCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Poisson distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TCommand.java index eb498376..dc096138 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TCommand.java @@ -57,15 +57,6 @@ class TCommand extends AbstractDistributionCommand { private double[] df = {1, 2, 5, 1e10}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { // Create distributions @@ -80,17 +71,33 @@ class TCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(-5, 5)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(-5, 5); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -98,9 +105,13 @@ class TCommand extends AbstractDistributionCommand { @Command(name = "info", description = "T distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TrapezoidalCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TrapezoidalCommand.java index f95b998b..34780978 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TrapezoidalCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TrapezoidalCommand.java @@ -83,15 +83,6 @@ class TrapezoidalCommand extends AbstractDistributionCommand { private double[] upper = {4, 3, 3}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { double[] a = params.lower; @@ -117,17 +108,33 @@ class TrapezoidalCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(-5, 5)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(-5, 5); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -135,9 +142,13 @@ class TrapezoidalCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Trapezoidal distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TriangularCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TriangularCommand.java index 1598e389..4a58f75d 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TriangularCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TriangularCommand.java @@ -75,15 +75,6 @@ class TriangularCommand extends AbstractDistributionCommand { private double[] upper = {4, 5}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { double[] lower = params.lower; @@ -107,17 +98,33 @@ class TriangularCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(-5, 5)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(-5, 5); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -125,9 +132,13 @@ class TriangularCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Triangular distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TruncatedNormalCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TruncatedNormalCommand.java index 58ecca91..1cbe434a 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TruncatedNormalCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TruncatedNormalCommand.java @@ -84,15 +84,6 @@ class TruncatedNormalCommand extends AbstractDistributionCommand { private double[] upper = {MAX}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { double[] mean = params.mu; @@ -119,17 +110,33 @@ class TruncatedNormalCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(MIN, MAX)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(MIN, MAX); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -137,9 +144,13 @@ class TruncatedNormalCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Truncated normal distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformContinuousCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformContinuousCommand.java index f7218faa..f5ff918a 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformContinuousCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformContinuousCommand.java @@ -67,15 +67,6 @@ class UniformContinuousCommand extends AbstractDistributionCommand { private double[] upper = {3, 5, 2}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { double[] lower = params.lower; @@ -97,17 +88,33 @@ class UniformContinuousCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(-5, 5)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(-5, 5); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -115,9 +122,13 @@ class UniformContinuousCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Continuous uniform distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformDiscreteCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformDiscreteCommand.java index c62ca21f..d164741a 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformDiscreteCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformDiscreteCommand.java @@ -66,15 +66,6 @@ class UniformDiscreteCommand extends AbstractDistributionCommand { private int[] upper = {5, 4}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<DiscreteDistribution>> getDistributions() { int[] lower = params.lower; @@ -96,17 +87,33 @@ class UniformDiscreteCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(-5, 5)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends DiscreteDistributionOptions { + /** Set defaults. */ + private Options() { + super(-5, 5); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseDiscreteDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -114,9 +121,13 @@ class UniformDiscreteCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Discrete uniform distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/WeibullCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/WeibullCommand.java index deef8086..734b5944 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/WeibullCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/WeibullCommand.java @@ -65,15 +65,6 @@ class WeibullCommand extends AbstractDistributionCommand { private double[] beta = {1}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<ContinuousDistribution>> getDistributions() { double[] alpha = params.alpha; @@ -95,17 +86,33 @@ class WeibullCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new ContinuousDistributionOptions(0, 2.5)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends ContinuousDistributionOptions { + /** Set defaults. */ + private Options() { + super(0, 2.5); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseContinuousDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseContinuousDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -113,9 +120,13 @@ class WeibullCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Weibull distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZetaCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZetaCommand.java index 53d91f58..fcf7fab0 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZetaCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZetaCommand.java @@ -57,15 +57,6 @@ class ZetaCommand extends AbstractDistributionCommand { private double[] e = {1.1, 2.1, 3.1}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<DiscreteDistribution>> getDistributions() { // Create distributions @@ -80,17 +71,33 @@ class ZetaCommand extends AbstractDistributionCommand { /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new DiscreteDistributionOptions(1, 10)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends DiscreteDistributionOptions { + /** Set defaults. */ + private Options() { + super(1, 10); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseDiscreteDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseDiscreteDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -98,9 +105,13 @@ class ZetaCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Zeta distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } } diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZipfCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZipfCommand.java index dc035905..a2d84efa 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZipfCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZipfCommand.java @@ -64,15 +64,6 @@ class ZipfCommand extends AbstractDistributionCommand { private double[] e = {1, 2, 3, 4}; } - /** - * Create an instance. - * - * @param outputOptions the output options - */ - BaseCommand(OutputOptions outputOptions) { - super(outputOptions); - } - @Override protected List<Distribution<DiscreteDistribution>> getDistributions() { int[] n = params.n; @@ -92,20 +83,35 @@ class ZipfCommand extends AbstractDistributionCommand { } } - /** Base command for the distribution that defines the parameters for probability functions. */ private abstract static class ProbabilityCommand extends BaseCommand { - /** Default constructor. */ - ProbabilityCommand() { - super(new DiscreteDistributionOptions(1, 10)); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private Options distributionOptions = new Options(); + + /** Extend the options to set the default values for this distribution. */ + static final class Options extends DiscreteDistributionOptions { + /** Set defaults. */ + private Options() { + super(1, 10); + } + } + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } /** Base command for the distribution that defines the parameters for inverse probability functions. */ private abstract static class InverseProbabilityCommand extends BaseCommand { - /** Default constructor. */ - InverseProbabilityCommand() { - super(new InverseDiscreteDistributionOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private InverseDiscreteDistributionOptions distributionOptions = new InverseDiscreteDistributionOptions(); + + @Override + protected DistributionOptions getOutputOptions() { + return distributionOptions; } } @@ -113,9 +119,13 @@ class ZipfCommand extends AbstractDistributionCommand { @Command(name = "info", description = "Zipf distribution information.") static class Info extends BaseCommand { - /** Default constructor. */ - Info() { - super(new OutputOptions()); + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private OutputOptions distributionOptions = new OutputOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; } }
