serialization - deserialization between model and definition for Rules and Multiplicity

This commit is contained in:
annabakouli 2017-11-30 18:29:44 +02:00
parent 62557fdf58
commit c12fd1f1be
10 changed files with 577 additions and 122 deletions

View File

@ -31,7 +31,29 @@ export const TestModel = {
"description": "",
"extendedDescription": "",
"viewStyle": "checkBox",
"rule":[],
"rules":[
{
"ruleType":"fieldValue",
"target":"metadataStandarsA211",
"ruleStyle":"boolean",
"value":"true",
"valueType":"boolean"
},
{
"ruleType":"fieldValue",
"target":"freeOfChargeGroupCommentA213",
"ruleStyle":"boolean",
"value":"true",
"valueType":"boolean"
},
{
"ruleType":"fieldValue",
"target":"standardisedVocabulariesA212",
"ruleStyle":"boolean",
"value":"true",
"valueType":"boolean"
}
],
"multiplicity":{
"min":0,
"max":1
@ -76,7 +98,15 @@ export const TestModel = {
"description": "User can select from a list of metadata standards. If they cannot find the standard in the list provided then they should choose \"not listed\". Selecting this will result in a field in which the user can insert the URL to the description of the metadata scheme used. A \"comments\" box should exist to allow users to add comments. They may select more than one metadata standard. They may specify more than one URL when selecting \"not listed\". They are also presented with a field in which to specify the location of the metadata service. Users can select the \"no metadata\" button to specify no metadata will be used to describe the data.",
"extendedDescription": "FieldGroup Description",
"viewStyle": "booleanDesicion",
"rule":[],
"rules":[
{
"ruleType":"fieldValue",
"target":"noMetadata",
"ruleStyle":"boolean",
"value":"true",
"valueType":"boolean"
}
],
"multiplicity":{
"min":0,
"max":1
@ -94,7 +124,7 @@ export const TestModel = {
"description": "The data will be described by metadata that follows the metadata standards described in <url1>, <url2>, ? The data will be described by metadata that follows the metadata schema described in <not-listed-url1>, <not-listed-url2>. The metadata will be stored in the service located at <metadata-repo-url>",
"extendedDescription": "",
"viewStyle": "combobox",
"rule":[],
"rules":[],
"multiplicity":{
"min":0,
"max":1
@ -111,7 +141,15 @@ export const TestModel = {
"description": "",
"extendedDescription": "",
"viewStyle": "checkBox",
"rule":[],
"rules":[
{
"ruleType":"fieldValue",
"target":"",
"ruleStyle":"boolean",
"value":"",
"valueType":"boolean"
}
],
"multiplicity":{
"min":0,
"max":1
@ -128,7 +166,15 @@ export const TestModel = {
"description": "URL to the description of the metadata scheme used",
"extendedDescription": "",
"viewStyle": "freetext",
"rule":[],
"rules":[
{
"ruleType":"fieldValue",
"target":"",
"ruleStyle":"boolean",
"value":"",
"valueType":"boolean"
}
],
"multiplicity":{
"min":0,
"max":1
@ -145,7 +191,15 @@ export const TestModel = {
"description": "",
"extendedDescription": "",
"viewStyle": "freetext",
"rule":[],
"rules":[
{
"ruleType":"fieldValue",
"target":"",
"ruleStyle":"boolean",
"value":"",
"valueType":"boolean"
}
],
"multiplicity":{
"min":0,
"max":1
@ -162,7 +216,15 @@ export const TestModel = {
"description": "",
"extendedDescription": "",
"viewStyle": "checkBox",
"rule":[],
"rules":[
{
"ruleType":"fieldValue",
"target":"",
"ruleStyle":"boolean",
"value":"",
"valueType":"boolean"
}
],
"multiplicity":{
"min":0,
"max":1

View File

@ -11,6 +11,7 @@ import org.w3c.dom.NodeList;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import models.components.commons.Multiplicity;
import utilities.XmlSerializable;
import utilities.builders.XmlBuilder;
@ -19,6 +20,7 @@ public class FieldSet implements DatabaseModelDefinition,XmlSerializable<FieldSe
private String id;
private int ordinal;
private Multiplicity multiplicity;
private List<Field> fields;
@ -41,6 +43,12 @@ public class FieldSet implements DatabaseModelDefinition,XmlSerializable<FieldSe
this.fields = fields;
}
public Multiplicity getMultiplicity() {
return multiplicity;
}
public void setMultiplicity(Multiplicity multiplicity) {
this.multiplicity = multiplicity;
}
@Override
public Element toXml(Document doc) {
@ -53,6 +61,11 @@ public class FieldSet implements DatabaseModelDefinition,XmlSerializable<FieldSe
fieldsElement.appendChild(field.toXml(doc));
}
rootElement.appendChild(fieldsElement);
Element multiplicity = doc.createElement("multiplicity");
multiplicity.setAttribute("min", ""+this.multiplicity.getMin());
multiplicity.setAttribute("max", ""+this.multiplicity.getMax());
rootElement.appendChild(multiplicity);
rootElement.appendChild(multiplicity);
return rootElement;
}
@Override
@ -71,6 +84,11 @@ public class FieldSet implements DatabaseModelDefinition,XmlSerializable<FieldSe
}
}
}
this.multiplicity = new Multiplicity();
Element multiplicity = (Element)element.getElementsByTagName("multiplicity").item(0);
this.multiplicity.setMin(Integer.parseInt(multiplicity.getAttribute("min")));
this.multiplicity.setMax(Integer.parseInt(multiplicity.getAttribute("max")));
return this;
}

View File

@ -5,6 +5,7 @@ import org.w3c.dom.Element;
import entities.xmlmodels.modeldefinition.DatabaseModelDefinition;
import models.components.commons.ViewStyle;
import models.components.commons.Visibility;
import models.components.commons.datafield.FieldData;
import utilities.XmlSerializable;
import utilities.builders.ModelBuilder;
@ -17,6 +18,7 @@ public class Field implements DatabaseViewStyleDefinition,XmlSerializable<Field>
private String description;
private String extendedDescription;
private ViewStyle viewStyle;
private Visibility visible;
private FieldData data;
public String getId() {
return id;
@ -67,6 +69,13 @@ public class Field implements DatabaseViewStyleDefinition,XmlSerializable<Field>
public void setData(FieldData data) {
this.data = data;
}
public Visibility getVisible() {
return visible;
}
public void setVisible(Visibility visible) {
this.visible = visible;
}
@Override
public Element toXml(Document doc) {
Element rootElement = doc.createElement("field");
@ -84,6 +93,9 @@ public class Field implements DatabaseViewStyleDefinition,XmlSerializable<Field>
viewStyle.setAttribute("renderstyle", this.viewStyle.getRenderStyle());
viewStyle.setAttribute("cssClass", this.viewStyle.getCssClass());
Element visibility = this.visible.toXml(doc);
rootElement.appendChild(visibility);
rootElement.appendChild(extendedDescription);
rootElement.appendChild(viewStyle);
rootElement.appendChild(description);
@ -107,6 +119,9 @@ public class Field implements DatabaseViewStyleDefinition,XmlSerializable<Field>
this.viewStyle.setRenderStyle(viewStyle.getAttribute("renderstyle"));
this.viewStyle.setCssClass(viewStyle.getAttribute("cssClass"));
Element visibility = (Element)element.getElementsByTagName("visible").item(0);
this.visible = new Visibility().fromXml(visibility);
Element dataElement = (Element)element.getElementsByTagName("data").item(0);
this.data = new ModelBuilder().toFieldData(null, this.viewStyle.getRenderStyle());
if(this.data!=null)this.data.fromXml(dataElement);

View File

@ -22,6 +22,22 @@ public class FieldSet implements DatabaseViewStyleDefinition,XmlSerializable<Fie
public void setFields(List<Field> fields) {
this.fields = fields;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getOrdinal() {
return ordinal;
}
public void setOrdinal(int ordinal) {
this.ordinal = ordinal;
}
@Override

View File

@ -0,0 +1,76 @@
package models.components.commons;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import utilities.XmlSerializable;
public class Rule implements XmlSerializable<Rule>{
private String ruleType;
private String target;
private String ruleStyle;
private String value;
private String valueType;
public String getRuleType() {
return ruleType;
}
public void setRuleType(String ruleType) {
this.ruleType = ruleType;
}
public String getTarget() {
return target;
}
public void setTarget(String target) {
this.target = target;
}
public String getRuleStyle() {
return ruleStyle;
}
public void setRuleStyle(String ruleStyle) {
this.ruleStyle = ruleStyle;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getValueType() {
return valueType;
}
public void setValueType(String valueType) {
this.valueType = valueType;
}
@Override
public Element toXml(Document doc) {
Element rule = doc.createElement("rule");
rule.setAttribute("type",this.ruleType);
rule.setAttribute("target", this.target);
rule.setAttribute("ruleStyle", this.ruleStyle);
Element value = doc.createElement("value");
value.setAttribute("type", this.valueType);
value.setTextContent(this.value);
rule.appendChild(value);
return rule;
}
@Override
public Rule fromXml(Element item) {
this.ruleType = item.getAttribute("type");
this.target = item.getAttribute("target");
this.ruleStyle = item.getAttribute("ruleStyle");
Element value = (Element)item.getElementsByTagName("value").item(0);
if(value!=null){
this.valueType = value.getAttribute("type");
this.value = value.getTextContent();
}
return this;
}
}

View File

@ -0,0 +1,58 @@
package models.components.commons;
import java.util.LinkedList;
import java.util.List;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import entities.xmlmodels.viewstyledefinition.Field;
import utilities.XmlSerializable;
public class Visibility implements XmlSerializable<Visibility>{
private List<Rule> rules;
private String style;
public List<Rule> getRules() {
return rules;
}
public void setRules(List<Rule> rules) {
this.rules = rules;
}
public String getStyle() {
return style;
}
public void setStyle(String style) {
this.style = style;
}
@Override
public Element toXml(Document doc) {
Element root = doc.createElement("visible");
root.setAttribute("style", this.style);
if(rules!=null&&!rules.isEmpty()){
for(Rule rule:rules){
root.appendChild(rule.toXml(doc));
}
}
return root;
}
@Override
public Visibility fromXml(Element item) {
this.style = item.getAttribute("style");
this.rules = new LinkedList();
NodeList rulesElements = item.getChildNodes();
for (int temp = 0; temp < rulesElements.getLength(); temp++) {
Node ruleElement = rulesElements.item(temp);
if (ruleElement .getNodeType() == Node.ELEMENT_NODE) {
this.rules.add(new Rule().fromXml((Element)ruleElement));
}
}
return this;
}
}

View File

@ -8,6 +8,7 @@ import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import models.components.commons.DefaultValue;
import models.components.commons.Multiplicity;
import models.components.commons.ViewStyle;
import models.components.commons.Visibility;
import utilities.ModelDefinition;
import utilities.ViewStyleDefinition;
import utilities.builders.ModelBuilder;
@ -26,7 +27,7 @@ public class Field implements ModelDefinition<entities.xmlmodels.modeldefinition
private DefaultValue defaultValue;
private Multiplicity multiplicity;
private Object data;
private Visibility visible;
public String getId() {
return id;
@ -111,6 +112,14 @@ public class Field implements ModelDefinition<entities.xmlmodels.modeldefinition
public void setData(Object data) {
this.data = data;
}
public Visibility getVisible() {
return visible;
}
public void setVisible(Visibility visible) {
this.visible = visible;
}
@Override
public entities.xmlmodels.modeldefinition.Field toDatabaseDefinition(entities.xmlmodels.modeldefinition.Field field) {
field.setDatatype(this.datatype);
@ -136,6 +145,7 @@ public class Field implements ModelDefinition<entities.xmlmodels.modeldefinition
field.setTitle(this.title);
field.setViewStyle(this.viewStyle);
field.setData(new ModelBuilder().toFieldData(data, this.viewStyle.getRenderStyle()));
field.setVisible(this.visible);
return field;
}
@Override
@ -148,6 +158,7 @@ public class Field implements ModelDefinition<entities.xmlmodels.modeldefinition
this.title = item.getTitle();
this.viewStyle = item.getViewStyle();
this.data = item.getData();
this.visible = item.getVisible();
}

View File

@ -5,6 +5,7 @@ import java.util.List;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import models.components.commons.Multiplicity;
import utilities.ModelDefinition;
import utilities.ViewStyleDefinition;
import utilities.builders.ModelBuilder;
@ -12,7 +13,7 @@ import utilities.builders.ModelBuilder;
public class FieldSet implements ModelDefinition<entities.xmlmodels.modeldefinition.FieldSet>,ViewStyleDefinition<entities.xmlmodels.viewstyledefinition.FieldSet>{
private String id;
private int ordinal;
private Multiplicity multiplicity;
private List<Field> fields;
public List<Field> getFields() {
@ -39,12 +40,21 @@ public class FieldSet implements ModelDefinition<entities.xmlmodels.modeldefinit
this.ordinal = ordinal;
}
public Multiplicity getMultiplicity() {
return multiplicity;
}
public void setMultiplicity(Multiplicity multiplicity) {
this.multiplicity = multiplicity;
}
@Override
public entities.xmlmodels.modeldefinition.FieldSet toDatabaseDefinition(entities.xmlmodels.modeldefinition.FieldSet fieldSet) {
fieldSet.setId(this.id);
fieldSet.setOrdinal(this.ordinal);
List<entities.xmlmodels.modeldefinition.Field> modelfields = new ModelBuilder().toModelDefinition(this.fields, entities.xmlmodels.modeldefinition.Field.class);
fieldSet.setFields(modelfields);
fieldSet.setMultiplicity(this.multiplicity);
return fieldSet;
}
@ -52,18 +62,23 @@ public class FieldSet implements ModelDefinition<entities.xmlmodels.modeldefinit
public void fromDatabaseDefinition(entities.xmlmodels.modeldefinition.FieldSet item) {
this.id = item.getId();
this.ordinal = item.getOrdinal();
this.multiplicity = item.getMultiplicity();
}
@Override
public entities.xmlmodels.viewstyledefinition.FieldSet toDatabaseDefinition(entities.xmlmodels.viewstyledefinition.FieldSet item) {
List<entities.xmlmodels.viewstyledefinition.Field> viewStylefields = new ModelBuilder().toViewStyleDefinition(this.fields, entities.xmlmodels.viewstyledefinition.Field.class);
item.setFields(viewStylefields);
item.setId(this.id);
item.setOrdinal(this.ordinal);
return item;
}
@Override
public void fromDatabaseDefinition(entities.xmlmodels.viewstyledefinition.FieldSet item) {
this.fields = new ModelBuilder().fromViewStyleDefinition(item.getFields(), Field.class);
this.id = item.getId();
this.ordinal = item.getOrdinal();
}

View File

@ -26,7 +26,7 @@
</div> -->
<div *ngIf="this.visibilityRulesService.isElementVisible(pathName,field.id)" [formGroup]="form" class="form-group" [ngSwitch]="field.viewStyle">
<div *ngIf="this.visibilityRulesService.isElementVisible(pathName,field.id)" [formGroup]="form" class="form-group" [ngSwitch]="field.viewStyle.renderStyle">
<div [ngClass]="{true:'show', false:'hide'}[field.visible]">
<label>{{field.description}}</label>

View File

@ -94,13 +94,38 @@ export const TestModel = {
"renderStyle": "checkBox",
"cssClass": ""
},
"defaultValue":{
"type":"any",
"value":""
"visible": {
"rules": [
{
"ruleType": "fieldValue",
"target": "metadataStandarsA211",
"ruleStyle": "boolean",
"value": "true",
"valueType": "boolean"
},
{
"ruleType": "fieldValue",
"target": "freeOfChargeGroupCommentA213",
"ruleStyle": "boolean",
"value": "true",
"valueType": "boolean"
},
{
"ruleType": "fieldValue",
"target": "standardisedVocabulariesA212",
"ruleStyle": "boolean",
"value": "true",
"valueType": "boolean"
}
]
},
"multiplicity":{
"min":"1",
"max":"1"
"defaultValue": {
"type": "any",
"value": ""
},
"multiplicity": {
"min": "1",
"max": "1"
},
"data": {
@ -116,13 +141,16 @@ export const TestModel = {
"renderStyle": "radiobox",
"cssClass": ""
},
"defaultValue":{
"type":"any",
"value":""
"defaultValue": {
"type": "any",
"value": ""
},
"multiplicity":{
"min":"1",
"max":"1"
"visible": {
"rules": []
},
"multiplicity": {
"min": "1",
"max": "1"
},
"data": {
"options": [
@ -132,7 +160,12 @@ export const TestModel = {
]
}
}
]
],"multiplicity": {
"min": "1",
"max": "1"
},
"id":"useMetadataQ211fs",
"ordinal":1
}
]
}
@ -176,19 +209,36 @@ export const TestModel = {
"renderStyle": "booleanDecision",
"cssClass": ""
},
"defaultValue":{
"type":"any",
"value":""
"visible": {
"rules": [
{
"ruleType": "fieldValue",
"target": "noMetadata",
"ruleStyle": "boolean",
"value": "true",
"valueType": "boolean"
}
]
},
"multiplicity":{
"min":"1",
"max":"1"
"defaultValue": {
"type": "any",
"value": ""
},
"multiplicity": {
"min": "1",
"max": "1"
},
"data": {
}
}
]
],
"multiplicity": {
"min": "1",
"max": "1"
},
"id":"useMetadataQ211fs",
"ordinal":1
},
{
"fields":
@ -203,19 +253,29 @@ export const TestModel = {
"renderStyle": "combobox",
"cssClass": ""
},
"defaultValue":{
"type":"any",
"value":""
"defaultValue": {
"type": "any",
"value": ""
},
"multiplicity":{
"min":"1",
"max":"1"
"visible": {
"rules": []
},
"multiplicity": {
"min": "1",
"max": "1"
},
"data": {
"type": "autocomplete",
"url": "http://dionysus.di.uoa.gr:8080/dmp-backend/rest/external/datarepos?query=gree"
}
}]
}
],
"multiplicity": {
"min": "1",
"max": "1"
},
"id":"metadataStandarsA211fs",
"ordinal":1
},
{
"fields":
@ -230,19 +290,36 @@ export const TestModel = {
"renderStyle": "checkBox",
"cssClass": ""
},
"defaultValue":{
"type":"any",
"value":""
"visible": {
"rules": [
{
"ruleType": "fieldValue",
"target": "",
"ruleStyle": "boolean",
"value": "",
"valueType": "boolean"
}
]
},
"multiplicity":{
"min":"1",
"max":"1"
"defaultValue": {
"type": "any",
"value": ""
},
"multiplicity": {
"min": "1",
"max": "1"
},
"data": {
}
}
]
],
"multiplicity": {
"min": "1",
"max": "1"
},
"id":"notlistedA211fs",
"ordinal":1
},
{
"fields":
@ -257,18 +334,28 @@ export const TestModel = {
"renderStyle": "freetext",
"cssClass": ""
},
"defaultValue":{
"type":"any",
"value":""
"visible": {
"rules": []
},
"multiplicity":{
"min":"1",
"max":"1"
"defaultValue": {
"type": "any",
"value": ""
},
"multiplicity": {
"min": "1",
"max": "1"
},
"data": {
}
}]
}
],
"multiplicity": {
"min": "1",
"max": "1"
},
"id":"notlistedUrlA211fs",
"ordinal":1
},
{
"fields":
@ -283,18 +370,28 @@ export const TestModel = {
"renderStyle": "freetext",
"cssClass": ""
},
"defaultValue":{
"type":"any",
"value":""
"defaultValue": {
"type": "any",
"value": ""
},
"multiplicity":{
"min":"1",
"max":"1"
"visible": {
"rules": []
},
"multiplicity": {
"min": "1",
"max": "1"
},
"data": {
}
}]
}
],
"multiplicity": {
"min": "1",
"max": "1"
},
"id":"notlistedCommentA211fs",
"ordinal":1
},
{
"fields":
@ -309,19 +406,28 @@ export const TestModel = {
"renderStyle": "checkBox",
"cssClass": ""
},
"defaultValue":{
"type":"any",
"value":""
"visible": {
"rules": []
},
"multiplicity":{
"min":"1",
"max":"1"
"defaultValue": {
"type": "any",
"value": ""
},
"multiplicity": {
"min": "1",
"max": "1"
},
"data": {
}
}
]
],
"multiplicity": {
"min": "1",
"max": "1"
},
"id":"noMetadatafs",
"ordinal":1
}
]
},
@ -346,18 +452,28 @@ export const TestModel = {
"renderStyle": "booleanDesicion",
"cssClass": ""
},
"defaultValue":{
"type":"any",
"value":""
"visible": {
"rules": []
},
"multiplicity":{
"min":"1",
"max":"1"
"defaultValue": {
"type": "any",
"value": ""
},
"multiplicity": {
"min": "1",
"max": "1"
},
"data": {
}
}]
}
],
"multiplicity": {
"min": "1",
"max": "1"
},
"id":"nuseVocabulariesQ212fs",
"ordinal":1
},
{
"fields": [
@ -371,13 +487,16 @@ export const TestModel = {
"renderStyle": "combobox",
"cssClass": ""
},
"defaultValue":{
"type":"any",
"value":""
"visible": {
"rules": []
},
"multiplicity":{
"min":"1",
"max":"1"
"defaultValue": {
"type": "any",
"value": ""
},
"multiplicity": {
"min": "1",
"max": "1"
},
"data": {
"type": "wordlist",
@ -387,7 +506,14 @@ export const TestModel = {
{ "label": "Panagiotis", "value": "mpotis" }
]
}
}]
}
],
"multiplicity": {
"min": "1",
"max": "1"
},
"id":"standardisedVocabulariesA212fs",
"ordinal":1
},
{
"fields": [
@ -401,18 +527,28 @@ export const TestModel = {
"renderStyle": "checkBox",
"cssClass": ""
},
"defaultValue":{
"type":"any",
"value":""
"visible": {
"rules": []
},
"multiplicity":{
"min":"1",
"max":"1"
"defaultValue": {
"type": "any",
"value": ""
},
"multiplicity": {
"min": "1",
"max": "1"
},
"data": {
}
}]
}
],
"multiplicity": {
"min": "1",
"max": "1"
},
"id":"notlistedVocabularyA212fs",
"ordinal":1
},
{
"fields": [
@ -426,18 +562,28 @@ export const TestModel = {
"renderStyle": "freetext",
"cssClass": ""
},
"defaultValue":{
"type":"any",
"value":""
"visible": {
"rules": []
},
"multiplicity":{
"min":"1",
"max":"1"
"defaultValue": {
"type": "any",
"value": ""
},
"multiplicity": {
"min": "1",
"max": "1"
},
"data": {
}
}]
}
],
"multiplicity": {
"min": "1",
"max": "1"
},
"id":"notlistedVocUrlA212fs",
"ordinal":1
},
{
"fields": [
@ -451,18 +597,28 @@ export const TestModel = {
"renderStyle": "freetext",
"cssClass": ""
},
"defaultValue":{
"type":"any",
"value":""
"defaultValue": {
"type": "any",
"value": ""
},
"multiplicity":{
"min":"1",
"max":"1"
"visible": {
"rules": []
},
"multiplicity": {
"min": "1",
"max": "1"
},
"data": {
}
}]
}
],
"multiplicity": {
"min": "1",
"max": "1"
},
"id":"notlistedVocCommentA212fs",
"ordinal":1
},
{
"fields": [
@ -472,23 +628,32 @@ export const TestModel = {
"title": "The metadata will not make use of any vocabulary",
"description": "",
"extendedDescription": "",
"viewStyle": {
"viewStyle": {
"renderStyle": "checkBox",
"cssClass": ""
},
"defaultValue":{
"type":"any",
"value":""
"defaultValue": {
"type": "any",
"value": ""
},
"multiplicity":{
"min":"1",
"max":"1"
"visible": {
"rules": []
},
"multiplicity": {
"min": "1",
"max": "1"
},
"data": {
}
}
]
],
"multiplicity": {
"min": "1",
"max": "1"
},
"id":"noMetadataVocabularyA212fs",
"ordinal":1
}
]
},
@ -513,18 +678,28 @@ export const TestModel = {
"renderStyle": "booleanDesicion",
"cssClass": ""
},
"defaultValue":{
"type":"any",
"value":""
"visible": {
"rules": []
},
"multiplicity":{
"min":"1",
"max":"1"
"defaultValue": {
"type": "any",
"value": ""
},
"multiplicity": {
"min": "1",
"max": "1"
},
"data": {
}
}]
}
],
"multiplicity": {
"min": "1",
"max": "1"
},
"id":"freeOfChargeGroupQ213fs",
"ordinal":1
},
{
"fields": [
@ -538,19 +713,28 @@ export const TestModel = {
"renderStyle": "freetext",
"cssClass": ""
},
"defaultValue":{
"type":"any",
"value":""
"visible": {
"rules": []
},
"multiplicity":{
"min":"1",
"max":"1"
"defaultValue": {
"type": "any",
"value": ""
},
"multiplicity": {
"min": "1",
"max": "1"
},
"data": {
}
}
]
],
"multiplicity": {
"min": "1",
"max": "1"
},
"id":"freeOfChargeGroupCommentA213fs",
"ordinal":1
}
]
}