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.document.library.internal.instance.lifecycle.AddDefaultDocumentLibraryStructuresPortalInstanceLifecycleListener.java

License:Open Source License

protected void addDLRawMetadataStructures(long userId, long groupId, ServiceContext serviceContext)
        throws Exception {

    Locale locale = _portal.getSiteDefaultLocale(groupId);

    String xsd = buildDLRawMetadataXML(RawMetadataProcessorUtil.getFields(), locale);

    Document document = UnsecureSAXReaderUtil.read(new StringReader(xsd));

    Element rootElement = document.getRootElement();

    List<Element> structureElements = rootElement.elements("structure");

    for (Element structureElement : structureElements) {
        String name = structureElement.elementText("name");
        String description = structureElement.elementText("description");

        Element structureElementRootElement = structureElement.element("root");

        String structureElementRootXML = structureElementRootElement.asXML();

        DDMStructure ddmStructure = _ddmStructureLocalService.fetchStructure(groupId,
                _portal.getClassNameId(RawMetadataProcessor.class), name);

        DDMForm ddmForm = _ddmFormXSDDeserializer.deserialize(structureElementRootXML);

        if (ddmStructure != null) {
            ddmStructure.setDDMForm(ddmForm);

            _ddmStructureLocalService.updateDDMStructure(ddmStructure);
        } else {/*from w  w w  .  j a  v  a  2 s . c  o m*/
            Map<Locale, String> nameMap = new HashMap<>();

            nameMap.put(locale, name);

            Map<Locale, String> descriptionMap = new HashMap<>();

            descriptionMap.put(locale, description);

            DDMFormLayout ddmFormLayout = _ddm.getDefaultDDMFormLayout(ddmForm);

            _ddmStructureLocalService.addStructure(userId, groupId,
                    DDMStructureConstants.DEFAULT_PARENT_STRUCTURE_ID,
                    _portal.getClassNameId(RawMetadataProcessor.class), name, nameMap, descriptionMap, ddmForm,
                    ddmFormLayout, StorageType.JSON.toString(), DDMStructureConstants.TYPE_DEFAULT,
                    serviceContext);
        }
    }
}

From source file:com.liferay.dynamic.data.mapping.internal.upgrade.v1_0_0.UpgradeDynamicDataMappingTest.java

License:Open Source License

protected Map<String, Map<String, List<String>>> toDataMap(Document document) {

    Element rootElement = document.getRootElement();

    Map<String, Map<String, List<String>>> dataMap = new HashMap<>();

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

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

        Map<String, List<String>> localizedDataMap = getLocalizedDataMap(dynamicElementElement);

        dataMap.put(name, localizedDataMap);
    }/*from www .ja  v  a 2  s.  c  o  m*/

    return dataMap;
}

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

License:Open Source License

@Override
public Fields getFields(DDMStructure structure, XPath xPath, String xml, List<String> fieldNames)
        throws PortalException {

    Document document = null;/*from w w w.  ja v a  2  s.  c  o m*/

    try {
        document = _saxReader.read(xml);
    } catch (DocumentException de) {
        if (_log.isDebugEnabled()) {
            _log.debug(de.getMessage(), de);
        }

        return null;
    }

    if ((xPath != null) && !xPath.booleanValueOf(document)) {
        return null;
    }

    Fields fields = new Fields();

    Element rootElement = document.getRootElement();

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

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

        if (!structure.hasField(fieldName) || ((fieldNames != null) && !fieldNames.contains(fieldName))) {

            continue;
        }

        String fieldDataType = structure.getFieldDataType(fieldName);

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

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

            String languageId = dynamicContentElement.attributeValue("language-id");

            Locale locale = LocaleUtil.fromLanguageId(languageId);

            Serializable fieldValueSerializable = FieldConstants.getSerializable(fieldDataType, fieldValue);

            Field field = fields.get(fieldName);

            if (field == null) {
                field = new Field();

                String defaultLanguageId = dynamicElementElement.attributeValue("default-language-id");

                if (Validator.isNull(defaultLanguageId)) {
                    defaultLanguageId = rootElement.attributeValue("default-locale");
                }

                Locale defaultLocale = LocaleUtil.fromLanguageId(defaultLanguageId);

                field.setDefaultLocale(defaultLocale);

                field.setDDMStructureId(structure.getStructureId());
                field.setName(fieldName);
                field.setValue(locale, fieldValueSerializable);

                fields.put(field);
            } else {
                field.addValue(locale, fieldValueSerializable);
            }
        }
    }

    return fields;
}

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

License:Open Source License

protected List<Element> getDDMStructures(ClassLoader classLoader, String fileName, Locale locale)
        throws Exception {

    String xml = StringUtil.read(classLoader, fileName);

    xml = StringUtil.replace(xml, "[$LOCALE_DEFAULT$]", locale.toString());

    Document document = UnsecureSAXReaderUtil.read(xml);

    Element rootElement = document.getRootElement();

    return rootElement.elements("structure");
}

From source file:com.liferay.dynamic.data.mapping.io.internal.DDMFormXSDDeserializerImpl.java

License:Open Source License

protected void addOptionValueLabels(Element dynamicElementElement, DDMFormFieldOptions ddmFormFieldOptions,
        String optionValue) {//ww  w.  ja  va 2  s.  com

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

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

        Locale locale = LocaleUtil.fromLanguageId(languageId);

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

        ddmFormFieldOptions.addOptionLabel(optionValue, locale, labelElement.getText());
    }
}

From source file:com.liferay.dynamic.data.mapping.io.internal.DDMFormXSDDeserializerImpl.java

License:Open Source License

protected DDMFormField getDDMFormField(Element dynamicElementElement) {
    String name = dynamicElementElement.attributeValue("name");
    String type = dynamicElementElement.attributeValue("type");

    DDMFormField ddmFormField = new DDMFormField(name, type);

    setDDMFormFieldDataType(dynamicElementElement, ddmFormField);
    setDDMFormFieldIndexType(dynamicElementElement, ddmFormField);
    setDDMFormFieldLocalizable(dynamicElementElement, ddmFormField);
    setDDMFormFieldMultiple(dynamicElementElement, ddmFormField);
    setDDMFormFieldNamespace(dynamicElementElement, ddmFormField);
    setDDMFormFieldReadOnly(dynamicElementElement, ddmFormField);
    setDDMFormFieldRepeatable(dynamicElementElement, ddmFormField);
    setDDMFormFieldRequired(dynamicElementElement, ddmFormField);
    setDDMFormFieldShowLabel(dynamicElementElement, ddmFormField);

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

    for (Element metadataElement : metadataElements) {
        setDDMFormFieldMetadata(metadataElement, ddmFormField);
    }//from w w w.j a  va  2 s  . c o  m

    if (type.equals("radio") || type.equals("select")) {
        setDDMFormFieldOptions(dynamicElementElement, ddmFormField);
    } else {
        setNestedDDMFormField(dynamicElementElement, ddmFormField);
    }

    return ddmFormField;
}

From source file:com.liferay.dynamic.data.mapping.io.internal.DDMFormXSDDeserializerImpl.java

License:Open Source License

protected List<DDMFormField> getDDMFormFields(Element rootElement) {
    List<DDMFormField> ddmFormFields = new ArrayList<>();

    for (Element dynamicElement : rootElement.elements("dynamic-element")) {
        DDMFormField ddmFormField = getDDMFormField(dynamicElement);

        ddmFormFields.add(ddmFormField);
    }/*  ww  w. jav  a2 s .c o  m*/

    return ddmFormFields;
}

From source file:com.liferay.dynamic.data.mapping.io.internal.DDMFormXSDDeserializerImpl.java

License:Open Source License

protected void setDDMFormFieldOptions(Element dynamicElementElement, DDMFormField ddmFormField) {

    DDMFormFieldOptions ddmFormFieldOptions = getDDMFormFieldOptions(
            dynamicElementElement.elements("dynamic-element"));

    ddmFormField.setDDMFormFieldOptions(ddmFormFieldOptions);
}

From source file:com.liferay.dynamic.data.mapping.test.util.DDMStructureTestUtil.java

License:Open Source License

protected static Map<String, String> getElementMap(Element element) {
    Map<String, String> elementMap = new HashMap<>();

    // Attributes

    for (Attribute attribute : element.attributes()) {
        elementMap.put(attribute.getName(), attribute.getValue());
    }/*w w  w. ja v a2s.co m*/

    // Metadata

    for (Element metadadataElement : element.elements("meta-data")) {
        String metadataLanguageId = metadadataElement.attributeValue("locale");

        for (Element entryElement : metadadataElement.elements("entry")) {
            String entryName = entryElement.attributeValue("name");

            elementMap.put(entryName.concat(metadataLanguageId), entryElement.getText());
        }
    }

    return elementMap;
}

From source file:com.liferay.exportimport.controller.LayoutImportController.java

License:Open Source License

protected List<Element> fetchPortletElements(Element rootElement) {
    List<Element> portletElements = new ArrayList<>();

    // Site portlets

    Element sitePortletsElement = rootElement.element("site-portlets");

    // LAR compatibility

    if (sitePortletsElement == null) {
        sitePortletsElement = rootElement.element("portlets");
    }//www .ja  v a 2s. c om

    portletElements.addAll(sitePortletsElement.elements("portlet"));

    // Layout portlets

    XPath xPath = SAXReaderUtil.createXPath("staged-model/portlets/portlet");

    Element layoutsElement = rootElement.element(Layout.class.getSimpleName());

    List<Node> nodes = xPath.selectNodes(layoutsElement);

    Stream<Node> nodesStream = nodes.stream();

    nodesStream.map(node -> (Element) node).forEach(portletElements::add);

    return portletElements;
}