From 955f902a13c4cec6bf0585871eceab31e6154c96 Mon Sep 17 00:00:00 2001 From: annabakouli Date: Fri, 8 Dec 2017 10:07:48 +0200 Subject: [PATCH] fixed error with fields missing --- .../xmlmodels/modeldefinition/Field.java | 7 +++++-- .../xmlmodels/modeldefinition/FieldGroup.java | 4 +++- .../xmlmodels/modeldefinition/FieldSet.java | 6 ++++-- .../xmlmodels/viewstyledefinition/Field.java | 19 +++++++++++++------ .../viewstyledefinition/FieldGroup.java | 3 ++- .../viewstyledefinition/FieldSet.java | 4 +++- .../viewstyledefinition/Section.java | 5 +++-- .../viewstyledefinition/ViewStyleModel.java | 3 ++- .../src/main/java/managers/UserManager.java | 4 +++- .../helpers/ModelBuilderCollector.java | 5 +---- 10 files changed, 39 insertions(+), 21 deletions(-) diff --git a/dmp-backend/src/main/java/entities/xmlmodels/modeldefinition/Field.java b/dmp-backend/src/main/java/entities/xmlmodels/modeldefinition/Field.java index b159c52d5..2f48ee0c6 100644 --- a/dmp-backend/src/main/java/entities/xmlmodels/modeldefinition/Field.java +++ b/dmp-backend/src/main/java/entities/xmlmodels/modeldefinition/Field.java @@ -8,6 +8,7 @@ import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; import models.components.commons.DefaultValue; import models.components.commons.Multiplicity; import utilities.XmlSerializable; +import utilities.builders.XmlBuilder; public class Field implements DatabaseModelDefinition,XmlSerializable{ @@ -75,12 +76,14 @@ public class Field implements DatabaseModelDefinition,XmlSerializable{ this.datatype = item.getAttribute("datatype"); this.defaultValue = new DefaultValue(); - Element defaultValue = (Element)item.getElementsByTagName("defaultValue").item(0); + Element defaultValue = (Element)XmlBuilder.getNodeFromListByTagName(item.getChildNodes(), "defaultValue"); + this.defaultValue.setType(defaultValue.getAttribute("type")); this.defaultValue.setValue(defaultValue.getAttribute("value")); this.multiplicity = new Multiplicity(); - Element multiplicity = (Element)item.getElementsByTagName("multiplicity").item(0); + Element multiplicity = (Element)XmlBuilder.getNodeFromListByTagName(item.getChildNodes(), "multiplicity"); + this.multiplicity.setMin(Integer.parseInt(multiplicity.getAttribute("min"))); this.multiplicity.setMax(Integer.parseInt(multiplicity.getAttribute("max"))); diff --git a/dmp-backend/src/main/java/entities/xmlmodels/modeldefinition/FieldGroup.java b/dmp-backend/src/main/java/entities/xmlmodels/modeldefinition/FieldGroup.java index 64804d815..8aaef5e3d 100644 --- a/dmp-backend/src/main/java/entities/xmlmodels/modeldefinition/FieldGroup.java +++ b/dmp-backend/src/main/java/entities/xmlmodels/modeldefinition/FieldGroup.java @@ -9,6 +9,7 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; import utilities.XmlSerializable; +import utilities.builders.XmlBuilder; public class FieldGroup implements DatabaseModelDefinition,XmlSerializable{ private List
fieldSets; @@ -36,7 +37,8 @@ public class FieldGroup implements DatabaseModelDefinition,XmlSerializable{ private String id; @@ -112,24 +113,30 @@ public class Field implements DatabaseViewStyleDefinition,XmlSerializable this.ordinal = Integer.parseInt(element.getAttribute("ordinal")); this.defaultVisibility = Boolean.getBoolean(element.getAttribute("defaultVisibility")); - Element extendedDescription = (Element)element.getElementsByTagName("extendedDescription").item(0); + Element extendedDescription = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "extendedDescription"); + this.extendedDescription = extendedDescription.getTextContent(); - Element description = (Element)element.getElementsByTagName("description").item(0); + Element description = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "description"); + this.description = description.getTextContent(); - Element title = (Element)element.getElementsByTagName("title").item(0); + Element title = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "title"); + this.title = title.getTextContent(); this.viewStyle = new ViewStyle(); - Element viewStyle = (Element)element.getElementsByTagName("viewStyle").item(0); + Element viewStyle = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "viewStyle"); + this.viewStyle.setRenderStyle(viewStyle.getAttribute("renderstyle")); this.viewStyle.setCssClass(viewStyle.getAttribute("cssClass")); - Element visibility = (Element)element.getElementsByTagName("visible").item(0); + Element visibility = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "visible"); + this.visible = new Visibility().fromXml(visibility); - Element dataElement = (Element)element.getElementsByTagName("data").item(0); + Element dataElement = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "data"); + this.data = new ModelBuilder().toFieldData(null, this.viewStyle.getRenderStyle()); if(this.data!=null)this.data.fromXml(dataElement); return this; diff --git a/dmp-backend/src/main/java/entities/xmlmodels/viewstyledefinition/FieldGroup.java b/dmp-backend/src/main/java/entities/xmlmodels/viewstyledefinition/FieldGroup.java index 1fad73e63..df6f5d527 100644 --- a/dmp-backend/src/main/java/entities/xmlmodels/viewstyledefinition/FieldGroup.java +++ b/dmp-backend/src/main/java/entities/xmlmodels/viewstyledefinition/FieldGroup.java @@ -118,7 +118,8 @@ public class FieldGroup implements DatabaseViewStyleDefinition,XmlSerializable{ private String id; @@ -58,7 +59,8 @@ public class FieldSet implements DatabaseViewStyleDefinition,XmlSerializable(); - Element sections = (Element)element.getElementsByTagName("sections").item(0); + Element sections = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "sections"); if(sections!=null){ NodeList sectionElements = sections.getChildNodes(); for (int temp = 0; temp < sectionElements.getLength(); temp++) { @@ -147,7 +147,8 @@ public class Section implements DatabaseViewStyleDefinition,XmlSerializable(); - Element fieldGroups = (Element)element.getElementsByTagName("fieldGroups").item(0); + Element fieldGroups = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "fieldGroups"); + if(fieldGroups!=null){ NodeList fieldGroupElements = fieldGroups.getChildNodes(); for (int temp = 0; temp < fieldGroupElements.getLength(); temp++) { diff --git a/dmp-backend/src/main/java/entities/xmlmodels/viewstyledefinition/ViewStyleModel.java b/dmp-backend/src/main/java/entities/xmlmodels/viewstyledefinition/ViewStyleModel.java index 1792db42d..632419acc 100644 --- a/dmp-backend/src/main/java/entities/xmlmodels/viewstyledefinition/ViewStyleModel.java +++ b/dmp-backend/src/main/java/entities/xmlmodels/viewstyledefinition/ViewStyleModel.java @@ -10,6 +10,7 @@ import org.w3c.dom.NodeList; import entities.xmlmodels.modeldefinition.FieldSet; import utilities.XmlSerializable; +import utilities.builders.XmlBuilder; public class ViewStyleModel implements XmlSerializable{ private List
sections; @@ -39,7 +40,7 @@ public class ViewStyleModel implements XmlSerializable{ public ViewStyleModel fromXml(Element element) { this.sections = new LinkedList(); - Element sections = (Element)element.getElementsByTagName("sections").item(0); + Element sections = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "sections"); if(sections!=null){ NodeList sectionElements = sections.getChildNodes(); for (int temp = 0; temp < sectionElements.getLength(); temp++) { diff --git a/dmp-backend/src/main/java/managers/UserManager.java b/dmp-backend/src/main/java/managers/UserManager.java index 5d1f76f46..bb8299b05 100644 --- a/dmp-backend/src/main/java/managers/UserManager.java +++ b/dmp-backend/src/main/java/managers/UserManager.java @@ -1,5 +1,6 @@ package managers; +import org.json.JSONObject; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -10,7 +11,8 @@ public class UserManager { Document viewStyleDoc = XmlBuilder.fromXml(profile.getViewstyle().getDefinition()); Element root = (Element)viewStyleDoc.getDocumentElement(); entities.xmlmodels.viewstyledefinition.ViewStyleModel viewstyle= new entities.xmlmodels.viewstyledefinition.ViewStyleModel().fromXml(root); - + JSONObject jobject = new JSONObject(viewstyle); + System.out.println(jobject.toString()); Document profileDoc = XmlBuilder.fromXml(profile.getDefinition()); root = (Element)profileDoc.getDocumentElement(); entities.xmlmodels.modeldefinition.FieldGroup fieldGroup = new entities.xmlmodels.modeldefinition.FieldGroup().fromXml(root); diff --git a/dmp-backend/src/main/java/utilities/helpers/ModelBuilderCollector.java b/dmp-backend/src/main/java/utilities/helpers/ModelBuilderCollector.java index 693a6f22f..5d7aab887 100644 --- a/dmp-backend/src/main/java/utilities/helpers/ModelBuilderCollector.java +++ b/dmp-backend/src/main/java/utilities/helpers/ModelBuilderCollector.java @@ -25,10 +25,7 @@ public class ModelBuilderCollector { fieldGroups.addAll(collectCompositeFields(section.getSections())); } fieldGroups.addAll( - sections.stream() - .map(itemSection->itemSection.getFieldGroups()) - .filter(x->x!=null) - .flatMap(List::stream) + section.getFieldGroups().stream() .map(group->group.getCompositeFields()) .flatMap(List::stream) .collect(Collectors.toList())