de.lmu.ifi.dbs.elki.application
Class AbstractApplication

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.application.AbstractApplication
All Implemented Interfaces:
InspectionUtilFrequentlyScanned, Parameterizable
Direct Known Subclasses:
CacheDoubleDistanceInOnDiskMatrix, CacheFloatDistanceInOnDiskMatrix, ComputeSingleColorHistogram, GeneratorXMLSpec, KDDCLIApplication, KNNExplorer

public abstract class AbstractApplication
extends Object
implements Parameterizable

AbstractApplication sets the values for flags verbose and help.

Any Wrapper class that makes use of these flags may extend this class. Beware to make correct use of parameter settings via optionHandler as commented with constructor and methods.


Nested Class Summary
static class AbstractApplication.Parameterizer
          Parameterization class.
 
Field Summary
static String INFORMATION
          Information for citation and version.
static OptionID INPUT_ID
          Parameter that specifies the name of the input file.
private static String NEWLINE
          The newline string according to system.
static OptionID OUTPUT_ID
          Parameter that specifies the name of the output file.
protected static Logging STATIC_LOGGER
          We need a static logger in this class, for code used in "main" methods.
private  boolean verbose
          Value of verbose flag.
 
Constructor Summary
AbstractApplication(boolean verbose)
          Constructor.
 
Method Summary
 boolean isVerbose()
          Returns whether verbose messages should be printed while executing the application.
private static void printDescription(Class<?> descriptionClass)
          Print the description for the given parameter
protected static void printErrorMessage(Exception e)
          Print an error message for the given error.
abstract  void run()
          Runs the application.
static void runCLIApplication(Class<?> cls, String[] args)
          Generic command line invocation.
static String usage(Collection<Pair<Object,Parameter<?,?>>> options)
          Returns a usage message, explaining all known options
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

STATIC_LOGGER

protected static Logging STATIC_LOGGER
We need a static logger in this class, for code used in "main" methods.


NEWLINE

private static final String NEWLINE
The newline string according to system.


INFORMATION

public static final String INFORMATION
Information for citation and version.


OUTPUT_ID

public static final OptionID OUTPUT_ID
Parameter that specifies the name of the output file.

Key: -app.out


INPUT_ID

public static final OptionID INPUT_ID
Parameter that specifies the name of the input file.

Key: -app.in


verbose

private boolean verbose
Value of verbose flag.

Constructor Detail

AbstractApplication

public AbstractApplication(boolean verbose)
Constructor.

Parameters:
verbose - Verbose flag.
Method Detail

isVerbose

public final boolean isVerbose()
Returns whether verbose messages should be printed while executing the application.

Returns:
whether verbose messages should be printed while executing the application

runCLIApplication

public static void runCLIApplication(Class<?> cls,
                                     String[] args)
Generic command line invocation. Refactored to have a central place for outermost exception handling.

Parameters:
cls - Application class to run.
args - the arguments to run this application with

usage

public static String usage(Collection<Pair<Object,Parameter<?,?>>> options)
Returns a usage message, explaining all known options

Parameters:
options - Options to show in usage.
Returns:
a usage message explaining all known options

printErrorMessage

protected static void printErrorMessage(Exception e)
Print an error message for the given error.

Parameters:
e - Error Exception.

printDescription

private static void printDescription(Class<?> descriptionClass)
Print the description for the given parameter


run

public abstract void run()
                  throws UnableToComplyException
Runs the application.

Throws:
UnableToComplyException - if an error occurs during running the application

Release 0.4.0 (2011-09-20_1324)