List of usage examples for com.liferay.portal.kernel.xml Element elements
public List<Element> elements(String name);
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; }