de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization
Class MergedParameterization

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.MergedParameterization
All Implemented Interfaces:
Parameterization

public class MergedParameterization
extends Object
implements Parameterization

This configuration can be "rewound" to allow the same values to be consumed multiple times, by different classes. This is used in best-effort parameterization when some instances might not apply given the actual data, e.g. in visualization classes.


Field Summary
private  ListParameterization current
          Parameters we used before, but have rewound
private  Parameterization inner
          The parameterization we get the new values from.
private  Vector<Pair<OptionID,Object>> used
          Parameters to rewind.
 
Constructor Summary
  MergedParameterization(Parameterization child)
          Constructor.
private MergedParameterization(Parameterization inner, ListParameterization current, Vector<Pair<OptionID,Object>> used)
          Constructor for descending
 
Method Summary
 boolean checkConstraint(GlobalParameterConstraint constraint)
          Check a parameter constraint.
 Parameterization descend(Object option)
          Descend parameterization tree into sub-option.
 Collection<ParameterException> getErrors()
          Get the configuration errors thrown in Parameterization.grab(de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter)
 boolean grab(Parameter<?,?> opt)
          Get the option value from the Parameterization.
 boolean hasErrors()
          Return true when there have been errors.
 boolean hasUnusedParameters()
          Check for unused parameters
 void reportError(ParameterException e)
          Report a configuration error.
 void rewind()
          Rewind the configuration to the initial situation
 boolean setValueForOption(Parameter<?,?> opt)
          Assign a value for an option, but not using default values and throwing exceptions on error.
<C> C
tryInstantiate(Class<C> c)
          Try to instantiate a particular class.
<C> C
tryInstantiate(Class<C> r, Class<?> c)
          Try to instantiate a particular class.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

inner

private final Parameterization inner
The parameterization we get the new values from.


current

private final ListParameterization current
Parameters we used before, but have rewound


used

private final Vector<Pair<OptionID,Object>> used
Parameters to rewind.

Constructor Detail

MergedParameterization

public MergedParameterization(Parameterization child)
Constructor.

Parameters:
child - Child parameterization to wrap.

MergedParameterization

private MergedParameterization(Parameterization inner,
                               ListParameterization current,
                               Vector<Pair<OptionID,Object>> used)
Constructor for descending

Parameters:
inner - Child parameterization to use.
current - Current parameterization to re-used
used - Used parameters list.
Method Detail

rewind

public void rewind()
Rewind the configuration to the initial situation


setValueForOption

public boolean setValueForOption(Parameter<?,?> opt)
                          throws ParameterException
Description copied from interface: Parameterization
Assign a value for an option, but not using default values and throwing exceptions on error.

Specified by:
setValueForOption in interface Parameterization
Parameters:
opt - Parameter to set
Returns:
Success code
Throws:
ParameterException - on assignment errors.

descend

public Parameterization descend(Object option)
Description copied from interface: Parameterization
Descend parameterization tree into sub-option. Note: this is done automatically by a ClassParameter.instantiateClass(de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.Parameterization). You only need to call this when you want to expose the tree structure without offering a class choice as parameter.

Specified by:
descend in interface Parameterization
Parameters:
option - Option subtree
Returns:
Parameterization

getErrors

public Collection<ParameterException> getErrors()
Description copied from interface: Parameterization
Get the configuration errors thrown in Parameterization.grab(de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter)

Specified by:
getErrors in interface Parameterization
Returns:
Configuration errors encountered

hasErrors

public boolean hasErrors()
Description copied from interface: Parameterization
Return true when there have been errors.

Specified by:
hasErrors in interface Parameterization
Returns:
Success code

reportError

public void reportError(ParameterException e)
Description copied from interface: Parameterization
Report a configuration error.

Specified by:
reportError in interface Parameterization
Parameters:
e - Destination to report errors to

grab

public boolean grab(Parameter<?,?> opt)
Description copied from interface: Parameterization
Get the option value from the Parameterization. Note: this method returns success; the actual value can be obtained from opt itself! In particular Parameterization.grab(de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.Parameter) can return true when Flag.getValue() returns false! Instead the semantics of grab are those of Parameter#isDefined(). This method will catch ParameterExceptions and store them to be retrieved by Parameterization.getErrors().

Specified by:
grab in interface Parameterization
Parameters:
opt - Option to add
Returns:
if the value is available (= readable)

hasUnusedParameters

public boolean hasUnusedParameters()
Description copied from interface: Parameterization
Check for unused parameters

Specified by:
hasUnusedParameters in interface Parameterization
Returns:
true if at least one parameter was not consumed

checkConstraint

public boolean checkConstraint(GlobalParameterConstraint constraint)
Description copied from interface: Parameterization
Check a parameter constraint.

Specified by:
checkConstraint in interface Parameterization
Parameters:
constraint - Parameter constraint
Returns:
test result

tryInstantiate

public <C> C tryInstantiate(Class<C> r,
                            Class<?> c)
Description copied from interface: Parameterization
Try to instantiate a particular class.

Specified by:
tryInstantiate in interface Parameterization
Type Parameters:
C - return type
Parameters:
r - Restriction class
c - Base class
Returns:
class instance or null

tryInstantiate

public <C> C tryInstantiate(Class<C> c)
Description copied from interface: Parameterization
Try to instantiate a particular class.

Specified by:
tryInstantiate in interface Parameterization
Type Parameters:
C - return type
Parameters:
c - Base class
Returns:
class instance or null

Release 0.4.0 (2011-09-20_1324)