de.jstacs.parameters
Class ArrayParameterSet

java.lang.Object
  extended by de.jstacs.parameters.ParameterSet
      extended by de.jstacs.parameters.ExpandableParameterSet
          extended by de.jstacs.parameters.ArrayParameterSet
All Implemented Interfaces:
GalaxyConvertible, Storable, Cloneable
Direct Known Subclasses:
AlphabetContainerParameterSet.AlphabetArrayParameterSet

public class ArrayParameterSet
extends ExpandableParameterSet

Class for a ParameterSet that consists of a length-Parameter that defines the length of the array and an array of ParameterSetContainers of this length. Each ParameterSetContainer in the array holds a ParameterSet as defined by a template. The template is cloned in order to obtain the specified number of elements in the array. The class takes care of the consistency of the length-Parameter and the length of the array.

Author:
Jan Grau

Nested Class Summary
 
Nested classes/interfaces inherited from class de.jstacs.parameters.ParameterSet
ParameterSet.ParameterList
 
Field Summary
 
Fields inherited from class de.jstacs.parameters.ExpandableParameterSet
commentTemplate, nameTemplate, template
 
Fields inherited from class de.jstacs.parameters.ParameterSet
errorMessage, parameters, parent
 
Constructor Summary
ArrayParameterSet(ParameterSet template, String nameTemplate, String commentTemplate)
          Creates a new ArrayParameterSet from a Class that can be instantiated using this ArrayParameterSet and templates for the ParameterSet in each element of the array, the name and the comment that are displayed for the ParameterSetContainers enclosing the ParameterSets.
ArrayParameterSet(ParameterSet template, String nameTemplate, String commentTemplate, String lengthName, String lengthComment, NumberValidator<Integer> allowedLengths)
          Creates a new ArrayParameterSet from a Class that can be instantiated using this ArrayParameterSet and templates for the ParameterSet in each element of the array, the name and the comment that are displayed for the ParameterSetContainers enclosing the ParameterSets.
ArrayParameterSet(StringBuffer representation)
          The standard constructor for the interface Storable.
 
Method Summary
protected  void fromXML(StringBuffer representation)
          Parses the instance fields of a ParameterSet from the XML representation as returned by ParameterSet.toXML().
 int getNumberOfParameters()
          Returns the number of parameters in the ParameterSet.
 Parameter getParameterAt(int i)
          Returns the Parameter at position i.
 boolean hasDefaultOrIsSet()
          Returns true if all parameters in this ParameterSet are either set by the user or have default values.
 StringBuffer toXML()
          This method returns an XML representation as StringBuffer of an instance of the implementing class.
 
Methods inherited from class de.jstacs.parameters.ExpandableParameterSet
addParameterToSet, clone, fromGalaxy, parameterRemovable, removeParameterFromSet, replaceContentWith, toGalaxy
 
Methods inherited from class de.jstacs.parameters.ParameterSet
getAllParameterNames, getComment, getComment, getErrorMessage, getIndex, getName, getName, getParameterForName, getParent, initParameterList, initParameterList, isAtomic, isComparable, parametersLoaded, reset, setParent
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ArrayParameterSet

public ArrayParameterSet(ParameterSet template,
                         String nameTemplate,
                         String commentTemplate,
                         String lengthName,
                         String lengthComment,
                         NumberValidator<Integer> allowedLengths)
                  throws CloneNotSupportedException,
                         SimpleParameter.IllegalValueException
Creates a new ArrayParameterSet from a Class that can be instantiated using this ArrayParameterSet and templates for the ParameterSet in each element of the array, the name and the comment that are displayed for the ParameterSetContainers enclosing the ParameterSets.

Parameters:
template - the template of the ParameterSet
nameTemplate - the name-template
commentTemplate - the comment-template
lengthName - the name of the length-Parameter
lengthComment - the comment of the length-Parameter
allowedLengths - a NumberValidator to set a lower and upper bound on the number of elements in the array
Throws:
CloneNotSupportedException - if the templace could not be cloned
SimpleParameter.IllegalValueException - if the values of allowedLengths are not allowed values of the length parameter

ArrayParameterSet

public ArrayParameterSet(ParameterSet template,
                         String nameTemplate,
                         String commentTemplate)
                  throws SimpleParameter.IllegalValueException,
                         CloneNotSupportedException
Creates a new ArrayParameterSet from a Class that can be instantiated using this ArrayParameterSet and templates for the ParameterSet in each element of the array, the name and the comment that are displayed for the ParameterSetContainers enclosing the ParameterSets.

Parameters:
template - the template of the ParameterSet
nameTemplate - the name-template
commentTemplate - the comment-template
Throws:
CloneNotSupportedException - if the templace could not be cloned
SimpleParameter.IllegalValueException - if the values of allowedLengths are not allowed values of the length parameter

ArrayParameterSet

public ArrayParameterSet(StringBuffer representation)
                  throws NonParsableException
The standard constructor for the interface Storable. Creates a new ArrayParameterSet from its XML representation.

Parameters:
representation - the XML representation as StringBuffer
Throws:
NonParsableException - if the StringBuffer representation could not be parsed
Method Detail

getNumberOfParameters

public int getNumberOfParameters()
Description copied from class: ParameterSet
Returns the number of parameters in the ParameterSet.

Overrides:
getNumberOfParameters in class ParameterSet
Returns:
the number of parameters in the ParameterSet

getParameterAt

public Parameter getParameterAt(int i)
Description copied from class: ParameterSet
Returns the Parameter at position i.

Overrides:
getParameterAt in class ParameterSet
Parameters:
i - the position in the ParameterSet
Returns:
the Parameter at position i

hasDefaultOrIsSet

public boolean hasDefaultOrIsSet()
Description copied from class: ParameterSet
Returns true if all parameters in this ParameterSet are either set by the user or have default values. If any additional constraints are required on your parameters you should either specify some ParameterValidator on these parameters or implement these constraints by overriding this method in your implementation of ParameterSet. It is recommended to specify a useful remark which constraint failed in the member-variable errorMessage, which will be displayed to the user. In the overriding method super.ParameterSet.hasDefaultOrIsSet() should be called prior to checking specific constraints.

Overrides:
hasDefaultOrIsSet in class ParameterSet
Returns:
true if all parameters have some allowed value set, false otherwise

fromXML

protected void fromXML(StringBuffer representation)
                throws NonParsableException
Description copied from class: ParameterSet
Parses the instance fields of a ParameterSet from the XML representation as returned by ParameterSet.toXML().

Overrides:
fromXML in class ExpandableParameterSet
Parameters:
representation - the XML representation as StringBuffer
Throws:
NonParsableException - if the XML code could not be parsed
See Also:
ParameterSet.toXML()

toXML

public StringBuffer toXML()
Description copied from interface: Storable
This method returns an XML representation as StringBuffer of an instance of the implementing class.

Specified by:
toXML in interface Storable
Overrides:
toXML in class ExpandableParameterSet
Returns:
the XML representation