/*! ****************************************************************************** * * Pentaho Data Integration * * Copyright (C) 2002-2013 by Pentaho : http://www.pentaho.com * ******************************************************************************* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ******************************************************************************/ package org.pentaho.di.core.parameters; /** * Interface to implement named parameters. * * @author Sven Boden */ public interface NamedParams { /** * Add a parameter definition to this set. * * TODO: default, throw exception * * @param key * Name of the parameter. * @param defValue * default value. * @param description * Description of the parameter. * * @throws DuplicateParamException * Upon duplicate parameter definitions */ void addParameterDefinition( String key, String defValue, String description ) throws DuplicateParamException; /** * Set the value of a parameter. * * @param key * key to set value of * @param value * value to set it to. * * @throws UnknownParamException * Parameter 'key' is unknown. */ void setParameterValue( String key, String value ) throws UnknownParamException; /** * Get the value of a parameter. * * @param key * Key to get value for. * * @return value of parameter key. * * @throws UnknownParamException * Parameter 'key' is unknown. */ String getParameterValue( String key ) throws UnknownParamException; /** * Get the description of a parameter. * * @param key * Key to get value for. * * @return description of parameter key. * * @throws UnknownParamException * Parameter 'key' is unknown. */ String getParameterDescription( String key ) throws UnknownParamException; /** * Get the default value of a parameter. * * @param key * Key to get value for. * * @return default value for parameter key. * * @throws UnknownParamException * Parameter 'key' is unknown. */ String getParameterDefault( String key ) throws UnknownParamException; /** * List the parameters. * * @return Array of parameters. */ String[] listParameters(); /** * Clear the values. */ void eraseParameters(); /** * Copy params to these named parameters (clearing out first). * * @param params * the parameters to copy from. */ void copyParametersFrom( NamedParams params ); /** * Activate the currently set parameters */ void activateParameters(); /** * Clear all parameters */ void clearParameters(); }