protected DDMFieldsCounter getFieldsCounter( HttpServletRequest request, HttpServletResponse response, Fields fields, String portletNamespace, String namespace) { String fieldsCounterKey = portletNamespace + namespace + "fieldsCount"; DDMFieldsCounter ddmFieldsCounter = (DDMFieldsCounter)request.getAttribute(fieldsCounterKey); if (ddmFieldsCounter == null) { ddmFieldsCounter = new DDMFieldsCounter(); request.setAttribute(fieldsCounterKey, ddmFieldsCounter); } return ddmFieldsCounter; }
protected void clearDDMFieldsCounter( DDMFormFieldRenderingContext ddmFormFieldRenderingContext) { HttpServletRequest request = ddmFormFieldRenderingContext.getHttpServletRequest(); String fieldsCounterKey = ddmFormFieldRenderingContext.getPortletNamespace() + ddmFormFieldRenderingContext.getNamespace() + "fieldsCount"; DDMFieldsCounter ddmFieldsCounter = (DDMFieldsCounter)request.getAttribute(fieldsCounterKey); if (ddmFieldsCounter != null) { ddmFieldsCounter.clear(); } }
@Override public Integer get(Object key) { if (!containsKey(key)) { put(key, 0); } return super.get(key); }
protected void setDDMFormFieldValueValues( DDMFormFieldValue ddmFormFieldValue, Map<String, DDMFormField> ddmFormFieldMap, Fields ddmFields, DDMFieldsCounter ddmFieldsCounter) throws PortalException { String fieldName = ddmFormFieldValue.getName(); DDMFormField ddmFormField = ddmFormFieldMap.get(fieldName); if (Validator.isNotNull(ddmFormField.getDataType())) { if (ddmFormField.isLocalizable()) { setDDMFormFieldValueLocalizedValue( ddmFormFieldValue, ddmFields.get(fieldName), ddmFieldsCounter.get(fieldName)); } else { setDDMFormFieldValueUnlocalizedValue( ddmFormFieldValue, ddmFields.get(fieldName), ddmFieldsCounter.get(fieldName)); } } ddmFieldsCounter.incrementKey(fieldName); }
protected void setDDMFormFieldValueInstanceId( DDMFormFieldValue ddmFormFieldValue, Element rootElement, DDMFieldsCounter ddmFieldsCounter) { String name = ddmFormFieldValue.getName(); String instanceId = getDDMFieldInstanceId( rootElement, name, ddmFieldsCounter.get(name)); ddmFormFieldValue.setInstanceId(instanceId); }
protected void setDDMFormFieldValueValues( DDMFormFieldValue ddmFormFieldValue, DDMFormField ddmFormField, Element rootElement, DDMFieldsCounter ddmFieldsCounter) { String fieldName = ddmFormFieldValue.getName(); Element dynamicElement = getDynamicElementElementByName( rootElement, fieldName); if (Validator.isNotNull(ddmFormField.getDataType()) && (dynamicElement != null)) { if (ddmFormField.isLocalizable()) { setDDMFormFieldValueLocalizedValue( ddmFormFieldValue, dynamicElement, ddmFieldsCounter.get(fieldName)); } else { setDDMFormFieldValueUnlocalizedValue( ddmFormFieldValue, dynamicElement, ddmFieldsCounter.get(fieldName)); } } ddmFieldsCounter.incrementKey(fieldName); }
protected void setDDMFormFieldValueInstanceId( DDMFormFieldValue ddmFormFieldValue, Fields ddmFields, DDMFieldsCounter ddmFieldsCounter) { String name = ddmFormFieldValue.getName(); String instanceId = getDDMFieldInstanceId( ddmFields, name, ddmFieldsCounter.get(name)); ddmFormFieldValue.setInstanceId(instanceId); }
fieldsDisplayValues, name, ddmFieldsCounter.get(name)); fieldsDisplayValues, name, ddmFieldsCounter.get(name)); fieldStructure.put("valueIndex", ddmFieldsCounter.get(name)); ddmFieldsCounter.incrementKey(name);
protected void setNestedDDMFormFieldValues( DDMFormFieldValue ddmFormFieldValue, DDMFormField ddmFormField, Element rootElement, DDMFieldsCounter ddmFieldsCounter) throws PortalException { String fieldName = ddmFormFieldValue.getName(); int parentOffset = ddmFieldsCounter.get(fieldName); Map<String, DDMFormField> nestedDDMFormFieldsMap = ddmFormField.getNestedDDMFormFieldsMap(); String[] ddmFieldsDisplayValues = getDDMFieldsDisplayValues( rootElement, true); for (Map.Entry<String, DDMFormField> nestedDDMFormFieldEntry : nestedDDMFormFieldsMap.entrySet()) { String nestedDDMFormFieldName = nestedDDMFormFieldEntry.getKey(); DDMFormField nestedDDMFormField = nestedDDMFormFieldEntry.getValue(); int repetitions = countDDMFieldRepetitions( ddmFieldsDisplayValues, nestedDDMFormFieldName, fieldName, parentOffset); for (int i = 0; i < repetitions; i++) { DDMFormFieldValue nestedDDMFormFieldValue = createDDMFormFieldValue(nestedDDMFormFieldName); setDDMFormFieldValueProperties( nestedDDMFormFieldValue, nestedDDMFormField, rootElement, ddmFieldsCounter); ddmFormFieldValue.addNestedDDMFormFieldValue( nestedDDMFormFieldValue); } } }
@Override public DDMFormValues convert(DDMStructure ddmStructure, Fields fields) throws PortalException { DDMForm ddmForm = ddmStructure.getFullHierarchyDDMForm(); Map<String, DDMFormField> ddmFormFieldsMap = ddmForm.getDDMFormFieldsMap(true); DDMFormValues ddmFormValues = createDDMFormValues( ddmForm, fields.getAvailableLocales(), fields.getDefaultLocale()); DDMFieldsCounter ddmFieldsCounter = new DDMFieldsCounter(); for (String fieldName : getDDMFormFieldNames(ddmForm.getDDMFormFields())) { int repetitions = countDDMFieldRepetitions( ddmFormFieldsMap, fields, fieldName, null, -1); for (int i = 0; i < repetitions; i++) { DDMFormFieldValue ddmFormFieldValue = createDDMFormFieldValue( fieldName); setDDMFormFieldValueProperties( ddmFormFieldValue, ddmFormFieldsMap, fields, ddmFieldsCounter); ddmFormValues.addDDMFormFieldValue(ddmFormFieldValue); } } return ddmFormValues; }
int count = ddmFieldsCounter.get(fieldName); ddmFieldsCounter.incrementKey(fieldName);
protected void setNestedDDMFormFieldValues( DDMFormFieldValue ddmFormFieldValue, Map<String, DDMFormField> ddmFormFieldsMap, Fields ddmFields, DDMFieldsCounter ddmFieldsCounter) throws PortalException { String fieldName = ddmFormFieldValue.getName(); int parentOffset = ddmFieldsCounter.get(fieldName); DDMFormField parentDDMFormField = ddmFormFieldsMap.get(fieldName); List<String> nestedFieldNames = getDDMFormFieldNames( parentDDMFormField.getNestedDDMFormFields()); for (String nestedFieldName : nestedFieldNames) { int repetitions = countDDMFieldRepetitions( ddmFormFieldsMap, ddmFields, nestedFieldName, fieldName, parentOffset); for (int i = 0; i < repetitions; i++) { DDMFormFieldValue nestedDDMFormFieldValue = createDDMFormFieldValue(nestedFieldName); setDDMFormFieldValueProperties( nestedDDMFormFieldValue, ddmFormFieldsMap, ddmFields, ddmFieldsCounter); ddmFormFieldValue.addNestedDDMFormFieldValue( nestedDDMFormFieldValue); } } }
public DDMFormValues deserialize(DDMForm ddmForm, String xml) throws PortalException { try { DDMFormValues ddmFormValues = new DDMFormValues(ddmForm); Document document = SAXReaderUtil.read(xml); Element rootElement = document.getRootElement(); setDDMFormValuesAvailableLocales(ddmFormValues, rootElement); setDDMFormValuesDefaultLocale(ddmFormValues, rootElement); DDMFieldsCounter ddmFieldsCounter = new DDMFieldsCounter(); for (DDMFormField ddmFormField : ddmForm.getDDMFormFields()) { String fieldName = ddmFormField.getName(); int repetitions = countDDMFieldRepetitions( rootElement, fieldName, null, -1); for (int i = 0; i < repetitions; i++) { DDMFormFieldValue ddmFormFieldValue = createDDMFormFieldValue(fieldName); setDDMFormFieldValueProperties( ddmFormFieldValue, ddmFormField, rootElement, ddmFieldsCounter); ddmFormValues.addDDMFormFieldValue(ddmFormFieldValue); } } return ddmFormValues; } catch (DocumentException de) { throw new UpgradeException(de); } }
protected void updateContentDynamicElement( Element dynamicElementElement, DDMStructure ddmStructure, Fields ddmFields, DDMFieldsCounter ddmFieldsCounter) throws Exception { String fieldName = dynamicElementElement.attributeValue("name"); for (String childFieldName : ddmStructure.getChildrenFieldNames(fieldName)) { int count = ddmFieldsCounter.get(fieldName); int repetitions = countFieldRepetition( ddmFields, childFieldName, fieldName, count); for (int i = 0; i < repetitions; i++) { Element childDynamicElementElement = dynamicElementElement.addElement("dynamic-element"); childDynamicElementElement.addAttribute("name", childFieldName); String instanceId = getFieldInstanceId( ddmFields, fieldName, count + i); childDynamicElementElement.addAttribute( "instance-id", instanceId); updateContentDynamicElement( childDynamicElementElement, ddmStructure, ddmFields, ddmFieldsCounter); } } updateContentDynamicElement( dynamicElementElement, ddmStructure, ddmFields, fieldName, ddmFieldsCounter); }
"default-locale", LocaleUtil.toLanguageId(defaultLocale)); DDMFieldsCounter ddmFieldsCounter = new DDMFieldsCounter();