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 1/2] [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) { From 9230f17de9bc9fa6540acd13c25260c35b182602 Mon Sep 17 00:00:00 2001 From: chvostek Date: Tue, 22 Sep 2026 10:44:21 +0200 Subject: [PATCH 2/2] [NAE-2462] Builder component decomposition - fix QueryLangTest --- .../application/engine/pfql/QueryLangTest.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/test/java/com/netgrif/application/engine/pfql/QueryLangTest.java b/src/test/java/com/netgrif/application/engine/pfql/QueryLangTest.java index 3f4cc5efa2..a9eaf34052 100644 --- a/src/test/java/com/netgrif/application/engine/pfql/QueryLangTest.java +++ b/src/test/java/com/netgrif/application/engine/pfql/QueryLangTest.java @@ -108,20 +108,20 @@ public void testSearchService() throws InterruptedException { assertEquals(Case.class, case4.getClass()); assertEquals("444", ((Case) case4).getFieldValue("text_0")); - Object case4_2 = searchService.search("case: processIdentifier eq \"query_test\" and data.text_0.value == \"4\""); + Object case4_2 = searchService.search("case: processIdentifier eq \"query_test\" and data.text_0.value == \"444\""); assertNotNull(case4_2); assertEquals(Case.class, case4_2.getClass()); - assertEquals("4", ((Case) case4_2).getFieldValue("text_0")); + assertEquals("444", ((Case) case4_2).getFieldValue("text_0")); - Object case4_3 = searchService.search("case: processIdentifier eq 'query_test' and data.text_0.value == \"4\""); + Object case4_3 = searchService.search("case: processIdentifier eq 'query_test' and data.text_0.value == \"444\""); assertNotNull(case4_3); assertEquals(Case.class, case4_3.getClass()); - assertEquals("4", ((Case) case4_3).getFieldValue("text_0")); + assertEquals("444", ((Case) case4_3).getFieldValue("text_0")); - Object case4_4 = searchService.search("case: processIdentifier eq \"query_test\" and data.text_0.value == '4'"); + Object case4_4 = searchService.search("case: processIdentifier eq \"query_test\" and data.text_0.value == '444'"); assertNotNull(case4_4); assertEquals(Case.class, case4_4.getClass()); - assertEquals("4", ((Case) case4_4).getFieldValue("text_0")); + assertEquals("444", ((Case) case4_4).getFieldValue("text_0")); Object case5 = searchService.search("case: processIdentifier eq 'query_test' and data.boolean_0.value == true"); assertNotNull(case5);