diff --git a/application-engine/src/main/java/com/netgrif/application/engine/elastic/service/ElasticCaseMappingService.java b/application-engine/src/main/java/com/netgrif/application/engine/elastic/service/ElasticCaseMappingService.java index f386e61827..b411a58f68 100644 --- a/application-engine/src/main/java/com/netgrif/application/engine/elastic/service/ElasticCaseMappingService.java +++ b/application-engine/src/main/java/com/netgrif/application/engine/elastic/service/ElasticCaseMappingService.java @@ -97,10 +97,9 @@ protected Optional transformDataField(String fieldId, Case useCase) { } Set mapValues = optValues.get(); Map options = this.getFieldOptions(multichoiceMap, netField); - List> values = new ArrayList<>(); + List>> values = new ArrayList<>(); for (String key : (Set) mapValues) { - I18nString selectedValue = options.get(key); - values.add(new AbstractMap.SimpleEntry<>(key, selectedValue != null ? selectedValue : new I18nString(""))); + values.add(new AbstractMap.SimpleEntry<>(key, I18nStringUtils.collectTranslations(options.get(key)))); } return Optional.of(new com.netgrif.application.engine.adapter.spring.elastic.domain.MapField(values)); } @@ -138,8 +137,7 @@ protected Optional transformStringCollectionField(com.netgrif.applica (com.netgrif.application.engine.objects.workflow.domain.DataField enumMap, EnumerationMapField netField) { Map options = this.getFieldOptions(enumMap, netField); String selectedKey = (String) enumMap.getValue(); - I18nString selectedValue = options.get(selectedKey); - return Optional.of(new com.netgrif.application.engine.adapter.spring.elastic.domain.MapField(new AbstractMap.SimpleEntry<>(selectedKey, selectedValue != null ? selectedValue : new I18nString("")))); + return Optional.of(new com.netgrif.application.engine.adapter.spring.elastic.domain.MapField(new AbstractMap.SimpleEntry<>(selectedKey, I18nStringUtils.collectTranslations(options.get(selectedKey))))); } private Map getFieldOptions diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/auth/dto/AuthPrincipalDto.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/auth/dto/AuthPrincipalDto.java index 3333122aae..988d039d55 100644 --- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/auth/dto/AuthPrincipalDto.java +++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/auth/dto/AuthPrincipalDto.java @@ -3,6 +3,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.NonNull; import lombok.ToString; import java.io.Serial; diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/ElasticCase.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/ElasticCase.java index 2762fc9088..bd3fb217b7 100644 --- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/ElasticCase.java +++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/ElasticCase.java @@ -51,8 +51,6 @@ public abstract class ElasticCase implements Serializable { private String authorUsername; - private List immediateData; - private Map dataSet; private Set taskIds; @@ -81,6 +79,8 @@ public abstract class ElasticCase implements Serializable { private Map tags; + private NodeInfo nodeInfo; + public ElasticCase(Case useCase) { id = useCase.getStringId(); lastModified = Timestamp.valueOf(useCase.getLastModified()).getTime(); @@ -108,7 +108,6 @@ public ElasticCase(Case useCase) { users = deepCopy(useCase.getUsers()); userRefs = deepCopy(useCase.getUserRefs()); dataSet = new HashMap<>(); - immediateData = useCase.getImmediateData() == null ? Collections.emptyList() : useCase.getImmediateData().stream().map(ImmediateField::new).collect(Collectors.toList()); } public void update(ElasticCase useCase) { @@ -133,9 +132,6 @@ public void update(ElasticCase useCase) { dataSet = useCase.getDataSet() == null ? new HashMap<>() : useCase.getDataSet().entrySet().stream() .filter(entry -> entry.getValue() != null) .collect(Collectors.toMap(Map.Entry::getKey, entry -> CopyConstructorUtil.copy(entry.getValue().getClass(), entry.getValue()))); - immediateData = useCase.getImmediateData() == null ? new ArrayList<>() : useCase.getImmediateData().stream() - .map(field -> new ImmediateField(field.getStringId(), new I18nString(field.getName()), field.getType())) - .collect(Collectors.toList()); } private static Map> deepCopy(Map> map) { diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/I18nField.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/I18nField.java index 4688570ae3..359b186344 100644 --- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/I18nField.java +++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/I18nField.java @@ -13,7 +13,7 @@ @Data @NoArgsConstructor @EqualsAndHashCode(callSuper = true) -public abstract class I18nField extends TextField { +public abstract class I18nField extends DataField { public String[] keyValue; @@ -26,16 +26,15 @@ public I18nField(I18nField field) { } public I18nField(Set keys, Set values, Map translations) { - super(new String[0]); + super(values.toArray(new String[0])); this.keyValue = keys.toArray(new String[0]); - this.textValue = values.toArray(new String[0]); this.translations = translations; } @Override public Object getValue() { - if (textValue != null && textValue.length > 0) { - return new I18nString(textValue[0], translations); + if (fulltextValue != null && fulltextValue.length > 0) { + return new I18nString(fulltextValue[0], translations); } return null; } diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/MapField.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/MapField.java index e989f209e1..deff001ae2 100644 --- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/MapField.java +++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/MapField.java @@ -1,6 +1,5 @@ package com.netgrif.application.engine.objects.elastic.domain; -import com.netgrif.application.engine.objects.petrinet.domain.I18nString; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -11,34 +10,22 @@ @Data @NoArgsConstructor @EqualsAndHashCode(callSuper = true) -public abstract class MapField extends TextField { +public abstract class MapField extends DataField { public String[] keyValue; - public Map keyValueTranslations; - public MapField(MapField field) { - super(field); - this.keyValue = field.keyValue == null ? null : Arrays.copyOf(field.keyValue, field.keyValue.length); - this.keyValueTranslations = field.keyValueTranslations == null ? null - : field.keyValueTranslations.entrySet().stream() - .collect(Collectors.toMap(Map.Entry::getKey, entry -> new I18nString(entry.getValue()))); + public MapField(Map.Entry> valuePair) { + this(List.of(valuePair)); } - public MapField(Map.Entry valueTranslationPair) { - this(List.of(valueTranslationPair)); - } - - public MapField(List> valueTranslationPairs) { + public MapField(List>> valuePairs) { super(new String[0]); - this.keyValue = new String[valueTranslationPairs.size()]; + this.keyValue = new String[valuePairs.size()]; List values = new ArrayList<>(); - this.keyValueTranslations = new HashMap<>(); - for (int i = 0; i < valueTranslationPairs.size(); i++) { - this.keyValue[i] = valueTranslationPairs.get(i).getKey(); - values.addAll(I18nStringUtils.collectTranslations(valueTranslationPairs.get(i).getValue())); - this.keyValueTranslations.put(valueTranslationPairs.get(i).getKey(), valueTranslationPairs.get(i).getValue()); + for (int i = 0; i < valuePairs.size(); i++) { + keyValue[i] = valuePairs.get(i).getKey(); + values.addAll(valuePairs.get(i).getValue()); } - this.textValue = values.toArray(new String[0]); this.fulltextValue = values.toArray(new String[0]); } diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/NodeInfo.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/NodeInfo.java new file mode 100644 index 0000000000..74db1eb7ac --- /dev/null +++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/NodeInfo.java @@ -0,0 +1,20 @@ +package com.netgrif.application.engine.objects.elastic.domain; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serial; +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class NodeInfo implements Serializable { + + @Serial + private static final long serialVersionUID = 7454569786379865L; + + private String nodeHost; + private int nodePort; +} diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/StringCollectionField.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/StringCollectionField.java index e270249bbb..66c218433e 100644 --- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/StringCollectionField.java +++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/StringCollectionField.java @@ -1,6 +1,5 @@ package com.netgrif.application.engine.objects.elastic.domain; - import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -10,7 +9,7 @@ @Data @NoArgsConstructor @EqualsAndHashCode(callSuper = true) -public abstract class StringCollectionField extends TextField { +public abstract class StringCollectionField extends DataField { public String[] collectionValue; diff --git a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/MapField.java b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/MapField.java index 3936cce866..0561d742d6 100644 --- a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/MapField.java +++ b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/MapField.java @@ -1,9 +1,7 @@ package com.netgrif.application.engine.adapter.spring.elastic.domain; -import com.netgrif.application.engine.objects.petrinet.domain.I18nString; import lombok.NoArgsConstructor; import org.springframework.data.elasticsearch.annotations.Field; - import java.util.Collection; import java.util.List; import java.util.Map; @@ -13,15 +11,11 @@ @NoArgsConstructor public class MapField extends com.netgrif.application.engine.objects.elastic.domain.MapField { - public MapField(MapField field) { - super(field); - } - - public MapField(Map.Entry valuePair) { + public MapField(Map.Entry> valuePair) { super(valuePair); } - public MapField(List> valuePairs) { + public MapField(List>> valuePairs) { super(valuePairs); } @@ -35,9 +29,4 @@ public String[] getFulltextValue() { public String[] getKeyValue() { return super.getKeyValue(); } - - @Field(type = Flattened, index = false) - public Map getKeyValueTranslations() { - return super.keyValueTranslations; - } }