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

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

Introduction

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

Prototype

@Override
    public String getText();

Source Link

Usage

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   ww w  .  j  a v  a2 s  . com
    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  2s  . com*/
    }

    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  . ja  v  a  2 s. com*/
    }

    return contentDocument.formattedString();
}

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

License:Open Source License

protected Serializable getFieldValue(String dataType, String type, Element dynamicContentElement) {

    Serializable serializable = null;

    if (DDMFormFieldType.LINK_TO_PAGE.equals(type)) {
        String[] values = StringUtil.split(dynamicContentElement.getText(), CharPool.AT);

        if (ArrayUtil.isEmpty(values)) {
            return StringPool.BLANK;
        }//  w  w  w  .ja  v  a2s .c  o m

        JSONObject jsonObject = JSONFactoryUtil.createJSONObject();

        if (values.length > 2) {
            jsonObject.put("groupId", GetterUtil.getLong(values[2]));
        }

        jsonObject.put("layoutId", GetterUtil.getLong(values[0]));

        if (values[1].equals("public")) {
            jsonObject.put("privateLayout", false);
        } else {
            jsonObject.put("privateLayout", true);
        }

        serializable = jsonObject.toString();
    } else if (DDMFormFieldType.SELECT.equals(type)) {
        JSONArray jsonArray = JSONFactoryUtil.createJSONArray();

        List<Element> optionElements = dynamicContentElement.elements("option");

        if (!optionElements.isEmpty()) {
            for (Element optionElement : optionElements) {
                jsonArray.put(optionElement.getText());
            }
        } else {
            jsonArray.put(dynamicContentElement.getText());
        }

        serializable = jsonArray.toString();
    } else {
        serializable = FieldConstants.getSerializable(dataType, dynamicContentElement.getText());
    }

    return serializable;
}

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

License:Open Source License

protected void updateDDMXSDDynamicElement(Element dynamicElementElement, String defaultLanguageId) {

    // Metadata// w w  w.  j a  v a 2  s .  c  om

    List<Element> metadataElements = dynamicElementElement.elements("meta-data");

    for (Element metadataElement : metadataElements) {
        String languageId = metadataElement.attributeValue("locale");

        if (languageId.equals(defaultLanguageId)) {
            getJournalMetadataElement(metadataElement);
        } else {
            dynamicElementElement.remove(metadataElement);
        }
    }

    Element parentElement = dynamicElementElement.getParent();

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

    if (Objects.equals(parentType, "list") || Objects.equals(parentType, "multi-list")) {

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

        Element labelElement = fetchMetadataEntry(metadataElement, "name", "label");

        dynamicElementElement.addAttribute("name", labelElement.getText());

        String repeatable = parentElement.attributeValue("repeatable");

        dynamicElementElement.addAttribute("repeatable", repeatable);

        String value = dynamicElementElement.attributeValue("value");

        dynamicElementElement.addAttribute("type", value);

        removeAttribute(dynamicElementElement, "value");

        dynamicElementElement.remove(metadataElement);

        return;
    }

    // Index type

    String indexType = GetterUtil.getString(dynamicElementElement.attributeValue("indexType"));

    removeAttribute(dynamicElementElement, "indexType");

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

    // Type

    String type = dynamicElementElement.attributeValue("type");

    boolean multiple = GetterUtil.getBoolean(dynamicElementElement.attributeValue("multiple"));

    String newType = _ddmTypesToJournalTypes.get(type);

    if (newType.equals("list") && multiple) {
        newType = "multi-list";
    }

    dynamicElementElement.addAttribute("type", newType);

    // Removable attributes

    String[] removableAttributeNames = new String[] { "dataType", "fieldNamespace", "multiple", "readOnly",
            "required", "showLabel", "width" };

    for (String removableAttributeName : removableAttributeNames) {
        removeAttribute(dynamicElementElement, removableAttributeName);
    }

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

    for (Element childrenDynamicElementElement : childrenDynamicElementElements) {

        updateDDMXSDDynamicElement(childrenDynamicElementElement, defaultLanguageId);
    }
}

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

License:Open Source License

protected void addDocumentLibraryFileEntries(Element dynamicElementElement) throws PortalException {

    if (ExportImportThreadLocal.isImportInProcess()) {
        return;//w  w w  .  j a va2 s  . 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");
        boolean tempFile = jsonObject.getBoolean("tempFile");

        if (!tempFile) {
            continue;
        }

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

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

        dlAppLocalService.addFileEntry(fileEntry.getUserId(), fileEntry.getGroupId(), 0, fileEntryName,
                fileEntry.getMimeType(), fileEntryName, StringPool.BLANK, StringPool.BLANK,
                fileEntry.getContentStream(), fileEntry.getSize(), new ServiceContext());
    }
}

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  ww  .j a  va 2  s  .  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 Map<String, LocalizedValue> createFieldsValuesMap(Element parentElement, Locale defaultLocale) {

    Map<String, LocalizedValue> fieldsValuesMap = new HashMap<>();

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

    LocalizedValue fieldLocalizedValue = new LocalizedValue(defaultLocale);

    for (Element dynamicElementElement : dynamicElementElements) {
        String fieldName = dynamicElementElement.attributeValue("name", StringPool.BLANK);

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

        for (Element dynamicContentElement : dynamicContentElements) {
            String languageId = dynamicContentElement.attributeValue("language-id");
            String value = dynamicContentElement.getText();

            fieldLocalizedValue.addString(LocaleUtil.fromLanguageId(languageId), value);
        }/*from   w  w  w.  j  av a2  s.co m*/

        fieldsValuesMap.put(fieldName, fieldLocalizedValue);

        fieldsValuesMap.putAll(createFieldsValuesMap(dynamicElementElement, defaultLocale));
    }

    return fieldsValuesMap;
}

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;
                    }/*  w w  w .j ava 2 s.co 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);
    }
}