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

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

Introduction

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

Prototype

public Element addAttribute(String name, String value);

Source Link

Usage

From source file:com.liferay.knowledgebase.admin.lar.AdminPortletDataHandlerImpl.java

License:Open Source License

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

    portletDataContext.addPermissions("com.liferay.knowledgebase.admin", portletDataContext.getScopeGroupId());

    Document document = SAXReaderUtil.createDocument();

    Element rootElement = document.addElement("knowledge-base-admin-data");

    rootElement.addAttribute("group-id", String.valueOf(portletDataContext.getScopeGroupId()));

    exportKBArticles(portletDataContext, rootElement);
    exportKBTemplates(portletDataContext, rootElement);
    exportKBComments(portletDataContext, rootElement);

    return document.formattedString();
}

From source file:com.liferay.knowledgebase.admin.lar.AdminPortletDataHandlerImpl.java

License:Open Source License

protected void exportKBArticleAttachments(PortletDataContext portletDataContext, Element rootElement,
        KBArticle kbArticle) throws Exception {

    Element kbArticleAttachmentsElement = rootElement.addElement("kb-article-attachments");

    kbArticleAttachmentsElement.addAttribute("resource-prim-key",
            String.valueOf(kbArticle.getResourcePrimKey()));

    String rootPath = getPortletPath(portletDataContext) + "/kbarticles/attachments/"
            + kbArticle.getResourcePrimKey();

    for (String fileName : kbArticle.getAttachmentsFileNames()) {
        String shortFileName = FileUtil.getShortFileName(fileName);

        String path = rootPath + StringPool.SLASH + shortFileName;
        byte[] bytes = DLStoreUtil.getFileAsBytes(kbArticle.getCompanyId(), CompanyConstants.SYSTEM, fileName);

        Element fileElement = kbArticleAttachmentsElement.addElement("file");

        fileElement.addAttribute("path", path);
        fileElement.addAttribute("short-file-name", shortFileName);

        portletDataContext.addZipEntry(path, bytes);
    }//  w  ww .  j  a  va 2s  .  co m
}

From source file:com.liferay.knowledgebase.admin.lar.AdminPortletDataHandlerImpl.java

License:Open Source License

protected void exportKBArticleVersions(PortletDataContext portletDataContext, Element kbArticleElement,
        long resourcePrimKey) throws Exception {

    Element versionsElement = kbArticleElement.addElement("versions");

    String rootPath = getPortletPath(portletDataContext) + "/kbarticles/versions/" + resourcePrimKey;

    List<KBArticle> kbArticles = KBArticleUtil.findByR_S(resourcePrimKey, WorkflowConstants.STATUS_APPROVED,
            QueryUtil.ALL_POS, QueryUtil.ALL_POS, new KBArticleModifiedDateComparator(true));

    for (KBArticle kbArticle : kbArticles) {
        String path = rootPath + StringPool.SLASH + kbArticle.getKbArticleId() + ".xml";

        Element curKBArticleElement = versionsElement.addElement("kb-article");

        curKBArticleElement.addAttribute("path", path);

        portletDataContext.addZipEntry(path, kbArticle);
    }// w  w  w  .  j  a  v  a  2s. c  o m
}

From source file:com.liferay.knowledgebase.admin.lar.KBArticleStagedModelDataHandler.java

License:Open Source License

protected void exportKBArticleAttachments(PortletDataContext portletDataContext, Element kbArticleElement,
        KBArticle kbArticle) throws Exception {

    List<FileEntry> attachmentsFileEntries = kbArticle.getAttachmentsFileEntries();

    for (FileEntry fileEntry : attachmentsFileEntries) {
        String path = ExportImportPathUtil.getModelPath(kbArticle, fileEntry.getTitle());

        Element fileEntryElement = portletDataContext.getExportDataElement(fileEntry);

        fileEntryElement.addAttribute("path", path);
        fileEntryElement.addAttribute("file-name", fileEntry.getTitle());

        portletDataContext.addZipEntry(path, fileEntry.getContentStream());

        portletDataContext.addReferenceElement(kbArticle, kbArticleElement, fileEntry,
                PortletDataContext.REFERENCE_TYPE_WEAK, false);
    }/*  w  w  w  .  j  ava 2 s.  com*/
}

From source file:com.liferay.knowledgebase.admin.util.KBStructureContentUtil.java

License:Open Source License

public static String addKBStructureFields(String localizedLanguageId, List<KBStructureField> kbStructureFields)
        throws SystemException {

    Document document = SAXReaderUtil.createDocument();

    Element rootElement = document.addElement("kb-structure");

    rootElement.addAttribute("default-language-id", localizedLanguageId);

    Element kbStructureContentElement = rootElement.addElement("kb-structure-content");

    kbStructureContentElement.addAttribute("language-id", localizedLanguageId);

    for (KBStructureField kbStructureField : kbStructureFields) {
        String kbStructureFieldId = String.valueOf(CounterLocalServiceUtil.increment());
        String kbStructureFieldName = StringEscapeUtils.escapeXml(kbStructureField.getName());
        String kbStructureFieldLabel = StringEscapeUtils.escapeXml(kbStructureField.getLabel());
        String kbStructureFieldType = StringEscapeUtils.escapeXml(kbStructureField.getType());

        Element kbStructureFieldElement = kbStructureContentElement.addElement("kb-structure-field");

        kbStructureFieldElement.addAttribute("kb-structure-field-id", kbStructureFieldId);
        kbStructureFieldElement.addAttribute("name", kbStructureFieldName);
        kbStructureFieldElement.addAttribute("label", kbStructureFieldLabel);
        kbStructureFieldElement.addAttribute("type", kbStructureFieldType);

        for (KBStructureOption kbStructureOption : kbStructureField.getKbStructureOptions()) {

            String kbStructureOptionId = String.valueOf(CounterLocalServiceUtil.increment());
            String kbStructureOptionLabel = StringEscapeUtils.escapeXml(kbStructureOption.getLabel());
            String kbStructureOptionValue = StringEscapeUtils.escapeXml(kbStructureOption.getValue());

            Element kbStructureOptionElement = kbStructureFieldElement.addElement("kb-structure-option");

            kbStructureOptionElement.addAttribute("kb-structure-option-id", kbStructureOptionId);
            kbStructureOptionElement.addAttribute("label", kbStructureOptionLabel);
            kbStructureOptionElement.addAttribute("value", kbStructureOptionValue);
        }/* www.j av  a2s.c o m*/
    }

    try {
        return document.formattedString();
    } catch (IOException ioe) {
        return document.asXML();
    }
}

From source file:com.liferay.knowledgebase.admin.util.KBStructureContentUtil.java

License:Open Source License

public static String unescapeContent(String content) throws Exception {
    if (!Validator.isXml(content)) {
        return StringPool.BLANK;
    }/*w  w w . j  a v  a  2  s . c  o m*/

    Document document = SAXReaderUtil.read(content);

    Element rootElement = document.getRootElement();

    for (Element kbStructureContentElement : rootElement.elements()) {
        for (Element kbStructureFieldElement : kbStructureContentElement.elements()) {

            String kbStructureFieldName = StringEscapeUtils
                    .unescapeXml(kbStructureFieldElement.attributeValue("name"));
            String kbStructureFieldLabel = StringEscapeUtils
                    .unescapeXml(kbStructureFieldElement.attributeValue("label"));
            String kbStructureFieldType = StringEscapeUtils
                    .unescapeXml(kbStructureFieldElement.attributeValue("type"));

            kbStructureFieldElement.addAttribute("name", kbStructureFieldName);
            kbStructureFieldElement.addAttribute("label", kbStructureFieldLabel);
            kbStructureFieldElement.addAttribute("type", kbStructureFieldType);

            for (Element kbStructureOptionElement : kbStructureFieldElement.elements()) {

                String kbStructureOptionLabel = StringEscapeUtils
                        .unescapeXml(kbStructureOptionElement.attributeValue("label"));
                String kbStructureOptionValue = StringEscapeUtils
                        .unescapeXml(kbStructureOptionElement.attributeValue("value"));

                kbStructureOptionElement.addAttribute("label", kbStructureOptionLabel);
                kbStructureOptionElement.addAttribute("value", kbStructureOptionValue);
            }
        }
    }

    return document.formattedString();
}

From source file:com.liferay.knowledgebase.admin.util.KBStructureContentUtil.java

License:Open Source License

public static String updateKBStructureFields(String localizedLanguageId,
        List<KBStructureField> kbStructureFields, String content) throws PortalException, SystemException {

    Document document = null;/*from w  w w.j a  va  2  s.co  m*/

    try {
        document = SAXReaderUtil.read(content);
    } catch (DocumentException de) {
        throw new PortalException(de);
    }

    Element rootElement = document.getRootElement();

    Element oldKBStructureContentElement = (Element) rootElement
            .selectSingleNode("kb-structure-content[@language-id='" + localizedLanguageId + "']");

    if (oldKBStructureContentElement != null) {
        oldKBStructureContentElement.detach();
    }

    Element newKBStructureContentElement = rootElement.addElement("kb-structure-content");

    newKBStructureContentElement.addAttribute("language-id", localizedLanguageId);

    for (KBStructureField kbStructureField : kbStructureFields) {
        String kbStructureFieldId = kbStructureField.getKbStructureFieldId();
        String kbStructureFieldName = StringEscapeUtils.escapeXml(kbStructureField.getName());
        String kbStructureFieldLabel = StringEscapeUtils.escapeXml(kbStructureField.getLabel());
        String kbStructureFieldType = StringEscapeUtils.escapeXml(kbStructureField.getType());

        if (Validator.isNull(kbStructureFieldId)) {
            kbStructureFieldId = String.valueOf(CounterLocalServiceUtil.increment());
        }

        Element kbStructureFieldElement = newKBStructureContentElement.addElement("kb-structure-field");

        kbStructureFieldElement.addAttribute("kb-structure-field-id", kbStructureFieldId);
        kbStructureFieldElement.addAttribute("name", kbStructureFieldName);
        kbStructureFieldElement.addAttribute("label", kbStructureFieldLabel);
        kbStructureFieldElement.addAttribute("type", kbStructureFieldType);

        List<KBStructureOption> kbStructureOptions = kbStructureField.getKbStructureOptions();

        for (KBStructureOption kbStructureOption : kbStructureOptions) {
            String kbStructureOptionId = kbStructureOption.getKbStructureOptionId();
            String kbStructureOptionLabel = StringEscapeUtils.escapeXml(kbStructureOption.getLabel());
            String kbStructureOptionValue = StringEscapeUtils.escapeXml(kbStructureOption.getValue());

            if (Validator.isNull(kbStructureOptionId)) {
                kbStructureOptionId = String.valueOf(CounterLocalServiceUtil.increment());
            }

            Element kbStructureOptionElement = kbStructureFieldElement.addElement("kb-structure-option");

            kbStructureOptionElement.addAttribute("kb-structure-option-id", kbStructureOptionId);
            kbStructureOptionElement.addAttribute("label", kbStructureOptionLabel);
            kbStructureOptionElement.addAttribute("value", kbStructureOptionValue);
        }
    }

    Map<String, Element> elements = new TreeMap<String, Element>();

    for (Element element : rootElement.elements()) {
        String languageId = element.attributeValue("language-id");

        elements.put(languageId, (Element) element.detach());
    }

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

    Element defaultKBStructureContentElement = elements.remove(defaultLanguageId);

    rootElement.add(defaultKBStructureContentElement);

    if (!localizedLanguageId.equals(defaultLanguageId)) {
        for (Map.Entry<String, Element> entry : elements.entrySet()) {
            rootElement.add(entry.getValue());
        }
    } else {
        updateLocalizations(rootElement, defaultKBStructureContentElement, elements);
    }

    try {
        return document.formattedString();
    } catch (IOException ioe) {
        return document.asXML();
    }
}

From source file:com.liferay.layout.admin.web.internal.exportimport.data.handler.LayoutStagedModelDataHandler.java

License:Open Source License

@Override
protected void doExportStagedModel(PortletDataContext portletDataContext, Layout layout) throws Exception {

    Element layoutElement = portletDataContext.getExportDataElement(layout);

    populateElementLayoutMetadata(layoutElement, layout);

    layoutElement.addAttribute(Constants.ACTION, Constants.ADD);

    portletDataContext.setPlid(layout.getPlid());

    long parentLayoutId = layout.getParentLayoutId();

    if (parentLayoutId != LayoutConstants.DEFAULT_PARENT_LAYOUT_ID) {
        Layout parentLayout = _layoutLocalService.fetchLayout(layout.getGroupId(), layout.isPrivateLayout(),
                parentLayoutId);//from   w w  w. j  a va  2 s .  c  o m

        if (parentLayout != null) {
            StagedModelDataHandlerUtil.exportReferenceStagedModel(portletDataContext, layout, parentLayout,
                    PortletDataContext.REFERENCE_TYPE_PARENT);

            layoutElement.addAttribute("parent-layout-uuid", parentLayout.getUuid());
        }
    }

    List<LayoutFriendlyURL> layoutFriendlyURLs = _layoutFriendlyURLLocalService
            .getLayoutFriendlyURLs(layout.getPlid());

    for (LayoutFriendlyURL layoutFriendlyURL : layoutFriendlyURLs) {
        StagedModelDataHandlerUtil.exportReferenceStagedModel(portletDataContext, layout, layoutFriendlyURL,
                PortletDataContext.REFERENCE_TYPE_DEPENDENCY);
    }

    if (layout.isIconImage()) {
        exportLayoutIconImage(portletDataContext, layout, layoutElement);
    }

    if (Objects.equals(layout.getType(), LayoutConstants.TYPE_LINK_TO_LAYOUT)) {

        exportLinkedLayout(portletDataContext, layout, layoutElement);
    } else if (Objects.equals(layout.getType(), LayoutConstants.TYPE_PORTLET)) {

        exportLayoutPortlets(portletDataContext, layout, layoutElement);
    }

    fixExportTypeSettings(layout);

    exportTheme(portletDataContext, layout);

    portletDataContext.addClassedModel(layoutElement, ExportImportPathUtil.getModelPath(layout),
            LayoutStagingUtil.mergeLayoutRevisionIntoLayout(layout));
}

From source file:com.liferay.layout.admin.web.internal.exportimport.data.handler.LayoutStagedModelDataHandler.java

License:Open Source License

protected void exportLinkedLayout(PortletDataContext portletDataContext, Layout layout, Element layoutElement)
        throws Exception {

    UnicodeProperties typeSettingsProperties = layout.getTypeSettingsProperties();

    long linkToLayoutId = GetterUtil
            .getLong(typeSettingsProperties.getProperty("linkToLayoutId", StringPool.BLANK));

    if (linkToLayoutId > 0) {
        try {/*w w w .j  a v a  2  s .co  m*/
            Layout linkedToLayout = _layoutLocalService.getLayout(portletDataContext.getScopeGroupId(),
                    layout.isPrivateLayout(), linkToLayoutId);

            StagedModelDataHandlerUtil.exportReferenceStagedModel(portletDataContext, layout, linkedToLayout,
                    PortletDataContext.REFERENCE_TYPE_STRONG);

            layoutElement.addAttribute("linked-to-layout-uuid", linkedToLayout.getUuid());
        } catch (NoSuchLayoutException nsle) {

            // LPS-52675

            if (_log.isDebugEnabled()) {
                _log.debug(nsle, nsle);
            }
        }
    }
}

From source file:com.liferay.layout.admin.web.internal.exportimport.data.handler.LayoutStagedModelDataHandler.java

License:Open Source License

protected void populateElementLayoutMetadata(Element layoutElement, Layout layout) throws Exception {

    LayoutStagingHandler layoutStagingHandler = LayoutStagingUtil.getLayoutStagingHandler(layout);

    if (layoutStagingHandler != null) {
        LayoutRevision layoutRevision = layoutStagingHandler.getLayoutRevision();

        if (layoutRevision != null) {
            layoutElement.addAttribute("layout-revision-id",
                    String.valueOf(layoutRevision.getLayoutRevisionId()));
            layoutElement.addAttribute("layout-branch-id", String.valueOf(layoutRevision.getLayoutBranchId()));

            LayoutBranch layoutBranch = layoutRevision.getLayoutBranch();

            layoutElement.addAttribute("layout-branch-name", String.valueOf(layoutBranch.getName()));
        }//from w  w  w. j  av  a2s .  c om
    }

    layoutElement.addAttribute("layout-uuid", layout.getUuid());
    layoutElement.addAttribute("layout-id", String.valueOf(layout.getLayoutId()));
    layoutElement.addAttribute("layout-priority", String.valueOf(layout.getPriority()));

    String layoutPrototypeUuid = layout.getLayoutPrototypeUuid();

    if (Validator.isNotNull(layoutPrototypeUuid)) {
        LayoutPrototype layoutPrototype = _layoutPrototypeLocalService
                .getLayoutPrototypeByUuidAndCompanyId(layoutPrototypeUuid, layout.getCompanyId());

        layoutElement.addAttribute("layout-prototype-uuid", layoutPrototypeUuid);
        layoutElement.addAttribute("layout-prototype-name", layoutPrototype.getName(LocaleUtil.getDefault()));
    }
}