code: public Parameters setDefaults(Parameters defaultParameters, boolean recursive) {
  		Parameters result = new Parameters();
  		if (recursive) {
  			RecursiveObjectWriter.copyProperties(result, defaultParameters);
  			RecursiveObjectWriter.copyProperties(result, this);
  		} else {
  			ObjectWriter.setProperties(result, defaultParameters);
  			ObjectWriter.setProperties(result, this);
  		}
  		return result;
  	}
docs: Set default values from specified Parameters and returns a new Parameters
  object.
  
  @param defaultParameters Parameters with default parameter values.
  @param recursive         (optional) true to perform deep copy, and false for
  shallow copy. Default: false
  @return a new Parameters object.