You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2021/09/28 11:15:51 UTC

[plc4x-build-tools] branch develop updated: fix: fixed order on getDiscriminatorCaseToKeyValueMap

This is an automated email from the ASF dual-hosted git repository.

sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x-build-tools.git


The following commit(s) were added to refs/heads/develop by this push:
     new 82324e5  fix: fixed order on getDiscriminatorCaseToKeyValueMap
82324e5 is described below

commit 82324e591c267d1215bd9a1b3e3305a19f910433
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Tue Sep 28 13:15:43 2021 +0200

    fix: fixed order on getDiscriminatorCaseToKeyValueMap
---
 .../types/definitions/TypeDefinition.java              | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/code-generation/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/TypeDefinition.java b/code-generation/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/TypeDefinition.java
index 73ed58f..d5c42fc 100644
--- a/code-generation/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/TypeDefinition.java
+++ b/code-generation/types-base/src/main/java/org/apache/plc4x/plugins/codegenerator/types/definitions/TypeDefinition.java
@@ -22,10 +22,7 @@ import org.apache.plc4x.plugins.codegenerator.types.fields.SwitchField;
 import org.apache.plc4x.plugins.codegenerator.types.references.TypeReference;
 import org.apache.plc4x.plugins.codegenerator.types.terms.Term;
 
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 
 public interface TypeDefinition extends TypeDefinitionConversions {
@@ -106,7 +103,7 @@ public interface TypeDefinition extends TypeDefinitionConversions {
      * @return Map mapping discriminator names to discriminator values for every discriminated type.
      */
     // TODO: check if this can be moved down.
-    default Map<String, Map<String, String>> getDiscriminatorCaseToKeyValueMap() {
+    default LinkedHashMap<String, Map<String, String>> getDiscriminatorCaseToKeyValueMap() {
         // Get the parent type (Which contains the typeSwitch field)
         ComplexTypeDefinition parentType;
         if (isDiscriminatedComplexTypeDefinition()) {
@@ -119,9 +116,16 @@ public interface TypeDefinition extends TypeDefinitionConversions {
                 .map(SwitchField::getCases)
                 .map(cases -> cases.stream()
                         // Build a map containing the named discriminator values for every case of the typeSwitch.
-                        .collect(Collectors.toMap(DiscriminatedComplexTypeDefinition::getName, DiscriminatedComplexTypeDefinition::getDiscriminatorMap))
+                        .collect(
+                                Collectors.toMap(
+                                        DiscriminatedComplexTypeDefinition::getName,
+                                        DiscriminatedComplexTypeDefinition::getDiscriminatorMap,
+                                        (oldValue, newValue) -> oldValue,
+                                        LinkedHashMap::new
+                                )
+                        )
                 )
-                .orElse(Collections.emptyMap());
+                .orElse(new LinkedHashMap<>());
     }
 
 }