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

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

Introduction

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

Prototype

public String attributeValue(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);//  w  w w  .  j  a v a2 s  .co  m

    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 void updateContentDynamicElement(Element dynamicElementElement, DDMStructure ddmStructure,
        Fields ddmFields, DDMFieldsCounter ddmFieldsCounter) throws Exception {

    String fieldName = dynamicElementElement.attributeValue("name");
    for (String childFieldName : ddmStructure.getChildrenFieldNames(fieldName)) {

        int count = ddmFieldsCounter.get(fieldName);

        int repetitions = countFieldRepetition(ddmFields, childFieldName, fieldName, count);

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

            childDynamicElementElement.addAttribute("name", childFieldName);
            childDynamicElementElement.addAttribute("index", String.valueOf(i));

            updateContentDynamicElement(childDynamicElementElement, ddmStructure, ddmFields, ddmFieldsCounter);
        }//w ww .  jav a2s .  c o  m
    }

    updateContentDynamicElement(dynamicElementElement, ddmStructure, ddmFields.get(fieldName),
            ddmFieldsCounter);
}

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

License:Open Source License

protected void updateDDMXSDDynamicElement(Element dynamicElementElement, String defaultLocale) {

    // Metadata/*ww w. jav  a 2 s . c  o m*/

    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.JournalConverterImpl.java

License:Open Source License

protected void updateJournalXSDDynamicElement(Element element) {
    Locale defaultLocale = LocaleUtil.getSiteDefault();

    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 ww w .j  ava 2 s .c  o m

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

        parentElement.remove(element);

        return;
    } else {
        Element parentElement = element.getParent();

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

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

            addMetadataEntry(metadataElement, "label", name);

            element.addAttribute("name", "option" + StringUtil.randomId());
            element.addAttribute("type", "option");
            element.addAttribute("value", name);

            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"));

    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", defaultLocale.toString());

    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("wcm-image")) {
        element.addAttribute("fieldNamespace", "wcm");
        element.addAttribute("readOnly", "false");
    }

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

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

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 ww .java  2 s. c o  m
    }

    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 String mergeArticleContent(String curContent, String newContent, boolean removeNullElements) {

    try {//from w w w .  j a va 2s  . com
        Document curDocument = SAXReaderUtil.read(curContent);
        Document newDocument = SAXReaderUtil.read(newContent);

        Element curRootElement = curDocument.getRootElement();
        Element newRootElement = newDocument.getRootElement();

        curRootElement.addAttribute("default-locale", newRootElement.attributeValue("default-locale"));
        curRootElement.addAttribute("available-locales", newRootElement.attributeValue("available-locales"));

        _mergeArticleContentUpdate(curDocument, newRootElement,
                LocaleUtil.toLanguageId(LocaleUtil.getDefault()));

        if (removeNullElements) {
            _mergeArticleContentDelete(curRootElement, newDocument);
        }

        curContent = DDMXMLUtil.formatXML(curDocument);
    } catch (Exception e) {
        _log.error(e, e);
    }

    return curContent;
}

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);
                }//from w w w  .j a va2  s  .co m

                dynamicContentElement.detach();
            }
        }

        removeArticleLocale(dynamicElementElement, languageId);
    }
}

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

License:Open Source License

public static String removeArticleLocale(String content, String languageId) {

    try {//from  w w  w  . j  a v a2  s .  c  o  m
        Document document = SAXReaderUtil.read(content);

        Element rootElement = document.getRootElement();

        String availableLocales = rootElement.attributeValue("available-locales");

        if (availableLocales == null) {
            return content;
        }

        availableLocales = StringUtil.remove(availableLocales, languageId);

        if (availableLocales.endsWith(",")) {
            availableLocales = availableLocales.substring(0, availableLocales.length() - 1);
        }

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

        removeArticleLocale(rootElement, languageId);

        content = DDMXMLUtil.formatXML(document);
    } catch (Exception e) {
        _log.error(e, e);
    }

    return content;
}

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  w  ww .  j  a va2 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 _mergeArticleContentDeleteImages(List<Element> elements) throws Exception {

    for (Element element : elements) {
        long articleImageId = GetterUtil.getLong(element.attributeValue("id"));

        JournalArticleImageLocalServiceUtil.deleteArticleImage(articleImageId);
    }//from w  w w  . j ava  2 s .c o m
}