class NamedParamsDefault implements INamedParams {

  @Override
  public void copyParametersFrom( INamedParams aParam ) {
    if ( params != null && aParam != null ) {
      params.clear();
      String[] keys = aParam.listParameters();
      for ( int idx = 0; idx < keys.length; idx++ ) {
        String desc;
        try {
          desc = aParam.getParameterDescription( keys[ idx ] );
        } catch ( UnknownParamException e ) {
          desc = "";
        }
        String defValue;
        try {
          defValue = aParam.getParameterDefault( keys[ idx ] );
        } catch ( UnknownParamException e ) {
          defValue = "";
        }
        String value;
        try {
          value = aParam.getParameterValue( keys[ idx ] );
        } catch ( UnknownParamException e ) {
          value = "";
        }

        try {
          addParameterDefinition( keys[ idx ], defValue, desc );
        } catch ( DuplicateParamException e ) {
          // Do nothing, just overwrite.
        }
        setParameterValue( keys[ idx ], value );
      }
    }
  }

  public  NamedParamsDefault();

}