Exemplo n.º 1
0
  protected Map<Locale, List<Serializable>> getMergedFieldValuesMap(
      Field newField,
      String[] newFieldsDisplayValues,
      Field existingField,
      String[] existingFieldsDisplayValues) {

    Set<Locale> availableLocales =
        getMergedAvailableLocales(
            newField.getAvailableLocales(), existingField.getAvailableLocales());

    for (Locale locale : availableLocales) {
      List<Serializable> newFieldValues = getFieldValues(newField, locale);

      List<Serializable> existingFieldValues = getFieldValues(existingField, locale);

      List<Serializable> defaultFieldValues = getFieldValues(newField, newField.getDefaultLocale());

      List<Serializable> mergedLocaleValues =
          getMergedFieldValues(
              newField.getName(),
              newFieldValues,
              newFieldsDisplayValues,
              existingFieldValues,
              existingFieldsDisplayValues,
              defaultFieldValues);

      existingField.setValues(locale, mergedLocaleValues);
    }

    return existingField.getValuesMap();
  }
Exemplo n.º 2
0
  protected void appendField(Element element, Field field) {
    Element dynamicElementElement = element.addElement("dynamic-element");

    dynamicElementElement.addAttribute(
        "default-language-id", LocaleUtil.toLanguageId(field.getDefaultLocale()));
    dynamicElementElement.addAttribute("name", field.getName());

    for (Locale locale : field.getAvailableLocales()) {
      List<Serializable> values = field.getValues(locale);

      for (Serializable value : values) {
        Element dynamicContentElement = dynamicElementElement.addElement("dynamic-content");

        dynamicContentElement.addAttribute("language-id", LocaleUtil.toLanguageId(locale));

        updateField(dynamicContentElement, value);
      }
    }
  }