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.knowledgebase.admin.lar.AdminPortletDataHandlerImpl.java

License:Open Source License

protected void importKBArticles(PortletDataContext portletDataContext, Element rootElement) throws Exception {

    long importId = CounterLocalServiceUtil.increment();

    Map<String, String> dirNames = new HashMap<String, String>();

    try {/*www  .java2  s. co m*/
        DLStoreUtil.addDirectory(portletDataContext.getCompanyId(), CompanyConstants.SYSTEM,
                "knowledgebase/temp/import/" + importId);

        importKBArticleAttachments(portletDataContext, importId, dirNames, rootElement);

        List<Element> kbArticleElements = rootElement.elements("kb-article");

        for (Element kbArticleElement : kbArticleElements) {
            String path = kbArticleElement.attributeValue("path");

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

            KBArticle kbArticle = (KBArticle) portletDataContext.getZipEntryAsObject(path);

            importKBArticle(portletDataContext, dirNames, kbArticleElement, kbArticle);
        }
    } finally {
        DLStoreUtil.deleteDirectory(portletDataContext.getCompanyId(), CompanyConstants.SYSTEM,
                "knowledgebase/temp/import/" + importId);
    }
}

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

License:Open Source License

protected KBArticle importKBArticleVersions(PortletDataContext portletDataContext, String uuid,
        long parentResourcePrimKey, String dirName, Element kbArticleElement) throws Exception {

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

    List<Element> kbArticleElements = versionsElement.elements("kb-article");

    KBArticle importedKBArticle = null;//from w w w .  java  2  s . co m

    for (Element curKBArticleElement : kbArticleElements) {
        KBArticle curKBArticle = (KBArticle) portletDataContext
                .getZipEntryAsObject(curKBArticleElement.attributeValue("path"));

        long curUserId = portletDataContext.getUserId(curKBArticle.getUserUuid());
        String[] curSections = AdminUtil.unescapeSections(curKBArticle.getSections());
        String curDirName = StringPool.BLANK;

        if (curKBArticle.isMain()) {
            curDirName = dirName;
        }

        ServiceContext serviceContext = portletDataContext.createServiceContext(curKBArticleElement,
                curKBArticle, _NAMESPACE);

        if (importedKBArticle == null) {
            serviceContext.setUuid(uuid);

            importedKBArticle = KBArticleLocalServiceUtil.addKBArticle(curUserId, parentResourcePrimKey,
                    curKBArticle.getTitle(), curKBArticle.getContent(), curKBArticle.getDescription(),
                    curSections, curDirName, serviceContext);
        } else {
            importedKBArticle = KBArticleLocalServiceUtil.updateKBArticle(curUserId,
                    importedKBArticle.getResourcePrimKey(), curKBArticle.getTitle(), curKBArticle.getContent(),
                    curKBArticle.getDescription(), curSections, curDirName, serviceContext);
        }
    }

    return importedKBArticle;
}

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

License:Open Source License

protected void importKBComments(PortletDataContext portletDataContext, Element rootElement) throws Exception {

    List<Element> kbCommentElements = rootElement.elements("kb-comment");

    for (Element kbCommentElement : kbCommentElements) {
        String path = kbCommentElement.attributeValue("path");

        if (!portletDataContext.isPathNotProcessed(path)) {
            continue;
        }/*from www. j  a  va 2  s  .co  m*/

        KBComment kbComment = (KBComment) portletDataContext.getZipEntryAsObject(path);

        importKBComment(portletDataContext, kbCommentElement, kbComment);
    }
}

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

License:Open Source License

protected void importKBTemplates(PortletDataContext portletDataContext, Element rootElement) throws Exception {

    for (Element kbTemplateElement : rootElement.elements("kb-template")) {
        String path = kbTemplateElement.attributeValue("path");

        if (!portletDataContext.isPathNotProcessed(path)) {
            continue;
        }/*from  ww  w.jav  a2  s  .  com*/

        KBTemplate kbTemplate = (KBTemplate) portletDataContext.getZipEntryAsObject(path);

        importKBTemplate(portletDataContext, kbTemplateElement, kbTemplate);
    }
}

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

License:Open Source License

protected void importKBArticleAttachments(PortletDataContext portletDataContext, KBArticle kbArticle,
        KBArticle importedKBArticle) throws Exception {

    List<Element> dlFileEntryElements = portletDataContext.getReferenceDataElements(kbArticle,
            DLFileEntry.class);

    ServiceContext serviceContext = new ServiceContext();

    serviceContext.setCompanyId(portletDataContext.getCompanyId());
    serviceContext.setScopeGroupId(portletDataContext.getScopeGroupId());

    InputStream inputStream = null;

    for (Element dlFileEntryElement : dlFileEntryElements) {
        try {//from   www.j  a  v  a2 s . c om
            byte[] bytes = portletDataContext.getZipEntryAsByteArray(dlFileEntryElement.attributeValue("path"));

            inputStream = new UnsyncByteArrayInputStream(bytes);

            String fileName = dlFileEntryElement.attributeValue("file-name");

            String mimeType = KnowledgeBaseUtil.getMimeType(bytes, fileName);

            PortletFileRepositoryUtil.addPortletFileEntry(portletDataContext.getScopeGroupId(),
                    portletDataContext.getUserId(importedKBArticle.getUserUuid()), KBArticle.class.getName(),
                    importedKBArticle.getClassPK(), PortletKeys.KNOWLEDGE_BASE_ADMIN,
                    importedKBArticle.getAttachmentsFolderId(), inputStream, fileName, mimeType, true);
        } catch (DuplicateFileException dfe) {
            continue;
        } finally {
            StreamUtil.cleanUp(inputStream);
        }
    }
}

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

License:Open Source License

public static String deleteKBStructureFields(String localizedLanguageId, String content)
        throws PortalException {

    Document document = null;//www.j a v  a 2s .c  om

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

    Element rootElement = document.getRootElement();

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

        if (!languageId.equals(localizedLanguageId)) {
            continue;
        }

        kbStructureContentElement.detach();

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

    return content;
}

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

License:Open Source License

public static List<KBStructureField> getKBStructureFields(String localizedLanguageId, String content)
        throws Exception {

    if (!Validator.isXml(content)) {
        return new ArrayList<KBStructureField>();
    }//from   w  w w.j a va2 s.c  om

    Document document = SAXReaderUtil.read(content);

    List<KBStructureField> kbStructureFields = new ArrayList<KBStructureField>();

    Element rootElement = document.getRootElement();

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

    if (kbStructureContentElement == null) {
        String value = rootElement.attributeValue("default-language-id");

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

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

        String kbStructureFieldId = kbStructureFieldElement.attributeValue("kb-structure-field-id");
        String kbStructureFieldName = StringEscapeUtils
                .unescapeXml(kbStructureFieldElement.attributeValue("name"));
        String kbStructureFieldLabel = StringEscapeUtils
                .unescapeXml(kbStructureFieldElement.attributeValue("label"));
        String kbStructureFieldType = StringEscapeUtils
                .unescapeXml(kbStructureFieldElement.attributeValue("type"));

        KBStructureField kbStructureField = new KBStructureFieldImpl();

        kbStructureField.setKbStructureFieldId(kbStructureFieldId);
        kbStructureField.setName(kbStructureFieldName);
        kbStructureField.setLabel(kbStructureFieldLabel);
        kbStructureField.setType(kbStructureFieldType);

        List<KBStructureOption> kbStructureOptions = new ArrayList<KBStructureOption>();

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

            String kbStructureOptionId = kbStructureOptionElement.attributeValue("kb-structure-option-id");
            String kbStructureOptionLabel = StringEscapeUtils
                    .unescapeXml(kbStructureOptionElement.attributeValue("label"));
            String kbStructureOptionValue = StringEscapeUtils
                    .unescapeXml(kbStructureOptionElement.attributeValue("value"));

            KBStructureOption kbStructureOption = new KBStructureOptionImpl();

            kbStructureOption.setKbStructureOptionId(kbStructureOptionId);
            kbStructureOption.setLabel(kbStructureOptionLabel);
            kbStructureOption.setValue(kbStructureOptionValue);

            kbStructureOptions.add(kbStructureOption);
        }

        kbStructureField.setKbStructureOptions(kbStructureOptions);

        kbStructureFields.add(kbStructureField);
    }

    return kbStructureFields;
}

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;
    }//from   w ww. j a  v a  2s .  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  ww  . j  a  va 2 s  . c om

    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.knowledgebase.admin.util.KBStructureContentUtil.java

License:Open Source License

protected static Element updateLocalizations(Element rootElement, Element defaultKBStructureContentElement,
        Map<String, Element> elements) {

    for (Map.Entry<String, Element> entry : elements.entrySet()) {
        Element oldKBStructureContentElement = entry.getValue();

        Element newKBStructureContentElement = oldKBStructureContentElement.createCopy();

        for (Element newKBStructureFieldElement : newKBStructureContentElement.elements()) {

            newKBStructureFieldElement.detach();
        }/*  w ww.j a v  a2 s.  com*/

        for (Element defaultKBStructureFieldElement : defaultKBStructureContentElement.elements()) {

            String defaultKBStructureFieldId = defaultKBStructureFieldElement
                    .attributeValue("kb-structure-field-id");

            Element oldKBStructureFieldElement = (Element) oldKBStructureContentElement.selectSingleNode(
                    "kb-structure-field[@kb-structure-field-id='" + defaultKBStructureFieldId + "']");

            if (oldKBStructureFieldElement == null) {
                newKBStructureContentElement.add(defaultKBStructureFieldElement.createCopy());

                continue;
            }

            Element newKBStructureFieldElement = oldKBStructureFieldElement.createCopy();

            for (Element newKBStructureOptionElement : newKBStructureFieldElement.elements()) {

                newKBStructureOptionElement.detach();
            }

            for (Element defaultKBStructureOptionElement : defaultKBStructureFieldElement.elements()) {

                String defaultKBStructureOptionId = defaultKBStructureOptionElement
                        .attributeValue("kb-structure-option-id");

                Element oldKBStructureOptionElement = (Element) oldKBStructureFieldElement.selectSingleNode(
                        "kb-structure-option[@kb-structure-option-id='" + defaultKBStructureOptionId + "']");

                if (oldKBStructureOptionElement == null) {
                    newKBStructureFieldElement.add(defaultKBStructureOptionElement.createCopy());
                } else {
                    newKBStructureFieldElement.add(oldKBStructureOptionElement.createCopy());
                }
            }

            newKBStructureContentElement.add(newKBStructureFieldElement);
        }

        rootElement.add(newKBStructureContentElement);
    }

    return rootElement;
}