From 3a3f15a86b8c19793b7ef0da0e7150734084292b Mon Sep 17 00:00:00 2001 From: SE-FDr <88034434+SE-FDr@users.noreply.github.com> Date: Wed, 26 Nov 2025 15:12:39 +0100 Subject: [PATCH] decrease non-determinism* HashSet -> LinkedHashSet HashMap -> LinkedHashMap --- .../main/java/de/monticore/codeAdaption/CodeAdapter.java | 2 +- .../monticore/codeAdaption/handler/BasicUpdateHandler.java | 2 +- .../de/monticore/codeAdaption/matcher/MatcherHelper.java | 4 ++-- .../codeAdaption/updater/spoonUpdater/SpoonUpdater.java | 4 ++-- .../java/de/monticore/codeAdaption/utils/AdapterUtils.java | 2 +- .../java/de/monticore/codeAdaption/utils/JavaLoader.java | 4 ++-- .../codeAdaption/utils/visitors/JavaAstElemCollector.java | 6 +++--- .../de/monticore/codeAdaption/validator/CodeValidator.java | 2 +- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/CodeAdapter.java b/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/CodeAdapter.java index 0aadee79..21abdd5f 100644 --- a/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/CodeAdapter.java +++ b/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/CodeAdapter.java @@ -51,7 +51,7 @@ public void adapt( ASTCDCompilationUnit refCD = JavaLoader.loadCD(referenceCD); ASTCDCompilationUnit conCD = JavaLoader.loadCD(concreteCD); - Set adaptedCode = new HashSet<>(); + Set adaptedCode = new LinkedHashSet<>(); for (String mapping : mappings) { diff --git a/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/handler/BasicUpdateHandler.java b/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/handler/BasicUpdateHandler.java index fe51ba18..8a325491 100644 --- a/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/handler/BasicUpdateHandler.java +++ b/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/handler/BasicUpdateHandler.java @@ -60,7 +60,7 @@ public BasicUpdateHandler( public void handleUpdate(Set javaFiles) { // Collect elements of each type - Set typeElements = new HashSet<>(); + Set typeElements = new LinkedHashSet<>(); for (ASTOrdinaryCompilationUnit ast : javaFiles) { // collect code elements diff --git a/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/matcher/MatcherHelper.java b/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/matcher/MatcherHelper.java index 5a735cd1..b96c9d38 100644 --- a/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/matcher/MatcherHelper.java +++ b/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/matcher/MatcherHelper.java @@ -92,7 +92,7 @@ public static String mkTemplateFormInfix(String name, List infixList) { public static List cleanReferences(String name, List infixList) { List refs = infixList.stream().map(ref -> ref.getName().toLowerCase()).collect(Collectors.toList()); - Map refMap = new HashMap<>(); + Map refMap = new LinkedHashMap<>(); for (int i = 0; i < refs.size(); i++) { refMap.put(name.toLowerCase().indexOf(refs.get(i)), infixList.get(i)); @@ -189,7 +189,7 @@ public static List cleanReferences(List references) { return references; } - Set temps = new HashSet<>(references); + Set temps = new LinkedHashSet<>(references); for (ISymbol symbol : temps) { for (ISymbol symbol1 : temps) { if (!symbol.equals(symbol1) && (matchInfix(symbol.getName(), symbol1.getName()))) { diff --git a/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/updater/spoonUpdater/SpoonUpdater.java b/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/updater/spoonUpdater/SpoonUpdater.java index 160735d1..9f26c4b5 100644 --- a/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/updater/spoonUpdater/SpoonUpdater.java +++ b/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/updater/spoonUpdater/SpoonUpdater.java @@ -26,8 +26,8 @@ public class SpoonUpdater implements CodeUpdater { private File outputDir; private Launcher launcher; private CtModel spoonModel; - private final Map> typeMap = new HashMap<>(); - private final Map> methodMap = new HashMap<>(); + private final Map> typeMap = new LinkedHashMap<>(); + private final Map> methodMap = new LinkedHashMap<>(); @Override public void setCodePath(Path path) { diff --git a/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/utils/AdapterUtils.java b/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/utils/AdapterUtils.java index 3abae44c..317df905 100644 --- a/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/utils/AdapterUtils.java +++ b/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/utils/AdapterUtils.java @@ -21,7 +21,7 @@ public class AdapterUtils { public static Set getAllCDTypes(ASTCDCompilationUnit cd) { - Set res = new HashSet<>(); + Set res = new LinkedHashSet<>(); res.addAll(cd.getCDDefinition().getCDClassesList()); res.addAll(cd.getCDDefinition().getCDInterfacesList()); res.addAll(cd.getCDDefinition().getCDEnumsList()); diff --git a/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/utils/JavaLoader.java b/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/utils/JavaLoader.java index ec4bf0e4..05c52bb0 100644 --- a/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/utils/JavaLoader.java +++ b/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/utils/JavaLoader.java @@ -167,7 +167,7 @@ public static void writeFile(Path path, String content) { * @return A set of Java files represented as ASTOrdinaryCompilationUnit. */ public static Set readJavaCode(Path directoryPath) { - Set res = new HashSet<>(); + Set res = new LinkedHashSet<>(); readJavaCode(directoryPath, res); return res.stream().map(JavaLoader::loadJava).collect(Collectors.toSet()); } @@ -179,7 +179,7 @@ public static Set readJavaCode(Path directoryPath) { * @return A set of Java files as File objects. */ public static Set readJavaFile(Path directoryPath) { - Set res = new HashSet<>(); + Set res = new LinkedHashSet<>(); readJavaCode(directoryPath, res); return res; } diff --git a/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/utils/visitors/JavaAstElemCollector.java b/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/utils/visitors/JavaAstElemCollector.java index a2b9035d..e5883a06 100644 --- a/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/utils/visitors/JavaAstElemCollector.java +++ b/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/utils/visitors/JavaAstElemCollector.java @@ -18,7 +18,7 @@ public class JavaAstElemCollector implements JavaDSLVisitor2 { private final List typeDeclarations = new ArrayList<>(); - private final Map typeElements = new HashMap<>(); + private final Map typeElements = new LinkedHashMap<>(); @Override public void visit(ASTClassDeclaration node) { @@ -109,8 +109,8 @@ class TypeElementCollector implements JavaDSLVisitor2, JavaLightVisitor2 { List fieldDeclarations = new ArrayList<>(); List supertypesDeclarations = new ArrayList<>(); - Map> localVarsMap = new HashMap<>(); - Map> formalParamsMap = new HashMap<>(); + Map> localVarsMap = new LinkedHashMap<>(); + Map> formalParamsMap = new LinkedHashMap<>(); @Override public void visit(ASTMethodDeclaration node) { diff --git a/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/validator/CodeValidator.java b/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/validator/CodeValidator.java index cb309d78..dc35fec5 100644 --- a/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/validator/CodeValidator.java +++ b/ref-code-adaptation/src/main/java/de/monticore/codeAdaption/validator/CodeValidator.java @@ -112,7 +112,7 @@ public boolean isValid(ASTCDCompilationUnit refCD, Path refCode) { asts.forEach(ast -> runCoCosPhase2(ast, refCD)); // check that all elements matched - Set allType = new HashSet<>(); + Set allType = new LinkedHashSet<>(); for (ASTOrdinaryCompilationUnit ast : asts) { JavaAstElemCollector collector = new JavaAstElemCollector(); JavaDSLTraverser traverser = JavaDSLMill.traverser();