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

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

Introduction

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

Prototype

public List<Element> elements(String name);

Source Link

Usage

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

License:Open Source License

protected Field getField(Element dynamicElementElement, DDMStructure ddmStructure, String defaultLocale)
        throws Exception {

    Field ddmField = new Field();

    ddmField.setDDMStructureId(ddmStructure.getStructureId());
    ddmField.setDefaultLocale(LocaleUtil.fromLanguageId(defaultLocale));

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

    ddmField.setName(name);/*from  ww w  .  j  av  a2  s  . c om*/

    String dataType = ddmStructure.getFieldDataType(name);
    String type = ddmStructure.getFieldType(name);

    List<Element> dynamicContentElements = dynamicElementElement.elements("dynamic-content");
    for (Element dynamicContentElement : dynamicContentElements) {
        Locale locale = LocaleUtil.fromLanguageId(dynamicContentElement.attributeValue("language-id"));

        Serializable serializable = getFieldValue(dataType, type, dynamicContentElement);

        ddmField.addValue(locale, serializable);
    }

    return ddmField;
}

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

License:Open Source License

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

    Serializable serializable = null;
    if (DDMImpl.TYPE_DDM_DOCUMENTLIBRARY.equals(type)) {
        serializable = getDocumentLibraryValue(dynamicContentElement.getText());
    } else if (DDMImpl.TYPE_DDM_LINK_TO_PAGE.equals(type)) {
        String[] values = StringUtil.split(dynamicContentElement.getText(), CharPool.AT);

        JSONObject jsonObject = JSONFactoryUtil.createJSONObject();

        if (values.length > 2) {
            jsonObject.put("groupId", values[2]);
        }/*from  w  w w .  j  ava  2  s  .com*/

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

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

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

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

        if (optionElements.size() > 0) {
            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.portlet.journal.util.JournalConverterImpl.java

License:Open Source License

protected void updateDDMXSDDynamicElement(Element dynamicElementElement, String defaultLocale) {

    // Metadata//from ww  w .j a v a 2 s  . com

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

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

        if (locale.equals(defaultLocale)) {
            getJournalMetadataElement(metadataElement);
        } else {
            dynamicElementElement.remove(metadataElement);
        }
    }

    Element parentElement = dynamicElementElement.getParent();

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

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

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

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

        dynamicElementElement.addAttribute("name", value);
        dynamicElementElement.addAttribute("repeatable", repeatable);
        dynamicElementElement.addAttribute("type", "value");

        removeAttribute(dynamicElementElement, "value");

        for (Element metadataElement : dynamicElementElement.elements("meta-data")) {

            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, defaultLocale);
    }
}

From source file:com.liferay.portlet.journal.util.JournalIndexer.java

License:Open Source License

protected void indexField(Document document, Element element, String elType, String elIndexType) {

    if (Validator.isNull(elIndexType)) {
        return;/*from  w  w w.  j  a  va  2s .  c  om*/
    }

    com.liferay.portal.kernel.xml.Document structureDocument = element.getDocument();

    Element rootElement = structureDocument.getRootElement();

    String defaultLocale = GetterUtil.getString(rootElement.attributeValue("default-locale"));

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

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

    for (Element dynamicContentElement : dynamicContentElements) {
        String contentLocale = GetterUtil.getString(dynamicContentElement.attributeValue("language-id"));

        String[] value = new String[] { dynamicContentElement.getText() };

        if (elType.equals("multi-list")) {
            List<Element> optionElements = dynamicContentElement.elements("option");

            value = new String[optionElements.size()];

            for (int i = 0; i < optionElements.size(); i++) {
                value[i] = optionElements.get(i).getText();
            }
        }

        if (elIndexType.equals("keyword")) {
            if (Validator.isNull(contentLocale)) {
                document.addKeyword(name, value);
            } else {
                if (defaultLocale.equals(contentLocale)) {
                    document.addKeyword(name, value);
                }

                document.addKeyword(name.concat(StringPool.UNDERLINE).concat(contentLocale), value);
            }
        } else if (elIndexType.equals("text")) {
            if (Validator.isNull(contentLocale)) {
                document.addText(name, StringUtil.merge(value, StringPool.SPACE));
            } else {
                if (defaultLocale.equals(contentLocale)) {
                    document.addText(name, StringUtil.merge(value, StringPool.SPACE));
                }

                document.addText(name.concat(StringPool.UNDERLINE).concat(contentLocale),
                        StringUtil.merge(value, StringPool.SPACE));
            }
        }
    }
}

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

License:Open Source License

public static void removeArticleLocale(Element element, String languageId)
        throws PortalException, SystemException {

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

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

            String curLanguageId = GetterUtil.getString(dynamicContentElement.attributeValue("language-id"));

            if (curLanguageId.equals(languageId)) {
                long id = GetterUtil.getLong(dynamicContentElement.attributeValue("id"));

                if (id > 0) {
                    ImageLocalServiceUtil.deleteImage(id);
                }/* w w w  .  j av  a 2  s . c om*/

                dynamicContentElement.detach();
            }
        }

        removeArticleLocale(dynamicElementElement, languageId);
    }
}

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

License:Open Source License

private static void _mergeArticleContentDelete(Element curParentElement, Document newDocument)
        throws Exception {

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

    for (int i = 0; i < curElements.size(); i++) {
        Element curElement = curElements.get(i);

        _mergeArticleContentDelete(curElement, newDocument);

        String instanceId = curElement.attributeValue("instance-id");

        Element newElement = _getElementByInstanceId(newDocument, instanceId);

        if (newElement == null) {
            curElement.detach();/*from  ww w .j ava 2  s  .c o  m*/

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

            if (type.equals("image")) {
                _mergeArticleContentDeleteImages(curElement.elements("dynamic-content"));
            }
        }
    }
}

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

License:Open Source License

private static void _mergeArticleContentUpdate(Element curElement, Element newElement, String defaultLocale) {

    Attribute curTypeAttribute = curElement.attribute("type");
    Attribute newTypeAttribute = newElement.attribute("type");

    curTypeAttribute.setValue(newTypeAttribute.getValue());

    Attribute curIndexTypeAttribute = curElement.attribute("index-type");
    Attribute newIndexTypeAttribute = newElement.attribute("index-type");

    if (newIndexTypeAttribute != null) {
        if (curIndexTypeAttribute == null) {
            curElement.addAttribute("index-type", newIndexTypeAttribute.getValue());
        } else {/*  w ww.  j ava  2  s. c  om*/
            curIndexTypeAttribute.setValue(newIndexTypeAttribute.getValue());
        }
    }

    Element newContentElement = newElement.elements("dynamic-content").get(0);

    String newLanguageId = newContentElement.attributeValue("language-id");
    String newValue = newContentElement.getText();

    String indexType = newElement.attributeValue("index-type");

    if (Validator.isNotNull(indexType)) {
        curElement.addAttribute("index-type", indexType);
    }

    List<Element> curContentElements = curElement.elements("dynamic-content");

    if (Validator.isNull(newLanguageId)) {
        for (Element curContentElement : curContentElements) {
            curContentElement.detach();
        }

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

        if (newContentElement.element("option") != null) {
            _addElementOptions(curContentElement, newContentElement);
        } else {
            curContentElement.addCDATA(newValue);
        }

        curElement.add(curContentElement);
    } else {
        boolean alreadyExists = false;

        for (Element curContentElement : curContentElements) {
            String curLanguageId = curContentElement.attributeValue("language-id");

            if (newLanguageId.equals(curLanguageId)) {
                alreadyExists = true;

                curContentElement.clearContent();

                if (newContentElement.element("option") != null) {
                    _addElementOptions(curContentElement, newContentElement);
                } else {
                    curContentElement.addCDATA(newValue);
                }

                break;
            }
        }

        if (!alreadyExists) {
            Element curContentElement = curContentElements.get(0);

            String curLanguageId = curContentElement.attributeValue("language-id");

            if (Validator.isNull(curLanguageId)) {
                if (newLanguageId.equals(defaultLocale)) {
                    curContentElement.clearContent();

                    if (newContentElement.element("option") != null) {
                        _addElementOptions(curContentElement, newContentElement);
                    } else {
                        curContentElement.addCDATA(newValue);
                    }
                } else {
                    curElement.add(newContentElement.createCopy());
                }

                curContentElement.addAttribute("language-id", defaultLocale);
            } else {
                curElement.add(newContentElement.createCopy());
            }
        }
    }
}

From source file:com.liferay.portlet.journal.util.VelocityTemplateParser.java

License:Open Source License

@Override
protected List<TemplateNode> getTemplateNodes(Element element) throws Exception {

    List<TemplateNode> templateNodes = new ArrayList<TemplateNode>();

    Map<String, TemplateNode> prototypeTemplateNodes = new HashMap<String, TemplateNode>();

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

    for (Element dynamicElementElement : dynamicElementElements) {
        Element dynamicContentElement = dynamicElementElement.element("dynamic-content");

        String data = StringPool.BLANK;

        if (dynamicContentElement != null) {
            data = dynamicContentElement.getText();
        }//from   w  w  w. j  a  v  a  2s .  co  m

        String name = dynamicElementElement.attributeValue("name", "");

        if (name.length() == 0) {
            throw new TransformException("Element missing \"name\" attribute");
        }

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

        TemplateNode templateNode = new TemplateNode(getThemeDisplay(), name, stripCDATA(data), type);

        if (dynamicElementElement.element("dynamic-element") != null) {
            templateNode.appendChildren(getTemplateNodes(dynamicElementElement));
        } else if ((dynamicContentElement != null) && (dynamicContentElement.element("option") != null)) {

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

            for (Element optionElement : optionElements) {
                templateNode.appendOption(stripCDATA(optionElement.getText()));
            }
        }

        TemplateNode prototypeTemplateNode = prototypeTemplateNodes.get(name);

        if (prototypeTemplateNode == null) {
            prototypeTemplateNode = templateNode;

            prototypeTemplateNodes.put(name, prototypeTemplateNode);

            templateNodes.add(templateNode);
        }

        prototypeTemplateNode.appendSibling(templateNode);
    }

    return templateNodes;
}

From source file:com.liferay.portlet.messageboards.lar.MBPortletDataHandlerImpl.java

License:Open Source License

@Override
protected PortletPreferences doImportData(PortletDataContext portletDataContext, String portletId,
        PortletPreferences portletPreferences, String data) throws Exception {

    portletDataContext.importPermissions("com.liferay.portlet.messageboards",
            portletDataContext.getSourceGroupId(), portletDataContext.getScopeGroupId());

    Document document = SAXReaderUtil.read(data);

    Element rootElement = document.getRootElement();

    Element categoriesElement = rootElement.element("categories");

    for (Element categoryElement : categoriesElement.elements("category")) {
        String path = categoryElement.attributeValue("path");

        if (!portletDataContext.isPathNotProcessed(path)) {
            continue;
        }/*  www.  j  a v a  2 s  . c o m*/

        MBCategory category = (MBCategory) portletDataContext.getZipEntryAsObject(path);

        importCategory(portletDataContext, path, category);
    }

    Element messagesElement = rootElement.element("messages");

    for (Element messageElement : messagesElement.elements("message")) {
        String path = messageElement.attributeValue("path");

        if (!portletDataContext.isPathNotProcessed(path)) {
            continue;
        }

        MBMessage message = (MBMessage) portletDataContext.getZipEntryAsObject(path);

        importMessage(portletDataContext, messageElement, message);
    }

    if (portletDataContext.getBooleanParameter(_NAMESPACE, "thread-flags")) {

        Element threadFlagsElement = rootElement.element("thread-flags");

        for (Element threadFlagElement : threadFlagsElement.elements("thread-flag")) {

            String path = threadFlagElement.attributeValue("path");

            if (!portletDataContext.isPathNotProcessed(path)) {
                continue;
            }

            MBThreadFlag threadFlag = (MBThreadFlag) portletDataContext.getZipEntryAsObject(path);

            importThreadFlag(portletDataContext, threadFlagElement, threadFlag);
        }
    }

    if (portletDataContext.getBooleanParameter(_NAMESPACE, "user-bans")) {
        Element userBansElement = rootElement.element("user-bans");

        for (Element userBanElement : userBansElement.elements("user-ban")) {

            String path = userBanElement.attributeValue("path");

            if (!portletDataContext.isPathNotProcessed(path)) {
                continue;
            }

            MBBan ban = (MBBan) portletDataContext.getZipEntryAsObject(path);

            importBan(portletDataContext, userBanElement, ban);
        }
    }

    return null;
}

From source file:com.liferay.portlet.messageboards.lar.MBPortletDataHandlerImpl.java

License:Open Source License

protected List<ObjectValuePair<String, InputStream>> getAttachments(PortletDataContext portletDataContext,
        Element messageElement, MBMessage message) {

    if (!message.isAttachments() && portletDataContext.getBooleanParameter(_NAMESPACE, "attachments")) {

        return Collections.emptyList();
    }/*from  w w w .ja  va 2 s.  c om*/

    List<ObjectValuePair<String, InputStream>> inputStreamOVPs = new ArrayList<ObjectValuePair<String, InputStream>>();

    List<Element> attachmentElements = messageElement.elements("attachment");

    for (Element attachmentElement : attachmentElements) {
        String name = attachmentElement.attributeValue("name");
        String binPath = attachmentElement.attributeValue("bin-path");

        InputStream inputStream = portletDataContext.getZipEntryAsInputStream(binPath);

        ObjectValuePair<String, InputStream> inputStreamOVP = new ObjectValuePair<String, InputStream>(name,
                inputStream);

        inputStreamOVPs.add(inputStreamOVP);
    }

    if (inputStreamOVPs.isEmpty()) {
        _log.error("Could not find attachments for message " + message.getMessageId());
    }

    return inputStreamOVPs;
}