private boolean checkMandatoryParameters(
      Repository repositoryDocument,
      boolean propertyChanged,
      ArrayList<Property> newPropertyList,
      HashSet<String> configVariableNames) {
    /*
     * mandatory paramters, the ones from param that have not been covered yet.
     */
    // If there was no required parameters given by WPSconfig, host and port defaults will be added
    // (RServe_User and RServe_port won't be added)
    if (configVariableNames.contains(RWPSConfigVariables.RSERVE_HOST.toString().toLowerCase())) {
      Property host = repositoryDocument.addNewProperty();
      host.setActive(true);
      host.setName(RWPSConfigVariables.RSERVE_HOST.toString());
      host.setStringValue(R_Config.getInstance().rServeHost);
      newPropertyList.add(host);
      propertyChanged = true;
    }

    if (configVariableNames.contains(RWPSConfigVariables.RSERVE_PORT.toString().toLowerCase())) {
      Property port = repositoryDocument.addNewProperty();
      port.setActive(true);
      port.setName(RWPSConfigVariables.RSERVE_PORT.toString());
      port.setStringValue(Integer.toString(R_Config.getInstance().rServePort));
      newPropertyList.add(port);
      propertyChanged = true;
    }
    return propertyChanged;
  }
  /**
   * Retrieves configuration parameter from WPS config
   *
   * @param property
   * @return true
   */
  private boolean handleConfigVariable(Property property) {
    String pname = property.getName();
    // RWPSConfigVariables.v
    boolean success = false;
    for (RWPSConfigVariables configvariable : RWPSConfigVariables.values()) {
      if (pname.equalsIgnoreCase(configvariable.toString())) {
        R_Config.getInstance().setConfigVariable(configvariable, property.getStringValue());
        success = true;
        break;
      }
    }

    // TODO: Replace outdated variable assignments:

    if (pname.equalsIgnoreCase(RWPSConfigVariables.RSERVE_HOST.toString())) {
      R_Config.getInstance().rServeHost = property.getStringValue();
    } else if (pname.equalsIgnoreCase(RWPSConfigVariables.RSERVE_PORT.toString())) {
      try {
        R_Config.getInstance().rServePort = Integer.parseInt(property.getStringValue());
      } catch (NumberFormatException e) {
        LOGGER.error("Non numeric RServe_Port property found - it will be ignored and deleted");
        return false;
      }
    } else if (pname.equalsIgnoreCase(RWPSConfigVariables.RSERVE_USER.toString())) {
      R_Config.getInstance().rServeUser = property.getStringValue();
    } else if (pname.equalsIgnoreCase(RWPSConfigVariables.RSERVE_PASSWORD.toString())) {
      R_Config.getInstance().rServePassword = property.getStringValue();
    } else if (pname.equalsIgnoreCase(RWPSConfigVariables.SCRIPT_DIR.toString())
        && property.getActive()) {
      R_Config.getInstance().SCRIPT_DIR = property.getStringValue();
      LOGGER.info("Using script dir " + R_Config.getInstance().SCRIPT_DIR);
    } else if (pname.equalsIgnoreCase(RWPSConfigVariables.RESOURCE_DIR.toString())
        && property.getActive()) {
      R_Config.getInstance().resourceDirectory = property.getStringValue();
    } else if (pname.equalsIgnoreCase(RWPSConfigVariables.ENABLE_BATCH_START.toString())
        && property.getActive()) {
      R_Config.getInstance().enableBatchStart = Boolean.parseBoolean(property.getStringValue());
      LOGGER.info(
          "Trying batch start if R is not running: " + R_Config.getInstance().enableBatchStart);
    } // else
    // return false;

    return success;
  }