package DE;

/**
 * A set of parameters used to describe some model.  
 * Written by Chris Studholme
 * Licenced for redistribution under the GNU General Public Licence
 */
public interface ParameterSet {

    /* Create a copy of this parameter set.  Subsequent changes to the copy
     * via setValueAt() should not alter the original.
     * @return a new object that is a copy of this one
     */
    public ParameterSet getCopy();

    /* Get number of parameters in set.
     * @return number of parameters
     */
    public int size();

    /* Get a parameter.
     * @param index index of parameter
     * @return parameter
     */
    public Parameter get(int index);

    /* Set a parameter.
     * @param value new parameter
     * @param index index of parameter
     */
    public void set(Parameter value, int index);
}
