List of usage examples for com.liferay.portal.kernel.xml Element addElement
public Element addElement(QName qName);
From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java
License:Open Source License
protected void updateContentDynamicElement(Element dynamicElementElement, DDMStructure ddmStructure, Fields ddmFields, String fieldName, DDMFieldsCounter ddmFieldsCounter) throws Exception { String fieldType = ddmStructure.getFieldType(fieldName); String indexType = ddmStructure.getFieldProperty(fieldName, "indexType"); boolean multiple = GetterUtil.getBoolean(ddmStructure.getFieldProperty(fieldName, "multiple")); String type = _ddmTypesToJournalTypes.get(fieldType); if (type == null) { type = fieldType;//from w w w . j a va 2 s . co m } dynamicElementElement.addAttribute("type", type); dynamicElementElement.addAttribute("index-type", indexType); int count = ddmFieldsCounter.get(fieldName); String instanceId = getFieldInstanceId(ddmFields, fieldName, count); dynamicElementElement.addAttribute("instance-id", instanceId); Field ddmField = ddmFields.get(fieldName); if (!ddmStructure.isFieldTransient(fieldName) && (ddmField != null)) { for (Locale locale : ddmField.getAvailableLocales()) { Element dynamicContentElement = dynamicElementElement.addElement("dynamic-content"); dynamicContentElement.addAttribute("language-id", LocaleUtil.toLanguageId(locale)); Serializable fieldValue = ddmField.getValue(locale, count); String valueString = String.valueOf(fieldValue); updateDynamicContentValue(dynamicContentElement, fieldType, multiple, valueString.trim()); } } ddmFieldsCounter.incrementKey(fieldName); }
From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java
License:Open Source License
protected void updateDynamicContentValue(Element dynamicContentElement, String fieldType, boolean multiple, String fieldValue) throws Exception { if (DDMFormFieldType.CHECKBOX.equals(fieldType)) { if (fieldValue.equals(Boolean.FALSE.toString())) { fieldValue = StringPool.BLANK; }//from w w w . j ava2s .c o m dynamicContentElement.addCDATA(fieldValue); } else if (DDMFormFieldType.LINK_TO_PAGE.equals(fieldType) && Validator.isNotNull(fieldValue)) { JSONObject jsonObject = JSONFactoryUtil.createJSONObject(fieldValue); long groupId = jsonObject.getLong("groupId"); long layoutId = jsonObject.getLong("layoutId"); boolean privateLayout = jsonObject.getBoolean("privateLayout"); StringBundler sb = new StringBundler((groupId > 0) ? 5 : 3); sb.append(layoutId); sb.append(StringPool.AT); if (privateLayout) { Group group = _groupLocalService.fetchGroup(groupId); if (group == null) { sb.append("private"); } else if (group.isUser()) { sb.append("private-user"); } else { sb.append("private-group"); } } else { sb.append("public"); } if (groupId > 0) { sb.append(StringPool.AT); sb.append(groupId); } dynamicContentElement.addCDATA(sb.toString()); } else if (DDMFormFieldType.SELECT.equals(fieldType) && Validator.isNotNull(fieldValue)) { JSONArray jsonArray = null; try { jsonArray = JSONFactoryUtil.createJSONArray(fieldValue); } catch (JSONException jsone) { return; } if (multiple) { for (int i = 0; i < jsonArray.length(); i++) { Element optionElement = dynamicContentElement.addElement("option"); optionElement.addCDATA(jsonArray.getString(i)); } } else { dynamicContentElement.addCDATA(jsonArray.getString(0)); } } else { dynamicContentElement.addCDATA(fieldValue); } }
From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java
License:Open Source License
protected void updateJournalXSDDynamicElement(Element element, String defaultLanguageId) { 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 w w w . java2 s .c o m if (type.equals("multi-list")) { element.addAttribute("multiple", "true"); } else { Element parentElement = element.getParent(); String parentType = parentElement.attributeValue("type"); if ((parentType != null) && parentType.equals("select")) { metadataElement.addAttribute("locale", defaultLanguageId); addMetadataEntry(metadataElement, "label", decodeURL(name)); removeAttribute(element, "index-type"); element.addAttribute("name", "option" + parentElement.attributeValue("name") + StringUtil.randomString(8)); element.addAttribute("type", "option"); element.addAttribute("value", decodeURL(type)); 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")); if (!type.equals("selection_break")) { 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", defaultLanguageId); 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("ddm-image")) { element.addAttribute("fieldNamespace", "ddm"); element.addAttribute("readOnly", "false"); } element.add(metadataElement.detach()); List<Element> dynamicElementElements = element.elements("dynamic-element"); for (Element dynamicElementElement : dynamicElementElements) { updateJournalXSDDynamicElement(dynamicElementElement, defaultLanguageId); } }
From source file:com.liferay.journal.internal.util.JournalConverterImpl.java
License:Open Source License
@Override public String getContent(DDMStructure ddmStructure, Fields ddmFields) throws Exception { Document document = SAXReaderUtil.createDocument(); Element rootElement = document.addElement("root"); String availableLocales = getAvailableLocales(ddmFields); rootElement.addAttribute("available-locales", availableLocales); Locale defaultLocale = ddmFields.getDefaultLocale(); rootElement.addAttribute("default-locale", LocaleUtil.toLanguageId(defaultLocale)); DDMFieldsCounter ddmFieldsCounter = new DDMFieldsCounter(); for (String fieldName : ddmStructure.getRootFieldNames()) { int repetitions = countFieldRepetition(ddmFields, fieldName, null, -1); for (int i = 0; i < repetitions; i++) { Element dynamicElementElement = rootElement.addElement("dynamic-element"); dynamicElementElement.addAttribute("name", fieldName); updateContentDynamicElement(dynamicElementElement, ddmStructure, ddmFields, ddmFieldsCounter); }/* w w w . ja v a2 s .c om*/ } try { return XMLUtil.formatXML(document.asXML()); } catch (Exception e) { throw new ArticleContentException("Unable to read content with an XML parser", e); } }
From source file:com.liferay.journal.lar.test.ManifestSummaryTest.java
License:Open Source License
@Override protected void validateExport(PortletDataContext portletDataContext, StagedModel stagedModel, Map<String, List<StagedModel>> dependentStagedModelsMap) throws Exception { ManifestSummary manifestSummary = portletDataContext.getManifestSummary(); Map<String, LongWrapper> modelAdditionCounters = manifestSummary.getModelAdditionCounters(); Assert.assertEquals(4, modelAdditionCounters.size()); Assert.assertEquals(1, manifestSummary .getModelAdditionCount(new StagedModelType(DDMStructure.class, JournalArticle.class))); Assert.assertEquals(1,//from w w w.j a v a 2s .c o m manifestSummary.getModelAdditionCount(new StagedModelType(DDMTemplate.class, DDMStructure.class))); Assert.assertEquals(1, manifestSummary.getModelAdditionCount(new StagedModelType(JournalArticle.class))); Assert.assertEquals(1, manifestSummary.getModelAdditionCount(new StagedModelType(JournalFolder.class))); Document document = SAXReaderUtil.createDocument(); Element rootElement = document.addElement("root"); Element headerElement = rootElement.addElement("header"); DateFormat dateFormat = DateFormatFactoryUtil.getSimpleDateFormat(Time.RFC822_FORMAT); String rfc822DateString = Time.getRFC822(); _exportDate = dateFormat.parse(rfc822DateString); headerElement.addAttribute("export-date", rfc822DateString); ExportImportHelperUtil.writeManifestSummary(document, manifestSummary); zipWriter.addEntry("/manifest.xml", document.asXML()); }
From source file:com.liferay.journal.test.util.JournalTestUtil.java
License:Open Source License
public static Element addMetadataElement(Element element, String locale, String label) { Element metadataElement = element.addElement("meta-data"); metadataElement.addAttribute("locale", locale); Element entryElement = metadataElement.addElement("entry"); entryElement.addAttribute("name", "label"); entryElement.addCDATA(label);// w w w .j a v a 2 s. co m return entryElement; }
From source file:com.liferay.journal.transformer.test.JournalTransformerTest.java
License:Open Source License
@Test public void testLocaleTransformerListenerNestedFieldWithNoTranslation() throws Exception { Map<String, String> tokens = getTokens(); Map<Locale, String> contents = new HashMap<>(); contents.put(LocaleUtil.US, "Joe Bloggs"); String xml = DDMStructureTestUtil.getSampleStructuredContent(contents, LanguageUtil.getLanguageId(LocaleUtil.US)); Document document = UnsecureSAXReaderUtil.read(xml); Element rootElement = document.getRootElement(); Attribute availableLocalesAttribute = rootElement.attribute("available-locales"); availableLocalesAttribute.setValue("en_US,pt_BR"); Element dynamicElement = (Element) document.selectSingleNode("//dynamic-element"); dynamicElement.addElement("nestedElement"); String script = "$name.getData()"; String content = JournalUtil.transform(null, tokens, Constants.VIEW, "en_US", document, null, script, TemplateConstants.LANG_TYPE_VM); Assert.assertEquals("Joe Bloggs", content); content = JournalUtil.transform(null, tokens, Constants.VIEW, "pt_BR", document, null, script, TemplateConstants.LANG_TYPE_VM); Assert.assertEquals("Joe Bloggs", content); }
From source file:com.liferay.journal.util.impl.JournalConverterImpl.java
License:Open Source License
protected void updateDynamicContentValue(Element dynamicContentElement, String fieldType, boolean multiple, String fieldValue) throws Exception { if (DDMImpl.TYPE_CHECKBOX.equals(fieldType)) { if (fieldValue.equals(Boolean.FALSE.toString())) { fieldValue = StringPool.BLANK; }/*from w w w. ja v a 2 s.c o m*/ dynamicContentElement.addCDATA(fieldValue); } else if (DDMImpl.TYPE_DDM_LINK_TO_PAGE.equals(fieldType) && Validator.isNotNull(fieldValue)) { JSONObject jsonObject = JSONFactoryUtil.createJSONObject(fieldValue); long groupId = jsonObject.getLong("groupId"); long layoutId = jsonObject.getLong("layoutId"); boolean privateLayout = jsonObject.getBoolean("privateLayout"); StringBundler sb = new StringBundler((groupId > 0) ? 5 : 3); sb.append(layoutId); sb.append(StringPool.AT); if (privateLayout) { Group group = _groupLocalService.fetchGroup(groupId); if (group == null) { sb.append("private"); } else if (group.isUser()) { sb.append("private-user"); } else { sb.append("private-group"); } } else { sb.append("public"); } if (groupId > 0) { sb.append(StringPool.AT); sb.append(groupId); } dynamicContentElement.addCDATA(sb.toString()); } else if (DDMImpl.TYPE_SELECT.equals(fieldType) && Validator.isNotNull(fieldValue)) { JSONArray jsonArray = null; try { jsonArray = JSONFactoryUtil.createJSONArray(fieldValue); } catch (JSONException jsone) { return; } if (multiple) { for (int i = 0; i < jsonArray.length(); i++) { Element optionElement = dynamicContentElement.addElement("option"); optionElement.addCDATA(jsonArray.getString(i)); } } else { dynamicContentElement.addCDATA(jsonArray.getString(0)); } } else { dynamicContentElement.addCDATA(fieldValue); } }
From source file:com.liferay.journal.util.impl.JournalUtil.java
License:Open Source License
public static void addReservedEl(Element rootElement, Map<String, String> tokens, String name, String value) { // XML/*from w w w. j av a 2 s.c o m*/ if (rootElement != null) { Element dynamicElementElement = rootElement.addElement("dynamic-element"); dynamicElementElement.addAttribute("name", name); dynamicElementElement.addAttribute("type", "text"); Element dynamicContentElement = dynamicElementElement.addElement("dynamic-content"); //dynamicContentElement.setText("<![CDATA[" + value + "]]>"); dynamicContentElement.setText(value); } // Tokens tokens.put(StringUtil.replace(name, CharPool.DASH, CharPool.UNDERLINE), value); }
From source file:com.liferay.knowledgebase.admin.lar.AdminPortletDataHandlerImpl.java
License:Open Source License
protected void exportKBArticle(PortletDataContext portletDataContext, Element rootElement, String path, KBArticle kbArticle) throws Exception { Element kbArticleElement = rootElement.addElement("kb-article"); exportKBArticleVersions(portletDataContext, kbArticleElement, kbArticle.getResourcePrimKey()); exportKBArticleAttachments(portletDataContext, rootElement, kbArticle); portletDataContext.addClassedModel(kbArticleElement, path, kbArticle, _NAMESPACE); }