From dc74cfe8526b428e1b7803386ad9d0eeebd4fca3 Mon Sep 17 00:00:00 2001 From: Felix Jordan Date: Thu, 21 Aug 2025 11:56:40 +0200 Subject: [PATCH] refactor(refmodel): rename handwritten TOP classes to 'Base' --- .../refmodel/BasicSymbolsBindings.java | 2 +- ...TOP.java => BasicSymbolsBindingsBase.java} | 27 +++++++++++-------- .../oosymbols/refmodel/OOSymbolsBindings.java | 2 +- ...ngsTOP.java => OOSymbolsBindingsBase.java} | 20 +++++++++++--- 4 files changed, 34 insertions(+), 17 deletions(-) rename cddiff/src/main/java/de/monticore/symbols/basicsymbols/refmodel/{BasicSymbolsBindingsTOP.java => BasicSymbolsBindingsBase.java} (89%) rename cddiff/src/main/java/de/monticore/symbols/oosymbols/refmodel/{OOSymbolsBindingsTOP.java => OOSymbolsBindingsBase.java} (95%) diff --git a/cddiff/src/main/java/de/monticore/symbols/basicsymbols/refmodel/BasicSymbolsBindings.java b/cddiff/src/main/java/de/monticore/symbols/basicsymbols/refmodel/BasicSymbolsBindings.java index d64785f6b..1c3f3b127 100644 --- a/cddiff/src/main/java/de/monticore/symbols/basicsymbols/refmodel/BasicSymbolsBindings.java +++ b/cddiff/src/main/java/de/monticore/symbols/basicsymbols/refmodel/BasicSymbolsBindings.java @@ -11,7 +11,7 @@ import java.util.Set; import java.util.stream.Collectors; -public class BasicSymbolsBindings extends BasicSymbolsBindingsTOP { +public class BasicSymbolsBindings extends BasicSymbolsBindingsBase { protected BasicSymbolsBindings(Bindings typeBindings, Bindings variableBindings, Bindings functionBindings) { diff --git a/cddiff/src/main/java/de/monticore/symbols/basicsymbols/refmodel/BasicSymbolsBindingsTOP.java b/cddiff/src/main/java/de/monticore/symbols/basicsymbols/refmodel/BasicSymbolsBindingsBase.java similarity index 89% rename from cddiff/src/main/java/de/monticore/symbols/basicsymbols/refmodel/BasicSymbolsBindingsTOP.java rename to cddiff/src/main/java/de/monticore/symbols/basicsymbols/refmodel/BasicSymbolsBindingsBase.java index 44d82f8e6..fe44ca952 100644 --- a/cddiff/src/main/java/de/monticore/symbols/basicsymbols/refmodel/BasicSymbolsBindingsTOP.java +++ b/cddiff/src/main/java/de/monticore/symbols/basicsymbols/refmodel/BasicSymbolsBindingsBase.java @@ -12,28 +12,33 @@ import java.util.Optional; import java.util.Set; -public class BasicSymbolsBindingsTOP implements IBasicSymbolsBindings { - - /* - * NOTE: This class can be generated and developers can override methods to add additional checks - * for conflicts. - * For example, addFieldBinding to additionally check if it conflicts with type bindings, - * or addFunctionBinding to check if a parameter type of the function is already bound to - * something else - */ +/** + * Basic implementation of {@link IBasicSymbolsBindings}.
+ *
+ * NOTE: This class is intended to be GENERATED in the future! Therefore, only apply changes + * which are systematic and can be automatically derived from the language grammar.
+ *
+ * Developers can customize the semantic relations between different symbols, e.g. by overriding + * the {@code getXXXImpliedBindings}. + */ +/* + * TODO If this class is generated, remove the 'Base' suffix as MontiCore will automatically name + * it TOP in case there is a handwritten implementation. + */ +public class BasicSymbolsBindingsBase implements IBasicSymbolsBindings { private final Bindings typeBindings; private final Bindings variableBindings; private final Bindings functionBindings; - protected BasicSymbolsBindingsTOP(Bindings typeBindings, + protected BasicSymbolsBindingsBase(Bindings typeBindings, Bindings variableBindings, Bindings functionBindings) { this.typeBindings = typeBindings; this.variableBindings = variableBindings; this.functionBindings = functionBindings; } - public BasicSymbolsBindingsTOP() { + public BasicSymbolsBindingsBase() { this(new Bindings<>(), new Bindings<>(), new Bindings<>()); } diff --git a/cddiff/src/main/java/de/monticore/symbols/oosymbols/refmodel/OOSymbolsBindings.java b/cddiff/src/main/java/de/monticore/symbols/oosymbols/refmodel/OOSymbolsBindings.java index 243e5c565..0e063237f 100644 --- a/cddiff/src/main/java/de/monticore/symbols/oosymbols/refmodel/OOSymbolsBindings.java +++ b/cddiff/src/main/java/de/monticore/symbols/oosymbols/refmodel/OOSymbolsBindings.java @@ -17,7 +17,7 @@ import java.util.Set; import java.util.stream.Collectors; -public class OOSymbolsBindings extends OOSymbolsBindingsTOP { +public class OOSymbolsBindings extends OOSymbolsBindingsBase { public OOSymbolsBindings() { super(); diff --git a/cddiff/src/main/java/de/monticore/symbols/oosymbols/refmodel/OOSymbolsBindingsTOP.java b/cddiff/src/main/java/de/monticore/symbols/oosymbols/refmodel/OOSymbolsBindingsBase.java similarity index 95% rename from cddiff/src/main/java/de/monticore/symbols/oosymbols/refmodel/OOSymbolsBindingsTOP.java rename to cddiff/src/main/java/de/monticore/symbols/oosymbols/refmodel/OOSymbolsBindingsBase.java index 2d008f803..5b38a9eb8 100644 --- a/cddiff/src/main/java/de/monticore/symbols/oosymbols/refmodel/OOSymbolsBindingsTOP.java +++ b/cddiff/src/main/java/de/monticore/symbols/oosymbols/refmodel/OOSymbolsBindingsBase.java @@ -17,8 +17,20 @@ import java.util.Optional; import java.util.Set; -// NOTE: Could be generated -public class OOSymbolsBindingsTOP implements IOOSymbolsBindings { +/** + * Basic implementation of {@link IOOSymbolsBindings}.
+ *
+ * NOTE: This class is intended to be GENERATED in the future! Therefore, only apply changes + * which are systematic and can be automatically derived from the language grammar.
+ *
+ * Developers can customize the semantic relations between different symbols, e.g. by overriding + * the {@code getXXXImpliedBindings}. + */ +/* + * TODO If this class is generated, remove the 'Base' suffix as MontiCore will automatically name + * it TOP in case there is a handwritten implementation. + */ +public class OOSymbolsBindingsBase implements IOOSymbolsBindings { // ========== Symbol bindings from languages extended by OOSymbols ========== @@ -33,11 +45,11 @@ public class OOSymbolsBindingsTOP implements IOOSymbolsBindings { private final Bindings fieldBindings; private final Bindings methodBindings; - public OOSymbolsBindingsTOP() { + public OOSymbolsBindingsBase() { this(new BasicSymbolsBindings(), new Bindings<>(), new Bindings<>(), new Bindings<>()); } - protected OOSymbolsBindingsTOP(IBasicSymbolsBindings basicSymbolsBindings, + protected OOSymbolsBindingsBase(IBasicSymbolsBindings basicSymbolsBindings, Bindings ooTypeBindings, Bindings fieldBindings, Bindings methodBindings) { this.basicSymbolsBindings = basicSymbolsBindings;