From bb9f5e5ebd887ee2e49d7bc115988a99c646b0c2 Mon Sep 17 00:00:00 2001 From: Dovydas Skauranskas <109866625+DovydasSkauranskas@users.noreply.github.com> Date: Sat, 14 Mar 2026 15:12:31 +0200 Subject: [PATCH 1/3] #201 tsyn Flag von dem Part Def ablesen --- .../adapters/AttributeUsage2PortSymbolAdapter.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/language/src/main/java/de/monticore/lang/sysmlv2/symboltable/adapters/AttributeUsage2PortSymbolAdapter.java b/language/src/main/java/de/monticore/lang/sysmlv2/symboltable/adapters/AttributeUsage2PortSymbolAdapter.java index 4350c499..2eb3959a 100644 --- a/language/src/main/java/de/monticore/lang/sysmlv2/symboltable/adapters/AttributeUsage2PortSymbolAdapter.java +++ b/language/src/main/java/de/monticore/lang/sysmlv2/symboltable/adapters/AttributeUsage2PortSymbolAdapter.java @@ -1,6 +1,7 @@ package de.monticore.lang.sysmlv2.symboltable.adapters; import de.monticore.lang.componentconnector._symboltable.MildPortSymbol; +import de.monticore.lang.sysmlparts._ast.ASTPartDef; import de.monticore.lang.sysmlparts._symboltable.AttributeUsageSymbol; import de.monticore.lang.sysmlparts._symboltable.PartDefSymbol; import de.monticore.lang.sysmlparts._symboltable.PortUsageSymbol; @@ -75,7 +76,10 @@ private Timing determineTiming(PortUsageSymbol container) { var scope = (ISysMLv2Scope) container.getEnclosingScope(); boolean hasTsyn = scope.getLocalStateUsageSymbols().stream() - .anyMatch(sym -> sym.getUserDefinedKeywordsList().contains("tsyn")); + .anyMatch(sym -> sym.getUserDefinedKeywordsList().contains("tsyn")) + || ((ASTPartDef) scope.getSpanningSymbol().getAstNode()) + .getUserDefinedKeywordList().stream() + .anyMatch(kw -> kw.getMCQualifiedName().getQName().equals("tsyn")); return hasTsyn ? Timing.TIMED_SYNC : Timing.TIMED; } From daf7178a39572fb8ea896fb1b16e981fb21b1a4c Mon Sep 17 00:00:00 2001 From: Dovydas Skauranskas <109866625+DovydasSkauranskas@users.noreply.github.com> Date: Sun, 15 Mar 2026 14:15:20 +0200 Subject: [PATCH 2/3] #201 Check if present AST node --- .../symboltable/adapters/AttributeUsage2PortSymbolAdapter.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/language/src/main/java/de/monticore/lang/sysmlv2/symboltable/adapters/AttributeUsage2PortSymbolAdapter.java b/language/src/main/java/de/monticore/lang/sysmlv2/symboltable/adapters/AttributeUsage2PortSymbolAdapter.java index 2eb3959a..9f35e461 100644 --- a/language/src/main/java/de/monticore/lang/sysmlv2/symboltable/adapters/AttributeUsage2PortSymbolAdapter.java +++ b/language/src/main/java/de/monticore/lang/sysmlv2/symboltable/adapters/AttributeUsage2PortSymbolAdapter.java @@ -77,7 +77,8 @@ private Timing determineTiming(PortUsageSymbol container) { boolean hasTsyn = scope.getLocalStateUsageSymbols().stream() .anyMatch(sym -> sym.getUserDefinedKeywordsList().contains("tsyn")) - || ((ASTPartDef) scope.getSpanningSymbol().getAstNode()) + || scope.getSpanningSymbol().isPresentAstNode() && + ((ASTPartDef) scope.getSpanningSymbol().getAstNode()) .getUserDefinedKeywordList().stream() .anyMatch(kw -> kw.getMCQualifiedName().getQName().equals("tsyn")); From 9f747c57527a52e645c8f40470f0c6d9eebc20c2 Mon Sep 17 00:00:00 2001 From: Dovydas Skauranskas <109866625+DovydasSkauranskas@users.noreply.github.com> Date: Sun, 15 Mar 2026 14:30:38 +0200 Subject: [PATCH 3/3] #201 PartDefSymbol Type check --- .../symboltable/adapters/AttributeUsage2PortSymbolAdapter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/language/src/main/java/de/monticore/lang/sysmlv2/symboltable/adapters/AttributeUsage2PortSymbolAdapter.java b/language/src/main/java/de/monticore/lang/sysmlv2/symboltable/adapters/AttributeUsage2PortSymbolAdapter.java index 9f35e461..d0efcb49 100644 --- a/language/src/main/java/de/monticore/lang/sysmlv2/symboltable/adapters/AttributeUsage2PortSymbolAdapter.java +++ b/language/src/main/java/de/monticore/lang/sysmlv2/symboltable/adapters/AttributeUsage2PortSymbolAdapter.java @@ -77,7 +77,7 @@ private Timing determineTiming(PortUsageSymbol container) { boolean hasTsyn = scope.getLocalStateUsageSymbols().stream() .anyMatch(sym -> sym.getUserDefinedKeywordsList().contains("tsyn")) - || scope.getSpanningSymbol().isPresentAstNode() && + || scope.getSpanningSymbol() instanceof PartDefSymbol && scope.getSpanningSymbol().isPresentAstNode() && ((ASTPartDef) scope.getSpanningSymbol().getAstNode()) .getUserDefinedKeywordList().stream() .anyMatch(kw -> kw.getMCQualifiedName().getQName().equals("tsyn"));