private String setupAddOrEditForOneList(
      String masterConstant, String configurationConstant, String listName, String addOrEdit)
      throws SystemException, ApplicationException {
    MasterPersistence masterPersistence = new MasterPersistence();
    CustomValueDto valueList = masterPersistence.getLookUpEntity(masterConstant, DEFAULT_LOCALE);
    Short valueListId = valueList.getEntityId();
    CustomValueListElementDto valueListElement = valueList.getCustomValueListElements().get(0);

    addRequestParameter(ConfigurationConstants.ENTITY, configurationConstant);
    addRequestParameter(ConfigurationConstants.ADD_OR_EDIT, addOrEdit);
    SessionUtils.setAttribute(configurationConstant, valueListId, request);

    String originalName = "";

    if (addOrEdit.equals(ADD)) {
      CustomValueListElementDto newValueListElement = new CustomValueListElementDto();
      newValueListElement.setLookupValue(NEW_ELEMENT_NAME);
      String[] changesList = {
        MifosValueList.mapAddedCustomValueListElementToString(newValueListElement)
      };
      addRequestParameter(listName, changesList);
    } else { // edit
      originalName = valueListElement.getLookUpValue();
      valueListElement.setLookupValue(UPDATE_NAME);
      String[] changesList = {
        MifosValueList.mapUpdatedCustomValueListElementToString(valueListElement)
      };
      addRequestParameter(listName, changesList);
    }

    return originalName;
  }