Example usage for com.liferay.portal.kernel.xml Element addElement

List of usage examples for com.liferay.portal.kernel.xml Element addElement

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.xml Element addElement.

Prototype

public Element addElement(QName qName);

Source Link

Usage

From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java

License:Open Source License

protected void updateContentDynamicElement(Element dynamicElementElement, DDMStructure ddmStructure,
        Fields ddmFields, String fieldName, DDMFieldsCounter ddmFieldsCounter) throws Exception {

    String fieldType = ddmStructure.getFieldType(fieldName);
    String indexType = ddmStructure.getFieldProperty(fieldName, "indexType");
    boolean multiple = GetterUtil.getBoolean(ddmStructure.getFieldProperty(fieldName, "multiple"));

    String type = _ddmTypesToJournalTypes.get(fieldType);

    if (type == null) {
        type = fieldType;//from w  w w  . j  a  va 2 s  . co  m
    }

    dynamicElementElement.addAttribute("type", type);

    dynamicElementElement.addAttribute("index-type", indexType);

    int count = ddmFieldsCounter.get(fieldName);

    String instanceId = getFieldInstanceId(ddmFields, fieldName, count);

    dynamicElementElement.addAttribute("instance-id", instanceId);

    Field ddmField = ddmFields.get(fieldName);

    if (!ddmStructure.isFieldTransient(fieldName) && (ddmField != null)) {
        for (Locale locale : ddmField.getAvailableLocales()) {
            Element dynamicContentElement = dynamicElementElement.addElement("dynamic-content");

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

            Serializable fieldValue = ddmField.getValue(locale, count);

            String valueString = String.valueOf(fieldValue);

            updateDynamicContentValue(dynamicContentElement, fieldType, multiple, valueString.trim());
        }
    }

    ddmFieldsCounter.incrementKey(fieldName);
}

From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java

License:Open Source License

protected void updateDynamicContentValue(Element dynamicContentElement, String fieldType, boolean multiple,
        String fieldValue) throws Exception {

    if (DDMFormFieldType.CHECKBOX.equals(fieldType)) {
        if (fieldValue.equals(Boolean.FALSE.toString())) {
            fieldValue = StringPool.BLANK;
        }//from w w w .  j  ava2s  .c  o m

        dynamicContentElement.addCDATA(fieldValue);
    } else if (DDMFormFieldType.LINK_TO_PAGE.equals(fieldType) && Validator.isNotNull(fieldValue)) {

        JSONObject jsonObject = JSONFactoryUtil.createJSONObject(fieldValue);

        long groupId = jsonObject.getLong("groupId");

        long layoutId = jsonObject.getLong("layoutId");

        boolean privateLayout = jsonObject.getBoolean("privateLayout");

        StringBundler sb = new StringBundler((groupId > 0) ? 5 : 3);

        sb.append(layoutId);
        sb.append(StringPool.AT);

        if (privateLayout) {
            Group group = _groupLocalService.fetchGroup(groupId);

            if (group == null) {
                sb.append("private");
            } else if (group.isUser()) {
                sb.append("private-user");
            } else {
                sb.append("private-group");
            }
        } else {
            sb.append("public");
        }

        if (groupId > 0) {
            sb.append(StringPool.AT);
            sb.append(groupId);
        }

        dynamicContentElement.addCDATA(sb.toString());
    } else if (DDMFormFieldType.SELECT.equals(fieldType) && Validator.isNotNull(fieldValue)) {

        JSONArray jsonArray = null;

        try {
            jsonArray = JSONFactoryUtil.createJSONArray(fieldValue);
        } catch (JSONException jsone) {
            return;
        }

        if (multiple) {
            for (int i = 0; i < jsonArray.length(); i++) {
                Element optionElement = dynamicContentElement.addElement("option");

                optionElement.addCDATA(jsonArray.getString(i));
            }
        } else {
            dynamicContentElement.addCDATA(jsonArray.getString(0));
        }
    } else {
        dynamicContentElement.addCDATA(fieldValue);
    }
}

From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java

License:Open Source License

protected void updateJournalXSDDynamicElement(Element element, String defaultLanguageId) {

    String name = element.attributeValue("name");
    String type = element.attributeValue("type");

    Element metadataElement = element.element("meta-data");

    if (metadataElement == null) {
        metadataElement = element.addElement("meta-data");
    }//from  w  w w .  java2  s  .c  o  m

    if (type.equals("multi-list")) {
        element.addAttribute("multiple", "true");
    } else {
        Element parentElement = element.getParent();

        String parentType = parentElement.attributeValue("type");

        if ((parentType != null) && parentType.equals("select")) {
            metadataElement.addAttribute("locale", defaultLanguageId);

            addMetadataEntry(metadataElement, "label", decodeURL(name));

            removeAttribute(element, "index-type");

            element.addAttribute("name",
                    "option" + parentElement.attributeValue("name") + StringUtil.randomString(8));
            element.addAttribute("type", "option");
            element.addAttribute("value", decodeURL(type));

            return;
        }
    }

    String indexType = StringPool.BLANK;

    Attribute indexTypeAttribute = element.attribute("index-type");

    if (indexTypeAttribute != null) {
        indexType = indexTypeAttribute.getValue();

        element.remove(indexTypeAttribute);
    }

    element.remove(element.attribute("type"));

    if (!type.equals("selection_break")) {
        String dataType = _ddmDataTypes.get(type);

        if (dataType == null) {
            dataType = "string";
        }

        element.addAttribute("dataType", dataType);
    }

    element.addAttribute("indexType", indexType);

    String required = "false";

    Element requiredElement = fetchMetadataEntry(metadataElement, "name", "required");

    if (requiredElement != null) {
        required = requiredElement.getText();
    }

    element.addAttribute("required", required);

    element.addAttribute("showLabel", "true");

    String newType = _journalTypesToDDMTypes.get(type);

    if (newType == null) {
        newType = type;
    }

    element.addAttribute("type", newType);

    if (newType.startsWith("ddm")) {
        element.addAttribute("fieldNamespace", "ddm");
    }

    metadataElement.addAttribute("locale", defaultLanguageId);

    List<Element> entryElements = metadataElement.elements();

    if (entryElements.isEmpty()) {
        addMetadataEntry(metadataElement, "label", name);
    } else {
        for (Element entryElement : entryElements) {
            String oldEntryName = entryElement.attributeValue("name");

            String newEntryName = _ddmMetadataAttributes.get(oldEntryName);

            if (newEntryName == null) {
                metadataElement.remove(entryElement);
            } else {
                entryElement.addAttribute("name", newEntryName);
            }
        }
    }

    if (newType.equals("ddm-date") || newType.equals("ddm-decimal") || newType.equals("ddm-integer")
            || newType.equals("ddm-link-to-page") || newType.equals("ddm-number")
            || newType.equals("ddm-text-html") || newType.equals("text") || newType.equals("textarea")) {

        element.addAttribute("width", "25");
    } else if (newType.equals("ddm-image")) {
        element.addAttribute("fieldNamespace", "ddm");
        element.addAttribute("readOnly", "false");
    }

    element.add(metadataElement.detach());

    List<Element> dynamicElementElements = element.elements("dynamic-element");

    for (Element dynamicElementElement : dynamicElementElements) {
        updateJournalXSDDynamicElement(dynamicElementElement, defaultLanguageId);
    }
}

From source file:com.liferay.journal.internal.util.JournalConverterImpl.java

License:Open Source License

@Override
public String getContent(DDMStructure ddmStructure, Fields ddmFields) throws Exception {

    Document document = SAXReaderUtil.createDocument();

    Element rootElement = document.addElement("root");

    String availableLocales = getAvailableLocales(ddmFields);

    rootElement.addAttribute("available-locales", availableLocales);

    Locale defaultLocale = ddmFields.getDefaultLocale();

    rootElement.addAttribute("default-locale", LocaleUtil.toLanguageId(defaultLocale));

    DDMFieldsCounter ddmFieldsCounter = new DDMFieldsCounter();

    for (String fieldName : ddmStructure.getRootFieldNames()) {
        int repetitions = countFieldRepetition(ddmFields, fieldName, null, -1);

        for (int i = 0; i < repetitions; i++) {
            Element dynamicElementElement = rootElement.addElement("dynamic-element");

            dynamicElementElement.addAttribute("name", fieldName);

            updateContentDynamicElement(dynamicElementElement, ddmStructure, ddmFields, ddmFieldsCounter);
        }/* w w w  . ja v  a2 s .c  om*/
    }

    try {
        return XMLUtil.formatXML(document.asXML());
    } catch (Exception e) {
        throw new ArticleContentException("Unable to read content with an XML parser", e);
    }
}

From source file:com.liferay.journal.lar.test.ManifestSummaryTest.java

License:Open Source License

@Override
protected void validateExport(PortletDataContext portletDataContext, StagedModel stagedModel,
        Map<String, List<StagedModel>> dependentStagedModelsMap) throws Exception {

    ManifestSummary manifestSummary = portletDataContext.getManifestSummary();

    Map<String, LongWrapper> modelAdditionCounters = manifestSummary.getModelAdditionCounters();

    Assert.assertEquals(4, modelAdditionCounters.size());

    Assert.assertEquals(1, manifestSummary
            .getModelAdditionCount(new StagedModelType(DDMStructure.class, JournalArticle.class)));
    Assert.assertEquals(1,//from   w  w w.j  a  v a 2s  .c  o m
            manifestSummary.getModelAdditionCount(new StagedModelType(DDMTemplate.class, DDMStructure.class)));
    Assert.assertEquals(1, manifestSummary.getModelAdditionCount(new StagedModelType(JournalArticle.class)));
    Assert.assertEquals(1, manifestSummary.getModelAdditionCount(new StagedModelType(JournalFolder.class)));

    Document document = SAXReaderUtil.createDocument();

    Element rootElement = document.addElement("root");

    Element headerElement = rootElement.addElement("header");

    DateFormat dateFormat = DateFormatFactoryUtil.getSimpleDateFormat(Time.RFC822_FORMAT);

    String rfc822DateString = Time.getRFC822();

    _exportDate = dateFormat.parse(rfc822DateString);

    headerElement.addAttribute("export-date", rfc822DateString);

    ExportImportHelperUtil.writeManifestSummary(document, manifestSummary);

    zipWriter.addEntry("/manifest.xml", document.asXML());
}

From source file:com.liferay.journal.test.util.JournalTestUtil.java

License:Open Source License

public static Element addMetadataElement(Element element, String locale, String label) {

    Element metadataElement = element.addElement("meta-data");

    metadataElement.addAttribute("locale", locale);

    Element entryElement = metadataElement.addElement("entry");

    entryElement.addAttribute("name", "label");

    entryElement.addCDATA(label);//  w  w w .j  a v  a  2 s.  co m

    return entryElement;
}

From source file:com.liferay.journal.transformer.test.JournalTransformerTest.java

License:Open Source License

@Test
public void testLocaleTransformerListenerNestedFieldWithNoTranslation() throws Exception {

    Map<String, String> tokens = getTokens();

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

    contents.put(LocaleUtil.US, "Joe Bloggs");

    String xml = DDMStructureTestUtil.getSampleStructuredContent(contents,
            LanguageUtil.getLanguageId(LocaleUtil.US));

    Document document = UnsecureSAXReaderUtil.read(xml);

    Element rootElement = document.getRootElement();

    Attribute availableLocalesAttribute = rootElement.attribute("available-locales");

    availableLocalesAttribute.setValue("en_US,pt_BR");

    Element dynamicElement = (Element) document.selectSingleNode("//dynamic-element");

    dynamicElement.addElement("nestedElement");

    String script = "$name.getData()";

    String content = JournalUtil.transform(null, tokens, Constants.VIEW, "en_US", document, null, script,
            TemplateConstants.LANG_TYPE_VM);

    Assert.assertEquals("Joe Bloggs", content);

    content = JournalUtil.transform(null, tokens, Constants.VIEW, "pt_BR", document, null, script,
            TemplateConstants.LANG_TYPE_VM);

    Assert.assertEquals("Joe Bloggs", content);
}

From source file:com.liferay.journal.util.impl.JournalConverterImpl.java

License:Open Source License

protected void updateDynamicContentValue(Element dynamicContentElement, String fieldType, boolean multiple,
        String fieldValue) throws Exception {

    if (DDMImpl.TYPE_CHECKBOX.equals(fieldType)) {
        if (fieldValue.equals(Boolean.FALSE.toString())) {
            fieldValue = StringPool.BLANK;
        }/*from   w  w w.  ja  v a 2 s.c o m*/

        dynamicContentElement.addCDATA(fieldValue);
    } else if (DDMImpl.TYPE_DDM_LINK_TO_PAGE.equals(fieldType) && Validator.isNotNull(fieldValue)) {

        JSONObject jsonObject = JSONFactoryUtil.createJSONObject(fieldValue);

        long groupId = jsonObject.getLong("groupId");

        long layoutId = jsonObject.getLong("layoutId");

        boolean privateLayout = jsonObject.getBoolean("privateLayout");

        StringBundler sb = new StringBundler((groupId > 0) ? 5 : 3);

        sb.append(layoutId);
        sb.append(StringPool.AT);

        if (privateLayout) {
            Group group = _groupLocalService.fetchGroup(groupId);

            if (group == null) {
                sb.append("private");
            } else if (group.isUser()) {
                sb.append("private-user");
            } else {
                sb.append("private-group");
            }
        } else {
            sb.append("public");
        }

        if (groupId > 0) {
            sb.append(StringPool.AT);
            sb.append(groupId);
        }

        dynamicContentElement.addCDATA(sb.toString());
    } else if (DDMImpl.TYPE_SELECT.equals(fieldType) && Validator.isNotNull(fieldValue)) {

        JSONArray jsonArray = null;

        try {
            jsonArray = JSONFactoryUtil.createJSONArray(fieldValue);
        } catch (JSONException jsone) {
            return;
        }

        if (multiple) {
            for (int i = 0; i < jsonArray.length(); i++) {
                Element optionElement = dynamicContentElement.addElement("option");

                optionElement.addCDATA(jsonArray.getString(i));
            }
        } else {
            dynamicContentElement.addCDATA(jsonArray.getString(0));
        }
    } else {
        dynamicContentElement.addCDATA(fieldValue);
    }
}

From source file:com.liferay.journal.util.impl.JournalUtil.java

License:Open Source License

public static void addReservedEl(Element rootElement, Map<String, String> tokens, String name, String value) {

    // XML/*from  w  w  w.  j av  a 2  s.c  o m*/

    if (rootElement != null) {
        Element dynamicElementElement = rootElement.addElement("dynamic-element");

        dynamicElementElement.addAttribute("name", name);

        dynamicElementElement.addAttribute("type", "text");

        Element dynamicContentElement = dynamicElementElement.addElement("dynamic-content");

        //dynamicContentElement.setText("<![CDATA[" + value + "]]>");
        dynamicContentElement.setText(value);
    }

    // Tokens

    tokens.put(StringUtil.replace(name, CharPool.DASH, CharPool.UNDERLINE), value);
}

From source file:com.liferay.knowledgebase.admin.lar.AdminPortletDataHandlerImpl.java

License:Open Source License

protected void exportKBArticle(PortletDataContext portletDataContext, Element rootElement, String path,
        KBArticle kbArticle) throws Exception {

    Element kbArticleElement = rootElement.addElement("kb-article");

    exportKBArticleVersions(portletDataContext, kbArticleElement, kbArticle.getResourcePrimKey());

    exportKBArticleAttachments(portletDataContext, rootElement, kbArticle);

    portletDataContext.addClassedModel(kbArticleElement, path, kbArticle, _NAMESPACE);
}