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

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

Introduction

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

Prototype

public Element addCDATA(String cdata);

Source Link

Usage

From source file:com.liferay.journal.internal.exportimport.content.processor.ImageImportDDMFormFieldValueTransformer.java

License:Open Source License

@Override
public void transform(DDMFormFieldValue ddmFormFieldValue) throws PortalException {

    Value value = ddmFormFieldValue.getValue();

    for (Locale locale : value.getAvailableLocales()) {
        String valueString = value.getString(locale);

        JSONObject jsonObject = JSONFactoryUtil.createJSONObject(valueString);

        String alt = jsonObject.getString("alt");
        long oldClassPK = jsonObject.getLong("fileEntryId");
        String type = jsonObject.getString("type");

        FileEntry importedFileEntry = fetchImportedFileEntry(_portletDataContext, oldClassPK);

        if (importedFileEntry == null) {
            continue;
        }/*from w  w  w.j  a v a 2  s . c  o  m*/

        String fileEntryJSON = toJSON(importedFileEntry, type, alt);

        value.addString(locale, fileEntryJSON);

        StringBundler sb = new StringBundler(4);

        sb.append("//dynamic-element[@type='image']");
        sb.append("/dynamic-content[contains(text(),'");
        sb.append(valueString);
        sb.append("')]");

        XPath xPath = SAXReaderUtil.createXPath(sb.toString());

        List<Node> imageNodes = xPath.selectNodes(_document);

        for (Node imageNode : imageNodes) {
            Element imageElement = (Element) imageNode;

            imageElement.clearContent();

            imageElement.addCDATA(fileEntryJSON);
        }
    }
}

From source file:com.liferay.journal.internal.exportimport.content.processor.JournalArticleExportImportContentProcessor.java

License:Open Source License

protected String replaceExportJournalArticleReferences(PortletDataContext portletDataContext,
        StagedModel stagedModel, String content, boolean exportReferencedContent) throws Exception {

    Group group = _groupLocalService.fetchGroup(portletDataContext.getGroupId());

    if (group.isStagingGroup()) {
        group = group.getLiveGroup();//from ww w  .ja  v a2 s  . c om
    }

    if (group.isStaged() && !group.isStagedRemotely() && !group.isStagedPortlet(JournalPortletKeys.JOURNAL)) {

        return content;
    }

    Document document = SAXReaderUtil.read(content);

    XPath xPath = SAXReaderUtil.createXPath("//dynamic-element[@type='ddm-journal-article']");

    List<Node> ddmJournalArticleNodes = xPath.selectNodes(document);

    for (Node ddmJournalArticleNode : ddmJournalArticleNodes) {
        Element ddmJournalArticleElement = (Element) ddmJournalArticleNode;

        List<Element> dynamicContentElements = ddmJournalArticleElement.elements("dynamic-content");

        for (Element dynamicContentElement : dynamicContentElements) {
            String jsonData = dynamicContentElement.getStringValue();

            JSONObject jsonObject = _jsonFactory.createJSONObject(jsonData);

            long classPK = GetterUtil.getLong(jsonObject.get("classPK"));

            JournalArticle journalArticle = _journalArticleLocalService.fetchLatestArticle(classPK);

            if (journalArticle == null) {
                if (_log.isInfoEnabled()) {
                    StringBundler messageSB = new StringBundler();

                    messageSB.append("Staged model with class name ");
                    messageSB.append(stagedModel.getModelClassName());
                    messageSB.append(" and primary key ");
                    messageSB.append(stagedModel.getPrimaryKeyObj());
                    messageSB.append(" references missing journal ");
                    messageSB.append("article with class primary key ");
                    messageSB.append(classPK);

                    _log.info(messageSB.toString());
                }

                continue;
            }

            String journalArticleReference = "[$journal-article-reference=" + journalArticle.getPrimaryKey()
                    + "$]";

            if (_log.isDebugEnabled()) {
                _log.debug("Replacing " + jsonData + " with " + journalArticleReference);
            }

            dynamicContentElement.clearContent();

            dynamicContentElement.addCDATA(journalArticleReference);

            if (exportReferencedContent) {
                StagedModelDataHandlerUtil.exportReferenceStagedModel(portletDataContext, stagedModel,
                        journalArticle, PortletDataContext.REFERENCE_TYPE_DEPENDENCY);
            } else {
                Element entityElement = portletDataContext.getExportDataElement(stagedModel);

                portletDataContext.addReferenceElement(stagedModel, entityElement, journalArticle,
                        PortletDataContext.REFERENCE_TYPE_DEPENDENCY, true);
            }
        }
    }

    return document.asXML();
}

From source file:com.liferay.journal.internal.upgrade.v0_0_5.UpgradeJournal.java

License:Open Source License

protected String convertStaticContentToDynamic(String content) throws Exception {

    Document document = SAXReaderUtil.read(content);

    Document newDocument = SAXReaderUtil.createDocument();

    Element rootElement = document.getRootElement();

    String availableLocales = GetterUtil.getString(rootElement.attributeValue("available-locales"),
            _getDefaultLanguageId());//from w  ww . java 2 s  .  co  m
    String defaultLocale = GetterUtil.getString(rootElement.attributeValue("default-locale"),
            _getDefaultLanguageId());

    Element newRootElement = SAXReaderUtil.createElement("root");

    newRootElement.addAttribute("available-locales", availableLocales);
    newRootElement.addAttribute("default-locale", defaultLocale);

    newDocument.add(newRootElement);

    Element dynamicElementElement = SAXReaderUtil.createElement("dynamic-element");

    dynamicElementElement.addAttribute("name", "content");
    dynamicElementElement.addAttribute("type", "text_area");
    dynamicElementElement.addAttribute("index-type", "text");
    dynamicElementElement.addAttribute("index", String.valueOf(0));

    newRootElement.add(dynamicElementElement);

    List<Element> staticContentElements = rootElement.elements("static-content");

    for (Element staticContentElement : staticContentElements) {
        String languageId = GetterUtil.getString(staticContentElement.attributeValue("language-id"),
                _getDefaultLanguageId());
        String text = staticContentElement.getText();

        Element dynamicContentElement = SAXReaderUtil.createElement("dynamic-content");

        dynamicContentElement.addAttribute("language-id", languageId);
        dynamicContentElement.addCDATA(text);

        dynamicElementElement.add(dynamicContentElement);
    }

    return XMLUtil.formatXML(newDocument);
}

From source file:com.liferay.journal.internal.upgrade.v0_0_5.UpgradeJournal.java

License:Open Source License

protected void transformDateFieldValue(Element dynamicContentElement) {
    String value = dynamicContentElement.getText();

    if (!Validator.isNumber(value)) {
        return;/*  w w w.j  a v a 2 s .co  m*/
    }

    Date date = new Date(GetterUtil.getLong(value));

    dynamicContentElement.clearContent();

    dynamicContentElement.addCDATA(_dateFormat.format(date));
}

From source file:com.liferay.journal.internal.upgrade.v1_1_0.UpgradeDocumentLibraryTypeContent.java

License:Open Source License

protected String convertContent(String content) throws Exception {
    Document contentDocument = SAXReaderUtil.read(content);

    contentDocument = contentDocument.clone();

    XPath xPath = SAXReaderUtil.createXPath("//dynamic-element[@type='document_library']");

    List<Node> imageNodes = xPath.selectNodes(contentDocument);

    for (Node imageNode : imageNodes) {
        Element imageEl = (Element) imageNode;

        List<Element> dynamicContentEls = imageEl.elements("dynamic-content");

        for (Element dynamicContentEl : dynamicContentEls) {
            String data = getDocumentLibraryValue(dynamicContentEl.getText());

            dynamicContentEl.clearContent();

            dynamicContentEl.addCDATA(data);
        }/*  w w  w  .  jav  a  2s .c  o  m*/
    }

    return contentDocument.formattedString();
}

From source file:com.liferay.journal.internal.upgrade.v1_1_0.UpgradeImageTypeContent.java

License:Open Source License

protected String convertTypeImageElements(long userId, long groupId, String content, long resourcePrimKey)
        throws Exception {

    Document contentDocument = SAXReaderUtil.read(content);

    contentDocument = contentDocument.clone();

    XPath xPath = SAXReaderUtil.createXPath("//dynamic-element[@type='image']");

    List<Node> imageNodes = xPath.selectNodes(contentDocument);

    for (Node imageNode : imageNodes) {
        Element imageEl = (Element) imageNode;

        List<Element> dynamicContentEls = imageEl.elements("dynamic-content");

        for (Element dynamicContentEl : dynamicContentEls) {
            String id = dynamicContentEl.attributeValue("id");

            if (Validator.isNull(id)) {
                continue;
            }/* w  w w.j a v  a 2 s.c  om*/

            long folderId = getFolderId(userId, groupId, resourcePrimKey);

            FileEntry fileEntry = getFileEntry(groupId, folderId, id);

            if (fileEntry == null) {
                continue;
            }

            JSONObject jsonObject = JSONFactoryUtil.createJSONObject();

            jsonObject.put("alt", StringPool.BLANK);
            jsonObject.put("groupId", fileEntry.getGroupId());
            jsonObject.put("name", fileEntry.getFileName());
            jsonObject.put("resourcePrimKey", resourcePrimKey);
            jsonObject.put("title", fileEntry.getTitle());
            jsonObject.put("type", "journal");
            jsonObject.put("uuid", fileEntry.getUuid());

            dynamicContentEl.clearContent();

            dynamicContentEl.addCDATA(jsonObject.toString());
        }
    }

    return contentDocument.formattedString();
}

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

License:Open Source License

protected void addMetadataEntry(Element metadataElement, String name, String value) {

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

    entryElement.addAttribute("name", name);
    entryElement.addCDATA(value);
}

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;
        }//  ww w .j a  v  a  2s.c om

        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.service.impl.JournalArticleLocalServiceImpl.java

License:Open Source License

protected void addImageFileEntries(JournalArticle article, Element dynamicElementElement)
        throws PortalException {

    if (ExportImportThreadLocal.isImportInProcess()) {
        return;/*  w  w  w. j a  v a2s . c  om*/
    }

    for (Element dynamicContentElement : dynamicElementElement.elements("dynamic-content")) {

        String value = dynamicContentElement.getText();

        if (Validator.isNull(value)) {
            continue;
        }

        JSONObject jsonObject = JSONFactoryUtil.createJSONObject(value);

        String uuid = jsonObject.getString("uuid");
        long groupId = jsonObject.getLong("groupId");

        FileEntry fileEntry = dlAppLocalService.getFileEntryByUuidAndGroupId(uuid, groupId);

        boolean tempFile = fileEntry.isRepositoryCapabilityProvided(TemporaryFileEntriesCapability.class);

        if (tempFile) {
            FileEntry tempFileEntry = fileEntry;

            Folder folder = article.addImagesFolder();

            String fileEntryName = DLUtil.getUniqueFileName(fileEntry.getGroupId(), folder.getFolderId(),
                    fileEntry.getFileName());

            fileEntry = PortletFileRepositoryUtil.addPortletFileEntry(groupId, fileEntry.getUserId(),
                    JournalArticle.class.getName(), article.getResourcePrimKey(), JournalConstants.SERVICE_NAME,
                    folder.getFolderId(), fileEntry.getContentStream(), fileEntryName, fileEntry.getMimeType(),
                    false);

            dlAppLocalService.deleteFileEntry(tempFileEntry.getFileEntryId());
        }

        JSONObject cdata = JSONFactoryUtil.createJSONObject(dynamicContentElement.getText());

        cdata.put("resourcePrimKey", article.getResourcePrimKey());
        cdata.put("uuid", fileEntry.getUuid());

        dynamicContentElement.clearContent();

        dynamicContentElement.addCDATA(cdata.toString());
    }
}

From source file:com.liferay.journal.service.impl.JournalArticleLocalServiceImpl.java

License:Open Source License

protected void copyArticleImages(JournalArticle oldArticle, JournalArticle newArticle) throws Exception {

    Folder folder = newArticle.addImagesFolder();

    for (FileEntry fileEntry : oldArticle.getImagesFileEntries()) {
        PortletFileRepositoryUtil.addPortletFileEntry(oldArticle.getGroupId(), newArticle.getUserId(),
                JournalArticle.class.getName(), newArticle.getResourcePrimKey(), JournalConstants.SERVICE_NAME,
                folder.getFolderId(), fileEntry.getContentStream(), fileEntry.getFileName(),
                fileEntry.getMimeType(), false);
    }/*w  w  w . ja v  a  2 s .  c o  m*/

    Document contentDocument = oldArticle.getDocument();

    contentDocument = contentDocument.clone();

    XPath xPathSelector = SAXReaderUtil.createXPath("//dynamic-element[@type='image']");

    List<Node> imageNodes = xPathSelector.selectNodes(contentDocument);

    for (Node imageNode : imageNodes) {
        Element imageEl = (Element) imageNode;

        List<Element> dynamicContentEls = imageEl.elements("dynamic-content");

        for (Element dynamicContentEl : dynamicContentEls) {
            String fileName = dynamicContentEl.attributeValue("name");

            FileEntry fileEntry = PortletFileRepositoryUtil.getPortletFileEntry(newArticle.getGroupId(),
                    folder.getFolderId(), fileName);

            String previewURL = DLUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), null,
                    StringPool.BLANK, false, true);

            dynamicContentEl.addAttribute("resourcePrimKey", String.valueOf(newArticle.getResourcePrimKey()));

            dynamicContentEl.clearContent();

            dynamicContentEl.addCDATA(previewURL);
        }
    }

    newArticle.setContent(contentDocument.formattedString());
}