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

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

Introduction

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

Prototype

public void clearContent();

Source Link

Usage

From source file:com.liferay.adaptive.media.journal.web.internal.exportimport.content.processor.AMJournalArticleContentHTMLReplacer.java

License:Open Source License

public String replace(String content, Replace replace) throws Exception {
    try {/*from  ww w . j a  v  a 2s .  co  m*/
        Document document = SAXReaderUtil.read(content);

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

        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 replacedHtml = replace.apply(dynamicContentElement.getStringValue());

                dynamicContentElement.clearContent();

                dynamicContentElement.addCDATA(replacedHtml);
            }
        }

        return document.asXML();
    } catch (DocumentException de) {
        if (_log.isDebugEnabled()) {
            _log.debug("Invalid content:\n" + content);
        }

        return content;
    }
}

From source file:com.liferay.dynamic.data.mapping.internal.util.DDMXMLImpl.java

License:Open Source License

protected void updateField(Element dynamicContentElement, Serializable fieldValue) {

    dynamicContentElement.clearContent();

    if (fieldValue instanceof Date) {
        Date valueDate = (Date) fieldValue;

        fieldValue = valueDate.getTime();
    }/*www. ja  v a 2 s  .  c o  m*/

    String valueString = String.valueOf(fieldValue);

    dynamicContentElement.addCDATA(valueString.trim());
}

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;
        }/* w  w w  .ja va 2 s .  c om*/

        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();/*ww w  .j a  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 void transformDateFieldValue(Element dynamicContentElement) {
    String value = dynamicContentElement.getText();

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

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

    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;
            }//from www.  j a v  a2  s  .  c o  m

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

License:Open Source License

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

    if (ExportImportThreadLocal.isImportInProcess()) {
        return;/*from w w w . j a  va2  s . co  m*/
    }

    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);
    }//from w  w w . j a  va  2 s .co 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());
}

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

License:Open Source License

protected void format(User user, long groupId, JournalArticle article, Element root) throws PortalException {

    for (Element element : root.elements()) {
        String elType = element.attributeValue("type", StringPool.BLANK);

        if (elType.equals("document_library")) {
            addDocumentLibraryFileEntries(element);
        } else if (elType.equals("image")) {
            addImageFileEntries(article, element);
        } else if (elType.equals("text_area") || elType.equals("text") || elType.equals("text_box")) {

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

            for (Element dynamicContentElement : dynamicContentElements) {
                String dynamicContent = dynamicContentElement.getText();

                if (Validator.isNotNull(dynamicContent)) {
                    String contentType = ContentTypes.TEXT_PLAIN;

                    if (elType.equals("text_area")) {
                        contentType = ContentTypes.TEXT_HTML;
                    }/*from www  . j  a  va  2s.c o m*/

                    dynamicContent = SanitizerUtil.sanitize(user.getCompanyId(), groupId, user.getUserId(),
                            JournalArticle.class.getName(), 0, contentType, dynamicContent);

                    dynamicContentElement.clearContent();

                    dynamicContentElement.addCDATA(dynamicContent);
                }
            }
        }

        format(user, groupId, article, element);
    }
}