protected void checkDDMFormFieldParameterNames(
      List<DDMFormField> ddmFormFields,
      String parentDDMFormFieldParameterName,
      Set<String> ddmFormFieldParameterNames) {

    for (DDMFormField ddmFormField : ddmFormFields) {
      if (ddmFormField.isTransient()) {
        continue;
      }

      if (containsDDMFormFieldParameterName(ddmFormField, ddmFormFieldParameterNames)) {

        continue;
      }

      String defaultDDMFormFieldParameterName =
          createDefaultDDMFormFieldParameterName(ddmFormField, parentDDMFormFieldParameterName);

      ddmFormFieldParameterNames.add(defaultDDMFormFieldParameterName);
    }
  }
  protected DDMFormFieldValue createDDMFormFieldValue(
      HttpServletRequest httpServletRequest,
      String ddmFormFieldParameterName,
      Map<String, DDMFormField> ddmFormFieldsMap) {

    DDMFormFieldValue ddmFormFieldValue = new DDMFormFieldValue();

    String[] lastDDMFormFieldParameterNameParts =
        getLastDDMFormFieldParameterNameParts(ddmFormFieldParameterName);

    String fieldName = getFieldName(lastDDMFormFieldParameterNameParts);

    ddmFormFieldValue.setName(fieldName);
    ddmFormFieldValue.setInstanceId(getFieldInstanceId(lastDDMFormFieldParameterNameParts));

    DDMFormField ddmFormField = ddmFormFieldsMap.get(fieldName);

    if (ddmFormField.isTransient()) {
      return ddmFormFieldValue;
    }

    if (ddmFormField.isLocalizable()) {
      setDDMFormFieldValueLocalizedValue(
          httpServletRequest,
          ddmFormField.getType(),
          ddmFormFieldParameterName,
          ddmFormField.getPredefinedValue(),
          ddmFormFieldValue);
    } else {
      setDDMFormFieldValueUnlocalizedValue(
          httpServletRequest,
          ddmFormField.getType(),
          ddmFormFieldParameterName,
          ddmFormField.getPredefinedValue(),
          ddmFormFieldValue);
    }

    return ddmFormFieldValue;
  }