|
|
|||||||||||||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.lmu.ifi.dbs.elki.logging.AbstractLoggable
de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizable
de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm<O>
O
- the type of DatabaseObjects handled by this Algorithmpublic abstract class AbstractAlgorithm<O extends DatabaseObject>
AbstractAlgorithm sets the values for flags verbose and time.
This class serves also as a model of implementing an algorithm within this framework. Any Algorithm 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.
Field Summary | |
---|---|
private boolean |
time
Holds the value of TIME_FLAG . |
private Flag |
TIME_FLAG
Flag to request output of performance time. |
private boolean |
verbose
Holds the value of VERBOSE_FLAG . |
private Flag |
VERBOSE_FLAG
Flag to allow verbose messages while performing the algorithm. |
Fields inherited from class de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizable |
---|
optionHandler |
Fields inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable |
---|
debug |
Constructor Summary | |
---|---|
protected |
AbstractAlgorithm()
Adds the flags VERBOSE_FLAG and TIME_FLAG to the option handler. |
Method Summary | |
---|---|
String |
description()
Returns a description of the class and the required parameters. |
boolean |
isTime()
Returns whether the performance time of the algorithm should be assessed. |
boolean |
isVerbose()
Returns whether verbose messages should be printed while executing the algorithm. |
void |
run(Database<O> database)
Calls the runInTime()-method of extending classes. |
protected abstract void |
runInTime(Database<O> database)
The run method encapsulated in measure of runtime. |
String[] |
setParameters(String[] args)
Grabs all specified options from the option handler and sets the values for the flags VERBOSE_FLAG and TIME_FLAG . |
void |
setTime(boolean time)
Sets whether whether the time should be assessed while executing the algorithm. |
void |
setVerbose(boolean verbose)
Sets whether verbose messages should be printed while executing the algorithm. |
Methods inherited from class de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizable |
---|
addOption, checkGlobalParameterConstraints, deleteOption, description, description, getAttributeSettings, getParameters, getParameterValue, getPossibleOptions, inlineDescription, isSet, setParameters |
Methods inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable |
---|
debugFine, debugFiner, debugFinest, exception, message, progress, progress, progress, verbose, verbose, warning |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface de.lmu.ifi.dbs.elki.algorithm.Algorithm |
---|
getDescription, getResult |
Methods inherited from interface de.lmu.ifi.dbs.elki.utilities.optionhandling.Parameterizable |
---|
checkGlobalParameterConstraints, getAttributeSettings, getParameters, getPossibleOptions, inlineDescription |
Field Detail |
---|
private final Flag VERBOSE_FLAG
Key: -verbose
private boolean verbose
VERBOSE_FLAG
.
private final Flag TIME_FLAG
Key: -time
private boolean time
TIME_FLAG
.
Constructor Detail |
---|
protected AbstractAlgorithm()
VERBOSE_FLAG
and TIME_FLAG
to the option handler. Any extending
class should call this constructor, then add further parameters.
Subclasses can add further parameters using
AbstractParameterizable.addOption(de.lmu.ifi.dbs.elki.utilities.optionhandling.Option)
Method Detail |
---|
public String description()
Parameterizable
description
in interface Parameterizable
description
in class AbstractParameterizable
Parameterizable.description()
public String[] setParameters(String[] args) throws ParameterException
VERBOSE_FLAG
and TIME_FLAG
.
Any extending class should
call this method first and return the returned array without further
changes, but after setting further required parameters. An example for
overwritting this method taking advantage from the previously (in
superclasses) defined options would be:
{ String[] remainingParameters = super.setParameters(args); // set parameters for your class // for example like this: if(isSet(MY_PARAM_VALUE_PARAM)) { myParamValue = getParameterValue(MY_PARAM_VALUE_PARAM); } . . . return remainingParameters; // or in case of attributes requesting parameters themselves // return parameterizableAttribbute.setParameters(remainingParameters); }
setParameters
in interface Parameterizable
setParameters
in class AbstractParameterizable
args
- parameters to set the attributes accordingly to
ParameterException
- in case of wrong parameter-settingParameterizable.setParameters(String[])
public boolean isTime()
public boolean isVerbose()
public void setVerbose(boolean verbose)
Algorithm
setVerbose
in interface Algorithm<O extends DatabaseObject>
verbose
- the flag to allow verbose messages while performing the algorithmAlgorithm.setVerbose(boolean)
public void setTime(boolean time)
Algorithm
setTime
in interface Algorithm<O extends DatabaseObject>
time
- the flag to request output of performance timeAlgorithm.setTime(boolean)
public final void run(Database<O> database) throws IllegalStateException
run
in interface Algorithm<O extends DatabaseObject>
database
- the database to run the algorithm on
IllegalStateException
- if the algorithm has not been initialized
properly (e.g. the setParameters(String[]) method has been failed
to be called).Algorithm.run(de.lmu.ifi.dbs.elki.database.Database)
protected abstract void runInTime(Database<O> database) throws IllegalStateException
database
- the database to run the algorithm on
IllegalStateException
- if the algorithm has not been initialized
properly (e.g. the setParameters(String[]) method has been failed
to be called).
|
|
||||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |