Class OutputExperiment

All Implemented Interfaces:
AssociateXMLUponLoad
Direct Known Subclasses:
InputOutputExperiment

public abstract class OutputExperiment extends Experiment
An Experiment that produces output files, as defined by a OutputManager.
Author:
Owen Feehan
  • Field Details

    • OUTPUT_EXECUTION_TIME

      public static final String OUTPUT_EXECUTION_TIME
      The name for the output that records the total execution-time of the experiment.
      See Also:
  • Constructor Details

    • OutputExperiment

      public OutputExperiment()
  • Method Details

    • executeExperiment

      public Optional<Path> executeExperiment(ExecutionArguments arguments) throws ExperimentExecutionException
      Executes the experiment for given arguments.
      Specified by:
      executeExperiment in class Experiment
      Parameters:
      arguments - additional run-time configuration/parameters that influences the experiment.
      Returns:
      the path files written into as output, if such a path exists.
      Throws:
      ExperimentExecutionException - if an error occurs executing the experiment.
    • useDetailedLogging

      public boolean useDetailedLogging()
      Description copied from class: Experiment
      Whether to log in more or less detail.

      It's appropriate to perform more detailed logging for a lengthier experiment, but something quick and simple is preferable for a short job, which may only be outputted to the console.

      Specified by:
      useDetailedLogging in class Experiment
      Returns:
      true iff detailed logging should be employed.
    • executeExperimentWithParameters

      protected abstract Optional<TaskStatistics> executeExperimentWithParameters(ParametersExperiment parameters) throws ExperimentExecutionException
      Executes the experiment for parameters.
      Parameters:
      parameters - a combination of run-time and bean-time specified elements used in the experiment.
      Returns:
      statistics of the tasks, if they exist.
      Throws:
      ExperimentExecutionException - if anything occurs stop the experiment finishing its execution
    • defaultOutputs

      protected abstract MultiLevelOutputEnabled defaultOutputs()
      If specified, default rules for determine which outputs are enabled or not.
      Returns:
      the default rules if they exist.
    • getOutput

      public OutputManager getOutput()
      The output-manager that specifies how/where/which elements occur duing outputting.
    • setOutput

      public void setOutput(OutputManager output)
      The output-manager that specifies how/where/which elements occur duing outputting.
    • getLogExperiment

      public LoggingDestination getLogExperiment()
      Where log messages that do not pertain to a specific job (input) appear.

      Note that in the case of a InputOutputExperiment an additional log will be created for each specific job.

    • setLogExperiment

      public void setLogExperiment(LoggingDestination logExperiment)
      Where log messages that do not pertain to a specific job (input) appear.

      Note that in the case of a InputOutputExperiment an additional log will be created for each specific job.

    • getExperimentIdentifier

      public ExperimentIdentifier getExperimentIdentifier()
      A name for the experiment.
    • setExperimentIdentifier

      public void setExperimentIdentifier(ExperimentIdentifier experimentIdentifier)
      A name for the experiment.
    • isForceDetailedLogging

      public boolean isForceDetailedLogging()
      Whether more detailed log-messages around each experiment occur.

      if true, then detailed messages around each experiment (name, time, start-stop events etc.) are ALWAYS displayed if false, these will sometimes be hidden (e.g. if the execution of each file is very quick)

    • setForceDetailedLogging

      public void setForceDetailedLogging(boolean forceDetailedLogging)
      Whether more detailed log-messages around each experiment occur.

      if true, then detailed messages around each experiment (name, time, start-stop events etc.) are ALWAYS displayed if false, these will sometimes be hidden (e.g. if the execution of each file is very quick)