Ejemplo n.º 1
0
  @Override
  public void prepareLocalizedFieldsForImport(Locale defaultImportLocale) throws LocaleException {

    super.prepareLocalizedFieldsForImport(defaultImportLocale);

    Locale ddmStructureDefaultLocale = LocaleUtil.fromLanguageId(getDefaultLanguageId());

    try {
      setXsd(
          DDMXMLUtil.updateXMLDefaultLocale(
              getXsd(), ddmStructureDefaultLocale, defaultImportLocale));
    } catch (Exception e) {
      throw new LocaleException(e);
    }
  }
  protected void addDDMStructures(
      long userId, long groupId, long classNameId, String fileName, ServiceContext serviceContext)
      throws Exception {

    List<Element> structureElements = getDDMStructures(fileName);

    for (Element structureElement : structureElements) {
      boolean dynamicStructure =
          GetterUtil.getBoolean(structureElement.elementText("dynamic-structure"));

      if (dynamicStructure) {
        continue;
      }

      String name = structureElement.elementText("name");

      String description = structureElement.elementText("description");

      String ddmStructureKey = name;

      DDMStructure ddmStructure =
          DDMStructureLocalServiceUtil.fetchStructure(groupId, ddmStructureKey);

      if (ddmStructure != null) {
        continue;
      }

      Element structureElementRootElement = structureElement.element("root");

      String xsd = structureElementRootElement.asXML();

      Map<Locale, String> nameMap = new HashMap<Locale, String>();

      nameMap.put(LocaleUtil.getDefault(), name);

      Map<Locale, String> descriptionMap = new HashMap<Locale, String>();

      descriptionMap.put(LocaleUtil.getDefault(), description);

      Attribute defaultLocaleAttribute = structureElementRootElement.attribute("default-locale");

      Locale ddmStructureDefaultLocale =
          LocaleUtil.fromLanguageId(defaultLocaleAttribute.getValue());

      xsd =
          DDMXMLUtil.updateXMLDefaultLocale(
              xsd, ddmStructureDefaultLocale, LocaleUtil.getDefault());

      DDMStructureLocalServiceUtil.addStructure(
          userId,
          groupId,
          classNameId,
          ddmStructureKey,
          nameMap,
          descriptionMap,
          xsd,
          "xml",
          DDMStructureConstants.TYPE_DEFAULT,
          serviceContext);
    }
  }