From 9499d341d88a159bf253216b89358ad09450e1fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Kov=C3=A1=C4=8Dik?= Date: Thu, 30 Jul 2026 16:06:22 +0200 Subject: [PATCH] [NAE-2462] Builder component decomposition - add processref field --- .../petrinet/domain/dataset/FieldType.groovy | 1 + .../domain/dataset/ProcessField.groovy | 33 +++++++++++++++++++ .../engine/importer/service/FieldFactory.java | 17 ++++++++-- 3 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 src/main/groovy/com/netgrif/application/engine/petrinet/domain/dataset/ProcessField.groovy diff --git a/src/main/groovy/com/netgrif/application/engine/petrinet/domain/dataset/FieldType.groovy b/src/main/groovy/com/netgrif/application/engine/petrinet/domain/dataset/FieldType.groovy index 53ed440791..c93773090d 100644 --- a/src/main/groovy/com/netgrif/application/engine/petrinet/domain/dataset/FieldType.groovy +++ b/src/main/groovy/com/netgrif/application/engine/petrinet/domain/dataset/FieldType.groovy @@ -18,6 +18,7 @@ enum FieldType { USERLIST("userList"), TABULAR("tabular"), CASE_REF("caseRef"), + PROCESS_REF("processRef"), DATETIME("dateTime"), BUTTON("button"), TASK_REF("taskRef"), diff --git a/src/main/groovy/com/netgrif/application/engine/petrinet/domain/dataset/ProcessField.groovy b/src/main/groovy/com/netgrif/application/engine/petrinet/domain/dataset/ProcessField.groovy new file mode 100644 index 0000000000..11953779de --- /dev/null +++ b/src/main/groovy/com/netgrif/application/engine/petrinet/domain/dataset/ProcessField.groovy @@ -0,0 +1,33 @@ +package com.netgrif.application.engine.petrinet.domain.dataset + +import org.springframework.data.mongodb.core.mapping.Document + +@Document +class ProcessField extends Field> { + + ProcessField() { + super() + super.defaultValue = new ArrayList() + } + + @Override + FieldType getType() { + return FieldType.PROCESS_REF + } + + @Override + void clearValue() { + this.setValue(new ArrayList()) + } + + @Override + Field clone() { + ProcessField clone = new ProcessField() + super.clone(clone) + return clone + } + + void setDefaultValue(List defaultValue) { + super.setDefaultValue(defaultValue) + } +} \ No newline at end of file diff --git a/src/main/java/com/netgrif/application/engine/importer/service/FieldFactory.java b/src/main/java/com/netgrif/application/engine/importer/service/FieldFactory.java index 850e4dbe0b..d1dd2b28b9 100644 --- a/src/main/java/com/netgrif/application/engine/importer/service/FieldFactory.java +++ b/src/main/java/com/netgrif/application/engine/importer/service/FieldFactory.java @@ -233,6 +233,9 @@ Field getField(Data data, Importer importer) throws IllegalArgumentException, case CASE_REF: field = buildCaseField(data); break; + case PROCESS_REF: + field = buildProcessField(data); + break; case DATE_TIME: field = buildDateTimeField(data); break; @@ -262,7 +265,7 @@ Field getField(Data data, Importer importer) throws IllegalArgumentException, field = buildI18nField(data, importer); break; case STRING_COLLECTION: - field = buildStringCollectionField(data, importer); + field = buildStringCollectionField(data); break; default: throw new IllegalArgumentException(data.getType() + " is not a valid Field type"); @@ -315,7 +318,17 @@ Field getField(Data data, Importer importer) throws IllegalArgumentException, return field; } - private StringCollectionField buildStringCollectionField(Data data, Importer importer) { + private ProcessField buildProcessField(Data data) { + ProcessField field = new ProcessField(); + setDefaultValues(field, data, defaultValues -> { + if (defaultValues != null) { + field.setDefaultValue(defaultValues); + } + }); + return field; + } + + private StringCollectionField buildStringCollectionField(Data data) { StringCollectionField field = new StringCollectionField(); setDefaultValues(field, data, defaultValues -> { if (defaultValues != null) {