diff --git a/.claude/agents/textual-notation-reviewer.md b/.claude/agents/textual-notation-reviewer.md index 391793d62..07b289845 100644 --- a/.claude/agents/textual-notation-reviewer.md +++ b/.claude/agents/textual-notation-reviewer.md @@ -1,6 +1,6 @@ --- name: textual-notation-reviewer -description: Expert reviewer for SysML2 TextualNotationBuilder code — generated AND hand-coded, across SysML2.NET/TextualNotation/, SysML2.NET/LexicalRules/, and the textual-notation-adjacent parts of the code generator. Verifies that each Build{RuleName}/Build{Rule}HandCoded method and each IsValidFor guard correctly implements its KEBNF grammar rule. Pass one or more file paths and optionally specific method names. +description: Expert reviewer for SysML2 TextualNotationBuilder code — generated AND hand-coded, across SysML2.NET.Serializer.TextualNotation/Writers/, SysML2.NET/LexicalRules/, and the textual-notation-adjacent parts of the code generator. Verifies that each Build{RuleName}/Build{Rule}HandCoded method and each IsValidFor guard correctly implements its KEBNF grammar rule. Pass one or more file paths and optionally specific method names. tools: Read, Grep, Glob, Bash model: sonnet --- @@ -11,12 +11,12 @@ You are a master of the SysML2.NET textual notation pipeline. Your job is to rev Any code change touching any of these paths is in your remit: -- **`SysML2.NET/TextualNotation/`** — every `.cs` file, both hand-coded partial classes (`*.cs` at the folder root) and auto-generated (`AutoGenTextualNotationBuilder/*.cs`). This includes `TextualNotationValidationExtensions.cs`, `MembershipValidationExtensions.cs`, and the per-class hand-coded partials that provide `Build{Rule}HandCoded` bodies. +- **`SysML2.NET.Serializer.TextualNotation/Writers/`** — every `.cs` file under `Writers/`, both hand-coded partial classes (`*.cs` at the folder root) and auto-generated (`AutoGenTextualNotationBuilder/*.cs`). This includes `TextualNotationValidationExtensions.cs`, `MembershipValidationExtensions.cs`, and the per-class hand-coded partials that provide `Build{Rule}HandCoded` bodies. The namespace for all of these is `SysML2.NET.Serializer.TextualNotation.Writers`. - **`SysML2.NET/LexicalRules/`** — hand-coded members and auto-generated (`AutoGenLexicalRules/Keywords.cs`, `SymbolicKeywordKind.cs`, `SymbolicKeywordKindExtensions.cs`). - **`SysML2.NET.CodeGenerator/HandleBarHelpers/RulesHelper.cs`** — the central code-gen logic. - **`SysML2.NET.CodeGenerator/Templates/Uml/*.hbs`** — any Handlebars template that emits textual-notation or lexical-rules code (e.g. `core-textual-notation-builder-template.hbs`, `core-textual-notation-shared-builder-template.hbs`, `core-lexical-*.hbs`). -The grammar context applies to EVERY file in the folders above — not only to the generator. When reviewing a hand-coded method in `SysML2.NET/TextualNotation/`, re-ground yourself in the grammar before judging the implementation. +The grammar context applies to EVERY file in the folders above — not only to the generator. When reviewing a hand-coded method in `SysML2.NET.Serializer.TextualNotation/Writers/`, re-ground yourself in the grammar before judging the implementation. ## Your Knowledge Base diff --git a/CLAUDE.md b/CLAUDE.md index 72bcc74e4..7f4b48806 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -43,11 +43,11 @@ Test framework: **NUnit**. Test classes use `[TestFixture]` and `[Test]` attribu **Every code change touching any of the following paths MUST be verified by the `textual-notation-reviewer` agent before reporting the change as complete or committing:** -- Every file under `SysML2.NET/TextualNotation/` — both hand-coded partials (`*.cs`), the generated `AutoGenTextualNotationBuilder/*.cs`, `IsValidFor` guard extensions (`TextualNotationValidationExtensions.cs`), and any membership / string / cursor helpers that sit beside them. +- Every file under `SysML2.NET.Serializer.TextualNotation/Writers/` — both hand-coded partials (`*.cs`), the generated `AutoGenTextualNotationBuilder/*.cs`, `IsValidFor` guard extensions (`TextualNotationValidationExtensions.cs`), and any membership / string / cursor helpers that sit beside them. - Every file under `SysML2.NET/LexicalRules/` — both hand-coded members and the generated `AutoGenLexicalRules/*.cs` (`Keywords`, `SymbolicKeywordKind`, `SymbolicKeywordKindExtensions`). - `SysML2.NET.CodeGenerator/HandleBarHelpers/RulesHelper.cs` and any Handlebars template under `SysML2.NET.CodeGenerator/Templates/Uml/` that emits textual-notation or lexical-rules code. -**The KEBNF grammar context applies to ALL of these locations** — not just the generator. When implementing or reviewing hand-coded methods in `SysML2.NET/TextualNotation/`, the author and the reviewer must re-ground in: +**The KEBNF grammar context applies to ALL of these locations** — not just the generator. When implementing or reviewing hand-coded methods in `SysML2.NET.Serializer.TextualNotation/Writers/`, the author and the reviewer must re-ground in: - `SysML2.NET.CodeGenerator/GRAMMAR.md` — the cursor / builder conventions and patterns - `Resources/SysML-textual-bnf.kebnf` and `Resources/KerML-textual-bnf.kebnf` — the grammar source of truth - The rule's `{…}` XML doc on the generated sibling method (if the method is a HandCoded companion) @@ -86,7 +86,7 @@ The XMI files (`Resources/KerML_only_xmi.uml`, `Resources/SysML_only_xmi.uml`) d - `Resources/specification/1-Kernel_Modeling_Language.pdf.txt` — *Kernel Modeling Language (KerML) Version 1.0* (OMG formal/2026-03-01). Consult when working with metaclasses in the `Root.*`, `Core.*`, and `Kernel.*` namespaces (under `SysML2.NET/Core/AutoGenDto/` and `AutoGenPoco/`), when an OCL constraint is unclear, or when reasoning about element/relationship/feature/classification semantics that the XMI does not spell out. - `Resources/specification/2a-OMG_Systems_Modeling_Language.pdf.txt` — *OMG Systems Modeling Language (SysML) Version 2.0, Part 1: Language Specification* (OMG formal/2026-03-02). Consult when working with the systems-engineering-specific metaclasses in `Systems.*` namespaces — Parts, Ports, Connections, Interfaces, Actions, States, Interactions, Requirements, Constraints, Use Cases, Analysis/Verification Cases, Views, Metadata — and to ground the Definition/Usage pattern. - `Resources/specification/3-Systems_Modeling_API_and_Services.pdf.txt` — *Systems Modeling API and Services Version 1.0* (OMG formal/2026-03-04). Consult when working in `SysML2.NET.REST/`, `SysML2.NET/PIM/`, `SysML2.NET.Serializer.Dictionary/`, or `SysML2.NET/ModelInterchange/`. Defines the Platform-Independent Model (ProjectService, ElementNavigationService, ProjectDataVersioningService, QueryService, ExternalRelationshipService, ProjectUsageService) and the REST/HTTP and OSLC PSMs. -- `Resources/specification/Intro to the SysML v2 Language-Textual Notation.pdf.txt` — SST tutorial, Release 2026-03. Informative companion to the KEBNF grammar; consult for canonical examples and idioms when implementing or reviewing rules under `SysML2.NET/TextualNotation/` and `SysML2.NET/LexicalRules/`. +- `Resources/specification/Intro to the SysML v2 Language-Textual Notation.pdf.txt` — SST tutorial, Release 2026-03. Informative companion to the KEBNF grammar; consult for canonical examples and idioms when implementing or reviewing rules under `SysML2.NET.Serializer.TextualNotation/Writers/` and `SysML2.NET/LexicalRules/`. - `Resources/specification/Intro to the SysML v2 Language-Graphical Notation.pdf.txt` — SST tutorial, Release 2026-03. Consult when working on `SysML2.NET.Viewer/` (Blazor) for the visual-rendering conventions of each metaclass family. These text files are large (PDF-converted, up to 1.3 MB) and the conversion is not always clean. Read them with `Read` `offset`/`limit` and use `Grep` to jump to chapter/section anchors (e.g. `^7\.\d+`, `Clause 8\.`, or a metaclass name) rather than loading whole files into context. @@ -111,6 +111,7 @@ SysML2.NET.Serializer.Json - JSON (de)serialization via System.Text.Json SysML2.NET.Serializer.Xmi - XMI (de)serialization SysML2.NET.Serializer.MessagePack - MessagePack binary serialization SysML2.NET.Serializer.Dictionary - Dictionary-based serialization (PIM) +SysML2.NET.Serializer.TextualNotation - Writers/, Writers/AutoGenTextualNotationBuilder/, validation extensions, cursor helpers SysML2.NET.Dal - Data Access Layer (Assembler, ElementFactory) SysML2.NET.REST - REST client + Session for SysML2 API servers SysML2.NET.Kpar - Reader/Writer for .kpar archive format diff --git a/README.md b/README.md index f537b99ae..d7915ca26 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ project [SysML2.NET.Serializer.Json](https://www.nuget.org/packages/SysML2.NET.Serializer.Json) | ![NuGet Version](https://img.shields.io/nuget/v/SysML2.NET.Serializer.Json) [SysML2.NET.Serializer.Xmi](https://www.nuget.org/packages/SysML2.NET.Serializer.Xmi) | ![NuGet Version](https://img.shields.io/nuget/v/SysML2.NET.Serializer.Xmi) [SysML2.NET.Serializer.MessagePack](https://www.nuget.org/packages/SysML2.NET.Serializer.MessagePack) | ![NuGet Version](https://img.shields.io/nuget/v/SysML2.NET.Serializer.MessagePack) +[SysML2.NET.Serializer.TextualNotation](https://www.nuget.org/packages/SysML2.NET.Serializer.TextualNotation) | ![NuGet Version](https://img.shields.io/nuget/v/SysML2.NET.Serializer.TextualNotation) [SysML2.NET.Kpar](https://www.nuget.org/packages/SysML2.NET.Kpar) | ![NuGet Version](https://img.shields.io/nuget/v/SysML2.NET.Kpar) [SysML2.NET.REST](https://www.nuget.org/packages/SysML2.NET.REST) | ![NuGet Version](https://img.shields.io/nuget/v/SysML2.NET.REST) [SysML2.NET.DAL](https://www.nuget.org/packages/SysML2.NET.DAL) | ![NuGet Version](https://img.shields.io/nuget/v/SysML2.NET.DAL) diff --git a/SysML2.NET.CodeGenerator/GRAMMAR.md b/SysML2.NET.CodeGenerator/GRAMMAR.md index b789115fb..26d353149 100644 --- a/SysML2.NET.CodeGenerator/GRAMMAR.md +++ b/SysML2.NET.CodeGenerator/GRAMMAR.md @@ -2,7 +2,9 @@ This file provides essential context for working on the SysML2 textual notation code generator (`RulesHelper.cs` and related files). Read this when modifying grammar processing or the `TextualNotationBuilder` generation pipeline. -> **⚠ Reviewer agent is mandatory for every change.** Before committing any modification to `SysML2.NET/TextualNotation/*.cs` or to `SysML2.NET.CodeGenerator/HandleBarHelpers/RulesHelper.cs`, invoke the `textual-notation-reviewer` agent (`.claude/agents/textual-notation-reviewer.md`) to verify grammar correctness. See CLAUDE.md "Textual notation reviewer is MANDATORY" for details. +> **For the end-to-end pipeline narrative** (parser → grammar model → `RuleProcessor` dispatch → patterns A/B/C/D → three-tier guard resolution → no-target lifting), see the longer companion document `TEXTUAL_NOTATION_CODEGEN.md` in this same folder. + +> **⚠ Reviewer agent is mandatory for every change.** Before committing any modification to `SysML2.NET.Serializer.TextualNotation/Writers/*.cs` or to `SysML2.NET.CodeGenerator/HandleBarHelpers/RulesHelper.cs`, invoke the `textual-notation-reviewer` agent (`.claude/agents/textual-notation-reviewer.md`) to verify grammar correctness. See CLAUDE.md "Textual notation reviewer is MANDATORY" for details. ## EBNF / KEBNF Notation Legend @@ -40,10 +42,10 @@ KEBNF grammar files (Grammar/Resources/*.kebnf) into Grammar/Model/* (RuleElement hierarchy) processed by HandleBarHelpers/RulesHelper.cs via Handlebars template (Templates/Uml/textualNotationBuilder.hbs) - emits SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/*.cs + emits SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/*.cs ``` -**Hand-coded counterparts** live in `SysML2.NET/TextualNotation/*.cs` (parent folder) as `partial` classes. When code-gen can't handle a rule, it emits `Build{RuleName}HandCoded(poco, cursorCache, stringBuilder)` which must be implemented in the hand-coded partial. +**Hand-coded counterparts** live in `SysML2.NET.Serializer.TextualNotation/Writers/*.cs` (parent folder) as `partial` classes. When code-gen can't handle a rule, it emits `Build{RuleName}HandCoded(poco, cursorCache, stringBuilder)` which must be implemented in the hand-coded partial. ## Grammar Element Types (`Grammar/Model/`) @@ -138,7 +140,7 @@ Build{RuleName}HandCoded(poco, cursorCache, stringBuilder); ``` The hand-coded partial class file must: -1. Live in `SysML2.NET/TextualNotation/{ClassName}TextualNotationBuilder.cs` +1. Live in `SysML2.NET.Serializer.TextualNotation/Writers/{ClassName}TextualNotationBuilder.cs` 2. Declare `public static partial class {ClassName}TextualNotationBuilder` 3. Implement the method as `private static void Build{RuleName}HandCoded(...)` 4. Use `NotSupportedException` (not `NotImplementedException`) for unimplemented stubs @@ -157,12 +159,12 @@ After modifying `RulesHelper.cs`: dotnet build SysML2.NET.CodeGenerator/SysML2.NET.CodeGenerator.csproj dotnet test SysML2.NET.CodeGenerator.Tests/SysML2.NET.CodeGenerator.Tests.csproj --filter UmlCoreTextualNotationBuilderGeneratorTestFixture # Generated files land in SysML2.NET.CodeGenerator.Tests/bin/Debug/net10.0/UML/_SysML2.NET.Core.UmlCoreTextualNotationBuilderGenerator/ -cp SysML2.NET.CodeGenerator.Tests/bin/Debug/net10.0/UML/_SysML2.NET.Core.UmlCoreTextualNotationBuilderGenerator/*.cs SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ +cp SysML2.NET.CodeGenerator.Tests/bin/Debug/net10.0/UML/_SysML2.NET.Core.UmlCoreTextualNotationBuilderGenerator/*.cs SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ dotnet build SysML2.NET.sln dotnet test SysML2.NET.sln ``` **Count remaining HandCoded calls** to track progress: ```bash -grep -r "HandCoded" SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/*.cs | wc -l +grep -r "HandCoded" SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/*.cs | wc -l ``` diff --git a/SysML2.NET.CodeGenerator/TEXTUAL_NOTATION_CODEGEN.md b/SysML2.NET.CodeGenerator/TEXTUAL_NOTATION_CODEGEN.md new file mode 100644 index 000000000..9f34bbb4d --- /dev/null +++ b/SysML2.NET.CodeGenerator/TEXTUAL_NOTATION_CODEGEN.md @@ -0,0 +1,577 @@ +# Textual Notation Code Generation — Technical Reference + +This document describes, end-to-end and in technical detail, how the **textual notation builders** (`Build{Rule}` methods that turn a POCO into KerML/SysML v2 source text) are generated from the **UML metamodel** and the **KEBNF grammar files**. It is intended for engineers extending or debugging the generator, hand-coding `Build{Rule}HandCoded` partials, or reviewing emitted output. + +It does **not** teach KEBNF or SysML v2; for those see `Resources/SysML-textual-bnf.kebnf`, `Resources/KerML-textual-bnf.kebnf`, and the OMG SysML v2 Textual Notation tutorial in `Resources/specification/Intro to the SysML v2 Language-Textual Notation.pdf.txt`. + +## 1. Inputs + +The generator combines **two sources of truth**. Neither is sufficient on its own. + +| Source | Files | Role | +|---|---|---| +| UML metamodel | `Resources/KerML_only_xmi.uml`, `Resources/SysML_only_xmi.uml` | Defines every metaclass, its properties (name, type, multiplicity, owned/derived), and inheritance. Read via `uml4net.xmi`. | +| KEBNF grammar | `Resources/KerML-textual-bnf.kebnf`, `Resources/SysML-textual-bnf.kebnf` | Defines every textual rule, its target metaclass, alternatives, terminals, and property assignments. Loaded via an ANTLR-generated parser. | + +A KEBNF rule header has the form + +``` +RuleName : TargetElementName = alternative1 | alternative2 | ... +``` + +`TargetElementName` (the UML metaclass the rule applies to) defaults to `RuleName` when omitted. The builder method for the rule will take `I{TargetElementName} poco` as its first argument. Example from `Resources/SysML-textual-bnf.kebnf:42-44`: + +``` +Identification : Element = + ( '<' declaredShortName = NAME '>' )? + ( declaredName = NAME )? +``` + +For the notation legend (terminals, non-terminals, quantifiers, assignment operators, KEBNF extensions) the authoritative source is **Clause 8.2.2.1.1 — EBNF Conventions** of the OMG SysML v2 specification (`Resources/specification/2a-OMG_Systems_Modeling_Language.pdf.txt`). + +--- + +## 2. Outputs + +| Output directory / file | Generator | Templates | +|---|---|---| +| `SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/*.cs` (one per UML class that has rules targeting it) | `UmlCoreTextualNotationBuilderGenerator` | `Templates/Uml/core-textual-notation-builder-template.hbs`, `…core-textual-notation-shared-builder-template.hbs`, `…core-textual-notation-builder-facade-template.hbs` | +| `SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SharedTextualNotationBuilder.cs` (rules whose target class cannot be matched to any UML metaclass, e.g. `FeaturePrefix`) | same | shared-builder template | +| `SysML2.NET/LexicalRules/AutoGenLexicalRules/Keywords.cs`, `SymbolicKeywordKind.cs`, `SymbolicKeywordKindExtensions.cs` | `UmlCoreLexicalRulesGenerator` | `core-lexical-keywords-template.hbs`, `core-lexical-symbolic-keyword-kind-template.hbs`, `core-lexical-symbolic-keyword-kind-extensions-template.hbs` | + +**Not generated** (despite living next to the AutoGen folder): +- `SysML2.NET.Serializer.TextualNotation/Writers/TextualNotationValidationExtensions.cs` — hand-coded `IsValidFor*` guards. +- `SysML2.NET.Serializer.TextualNotation/Writers/*TextualNotationBuilder.cs` (root of `Writers/`, NOT under `AutoGenTextualNotationBuilder/`) — hand-coded partial-class companions containing `Build{Rule}HandCoded` methods. +- `SysML2.NET.Serializer.TextualNotation/Writers/SharedTextualNotationBuilder.cs` (root) — hand-coded helpers like `QueryShortestResolvableName`, `AppendRegularComment`. + +--- + +## 3. End-to-End Pipeline + +``` +Resources/*.kebnf ──ANTLR──► kebnfLexer + kebnfParser + │ + ▼ + TextualNotationSpecificationVisitor + │ + ▼ + TextualNotationSpecification + (List, hierarchy of RuleElement) + │ +Resources/*.uml ──uml4net──► XmiReaderResult ──────┐ + │ + ┌──────────────────────┘ + ▼ + UmlCoreTextualNotationBuilderGenerator.GenerateAsync + (groups rules by target UML class) + │ + ▼ (per UML class) + Handlebars renders core-textual-notation-builder-template.hbs + │ + │ template invokes Handlebars helper + │ "RulesHelper.WriteRule" for each rule + ▼ + RulesHelper.WriteRule (RulesHelper.cs:65) + │ + ▼ + RuleProcessor.ProcessAlternatives (RuleProcessor.cs:50) + │ + ▼ emit + Build{Rule}() body — either inline C# or a delegating + call to Build{Rule}HandCoded. + │ + ▼ + AutoGenTextualNotationBuilder/{Class}TextualNotationBuilder.cs +``` + +**Loader entry point**: `GrammarLoader.LoadTextualNotationSpecification` (`SysML2.NET.CodeGenerator/Grammar/GrammarLoader.cs`) — runs the ANTLR-generated `kebnfLexer`/`kebnfParser` (under `Grammar/AutoGenGrammar/`) and walks the parse tree with `TextualNotationSpecificationVisitor`. + +**Top-level orchestrator**: `UmlCoreTextualNotationBuilderGenerator.GenerateAsync(XmiReaderResult, TextualNotationSpecification, DirectoryInfo)` (`SysML2.NET.CodeGenerator/Generators/UmlHandleBarsGenerators/UmlCoreTextualNotationBuilderGenerator.cs:113`). + +--- + +## 4. KEBNF Grammar Model (`SysML2.NET.CodeGenerator/Grammar/Model/`) + +The parser produces an immutable AST whose node types each map to one grammar construct. + +| C# type | KEBNF construct | Key properties | +|---|---|---| +| `TextualNotationRule` | `Name : Target = …` | `RuleName`, `TargetElementName`, `EffectiveTarget`, `Alternatives`, `IsDispatcherRule`, `IsMultiCollectionAssignment` | +| `Alternatives` | one branch separated by `\|` | `Elements : List` | +| `NonTerminalElement` | `OtherRule`, `OtherRule*`, `OtherRule+` | `Name`; inherits `Suffix` and `IsCollection` from `RuleElement` | +| `AssignmentElement` | `prop = X`, `prop += X`, `prop ?= X` | `Property`, `Operator`, `Value : RuleElement` | +| `TerminalElement` | `'keyword'`, `';'`, `'{'` | `Value` | +| `GroupElement` | `( … )`, `( … )?`, `( … )*` | `Alternatives`, `IsOptional`, `IsCollection` | +| `ValueLiteralElement` | `[QualifiedName]`, `NAME` | `Value`, `QueryIsQualifiedName()` | +| `NonParsingAssignmentElement` | `{ prop = 'val' }` | `PropertyName`, `Operator`, `Value` — emits *no* output in the unparse direction | + +All elements share `RuleElement.Suffix ∈ { "", "?", "*", "+" }`, `RuleElement.IsOptional`, `RuleElement.IsCollection`. + +--- + +## 5. The Handlebars Facade — `RulesHelper.cs` + +`RulesHelper` is a **thin facade** required by HandlebarsDotNet, which can only call static helpers. All real work lives in `RuleProcessor` (a partial class spanning four files). `RulesHelper`'s job is to register helpers and forward to a `RuleProcessor` instance captured in a closure. + +Public surface (`SysML2.NET.CodeGenerator/HandleBarHelpers/RulesHelper.cs`): + +| Member | Lines | Purpose | +|---|---|---| +| `SharedBuilderClassName = "SharedTextualNotationBuilder"` | 43 | Class name used for no-target / unmatched-class rules. | +| `RegisterRulesHelper(this IHandlebars)` | 49–98 | Registers two Handlebars helpers and instantiates the singleton `RuleProcessor`. | +| `"RulesHelper.ContainsAnyDispatcherRules"` helper | 53–63 | Template-side predicate over a `List`. | +| `"RulesHelper.WriteRule"` helper | 65–97 | **Primary entry**: constructs `RuleGenerationContext` with `CurrentVariableName = "poco"` and delegates to `RuleProcessor.ProcessAlternatives`. | +| `ResolveNoTargetRuleEffectiveTarget(rule, allRules, cacheSource)` | 107–110 | Static utility — delegates to `NoTargetRuleResolver.ResolveEffectiveTarget`. | +| `IsSharedNoTargetRule(rule, cacheSource)` | 118–121 | Static utility — delegates to `NoTargetRuleResolver.IsSharedRule`. | + +The template calls `RulesHelper.WriteRule` once per `Build{Rule}` method body; everything that follows is driven by `RuleProcessor`. + +--- + +## 6. The `RuleProcessor` Engine + +`RuleProcessor` is `internal sealed partial class` (`RuleProcessor.cs:39`), split across four files for readability. + +| Partial file | Responsibility | +|---|---| +| `RuleProcessor.cs` | Top-level dispatch (`ProcessAlternatives` at line 50) and a small set of cross-cutting helpers (single-alternative emission, body emission, cursor declarations). | +| `RuleProcessor.ElementProcessing.cs` | Per-`RuleElement` emission: `ProcessRuleElement` (line 48), `ProcessAssignmentElement` (line 259), `ProcessNonTerminalElement` (line 435), `DeclareCursorIfRequired` (line 578), `EmitSharedNoTargetRuleCall` (line 627). | +| `RuleProcessor.CollectionProcessing.cs` | `while`-loop construction for collection NonTerminals: `EmitCollectionNonTerminalLoop` (line 44), `ResolveCollectionWhileTypeCondition` (line 174), `ResolveContentTypeGuard` (line 264), `ResolveBuilderCall` (line 349), `GenerateInlineOptionalCondition` (line 374), `TryEmitOptionalCondition` (line 413). | +| `RuleProcessor.PatternHandlers.cs` | The four pattern families and unityped/multi-collection dispatch: `TryHandleOperatorLiteralAlternation` (line 44), `TryHandleEmptyVsNonEmptyMembership` (line 118), `TryHandlePocoTypeDispatchWithCompoundAlternatives` (line 238), `TryHandleReferenceOrInline` (line 325), `ProcessMultiCollectionAssignment` (line 500), `ProcessUnitypedAlternativesWithOneElement` (line 509), `EmitCompoundPocoTypeBranch` (line 917). | + +### Top-level dispatch (`RuleProcessor.cs:50–66`) + +```csharp +internal void ProcessAlternatives(EncodedTextWriter writer, IClass umlClass, + IReadOnlyCollection alternatives, RuleGenerationContext ruleGenerationContext, + bool isPartOfMultipleAlternative = false) +{ + ruleGenerationContext.DefinedCursors ??= []; + + if (alternatives.Count == 1) + { + this.ProcessSingleAlternative(writer, umlClass, alternatives.ElementAt(0), …); + } + else if (alternatives.All(x => x.Elements.Count == 1)) + { + this.ProcessSingleElementAlternatives(writer, umlClass, alternatives, …); + } + else + { + this.ProcessMultiElementAlternatives(writer, umlClass, alternatives, …); + } +} +``` + +The three branches correspond to dramatically different emission strategies: + +- **One alternative** → linear element-by-element emission. +- **Many alternatives, each one element** → either a `switch` over POCO runtime type / a single `?=` keyword guard / a `Sub1 | Sub2` dispatcher (handled in `ProcessUnitypedAlternativesWithOneElement` at `PatternHandlers.cs:509`). +- **Many alternatives, multi-element** → try patterns A–D in order; on failure, emit `Build{Rule}HandCoded` stub call. + +--- + +## 7. **[HARD]** The Cursor Model and the Golden Rule + +The single greatest source of subtle bugs in this subsystem — and the dominant historical technical debt the codebase still carries from earlier iterations of the generator — is **incorrect cursor advancement**. Every production regression encountered in the `FeatureSpecialization*` rule family during development traced back to a single broken invariant: the cursor moved either zero times or twice when it should have moved exactly once. The existing unit-test suite did not always catch these because skipped elements were often optional in the test fixtures. Read this section twice. + +### 7.1 What a cursor is + +A cursor — `CollectionCursor` at `SysML2.NET.Serializer.TextualNotation/Writers/CollectionCursor.cs` — iterates **one** property of a POCO, typically `ownedRelationship`. Cursors are obtained from a per-POCO cache: + +```csharp +var ownedRelationshipCursor = writerContext.CursorCache.GetOrCreateCursor( + poco.Id, "ownedRelationship", poco.OwnedRelationship); +``` + +The cache is keyed on `(pocoId, propertyName)` so **the same cursor instance is shared across every builder method that touches the same property of the same POCO during a single serialization**. This sharing is what allows sibling `Build{X}` methods to consume their respective slices of `ownedRelationship` in order. + +The cursor only has three operations relevant to the generator: + +- `cursor.Current` — element at the current position (`null` once exhausted). +- `cursor.Move(int amount = 1)` (`CollectionCursor.cs:97`) — advances by `amount`, clamped to the end. **Cannot move backwards.** +- `cursor.GetNext(int amount)` — peek without advancing (used by lookahead, §8). + +### 7.2 The Golden Rule + +> **`cursor.Move()` is emitted exactly once per `+=` assignment processed, and nowhere else.** + +`+=` is the only KEBNF operator whose semantics include "consume one element from the collection". Every other construct delegates cursor advance to whatever internal `+=` it ultimately reaches. The full truth table (canonical, quoted from `GRAMMAR.md:82–91`): + +| Grammar construct | Advances cursor? | +|---|---| +| `prop += X` (collection assignment) | **Yes — emit `Move()` after processing** | +| `prop = X` (scalar assignment) | No | +| `prop ?= 'keyword'` (boolean assignment) | No | +| `'terminal'` | No | +| `RuleName` (plain NonTerminal reference) | No (the referenced rule may internally `+=`) | +| `RuleName*` / `RuleName+` (collection NonTerminal) | No (each iteration's inner `+=` advances) | +| `(...)` / `(...)?` / `(...)*` (groups) | No (inner `+=` advances) | +| `[QualifiedName]` / `NAME` (value literals) | No | + +The pitfall this prevents: a generated `while` loop that calls a sibling builder which *also* `Move()`s, plus its own `Move()`, silently skips every other element. Existing tests don't always catch this because skipped elements are often optional in well-formed input. + +### 7.3 Generator-side enforcement + +- `DeclareCursorIfRequired` (`RuleProcessor.ElementProcessing.cs:578`) — declares a cursor variable in the emitted method only when (a) a `+=` assignment is reached, (b) the cursor for that property has not already been declared in this method. `RuleGenerationContext.DefinedCursors` is the per-method cache. +- `CursorDefinition.ApplicableRuleElements` — every `+=` assignment that references the same cursor is recorded so that lookahead (§8) and duplicate-detection know which assignments share state. +- For multi-`+=` switches, the generator **always** emits `default: cursor.Move(); break;` so an unexpected element type cannot stall a `while` loop. See `GRAMMAR.md:93`. + +### 7.4 The deferred-move trick + +When a `+=` lives inside an *optional* `GroupElement`, calling `Move()` unconditionally would advance the cursor even when the optional path is not taken. The generator therefore records a `PendingCursorMove` and only emits the `Move()` inside the optional path's body. See the optional-group handling in `RuleProcessor.ElementProcessing.cs` (around the `AssignmentElement` branch inside `ProcessRuleElement`, roughly line 278–283; the exact line drifts as the file evolves). + +### 7.5 Canonical loop — annotated + +`SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureTextualNotationBuilder.cs:110–131` implements `Typings : Feature = TypedBy ( ',' ownedRelationship += FeatureTyping )*`: + +```csharp +public static void BuildTypings(IFeature poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) +{ + // 7.1: cursor obtained from cache, shared with sibling Build* methods + var ownedRelationshipCursor = writerContext.CursorCache.GetOrCreateCursor( + poco.Id, "ownedRelationship", poco.OwnedRelationship); + + // First, the leading non-terminal — BuildTypedBy consumes its own += internally. + // No Move() here (Golden Rule: plain NonTerminal does not advance). + BuildTypedBy(poco, writerContext, stringBuilder); + + // 7.2: 'while' guard from §8 — typed lookahead on cursor.Current. + while (ownedRelationshipCursor.Current != null + && ownedRelationshipCursor.Current is IFeatureTyping) + { + stringBuilder.Append(", "); + + // 7.3: outer null guard is the "scoping fence" (§9.3) — keeps the + // pattern-bound variable 'elementAsFeatureTyping' from leaking. + if (ownedRelationshipCursor.Current != null) + { + if (ownedRelationshipCursor.Current is IFeatureTyping elementAsFeatureTyping) + { + // Plain delegation. The callee does NOT advance. + FeatureTypingTextualNotationBuilder.BuildFeatureTyping( + elementAsFeatureTyping, writerContext, stringBuilder); + } + } + + // 7.4: exactly one Move() per +=, after the assignment is processed. + ownedRelationshipCursor.Move(); + } +} +``` + +--- + +## 8. **[HARD]** Collection `while`-Loop Type Conditions / Lookahead + +For `X*` or `X+` over a collection property, a naive `while (cursor.Current != null)` would over-consume — the cursor's collection (`ownedRelationship`) usually holds elements for **several** sibling rules. The generator therefore synthesises a discriminating predicate. + +### 8.1 `ResolveCollectionWhileTypeCondition` (`RuleProcessor.CollectionProcessing.cs:174`) + +Produces the `while (…)` predicate. Two output modes: + +- **Positive form** — `while (cursor.Current is TargetType)` — used when the collection's `+=` targets a single homogeneous type and no sibling rule competes for the same cursor in the same alternative. Demonstrated above in `BuildTypings`. +- **Negative-with-lookahead** — `while (cursor.Current is not null and not NextSiblingType)` — used when the next sibling element in the alternative would consume a different type from the same cursor. The lookahead determines **which** type to exclude. + +### 8.2 `ResolveContentTypeGuard` (`RuleProcessor.CollectionProcessing.cs:264`) + +Where the referenced rule itself dispatches on a nested property, this method recursively descends into the rule's definition to find the **complementary property pattern** that disambiguates it. For example, when the cursor walks `ownedRelationship` and two sibling rules both wrap their target in `Membership`, this method may emit: + +```csharp +cursor.Current is IMembership { OwnedAssignmentTarget.OfType().Any() } +``` + +The recursion is bounded by the rule graph and guarded against cycles via the existing `RuleGenerationContext` traversal state. + +### 8.3 Failure mode this prevents + +A representative historical defect: a `while (cursor.Current != null) { BuildFeatureMembership(...); cursor.Move(); }` loop over `ownedRelationship` consumed *all* subsequent elements — including elements that were meant to feed the next sibling rule (e.g., a `Specialization` block). The symptom was silent loss of output for valid inputs, with no exception and no failing assertion in the existing unit tests. Adding the lookahead type guard restored the slice boundaries. This pattern of "silent over-consumption" is the principal reason `ResolveCollectionWhileTypeCondition` was introduced; before it existed, every multi-`+=` rule had to be hand-coded with the lookahead spelled out by the author. + +--- + +## 9. **[HARD]** Type-Discriminator Dispatch (switch + `when` guards) + +When one rule has multiple alternatives keyed on the **POCO's runtime metaclass**, the generator emits a C# `switch (poco)` with type patterns, optionally constrained by `when` guards. + +### 9.1 Canonical shape + +`TypeTextualNotationBuilder.BuildTypeRelationshipPart` at `AutoGenTextualNotationBuilder/TypeTextualNotationBuilder.cs:596–614`: + +```csharp +public static void BuildTypeRelationshipPart(IType poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) +{ + switch (poco) + { + case IType pocoTypeDisjoiningPart when pocoTypeDisjoiningPart.IsValidForDisjoiningPart(writerContext): + BuildDisjoiningPart(pocoTypeDisjoiningPart, writerContext, stringBuilder); + break; + case IType pocoTypeUnioningPart when pocoTypeUnioningPart.IsValidForUnioningPart(writerContext): + BuildUnioningPart(pocoTypeUnioningPart, writerContext, stringBuilder); + break; + case IType pocoTypeIntersectingPart when pocoTypeIntersectingPart.IsValidForIntersectingPart(writerContext): + BuildIntersectingPart(pocoTypeIntersectingPart, writerContext, stringBuilder); + break; + default: + BuildDifferencingPart(poco, writerContext, stringBuilder); + break; + } +} +``` + +### 9.2 Ordering — `OrderElementsByInheritance` + +Switch cases must be emitted **most-derived first**, otherwise a parent type pattern shadows children. The generator sorts NonTerminals by UML inheritance depth (see `GRAMMAR.md:106` and the implementation inside `RuleProcessor`); the *least*-derived case (typically the metaclass that *declared* the rule, i.e. the `NamedElementToGenerate`) becomes the `default:`. + +### 9.3 The switch-variable scoping fence + +C# pattern variables (`elementAsFeatureMembership` in `if (x is Type elementAsFeatureMembership)`) have **block scope** — they leak into the enclosing block, not just the `if` body. If the same pattern recurs in the same method (common in generated code), name collisions are a compile error. The wrapping `if (cursor.Current != null) { … }` block is a deliberate **scoping fence**. Do not remove these outer null guards without understanding this — see `GRAMMAR.md:129–131`. + +--- + +## 10. **[HARD]** The Four Pattern Families (A / B / C / D) + +`ProcessMultiElementAlternatives` tries four specialised handlers before falling back to `Build{Rule}HandCoded`. Each handler is a *structural recognition* of a recurring grammar shape, with an emission strategy that beats the generic fallback. All four live in `RuleProcessor.PatternHandlers.cs`. + +> **Failing to match any pattern is not a bug.** It is the design-intended signal that the rule warrants a hand-coded partial. The fallback emits `Build{Rule}HandCoded(poco, writerContext, stringBuilder);` and stops; see §13. + +### 10.1 Pattern A — Empty vs Non-Empty Membership + +| Aspect | Detail | +|---|---| +| Handler | `TryHandleEmptyVsNonEmptyMembership` (`PatternHandlers.cs:118`) | +| Trigger | Two alternatives, both `+=` to the same property; one uses an `EmptyX` rule, the other `NonEmptyX`. | +| Emitted skeleton | `if (cursor.Current is IT { property.Count: 0 }) BuildEmpty…(...); else BuildNonEmpty…(...);` | +| Example grammar | `ownedRelationship += EmptyMembership \| ownedRelationship += NonEmptyMembership` | +| What it avoids | Falling into the generic `switch (poco)` dispatch which would lack a `Count == 0` discriminator and produce duplicate cases. | + +### 10.2 Pattern B — Operator-Literal Alternation + +| Aspect | Detail | +|---|---| +| Handler | `TryHandleOperatorLiteralAlternation` (`PatternHandlers.cs:44`) | +| Trigger | Every alternative starts with an `AssignmentElement` whose `Property == "operator"` and `Operator == "="`, differing only in the literal value. (See the exact predicate at `PatternHandlers.cs:55–58`.) | +| Emitted skeleton | `switch (poco.Operator) { case "+": …; case "-": …; … }` | +| Example grammar | Arithmetic/relational operator rules with `'+' \| '-' \| '*' \| '/'`. | +| What it avoids | A naive type-pattern switch (all branches share the POCO type), and a missed opportunity to compile to a fast string switch. | + +### 10.3 Pattern C — Runtime-Type Dispatch with Compound Alternatives + +| Aspect | Detail | +|---|---| +| Handler | `TryHandlePocoTypeDispatchWithCompoundAlternatives` (`PatternHandlers.cs:238`) | +| Trigger | Two or more alternatives, each beginning with a **NonTerminal whose target metaclass differs** from the others. The remaining elements of each alternative must be processable as a trailing fixed sequence (validated by `AreAlternativeTailElementsProcessable`, `PatternHandlers.cs:429`). | +| Emitted skeleton | `switch (poco) { case Sub1 s1: BuildSub1Rule(s1, …); /* trailing terminals */; break; default: BuildOtherRule(...); /* trailing terminals */; break; }` — each branch emitted by `EmitCompoundPocoTypeBranch` (`PatternHandlers.cs:917`). | +| What it avoids | Hand-coding the type switch and risking forgetting the trailing terminals or the safety-default `Move()`. | + +### 10.4 Pattern D — Reference-or-Inline Two-Alternative + +| Aspect | Detail | +|---|---| +| Handler | `TryHandleReferenceOrInline` (`PatternHandlers.cs:325`) | +| Trigger | Exactly two alternatives where one form is a cross-reference (`prop += ReferencedRule …`) and the other is a structural inline (`'keyword' '{' ownedContent += … '}'`). The choice is made at runtime from the POCO state. | +| Emitted skeleton | `if (poco.prop.OfType().Any()) { /* reference form */ } else { /* inline form */ }` | +| What it avoids | A switch on poco type that would not distinguish these two cases. | + +### 10.5 Related: QualifiedName-or-Owned-Chain + +This is the same idea but for a *scalar* property: at runtime, choose between emitting a qualified name and recursing into a chain builder. The runtime test is `poco.OwnedRelatedElement.Contains(poco.Type)` (owned → chain builder) or fall through to a `SharedTextualNotationBuilder.AppendQualifiedName` call. See `GRAMMAR.md:151` and the implementation in `RuleProcessor.cs` near the two-alternative checks. + +### 10.6 Dispatch order + +`ProcessMultiElementAlternatives` tries the four `TryHandle*` methods in the order **A → B → C → D**, then falls through to `EmitHandCodedFallback` if none returns `true`. Each `TryHandle*` is structured to validate **all** preconditions before emitting anything, so order-dependence is local and a non-match is cheap. + +--- + +## 11. **[HARD]** Three-Tier Guard Hierarchy for Ambiguous Dispatch + +When `OrderElementsByInheritance` leaves duplicate switch cases (e.g., two rules both target `IFeature`), the generator must disambiguate them. The three tiers, in order of preference: + +### 11.1 Tier 1 — Boolean `?=` guards (primary) + +If exactly one rule has a unique `?=` boolean assignment that the others lack, the generator emits `when poco.IsXxx` on its case. Code: `PatternHandlers.cs:561–579` (inside `ProcessUnitypedAlternativesWithOneElement`). + +Example: `EndUsagePrefix` has `isEnd ?= 'end'`; it gets `case IUsage u when u.IsEnd:`. + +### 11.2 Tier 2 — `IsValidFor{RuleName}` extension methods (fallback) + +If Boolean guards are insufficient, the generator emits `when poco.IsValidFor{RuleName}(writerContext)` — a call to a **hand-coded** extension method in `SysML2.NET.Serializer.TextualNotation/Writers/TextualNotationValidationExtensions.cs`. These methods consult the cursor's current `ownedRelationship` via the helper `QueryCurrentOwnedRelationship` (`TextualNotationValidationExtensions.cs:193`). + +Canonical examples (`TextualNotationValidationExtensions.cs:67–84`): + +```csharp +internal static bool IsValidForTypings(this IFeature feature, TextualNotationWriterContext writerContext) +{ + return QueryCurrentOwnedRelationship(feature, writerContext) is IFeatureTyping; +} + +internal static bool IsValidForSubsettings(this IFeature feature, TextualNotationWriterContext writerContext) +{ + return QueryCurrentOwnedRelationship(feature, writerContext) is ISubsetting + and not IRedefinition + and not IReferenceSubsetting + and not ICrossSubsetting; +} +``` + +The generator emits these guards at `PatternHandlers.cs:629` and `:804`. + +> **Extension point.** When a new rule introduces a duplicate switch case that Boolean guards cannot resolve (the compiler will refuse to build, or — worse — silently shadow one branch with another), the correct fix is to add a new `IsValidFor{RuleName}` method in `TextualNotationValidationExtensions.cs` and re-run the generator. **Do not** try to patch the generator's pattern-recognition to handle the case structurally unless multiple rules would benefit; doing so was tried earlier and produced fragile, rule-specific branches inside `RuleProcessor` that became a maintenance burden. + +### 11.3 Tier 3 — Type ordering (last resort) + +When neither boolean guards nor `IsValidFor` methods exist, `OrderElementsByInheritance` orders cases most-derived first; the rule that targets the rule's declared `NamedElementToGenerate` (the least-derived) becomes `default:`. This tier is **structural** rather than semantic; it works only when the runtime type alone uniquely identifies the alternative. + +--- + +## 12. Quantifier & Group Emission Rules + +A practical summary — the `RuleElement.Suffix` drives this directly: + +| Suffix | Emitted form | +|---|---| +| `?` (zero-or-one) | Single `if (predicate) { body }` — no loop. | +| `*` (zero-or-more) | `while (predicate) { body }` — body may execute zero times. | +| `+` (one-or-more) | Body emitted once unconditionally, **then** the same `while` loop as `*`. | + +**KEBNF pitfall** (carried over from `GRAMMAR.md:23`): for `(A | B)+`, the loop must re-test both `A` and `B` each iteration; never collapse to `while (cursor is A)`. The two alternatives may legally interleave. + +For `GroupElement` with `IsCollection = true`, the generator emits a single `while` loop whose body is a `switch` over the cursor element. This is one of the cases handled by `ProcessUnitypedAlternativesWithOneElement` (`PatternHandlers.cs:509`). + +--- + +## 13. Hand-Coded Fallback Pattern + +When the generator detects an unsupported rule shape it emits a delegating call: + +```csharp +Build{RuleName}HandCoded(poco, writerContext, stringBuilder); +``` + +The hand-coded partial must: + +1. Live in `SysML2.NET.Serializer.TextualNotation/Writers/{ClassName}TextualNotationBuilder.cs` — the file **next to** (not inside) `AutoGenTextualNotationBuilder/`. +2. Declare the class as `public static partial class {ClassName}TextualNotationBuilder`. +3. Implement the method as `private static void Build{RuleName}HandCoded(I{Class} poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder)`. +4. Reproduce the grammar rule verbatim in `` XML doc. +5. Throw `NotSupportedException` for any not-yet-implemented stub. + +Every hand-coded implementation must be reviewed against the same four invariants that defeated earlier iterations of the codebase: + +1. **Cursor advancement (§7)** — exactly one `Move()` per `+=` processed; never a `Move()` after a callee that already advanced the cursor. +2. **Quantifier semantics (§12)** — `?` is a single `if`, `*` is a `while` that may execute zero times, `+` is one unconditional emission followed by the same `while`. +3. **Type discriminator correctness (§9)** — the value pattern-matched in a `switch` must be the *actual* element on the cursor (e.g. an `ISpecialization` directly, not the `IOwningMembership` wrapping it). +4. **Grammar fidelity** — the element order, alternatives, and target metaclass of the hand-coded method must match the KEBNF rule verbatim. + +Bugs in any of these four areas were the dominant source of regressions during the migration from purely hand-coded builders to the generator-first approach, and they remain the costliest to diagnose because they fail silently rather than throwing. + +--- + +## 14. No-Target Rule Resolution & Shared-Builder Lifting + +A rule may omit the `: Target` annotation. Such "no-target" rules are placed into one of two homes by `NoTargetRuleResolver` (`SysML2.NET.CodeGenerator/HandleBarHelpers/NoTargetRuleResolver.cs`): + +- **`ResolveEffectiveTarget`** (`:46`) — walks the rule's assignments (transitively, following `CollectPropertiesInNoTargetScope` at `:119`), collects the set of *property names* and any *required supertypes*, then asks the UML model for the **minimal** metaclass that owns every property and satisfies every supertype. Falls back to `Element` if the rule has no property assignments. +- **`IsSharedRule`** (`:86`) — returns `true` when the rule's name cannot be matched to any UML metaclass but the rule still has assignments (e.g., `FeaturePrefix`). Such rules are lifted into `SharedTextualNotationBuilder` (the constant `RulesHelper.SharedBuilderClassName` at `:43`). + +The shared-builder generation is driven by `UmlCoreTextualNotationBuilderGenerator.GenerateSharedBuilderInternal` (around line 225 of that file). + +The remaining helpers — `CollectPropertiesInNoTargetScopeFromElements` (`:140`), `RuleHasAnyAssignment` (`:186`), `ContainsAnyAssignment` (`:204`) — are internal traversal utilities. + +--- + +## 15. Templates & Generator Wiring + +### 15.1 Handlebars templates (`Templates/Uml/`) + +| Template | Generates | +|---|---| +| `core-textual-notation-builder-template.hbs` | One `{Class}TextualNotationBuilder.cs` (under `AutoGenTextualNotationBuilder/`) per UML class with rules. | +| `core-textual-notation-shared-builder-template.hbs` | `SharedTextualNotationBuilder.cs` (the AutoGen one — distinct from the hand-coded sibling in the parent folder). | +| `core-textual-notation-builder-facade-template.hbs` | Top-level façade entry points used to start writing a POCO. | +| `core-lexical-keywords-template.hbs` | `Keywords.cs` (FrozenSet of reserved keywords). | +| `core-lexical-symbolic-keyword-kind-template.hbs` | `SymbolicKeywordKind.cs` enum. | +| `core-lexical-symbolic-keyword-kind-extensions-template.hbs` | `SymbolicKeywordKindExtensions.cs` (`GetKeyword()`/`GetSymbol()` switch expressions). | + +All textual-notation templates call the Handlebars helper `RulesHelper.WriteRule` once per `Build{Rule}` method body. + +### 15.2 Generator classes + +| Class | Entry point | Output | +|---|---|---| +| `UmlCoreTextualNotationBuilderGenerator` | `GenerateAsync(XmiReaderResult, TextualNotationSpecification, DirectoryInfo)` at `UmlCoreTextualNotationBuilderGenerator.cs:113` | Builder + shared-builder + façade files | +| `UmlCoreLexicalRulesGenerator` | `GenerateAsync(XmiReaderResult, TextualNotationSpecification, DirectoryInfo)` at `UmlCoreLexicalRulesGenerator.cs:95` | `Keywords.cs`, `SymbolicKeywordKind.cs`, `SymbolicKeywordKindExtensions.cs` | +| `GrammarLoader` | `LoadTextualNotationSpecification(...)` | `TextualNotationSpecification` | + +Each generator registers the standard helper bundle on its Handlebars instance: `RegisterNamedElementHelper`, `RegisterStringHelper`, `RegisterRulesHelper` (from `RulesHelper.cs:49`). The KerML and SysML KEBNF specifications are merged before generation so that one rule may override the other by name. + +--- + +## 16. Lexical-Rules Generation + +`UmlCoreLexicalRulesGenerator` is smaller and simpler than the builder generator. Its three responsibilities: + +- **`GenerateKeywordsAsync`** (`UmlCoreLexicalRulesGenerator.cs:110`) — locates the `RESERVED_KEYWORD` rule in the KEBNF (`Resources/SysML-textual-bnf.kebnf:13–26`) and emits its list of single-quoted terminals as a `FrozenSet Keywords.ReservedKeywords`. +- **`GenerateSymbolicKeywordKindAsync`** (`:146`) — emits the `SymbolicKeywordKind` enum and its `GetKeyword()`/`GetSymbol()` extension methods. +- **`TryResolveSymbolicKeywordRule`** (`:205`) — recognises the shape `RULE = '' | ''` (one alternative non-alphabetic, the other alphabetic — e.g., `DEFINED_BY = ':' | 'defined' 'by'`). Each matching rule contributes one `SymbolicKeywordKind` enum case (`DefinedBy`, `Specializes`, `Subsets`, `References`, `Crosses`, `Redefines`). + +Lexical rules feed two consumers: the textual notation builder (which references the keyword set to escape colliding identifiers) and downstream tooling for parsing. + +--- + +## 17. Regeneration & Test Workflow + +After any change in `SysML2.NET.CodeGenerator/HandleBarHelpers/` or under `SysML2.NET.CodeGenerator/Templates/Uml/`, the generated output must be regenerated and re-committed. The canonical loop (mirroring `GRAMMAR.md:153–168`): + +```bash +dotnet build SysML2.NET.CodeGenerator/SysML2.NET.CodeGenerator.csproj + +dotnet test SysML2.NET.CodeGenerator.Tests/SysML2.NET.CodeGenerator.Tests.csproj \ + --filter UmlCoreTextualNotationBuilderGeneratorTestFixture + +# Generated files land here: +# SysML2.NET.CodeGenerator.Tests/bin/Debug/net10.0/UML/_SysML2.NET.Core.UmlCoreTextualNotationBuilderGenerator/ + +cp SysML2.NET.CodeGenerator.Tests/bin/Debug/net10.0/UML/_SysML2.NET.Core.UmlCoreTextualNotationBuilderGenerator/*.cs \ + SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ + +dotnet build SysML2.NET.sln +dotnet test SysML2.NET.sln +``` + +To gauge how many rules still rely on hand-coded fallback: + +```bash +grep -r "HandCoded" SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/*.cs | wc -l +``` + +The count should trend down as patterns expand. + +--- + +## 18. Cross-References + +**Project-internal** + +- `SysML2.NET.CodeGenerator/GRAMMAR.md` — quick reference for `RulesHelper.cs` editors (notation legend, Golden Rule truth table, key-methods table). +- `SysML2.NET.CodeGenerator/HandleBarHelpers/RulesHelper.cs`, `RuleProcessor*.cs`, `NoTargetRuleResolver.cs` — the implementation this document describes. +- `SysML2.NET.Serializer.TextualNotation/Writers/CollectionCursor.cs`, `CursorCache.cs`, `TextualNotationWriterContext.cs` — the runtime cursor infrastructure that the generator targets. +- `SysML2.NET.Serializer.TextualNotation/Writers/TextualNotationValidationExtensions.cs` — the canonical home for hand-coded `IsValidFor*` guards (Tier 2 of §11). + +**Formal specifications** + +- `Resources/SysML-textual-bnf.kebnf`, `Resources/KerML-textual-bnf.kebnf` — KEBNF grammar source of truth. +- `Resources/KerML_only_xmi.uml`, `Resources/SysML_only_xmi.uml` — UML metamodel source of truth (metaclasses, properties, inheritance, OCL constraints). +- `Resources/specification/2a-OMG_Systems_Modeling_Language.pdf.txt` — *OMG SysML v2, Part 1: Language Specification*. **Clause 8.2.2.1.1 (EBNF Conventions)** is the authoritative notation legend. +- `Resources/specification/1-Kernel_Modeling_Language.pdf.txt` — *OMG KerML 1.0*. Semantics of metaclasses referenced by KerML rules. +- `Resources/specification/Intro to the SysML v2 Language-Textual Notation.pdf.txt` — SST tutorial; canonical worked examples (informative). + +## 19. Historical & Open Technical Debt + +This section is deliberately preserved as the institutional memory of the trade-offs that shape the current design. New contributors should expect to encounter the following. + +- **Hand-coded fallback surface.** A non-trivial number of rules still emit `Build{Rule}HandCoded` calls because no pattern (A–D) matches their shape. Each is a candidate for a future generator extension *if* the same shape appears in two or more rules; one-off patterns should stay hand-coded. Use the `HandCoded` grep one-liner in §17 to measure progress. +- **Pattern-handler order dependency.** Patterns A–D are tried in order. Today their preconditions are disjoint, but adding a fifth pattern requires re-validating that earlier patterns do not greedily claim its shape. There is no test that asserts pattern-handler exclusivity; reviewers must check by inspection. +- **`IsValidFor*` proliferation.** The Tier-2 fallback (§11.2) is necessary precisely because the generator cannot infer disambiguation from the UML model alone (the metamodel does not encode "this membership is only valid in *this* syntactic context"). Each new guard is small but adds a place where the grammar's behaviour is split between code and metamodel. There is no automated check that every duplicate-case-causing rule has a matching guard. +- **Silent over-consumption failure mode.** As described in §8.3, an incorrect `while` predicate produces no exception, only missing output. This is by far the costliest class of bug to diagnose. The lookahead heuristic in `ResolveContentTypeGuard` works for the rules that exist today but is not a complete decision procedure — a sufficiently exotic future rule may need a fresh case added to the lookahead logic. +- **Cursor sharing across builder methods.** The `(pocoId, propertyName)` cache key is convenient but couples sibling rules: changing the order in which two builders are called can change the output. The contract is implicit — there is no compile-time check that callers visit cursors in a consistent order. Refactors that re-order method calls inside a `Build{Rule}` need careful review. +- **Generator/output round-trip.** Regeneration is a manual `cp` step (§17), not a build target. Forgetting it is a recurrent source of "the generator says X but the file on disk says Y" confusion. Promoting regeneration to an MSBuild target is an open opportunity, blocked only by the cost of running the generator on every build. diff --git a/SysML2.NET.CodeGenerator/Templates/Uml/core-textual-notation-builder-facade-template.hbs b/SysML2.NET.CodeGenerator/Templates/Uml/core-textual-notation-builder-facade-template.hbs index e41972e02..d213272f4 100644 --- a/SysML2.NET.CodeGenerator/Templates/Uml/core-textual-notation-builder-facade-template.hbs +++ b/SysML2.NET.CodeGenerator/Templates/Uml/core-textual-notation-builder-facade-template.hbs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System; diff --git a/SysML2.NET.CodeGenerator/Templates/Uml/core-textual-notation-builder-template.hbs b/SysML2.NET.CodeGenerator/Templates/Uml/core-textual-notation-builder-template.hbs index 3fbee3d4f..719c6e7c6 100644 --- a/SysML2.NET.CodeGenerator/Templates/Uml/core-textual-notation-builder-template.hbs +++ b/SysML2.NET.CodeGenerator/Templates/Uml/core-textual-notation-builder-template.hbs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET.CodeGenerator/Templates/Uml/core-textual-notation-shared-builder-template.hbs b/SysML2.NET.CodeGenerator/Templates/Uml/core-textual-notation-shared-builder-template.hbs index a3f1ee515..35402f270 100644 --- a/SysML2.NET.CodeGenerator/Templates/Uml/core-textual-notation-shared-builder-template.hbs +++ b/SysML2.NET.CodeGenerator/Templates/Uml/core-textual-notation-shared-builder-template.hbs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET.Serializer.TextualNotation.Tests/SysML2.NET.Serializer.TextualNotation.Tests.csproj b/SysML2.NET.Serializer.TextualNotation.Tests/SysML2.NET.Serializer.TextualNotation.Tests.csproj new file mode 100644 index 000000000..b96111b4e --- /dev/null +++ b/SysML2.NET.Serializer.TextualNotation.Tests/SysML2.NET.Serializer.TextualNotation.Tests.csproj @@ -0,0 +1,52 @@ + + + + net10.0 + 14.0 + Starion Group S.A. + Sam Gerene, Théate Antoine + Nunit test suite for the SysML2.NET.Serializer.TextualNotation Library + Copyright © Starion Group S.A. + Apache-2.0 + https://github.com/STARIONGROUP/SysML2.NET.git + Git + false + disable + false + true + en-US + + + + + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + PreserveNewest + + + PreserveNewest + + + + diff --git a/SysML2.NET.Tests/TextualNotation/TextualNotationBuilderTestFixture.cs b/SysML2.NET.Serializer.TextualNotation.Tests/Writers/TextualNotationBuilderTestFixture.cs similarity index 97% rename from SysML2.NET.Tests/TextualNotation/TextualNotationBuilderTestFixture.cs rename to SysML2.NET.Serializer.TextualNotation.Tests/Writers/TextualNotationBuilderTestFixture.cs index 02b6a7e1d..0b2a3ccbc 100644 --- a/SysML2.NET.Tests/TextualNotation/TextualNotationBuilderTestFixture.cs +++ b/SysML2.NET.Serializer.TextualNotation.Tests/Writers/TextualNotationBuilderTestFixture.cs @@ -18,11 +18,10 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.Tests.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Tests.Writers { using System; using System.IO; - using System.Linq; using System.Text; using Microsoft.Extensions.Logging; @@ -30,8 +29,8 @@ namespace SysML2.NET.Tests.TextualNotation using NUnit.Framework; using SysML2.NET.Core.POCO.Root.Namespaces; + using SysML2.NET.Serializer.TextualNotation.Writers; using SysML2.NET.Serializer.Xmi; - using SysML2.NET.TextualNotation; /// /// Test fixture that verifies the textual notation builder produces valid output diff --git a/SysML2.NET.Serializer.TextualNotation/SysML2.NET.Serializer.TextualNotation.csproj b/SysML2.NET.Serializer.TextualNotation/SysML2.NET.Serializer.TextualNotation.csproj new file mode 100644 index 000000000..a50229732 --- /dev/null +++ b/SysML2.NET.Serializer.TextualNotation/SysML2.NET.Serializer.TextualNotation.csproj @@ -0,0 +1,42 @@ + + + + + + netstandard2.1;net10.0 + 12.0 + 0.20.0 + A .NET implementation of the OMG SysML v2 Textual Notation serializer. + SysML2.NET.Serializer.TextualNotation + Starion Group S.A. + Copyright © Starion Group S.A. + Apache-2.0 + https://github.com/STARIONGROUP/SysML2.NET.git + Git + Sam Gerené, Antoine Théate + true + + [Add] Creation on the project + + cdp4-icon.png + README.md + true + true + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SysML2.NET/TextualNotation/AllocationUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AllocationUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AllocationUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AllocationUsageTextualNotationBuilder.cs index 0fc3bd7d0..ae0d920a9 100644 --- a/SysML2.NET/TextualNotation/AllocationUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AllocationUsageTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AcceptActionUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AcceptActionUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AcceptActionUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AcceptActionUsageTextualNotationBuilder.cs index fe00f0c8a..697b63a3b 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AcceptActionUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AcceptActionUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ActionDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ActionDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ActionDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ActionDefinitionTextualNotationBuilder.cs index 44210b826..77c545b32 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ActionDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ActionDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ActionUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ActionUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ActionUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ActionUsageTextualNotationBuilder.cs index 35f6768d5..932bacf7a 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ActionUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ActionUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ActorMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ActorMembershipTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ActorMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ActorMembershipTextualNotationBuilder.cs index 97496a289..5b58df71b 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ActorMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ActorMembershipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AllocationDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AllocationDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AllocationDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AllocationDefinitionTextualNotationBuilder.cs index 87b6c5ef0..fab7d9811 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AllocationDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AllocationDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AllocationUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AllocationUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AllocationUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AllocationUsageTextualNotationBuilder.cs index d88752970..8d3433740 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AllocationUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AllocationUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AnalysisCaseDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AnalysisCaseDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AnalysisCaseDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AnalysisCaseDefinitionTextualNotationBuilder.cs index f7f516041..ea26e27c0 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AnalysisCaseDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AnalysisCaseDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AnalysisCaseUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AnalysisCaseUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AnalysisCaseUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AnalysisCaseUsageTextualNotationBuilder.cs index cca0148fd..0276da844 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AnalysisCaseUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AnalysisCaseUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AnnotatingElementTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AnnotatingElementTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AnnotatingElementTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AnnotatingElementTextualNotationBuilder.cs index cf3516ec0..9e74257c6 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AnnotatingElementTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AnnotatingElementTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AnnotationTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AnnotationTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AnnotationTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AnnotationTextualNotationBuilder.cs index 7bc130445..7fda2739c 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AnnotationTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AnnotationTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AssertConstraintUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AssertConstraintUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AssertConstraintUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AssertConstraintUsageTextualNotationBuilder.cs index bf7ab3fc6..c01b6e7d9 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AssertConstraintUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AssertConstraintUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AssignmentActionUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AssignmentActionUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AssignmentActionUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AssignmentActionUsageTextualNotationBuilder.cs index 1a0c8fed4..7b1c271e9 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AssignmentActionUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AssignmentActionUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AssociationStructureTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AssociationStructureTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AssociationStructureTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AssociationStructureTextualNotationBuilder.cs index 3ba0de377..f9097ef99 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AssociationStructureTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AssociationStructureTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AssociationTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AssociationTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AssociationTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AssociationTextualNotationBuilder.cs index eb55028dc..ffd696332 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AssociationTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AssociationTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AttributeDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AttributeDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AttributeDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AttributeDefinitionTextualNotationBuilder.cs index 17a700c13..cd1f4967b 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AttributeDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AttributeDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AttributeUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AttributeUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AttributeUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AttributeUsageTextualNotationBuilder.cs index 70088ddee..d632216be 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/AttributeUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/AttributeUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/BehaviorTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/BehaviorTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/BehaviorTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/BehaviorTextualNotationBuilder.cs index e372a970b..6b4696b54 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/BehaviorTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/BehaviorTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/BindingConnectorAsUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/BindingConnectorAsUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/BindingConnectorAsUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/BindingConnectorAsUsageTextualNotationBuilder.cs index 581ee3deb..17b487f72 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/BindingConnectorAsUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/BindingConnectorAsUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/BindingConnectorTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/BindingConnectorTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/BindingConnectorTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/BindingConnectorTextualNotationBuilder.cs index dd8c5919d..1defbad4c 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/BindingConnectorTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/BindingConnectorTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/BooleanExpressionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/BooleanExpressionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/BooleanExpressionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/BooleanExpressionTextualNotationBuilder.cs index 20dbc004e..dce55b1d5 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/BooleanExpressionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/BooleanExpressionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CalculationDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CalculationDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CalculationDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CalculationDefinitionTextualNotationBuilder.cs index fd596db7b..387335cd8 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CalculationDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CalculationDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CalculationUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CalculationUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CalculationUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CalculationUsageTextualNotationBuilder.cs index 2b6b22719..591681b16 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CalculationUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CalculationUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CaseDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CaseDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CaseDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CaseDefinitionTextualNotationBuilder.cs index 2d1d2284f..0138c4ed1 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CaseDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CaseDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CaseUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CaseUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CaseUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CaseUsageTextualNotationBuilder.cs index aef2e1546..08c5f8bd2 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CaseUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CaseUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ClassTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ClassTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ClassTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ClassTextualNotationBuilder.cs index a7ca59ebc..971af20f3 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ClassTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ClassTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ClassifierTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ClassifierTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ClassifierTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ClassifierTextualNotationBuilder.cs index 7bba5ee2d..b4e282922 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ClassifierTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ClassifierTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CollectExpressionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CollectExpressionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CollectExpressionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CollectExpressionTextualNotationBuilder.cs index 97a51b6a0..1a0062487 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CollectExpressionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CollectExpressionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CommentTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CommentTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CommentTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CommentTextualNotationBuilder.cs index 8d2b29442..61ee44564 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CommentTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CommentTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConcernDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConcernDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConcernDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConcernDefinitionTextualNotationBuilder.cs index f5e886753..9d426faa4 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConcernDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConcernDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConcernUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConcernUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConcernUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConcernUsageTextualNotationBuilder.cs index 6d43d7cbc..25e2afc02 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConcernUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConcernUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConjugatedPortDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConjugatedPortDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConjugatedPortDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConjugatedPortDefinitionTextualNotationBuilder.cs index 6828fffba..c5465d4c7 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConjugatedPortDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConjugatedPortDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConjugatedPortTypingTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConjugatedPortTypingTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConjugatedPortTypingTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConjugatedPortTypingTextualNotationBuilder.cs index 587107aa3..0b40b440d 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConjugatedPortTypingTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConjugatedPortTypingTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConjugationTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConjugationTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConjugationTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConjugationTextualNotationBuilder.cs index f3c0e35aa..6c1511bc6 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConjugationTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConjugationTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConnectionDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConnectionDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConnectionDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConnectionDefinitionTextualNotationBuilder.cs index 4f16675ab..4cc9d7542 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConnectionDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConnectionDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConnectionUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConnectionUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConnectionUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConnectionUsageTextualNotationBuilder.cs index 42e69d450..442525d58 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConnectionUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConnectionUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConnectorTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConnectorTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConnectorTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConnectorTextualNotationBuilder.cs index 01c551326..ef2f0e89a 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConnectorTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConnectorTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConstraintDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConstraintDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConstraintDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConstraintDefinitionTextualNotationBuilder.cs index 2e0cb7c79..8d201a579 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConstraintDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConstraintDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConstraintUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConstraintUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConstraintUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConstraintUsageTextualNotationBuilder.cs index 33ff60f5b..3c14615e7 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConstraintUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConstraintUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConstructorExpressionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConstructorExpressionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConstructorExpressionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConstructorExpressionTextualNotationBuilder.cs index bca77d98f..63b753bfb 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ConstructorExpressionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ConstructorExpressionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ControlNodeTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ControlNodeTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ControlNodeTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ControlNodeTextualNotationBuilder.cs index c180c1324..43132ff51 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ControlNodeTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ControlNodeTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CrossSubsettingTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CrossSubsettingTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CrossSubsettingTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CrossSubsettingTextualNotationBuilder.cs index 6b6baa39a..b4838edfc 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/CrossSubsettingTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/CrossSubsettingTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DataTypeTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DataTypeTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DataTypeTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DataTypeTextualNotationBuilder.cs index 7ae57f3d9..b8ded3ef7 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DataTypeTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DataTypeTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DecisionNodeTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DecisionNodeTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DecisionNodeTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DecisionNodeTextualNotationBuilder.cs index 1495e654e..f2707fb5a 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DecisionNodeTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DecisionNodeTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DefinitionTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DefinitionTextualNotationBuilder.cs index afe831e0f..07bfd004e 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DependencyTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DependencyTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DependencyTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DependencyTextualNotationBuilder.cs index 296dbf02c..6155766b6 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DependencyTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DependencyTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DifferencingTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DifferencingTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DifferencingTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DifferencingTextualNotationBuilder.cs index 3e193a5d8..ff90c2c96 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DifferencingTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DifferencingTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DisjoiningTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DisjoiningTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DisjoiningTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DisjoiningTextualNotationBuilder.cs index 8f0aabb08..3157fa165 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DisjoiningTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DisjoiningTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DocumentationTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DocumentationTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DocumentationTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DocumentationTextualNotationBuilder.cs index 563876238..c81bc77a5 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/DocumentationTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/DocumentationTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ElementFilterMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ElementFilterMembershipTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ElementFilterMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ElementFilterMembershipTextualNotationBuilder.cs index c04c458e2..98f8d4595 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ElementFilterMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ElementFilterMembershipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ElementTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ElementTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ElementTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ElementTextualNotationBuilder.cs index 992fdaf12..47784ceee 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ElementTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ElementTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/EndFeatureMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/EndFeatureMembershipTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/EndFeatureMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/EndFeatureMembershipTextualNotationBuilder.cs index e997fe755..43373cfd6 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/EndFeatureMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/EndFeatureMembershipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/EnumerationDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/EnumerationDefinitionTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/EnumerationDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/EnumerationDefinitionTextualNotationBuilder.cs index 63c035ff9..c4165f530 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/EnumerationDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/EnumerationDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/EnumerationUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/EnumerationUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/EnumerationUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/EnumerationUsageTextualNotationBuilder.cs index c5bac8c08..a30f5ac4b 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/EnumerationUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/EnumerationUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/EventOccurrenceUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/EventOccurrenceUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/EventOccurrenceUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/EventOccurrenceUsageTextualNotationBuilder.cs index 7c1965084..6ce4c7938 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/EventOccurrenceUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/EventOccurrenceUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ExhibitStateUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ExhibitStateUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ExhibitStateUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ExhibitStateUsageTextualNotationBuilder.cs index 673ae9df9..f585aedc1 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ExhibitStateUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ExhibitStateUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ExposeTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ExposeTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ExposeTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ExposeTextualNotationBuilder.cs index 0b60d64f2..59c044fb6 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ExposeTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ExposeTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ExpressionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ExpressionTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ExpressionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ExpressionTextualNotationBuilder.cs index e0a095329..0b72aaeed 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ExpressionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ExpressionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureChainExpressionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureChainExpressionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureChainExpressionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureChainExpressionTextualNotationBuilder.cs index 3de796bea..579caa9e7 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureChainExpressionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureChainExpressionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureChainingTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureChainingTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureChainingTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureChainingTextualNotationBuilder.cs index 0e250e3bd..57a320ddd 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureChainingTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureChainingTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureDirectionKindTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureDirectionKindTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureDirectionKindTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureDirectionKindTextualNotationBuilder.cs index 049e29fbe..cf22f561a 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureDirectionKindTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureDirectionKindTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureInvertingTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureInvertingTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureInvertingTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureInvertingTextualNotationBuilder.cs index a2e1c9088..1e06b06b3 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureInvertingTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureInvertingTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureMembershipTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureMembershipTextualNotationBuilder.cs index 7f3fe0371..ff088b8e1 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureMembershipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureReferenceExpressionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureReferenceExpressionTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureReferenceExpressionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureReferenceExpressionTextualNotationBuilder.cs index 63791202c..a4d8c1554 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureReferenceExpressionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureReferenceExpressionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureTextualNotationBuilder.cs index 7ff18af7d..66bc3394e 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureTypingTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureTypingTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureTypingTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureTypingTextualNotationBuilder.cs index 62899192e..8028335d0 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureTypingTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureTypingTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureValueTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureValueTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureValueTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureValueTextualNotationBuilder.cs index 9c6476072..482988315 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FeatureValueTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FeatureValueTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FlowDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FlowDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FlowDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FlowDefinitionTextualNotationBuilder.cs index 6c985beb3..3030b6e6e 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FlowDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FlowDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FlowEndTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FlowEndTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FlowEndTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FlowEndTextualNotationBuilder.cs index d38d7f76f..5bb6bd997 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FlowEndTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FlowEndTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FlowTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FlowTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FlowTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FlowTextualNotationBuilder.cs index ff3af1720..58d9b6fcb 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FlowTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FlowTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FlowUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FlowUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FlowUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FlowUsageTextualNotationBuilder.cs index b6ebbe5f5..862844609 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FlowUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FlowUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ForLoopActionUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ForLoopActionUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ForLoopActionUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ForLoopActionUsageTextualNotationBuilder.cs index ea65f80fa..8ef714f35 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ForLoopActionUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ForLoopActionUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ForkNodeTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ForkNodeTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ForkNodeTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ForkNodeTextualNotationBuilder.cs index 1d929feaa..935e949d2 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ForkNodeTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ForkNodeTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FramedConcernMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FramedConcernMembershipTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FramedConcernMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FramedConcernMembershipTextualNotationBuilder.cs index 11802203f..bf5e13912 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FramedConcernMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FramedConcernMembershipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FunctionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FunctionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FunctionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FunctionTextualNotationBuilder.cs index b3f073743..8ba943835 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/FunctionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/FunctionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/IfActionUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/IfActionUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/IfActionUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/IfActionUsageTextualNotationBuilder.cs index 9e2fcc138..adc601d50 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/IfActionUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/IfActionUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ImportTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ImportTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ImportTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ImportTextualNotationBuilder.cs index 4c8814199..7b60385fa 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ImportTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ImportTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/IncludeUseCaseUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/IncludeUseCaseUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/IncludeUseCaseUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/IncludeUseCaseUsageTextualNotationBuilder.cs index ffbe1e9a4..4645d12ea 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/IncludeUseCaseUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/IncludeUseCaseUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/IndexExpressionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/IndexExpressionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/IndexExpressionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/IndexExpressionTextualNotationBuilder.cs index 3a9a5935f..c9b50030d 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/IndexExpressionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/IndexExpressionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/InteractionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/InteractionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/InteractionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/InteractionTextualNotationBuilder.cs index 46c06b986..f3212d2b7 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/InteractionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/InteractionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/InterfaceDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/InterfaceDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/InterfaceDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/InterfaceDefinitionTextualNotationBuilder.cs index 96de3855e..277a3880c 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/InterfaceDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/InterfaceDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/InterfaceUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/InterfaceUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/InterfaceUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/InterfaceUsageTextualNotationBuilder.cs index d7f74ae9d..74b66b188 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/InterfaceUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/InterfaceUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/IntersectingTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/IntersectingTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/IntersectingTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/IntersectingTextualNotationBuilder.cs index b3ed7c8ee..d69eae02f 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/IntersectingTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/IntersectingTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/InvariantTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/InvariantTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/InvariantTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/InvariantTextualNotationBuilder.cs index 595bccf6e..b6cb5d3c9 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/InvariantTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/InvariantTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/InvocationExpressionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/InvocationExpressionTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/InvocationExpressionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/InvocationExpressionTextualNotationBuilder.cs index da417a29a..d1f9e6caf 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/InvocationExpressionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/InvocationExpressionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ItemDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ItemDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ItemDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ItemDefinitionTextualNotationBuilder.cs index 9cabba925..c01cc7704 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ItemDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ItemDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ItemUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ItemUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ItemUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ItemUsageTextualNotationBuilder.cs index 05671cec3..684f9d930 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ItemUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ItemUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/JoinNodeTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/JoinNodeTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/JoinNodeTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/JoinNodeTextualNotationBuilder.cs index 66fa28d9e..45c225777 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/JoinNodeTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/JoinNodeTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/LibraryPackageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/LibraryPackageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/LibraryPackageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/LibraryPackageTextualNotationBuilder.cs index 47763bd59..fc3d4f1ca 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/LibraryPackageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/LibraryPackageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/LiteralBooleanTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/LiteralBooleanTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/LiteralBooleanTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/LiteralBooleanTextualNotationBuilder.cs index 929bd34f9..51b9f1781 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/LiteralBooleanTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/LiteralBooleanTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/LiteralExpressionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/LiteralExpressionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/LiteralExpressionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/LiteralExpressionTextualNotationBuilder.cs index 351c116e4..afd4a5b25 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/LiteralExpressionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/LiteralExpressionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/LiteralInfinityTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/LiteralInfinityTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/LiteralInfinityTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/LiteralInfinityTextualNotationBuilder.cs index 132e9e4cb..007e15fd9 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/LiteralInfinityTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/LiteralInfinityTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/LiteralIntegerTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/LiteralIntegerTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/LiteralIntegerTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/LiteralIntegerTextualNotationBuilder.cs index a9860ee4e..20a73450e 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/LiteralIntegerTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/LiteralIntegerTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/LiteralStringTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/LiteralStringTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/LiteralStringTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/LiteralStringTextualNotationBuilder.cs index 49641ae9b..6b2557e39 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/LiteralStringTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/LiteralStringTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MembershipExposeTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MembershipExposeTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MembershipExposeTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MembershipExposeTextualNotationBuilder.cs index 6b4412dda..f1afb22dc 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MembershipExposeTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MembershipExposeTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MembershipImportTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MembershipImportTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MembershipImportTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MembershipImportTextualNotationBuilder.cs index cf20daf61..755bcc042 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MembershipImportTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MembershipImportTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MembershipTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MembershipTextualNotationBuilder.cs index 03c2353a5..de5c13141 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MembershipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MergeNodeTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MergeNodeTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MergeNodeTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MergeNodeTextualNotationBuilder.cs index 9466bd658..bb5c89d5a 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MergeNodeTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MergeNodeTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MetaclassTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MetaclassTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MetaclassTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MetaclassTextualNotationBuilder.cs index b699ab342..efaa2cca1 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MetaclassTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MetaclassTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MetadataAccessExpressionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MetadataAccessExpressionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MetadataAccessExpressionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MetadataAccessExpressionTextualNotationBuilder.cs index d5583ece0..b94bceafd 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MetadataAccessExpressionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MetadataAccessExpressionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MetadataDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MetadataDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MetadataDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MetadataDefinitionTextualNotationBuilder.cs index f53db072e..ef839361b 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MetadataDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MetadataDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MetadataFeatureTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MetadataFeatureTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MetadataFeatureTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MetadataFeatureTextualNotationBuilder.cs index 00c99f667..173b315e1 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MetadataFeatureTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MetadataFeatureTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MetadataUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MetadataUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MetadataUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MetadataUsageTextualNotationBuilder.cs index 5e84c38eb..e2b7121fe 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MetadataUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MetadataUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MultiplicityRangeTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MultiplicityRangeTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MultiplicityRangeTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MultiplicityRangeTextualNotationBuilder.cs index d6f21ca67..8d81376ad 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MultiplicityRangeTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MultiplicityRangeTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MultiplicityTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MultiplicityTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MultiplicityTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MultiplicityTextualNotationBuilder.cs index 322536b27..fab6b1628 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/MultiplicityTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/MultiplicityTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/NamespaceExposeTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/NamespaceExposeTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/NamespaceExposeTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/NamespaceExposeTextualNotationBuilder.cs index cc0e59d72..de8609516 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/NamespaceExposeTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/NamespaceExposeTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/NamespaceImportTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/NamespaceImportTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/NamespaceImportTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/NamespaceImportTextualNotationBuilder.cs index b83552c6d..27bb53feb 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/NamespaceImportTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/NamespaceImportTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/NamespaceTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/NamespaceTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/NamespaceTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/NamespaceTextualNotationBuilder.cs index 53f1760e5..2f747812e 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/NamespaceTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/NamespaceTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/NullExpressionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/NullExpressionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/NullExpressionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/NullExpressionTextualNotationBuilder.cs index b31909de5..263844604 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/NullExpressionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/NullExpressionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ObjectiveMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ObjectiveMembershipTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ObjectiveMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ObjectiveMembershipTextualNotationBuilder.cs index 6c5fc415c..fe272ead4 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ObjectiveMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ObjectiveMembershipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/OccurrenceDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/OccurrenceDefinitionTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/OccurrenceDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/OccurrenceDefinitionTextualNotationBuilder.cs index d6ca94429..9086ae7c1 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/OccurrenceDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/OccurrenceDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/OccurrenceUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/OccurrenceUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/OccurrenceUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/OccurrenceUsageTextualNotationBuilder.cs index 13ac5eacc..c7b7d0ec4 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/OccurrenceUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/OccurrenceUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/OperatorExpressionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/OperatorExpressionTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/OperatorExpressionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/OperatorExpressionTextualNotationBuilder.cs index b0a01b5e6..7a8e803ec 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/OperatorExpressionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/OperatorExpressionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/OwningMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/OwningMembershipTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/OwningMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/OwningMembershipTextualNotationBuilder.cs index a5791cecf..1da741403 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/OwningMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/OwningMembershipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PackageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PackageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PackageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PackageTextualNotationBuilder.cs index 178e8bfaf..c014ee95d 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PackageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PackageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ParameterMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ParameterMembershipTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ParameterMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ParameterMembershipTextualNotationBuilder.cs index a0a4176dc..ccf74fa18 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ParameterMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ParameterMembershipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PartDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PartDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PartDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PartDefinitionTextualNotationBuilder.cs index 42a31de9b..28635de58 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PartDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PartDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PartUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PartUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PartUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PartUsageTextualNotationBuilder.cs index b500f7b7a..e43deac6f 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PartUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PartUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PayloadFeatureTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PayloadFeatureTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PayloadFeatureTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PayloadFeatureTextualNotationBuilder.cs index f490aff3e..444129870 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PayloadFeatureTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PayloadFeatureTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PerformActionUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PerformActionUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PerformActionUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PerformActionUsageTextualNotationBuilder.cs index 279ee440e..6faf3922c 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PerformActionUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PerformActionUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PortConjugationTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PortConjugationTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PortConjugationTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PortConjugationTextualNotationBuilder.cs index e34be6cc1..5dd787f0b 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PortConjugationTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PortConjugationTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PortDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PortDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PortDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PortDefinitionTextualNotationBuilder.cs index a19270a49..aea841ed8 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PortDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PortDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PortUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PortUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PortUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PortUsageTextualNotationBuilder.cs index f6ca1cd0f..8ee0a3142 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PortUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PortUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PortionKindTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PortionKindTextualNotationBuilder.cs similarity index 97% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PortionKindTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PortionKindTextualNotationBuilder.cs index a3bdae941..7041f137c 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PortionKindTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PortionKindTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PredicateTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PredicateTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PredicateTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PredicateTextualNotationBuilder.cs index 6092dd1ad..12ecb5d93 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/PredicateTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/PredicateTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RedefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RedefinitionTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RedefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RedefinitionTextualNotationBuilder.cs index 22df568f3..638ee0cc1 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RedefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RedefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ReferenceSubsettingTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ReferenceSubsettingTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ReferenceSubsettingTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ReferenceSubsettingTextualNotationBuilder.cs index 0a6186bb5..b36fa6ba8 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ReferenceSubsettingTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ReferenceSubsettingTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ReferenceUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ReferenceUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ReferenceUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ReferenceUsageTextualNotationBuilder.cs index ee458b41d..fdcfe8d32 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ReferenceUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ReferenceUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RelationshipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RelationshipTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RelationshipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RelationshipTextualNotationBuilder.cs index e58ddac1d..21628c928 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RelationshipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RelationshipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RenderingDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RenderingDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RenderingDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RenderingDefinitionTextualNotationBuilder.cs index 1e4266c1d..214b1d607 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RenderingDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RenderingDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RenderingUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RenderingUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RenderingUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RenderingUsageTextualNotationBuilder.cs index 7ce89411d..c28b6a905 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RenderingUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RenderingUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RequirementConstraintMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RequirementConstraintMembershipTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RequirementConstraintMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RequirementConstraintMembershipTextualNotationBuilder.cs index 22b858eb9..93167d7f6 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RequirementConstraintMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RequirementConstraintMembershipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RequirementDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RequirementDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RequirementDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RequirementDefinitionTextualNotationBuilder.cs index 2605212ef..17e0d4995 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RequirementDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RequirementDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RequirementUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RequirementUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RequirementUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RequirementUsageTextualNotationBuilder.cs index 1138a1551..9907a628f 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RequirementUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RequirementUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RequirementVerificationMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RequirementVerificationMembershipTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RequirementVerificationMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RequirementVerificationMembershipTextualNotationBuilder.cs index 431fc3ea4..59ff02d25 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/RequirementVerificationMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/RequirementVerificationMembershipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ResultExpressionMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ResultExpressionMembershipTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ResultExpressionMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ResultExpressionMembershipTextualNotationBuilder.cs index 69fb737c0..16b7729f0 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ResultExpressionMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ResultExpressionMembershipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ReturnParameterMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ReturnParameterMembershipTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ReturnParameterMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ReturnParameterMembershipTextualNotationBuilder.cs index b6dd7167c..fdca3e7cf 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ReturnParameterMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ReturnParameterMembershipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SatisfyRequirementUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SatisfyRequirementUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SatisfyRequirementUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SatisfyRequirementUsageTextualNotationBuilder.cs index da5344b71..3feb425bb 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SatisfyRequirementUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SatisfyRequirementUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SelectExpressionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SelectExpressionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SelectExpressionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SelectExpressionTextualNotationBuilder.cs index d972f7b86..a71bbc3cc 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SelectExpressionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SelectExpressionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SendActionUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SendActionUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SendActionUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SendActionUsageTextualNotationBuilder.cs index 3b52d6565..af11f0f73 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SendActionUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SendActionUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SharedTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SharedTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SharedTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SharedTextualNotationBuilder.cs index 56268bf5d..2ba68d1d4 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SharedTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SharedTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SpecializationTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SpecializationTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SpecializationTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SpecializationTextualNotationBuilder.cs index 75bfe7768..d3c9e5534 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SpecializationTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SpecializationTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/StakeholderMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/StakeholderMembershipTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/StakeholderMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/StakeholderMembershipTextualNotationBuilder.cs index 8479f6a25..c96097bcb 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/StakeholderMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/StakeholderMembershipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/StateDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/StateDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/StateDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/StateDefinitionTextualNotationBuilder.cs index 7ee0a6062..c74f4c6b8 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/StateDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/StateDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/StateSubactionMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/StateSubactionMembershipTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/StateSubactionMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/StateSubactionMembershipTextualNotationBuilder.cs index 09e01d7fc..9c0aadd34 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/StateSubactionMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/StateSubactionMembershipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/StateUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/StateUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/StateUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/StateUsageTextualNotationBuilder.cs index 327beca19..aa22152a5 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/StateUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/StateUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/StepTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/StepTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/StepTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/StepTextualNotationBuilder.cs index ddc24764f..4234b47ff 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/StepTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/StepTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/StructureTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/StructureTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/StructureTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/StructureTextualNotationBuilder.cs index e74d1c136..26effcebe 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/StructureTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/StructureTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SubclassificationTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SubclassificationTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SubclassificationTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SubclassificationTextualNotationBuilder.cs index 720b1c62e..ec8112308 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SubclassificationTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SubclassificationTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SubjectMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SubjectMembershipTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SubjectMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SubjectMembershipTextualNotationBuilder.cs index 6358d647d..7c5e12cb9 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SubjectMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SubjectMembershipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SubsettingTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SubsettingTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SubsettingTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SubsettingTextualNotationBuilder.cs index b77adde6e..3065fc00f 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SubsettingTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SubsettingTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SuccessionAsUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SuccessionAsUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SuccessionAsUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SuccessionAsUsageTextualNotationBuilder.cs index 7f8e8b104..efb9d268b 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SuccessionAsUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SuccessionAsUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SuccessionFlowTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SuccessionFlowTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SuccessionFlowTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SuccessionFlowTextualNotationBuilder.cs index 6875be384..b254d3a4e 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SuccessionFlowTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SuccessionFlowTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SuccessionFlowUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SuccessionFlowUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SuccessionFlowUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SuccessionFlowUsageTextualNotationBuilder.cs index 11c6eba34..7ec320b2f 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SuccessionFlowUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SuccessionFlowUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SuccessionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SuccessionTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SuccessionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SuccessionTextualNotationBuilder.cs index 451c7624e..7b7d83f70 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/SuccessionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/SuccessionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TerminateActionUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TerminateActionUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TerminateActionUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TerminateActionUsageTextualNotationBuilder.cs index 196bda96a..09e476c08 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TerminateActionUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TerminateActionUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TextualRepresentationTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TextualRepresentationTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TextualRepresentationTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TextualRepresentationTextualNotationBuilder.cs index 635975236..446e2d0a7 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TextualRepresentationTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TextualRepresentationTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TransitionFeatureMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TransitionFeatureMembershipTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TransitionFeatureMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TransitionFeatureMembershipTextualNotationBuilder.cs index c5144d563..5859047f3 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TransitionFeatureMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TransitionFeatureMembershipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TransitionUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TransitionUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TransitionUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TransitionUsageTextualNotationBuilder.cs index dc1b7e1a2..c1fc35b62 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TransitionUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TransitionUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TriggerInvocationExpressionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TriggerInvocationExpressionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TriggerInvocationExpressionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TriggerInvocationExpressionTextualNotationBuilder.cs index d75d50949..5cb80b2d8 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TriggerInvocationExpressionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TriggerInvocationExpressionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TypeFeaturingTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TypeFeaturingTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TypeFeaturingTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TypeFeaturingTextualNotationBuilder.cs index df801ef63..fdf745ffe 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TypeFeaturingTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TypeFeaturingTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TypeTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TypeTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TypeTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TypeTextualNotationBuilder.cs index 66ea2a16d..cb889fd72 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/TypeTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/TypeTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/UnioningTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/UnioningTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/UnioningTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/UnioningTextualNotationBuilder.cs index 4658a5987..dd740b35b 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/UnioningTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/UnioningTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/UsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/UsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/UsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/UsageTextualNotationBuilder.cs index b9652d976..d9ab679b5 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/UsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/UsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/UseCaseDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/UseCaseDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/UseCaseDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/UseCaseDefinitionTextualNotationBuilder.cs index 9717c0752..cc64c3eb3 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/UseCaseDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/UseCaseDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/UseCaseUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/UseCaseUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/UseCaseUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/UseCaseUsageTextualNotationBuilder.cs index 0df296f03..2e4eddc31 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/UseCaseUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/UseCaseUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/VariantMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/VariantMembershipTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/VariantMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/VariantMembershipTextualNotationBuilder.cs index 692da479a..1fde1fab9 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/VariantMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/VariantMembershipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/VerificationCaseDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/VerificationCaseDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/VerificationCaseDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/VerificationCaseDefinitionTextualNotationBuilder.cs index 228ec42ab..e33daa2c0 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/VerificationCaseDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/VerificationCaseDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/VerificationCaseUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/VerificationCaseUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/VerificationCaseUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/VerificationCaseUsageTextualNotationBuilder.cs index 3a8bb9ef9..743f8ba29 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/VerificationCaseUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/VerificationCaseUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ViewDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ViewDefinitionTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ViewDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ViewDefinitionTextualNotationBuilder.cs index caff9eb84..5b398ebf1 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ViewDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ViewDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ViewRenderingMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ViewRenderingMembershipTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ViewRenderingMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ViewRenderingMembershipTextualNotationBuilder.cs index 5b181992b..26ceed31f 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ViewRenderingMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ViewRenderingMembershipTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ViewUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ViewUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ViewUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ViewUsageTextualNotationBuilder.cs index f3e446ca8..21d34c597 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ViewUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ViewUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ViewpointDefinitionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ViewpointDefinitionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ViewpointDefinitionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ViewpointDefinitionTextualNotationBuilder.cs index 818e1c9c8..993a3228e 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ViewpointDefinitionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ViewpointDefinitionTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ViewpointUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ViewpointUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ViewpointUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ViewpointUsageTextualNotationBuilder.cs index b94e1b0ba..d79e25075 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/ViewpointUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/ViewpointUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/VisibilityKindTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/VisibilityKindTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/VisibilityKindTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/VisibilityKindTextualNotationBuilder.cs index 120aeca77..2a1c62fb6 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/VisibilityKindTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/VisibilityKindTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/WhileLoopActionUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/WhileLoopActionUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/WhileLoopActionUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/WhileLoopActionUsageTextualNotationBuilder.cs index 7fa5fdc8b..076c78f62 100644 --- a/SysML2.NET/TextualNotation/AutoGenTextualNotationBuilder/WhileLoopActionUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/AutoGenTextualNotationBuilder/WhileLoopActionUsageTextualNotationBuilder.cs @@ -22,7 +22,7 @@ // --------THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!-------- // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET.Serializer.TextualNotation/Writers/BindingConnectorTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/BindingConnectorTextualNotationBuilder.cs new file mode 100644 index 000000000..1f4f30cf0 --- /dev/null +++ b/SysML2.NET.Serializer.TextualNotation/Writers/BindingConnectorTextualNotationBuilder.cs @@ -0,0 +1,52 @@ +// ------------------------------------------------------------------------------------------------- +// +// +// Copyright 2022-2026 Starion Group S.A. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// ------------------------------------------------------------------------------------------------ + +namespace SysML2.NET.Serializer.TextualNotation.Writers +{ + using System.Text; + + using SysML2.NET.Core.POCO.Kernel.Connectors; + + /// + /// Hand-coded part of the + /// + public static partial class BindingConnectorTextualNotationBuilder + { + /// + /// Builds the Textual Notation string for the rule BindingConnectorDeclaration + /// + /// The from which the rule should be build + /// The used to get access to CursorCollection for the current + /// The that contains the entire textual notation + /// + /// BindingConnectorDeclaration : BindingConnector = + /// FeatureDeclaration ( 'of' ownedRelationship += ConnectorEndMember '=' ownedRelationship += ConnectorEndMember )? + /// | ( isSufficient ?= 'all' )? ( 'of'? ownedRelationship += ConnectorEndMember '=' ownedRelationship += ConnectorEndMember )? + /// + /// Auto-gen delegates entirely to this method, which in turn delegates to the shared + /// helper — + /// the rule shares its body with SuccessionDeclaration save for the two end-keyword literals. + /// + private static void BuildBindingConnectorDeclarationHandCoded(IBindingConnector poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) + { + SharedTextualNotationBuilder.BuildTwoEndedConnectorDeclarationHandCoded(poco, "of ", "= ", writerContext, stringBuilder); + } + } +} diff --git a/SysML2.NET/TextualNotation/ClassifierTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/ClassifierTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/ClassifierTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/ClassifierTextualNotationBuilder.cs index d67ffc7f5..1cb90989b 100644 --- a/SysML2.NET/TextualNotation/ClassifierTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/ClassifierTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Text; diff --git a/SysML2.NET/TextualNotation/CollectionCursor.cs b/SysML2.NET.Serializer.TextualNotation/Writers/CollectionCursor.cs similarity index 98% rename from SysML2.NET/TextualNotation/CollectionCursor.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/CollectionCursor.cs index 098c44e44..4f214bf9f 100644 --- a/SysML2.NET/TextualNotation/CollectionCursor.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/CollectionCursor.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System; using System.Collections.Generic; diff --git a/SysML2.NET/TextualNotation/ConcernUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/ConcernUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/ConcernUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/ConcernUsageTextualNotationBuilder.cs index 51d2e6810..3c8ef5cbf 100644 --- a/SysML2.NET/TextualNotation/ConcernUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/ConcernUsageTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/ConjugatedPortTypingTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/ConjugatedPortTypingTextualNotationBuilder.cs similarity index 97% rename from SysML2.NET/TextualNotation/ConjugatedPortTypingTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/ConjugatedPortTypingTextualNotationBuilder.cs index aeeb356d0..49626d0d7 100644 --- a/SysML2.NET/TextualNotation/ConjugatedPortTypingTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/ConjugatedPortTypingTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Text; diff --git a/SysML2.NET/TextualNotation/ConnectionUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/ConnectionUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/ConnectionUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/ConnectionUsageTextualNotationBuilder.cs index 1e997906f..48240a04d 100644 --- a/SysML2.NET/TextualNotation/ConnectionUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/ConnectionUsageTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/ConnectorTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/ConnectorTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/ConnectorTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/ConnectorTextualNotationBuilder.cs index 8a23044eb..fdf1534e3 100644 --- a/SysML2.NET/TextualNotation/ConnectorTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/ConnectorTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/ConstraintUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/ConstraintUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/ConstraintUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/ConstraintUsageTextualNotationBuilder.cs index 64f4e647a..8118e7fa4 100644 --- a/SysML2.NET/TextualNotation/ConstraintUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/ConstraintUsageTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/CursorCache.cs b/SysML2.NET.Serializer.TextualNotation/Writers/CursorCache.cs similarity index 98% rename from SysML2.NET/TextualNotation/CursorCache.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/CursorCache.cs index e775ab1ea..611288ed2 100644 --- a/SysML2.NET/TextualNotation/CursorCache.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/CursorCache.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System; using System.Collections.Concurrent; diff --git a/SysML2.NET/TextualNotation/ElementTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/ElementTextualNotationBuilder.cs similarity index 95% rename from SysML2.NET/TextualNotation/ElementTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/ElementTextualNotationBuilder.cs index b2fa8f223..3c81b8473 100644 --- a/SysML2.NET/TextualNotation/ElementTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/ElementTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Text; diff --git a/SysML2.NET/TextualNotation/ExpressionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/ExpressionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/ExpressionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/ExpressionTextualNotationBuilder.cs index 697082916..550a63732 100644 --- a/SysML2.NET/TextualNotation/ExpressionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/ExpressionTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Text; diff --git a/SysML2.NET/TextualNotation/FeatureMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/FeatureMembershipTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/FeatureMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/FeatureMembershipTextualNotationBuilder.cs index 0bf515d24..a36cb3bab 100644 --- a/SysML2.NET/TextualNotation/FeatureMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/FeatureMembershipTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Text; diff --git a/SysML2.NET/TextualNotation/FeatureTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/FeatureTextualNotationBuilder.cs similarity index 85% rename from SysML2.NET/TextualNotation/FeatureTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/FeatureTextualNotationBuilder.cs index 6415d1976..859728f12 100644 --- a/SysML2.NET/TextualNotation/FeatureTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/FeatureTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; @@ -233,41 +233,7 @@ private static void BuildFeatureIdentificationHandCoded(IFeature poco, TextualNo /// The that contains the entire textual notation private static void BuildFeatureSpecializationPartHandCoded(IFeature poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) { - var ownedRelationshipCursor = writerContext.CursorCache.GetOrCreateCursor(poco.Id, "ownedRelationship", poco.OwnedRelationship); - - if (ownedRelationshipCursor.Current is ISpecialization) - { - // Alt 1: FeatureSpecialization+ MultiplicityPart? FeatureSpecialization* - while (ownedRelationshipCursor.Current is ISpecialization) - { - BuildFeatureSpecialization(poco, writerContext, stringBuilder); - } - - var multiplicityElementPresent = ownedRelationshipCursor.Current is IOwningMembership owningMembership - && owningMembership.OwnedRelatedElement.OfType().Any(); - - if (multiplicityElementPresent || poco.IsOrdered || !poco.IsUnique) - { - BuildMultiplicityPart(poco, writerContext, stringBuilder); - } - - // Trailing FeatureSpecialization* — runs regardless of whether MultiplicityPart fired, - // per the grammar's three-segment shape `FeatureSpecialization+ MultiplicityPart? FeatureSpecialization*`. - while (ownedRelationshipCursor.Current is ISpecialization) - { - BuildFeatureSpecialization(poco, writerContext, stringBuilder); - } - } - else - { - // Alt 2: MultiplicityPart FeatureSpecialization* - BuildMultiplicityPart(poco, writerContext, stringBuilder); - - while (ownedRelationshipCursor.Current is ISpecialization) - { - BuildFeatureSpecialization(poco, writerContext, stringBuilder); - } - } + SharedTextualNotationBuilder.BuildFeatureSpecializationPartHandCoded(poco, writerContext, stringBuilder); } /// @@ -382,39 +348,7 @@ private static void BuildPayloadFeatureHandCoded(IFeature poco, TextualNotationW /// private static void BuildPayloadFeatureSpecializationPartHandCoded(IFeature poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) { - var ownedRelationshipCursor = writerContext.CursorCache.GetOrCreateCursor(poco.Id, "ownedRelationship", poco.OwnedRelationship); - - if (ownedRelationshipCursor.Current is ISpecialization) - { - // Alt 1: FeatureSpecialization+ MultiplicityPart? FeatureSpecialization* - while (ownedRelationshipCursor.Current is ISpecialization) - { - BuildFeatureSpecialization(poco, writerContext, stringBuilder); - } - - var multiplicityElementPresent = ownedRelationshipCursor.Current is IOwningMembership owningMembership - && owningMembership.OwnedRelatedElement.OfType().Any(); - - if (multiplicityElementPresent || poco.IsOrdered || !poco.IsUnique) - { - BuildMultiplicityPart(poco, writerContext, stringBuilder); - } - - while (ownedRelationshipCursor.Current is ISpecialization) - { - BuildFeatureSpecialization(poco, writerContext, stringBuilder); - } - } - else - { - // Alt 2: MultiplicityPart FeatureSpecialization+ - BuildMultiplicityPart(poco, writerContext, stringBuilder); - - while (ownedRelationshipCursor.Current is ISpecialization) - { - BuildFeatureSpecialization(poco, writerContext, stringBuilder); - } - } + SharedTextualNotationBuilder.BuildFeatureSpecializationPartHandCoded(poco, writerContext, stringBuilder); } } } diff --git a/SysML2.NET/TextualNotation/FeatureValueTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/FeatureValueTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/FeatureValueTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/FeatureValueTextualNotationBuilder.cs index f3c5cad2c..fa786d97b 100644 --- a/SysML2.NET/TextualNotation/FeatureValueTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/FeatureValueTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Text; diff --git a/SysML2.NET.Serializer.TextualNotation/Writers/FlowTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/FlowTextualNotationBuilder.cs new file mode 100644 index 000000000..e06bf0510 --- /dev/null +++ b/SysML2.NET.Serializer.TextualNotation/Writers/FlowTextualNotationBuilder.cs @@ -0,0 +1,55 @@ +// ------------------------------------------------------------------------------------------------- +// +// +// Copyright 2022-2026 Starion Group S.A. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// ------------------------------------------------------------------------------------------------ + +namespace SysML2.NET.Serializer.TextualNotation.Writers +{ + using System.Text; + + using SysML2.NET.Core.POCO.Kernel.Interactions; + + /// + /// Hand-coded part of the + /// + public static partial class FlowTextualNotationBuilder + { + /// + /// Builds the Textual Notation string for the rule FlowDeclaration + /// + /// The from which the rule should be build + /// The used to get access to CursorCollection for the current + /// The that contains the entire textual notation + /// + /// FlowDeclaration : Flow = + /// FeatureDeclaration ValuePart? + /// ( 'of' ownedRelationship += PayloadFeatureMember )? + /// ( 'from' ownedRelationship += FlowEndMember 'to' ownedRelationship += FlowEndMember )? + /// | ( isSufficient ?= 'all' )? + /// ownedRelationship += FlowEndMember 'to' ownedRelationship += FlowEndMember + /// + /// Auto-gen emits FeaturePrefix + 'flow ' before and TypeBody after this method. Body delegates + /// to the shared helper — + /// the rule shares its body with SuccessionFlow's FlowDeclaration. + /// + private static void BuildFlowDeclarationHandCoded(IFlow poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) + { + SharedTextualNotationBuilder.BuildFlowDeclarationHandCoded(poco, writerContext, stringBuilder); + } + } +} diff --git a/SysML2.NET/TextualNotation/FlowUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/FlowUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/FlowUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/FlowUsageTextualNotationBuilder.cs index 23c37b310..215585770 100644 --- a/SysML2.NET/TextualNotation/FlowUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/FlowUsageTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Text; diff --git a/SysML2.NET/TextualNotation/ICursorCache.cs b/SysML2.NET.Serializer.TextualNotation/Writers/ICursorCache.cs similarity index 97% rename from SysML2.NET/TextualNotation/ICursorCache.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/ICursorCache.cs index 2d9d021d6..4de202100 100644 --- a/SysML2.NET/TextualNotation/ICursorCache.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/ICursorCache.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System; using System.Collections.Generic; diff --git a/SysML2.NET/TextualNotation/IfActionUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/IfActionUsageTextualNotationBuilder.cs similarity index 95% rename from SysML2.NET/TextualNotation/IfActionUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/IfActionUsageTextualNotationBuilder.cs index 702dd6fcf..7ea811c17 100644 --- a/SysML2.NET/TextualNotation/IfActionUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/IfActionUsageTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Text; diff --git a/SysML2.NET/TextualNotation/InterfaceUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/InterfaceUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/InterfaceUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/InterfaceUsageTextualNotationBuilder.cs index 13e115262..23962ab90 100644 --- a/SysML2.NET/TextualNotation/InterfaceUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/InterfaceUsageTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/InvocationExpressionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/InvocationExpressionTextualNotationBuilder.cs similarity index 96% rename from SysML2.NET/TextualNotation/InvocationExpressionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/InvocationExpressionTextualNotationBuilder.cs index a5ed07173..df147f779 100644 --- a/SysML2.NET/TextualNotation/InvocationExpressionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/InvocationExpressionTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Text; diff --git a/SysML2.NET/TextualNotation/LiteralExpressionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/LiteralExpressionTextualNotationBuilder.cs similarity index 96% rename from SysML2.NET/TextualNotation/LiteralExpressionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/LiteralExpressionTextualNotationBuilder.cs index 4e9e1566d..d7f51c17d 100644 --- a/SysML2.NET/TextualNotation/LiteralExpressionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/LiteralExpressionTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Text; diff --git a/SysML2.NET/TextualNotation/NamespaceImportTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/NamespaceImportTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/NamespaceImportTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/NamespaceImportTextualNotationBuilder.cs index b908e0de2..f15d2af4d 100644 --- a/SysML2.NET/TextualNotation/NamespaceImportTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/NamespaceImportTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/OperatorExpressionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/OperatorExpressionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/OperatorExpressionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/OperatorExpressionTextualNotationBuilder.cs index 0e66dd553..28ddf5c89 100644 --- a/SysML2.NET/TextualNotation/OperatorExpressionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/OperatorExpressionTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Text; diff --git a/SysML2.NET/TextualNotation/OwningMembershipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/OwningMembershipTextualNotationBuilder.cs similarity index 95% rename from SysML2.NET/TextualNotation/OwningMembershipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/OwningMembershipTextualNotationBuilder.cs index 212fd0b64..19003b736 100644 --- a/SysML2.NET/TextualNotation/OwningMembershipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/OwningMembershipTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Text; diff --git a/SysML2.NET/TextualNotation/PackageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/PackageTextualNotationBuilder.cs similarity index 96% rename from SysML2.NET/TextualNotation/PackageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/PackageTextualNotationBuilder.cs index d2157ba2b..0c1c2b051 100644 --- a/SysML2.NET/TextualNotation/PackageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/PackageTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Text; diff --git a/SysML2.NET/TextualNotation/ReferenceUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/ReferenceUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/ReferenceUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/ReferenceUsageTextualNotationBuilder.cs index 21363ba26..29b37e6e9 100644 --- a/SysML2.NET/TextualNotation/ReferenceUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/ReferenceUsageTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/RelationshipTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/RelationshipTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/RelationshipTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/RelationshipTextualNotationBuilder.cs index 46d781e1b..cc2d20687 100644 --- a/SysML2.NET/TextualNotation/RelationshipTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/RelationshipTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Text; diff --git a/SysML2.NET/TextualNotation/RenderingUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/RenderingUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/RenderingUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/RenderingUsageTextualNotationBuilder.cs index f5c528709..8a27bd96c 100644 --- a/SysML2.NET/TextualNotation/RenderingUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/RenderingUsageTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/RequirementUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/RequirementUsageTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/RequirementUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/RequirementUsageTextualNotationBuilder.cs index 71ee3fffc..51ea1e7bc 100644 --- a/SysML2.NET/TextualNotation/RequirementUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/RequirementUsageTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET/TextualNotation/SendActionUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/SendActionUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/SendActionUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/SendActionUsageTextualNotationBuilder.cs index 5ad3f85fa..6f07956be 100644 --- a/SysML2.NET/TextualNotation/SendActionUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/SendActionUsageTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; diff --git a/SysML2.NET.Serializer.TextualNotation/Writers/SharedTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/SharedTextualNotationBuilder.cs new file mode 100644 index 000000000..ce599d39e --- /dev/null +++ b/SysML2.NET.Serializer.TextualNotation/Writers/SharedTextualNotationBuilder.cs @@ -0,0 +1,751 @@ +// ------------------------------------------------------------------------------------------------- +// +// +// Copyright 2022-2026 Starion Group S.A. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// ------------------------------------------------------------------------------------------------ + +namespace SysML2.NET.Serializer.TextualNotation.Writers +{ + using System; + using System.Linq; + using System.Text; + + using SysML2.NET.Core.POCO.Core.Features; + using SysML2.NET.Core.POCO.Core.Types; + using SysML2.NET.Core.POCO.Kernel.Expressions; + using SysML2.NET.Core.POCO.Kernel.Functions; + using SysML2.NET.Core.POCO.Kernel.Interactions; + using SysML2.NET.Core.POCO.Root.Elements; + using SysML2.NET.Core.POCO.Root.Namespaces; + using SysML2.NET.Core.POCO.Systems.DefinitionAndUsage; + using SysML2.NET.Core.POCO.Systems.Metadata; + + /// + /// Hand-coded part of the . + /// Hosts the Build{Rule}HandCoded methods for shared no-target rules whose body + /// cannot be fully generated and requires a manual implementation. + /// + public static partial class SharedTextualNotationBuilder + { + /// + /// Gets the name of the as const + /// + private const string OwnedRelationshipPropertyName = "ownedRelationship"; + + /// + /// Builds the Textual Notation string for the rule FeaturePrefix. + /// FeaturePrefix = ( EndFeaturePrefix (ownedRelationship += OwnedCrossFeatureMember)? + /// | BasicFeaturePrefix ) (ownedRelationship += PrefixMetadataMember)* + /// The AutoGen caller processes the trailing (ownedRelationship += PrefixMetadataMember)* + /// loop; this HandCoded method handles the inner alternation between EndFeaturePrefix + /// (dispatching to , then + /// optionally consuming the cross-feature member from the cursor) and BasicFeaturePrefix + /// (dispatching to ). + /// + /// The from which the rule should be build + /// The used to get access to CursorCollection for the current + /// The that contains the entire textual notation + private static void BuildFeaturePrefixHandCoded(IFeature poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) + { + var ownedRelationshipCursor = writerContext.CursorCache.GetOrCreateCursor(poco.Id, OwnedRelationshipPropertyName, poco.OwnedRelationship); + + if (poco.IsEnd) + { + FeatureTextualNotationBuilder.BuildEndFeaturePrefix(poco, writerContext, stringBuilder); + + if (ownedRelationshipCursor.Current is IOwningMembership owningMembership + && owningMembership.OwnedRelatedElement.OfType().Any() + && !owningMembership.OwnedRelatedElement.OfType().Any()) + { + OwningMembershipTextualNotationBuilder.BuildOwnedCrossFeatureMember(owningMembership, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + } + } + else + { + FeatureTextualNotationBuilder.BuildBasicFeaturePrefix(poco, writerContext, stringBuilder); + } + } + + /// + /// Builds the Textual Notation string for the rule NonBehaviorBodyItem. + /// NonBehaviorBodyItem = + /// ownedRelationship += Import + /// | ownedRelationship += AliasMember + /// | ownedRelationship += DefinitionMember + /// | ownedRelationship += VariantUsageMember + /// | ownedRelationship += NonOccurrenceUsageMember + /// | ( ownedRelationship += SourceSuccessionMember )? + /// ownedRelationship += StructureUsageMember + /// Cursor-element dispatcher: inspects cursor.Current's runtime type and delegates + /// to the corresponding membership builder. The last alternative has an optional + /// SourceSuccessionMember prefix before the StructureUsageMember. + /// + /// The from which the rule should be build + /// The used to get access to CursorCollection for the current + /// The that contains the entire textual notation + private static void BuildNonBehaviorBodyItemHandCoded(IElement poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) + { + var ownedRelationshipCursor = writerContext.CursorCache.GetOrCreateCursor(poco.Id, OwnedRelationshipPropertyName, poco.OwnedRelationship); + + if (ownedRelationshipCursor.Current is IImport import) + { + ImportTextualNotationBuilder.BuildImport(import, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + } + else if (ownedRelationshipCursor.Current is IFeatureMembership featureMembership) + { + if (featureMembership.IsValidForSourceSuccessionMember(writerContext)) + { + FeatureMembershipTextualNotationBuilder.BuildSourceSuccessionMember(featureMembership, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + } + + if (ownedRelationshipCursor.Current is IFeatureMembership structureMembership + && structureMembership.IsValidForStructureUsageMember(writerContext)) + { + FeatureMembershipTextualNotationBuilder.BuildStructureUsageMember(structureMembership, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + } + else if (ownedRelationshipCursor.Current is IVariantMembership variantMembership) + { + VariantMembershipTextualNotationBuilder.BuildVariantUsageMember(variantMembership, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + } + else if (ownedRelationshipCursor.Current is IFeatureMembership nonOccurrenceMembership + && nonOccurrenceMembership.IsValidForNonOccurrenceUsageMember(writerContext)) + { + FeatureMembershipTextualNotationBuilder.BuildNonOccurrenceUsageMember(nonOccurrenceMembership, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + } + else if (ownedRelationshipCursor.Current is IOwningMembership owningMembership) + { + if (owningMembership.IsValidForNonFeatureMember(writerContext)) + { + OwningMembershipTextualNotationBuilder.BuildDefinitionMember(owningMembership, writerContext, stringBuilder); + } + else + { + MembershipTextualNotationBuilder.BuildAliasMember(owningMembership, writerContext, stringBuilder); + } + + ownedRelationshipCursor.Move(); + } + } + else if (ownedRelationshipCursor.Current is IOwningMembership owningMembership) + { + if (owningMembership.IsValidForNonFeatureMember(writerContext)) + { + OwningMembershipTextualNotationBuilder.BuildDefinitionMember(owningMembership, writerContext, stringBuilder); + } + else + { + MembershipTextualNotationBuilder.BuildAliasMember(owningMembership, writerContext, stringBuilder); + } + + ownedRelationshipCursor.Move(); + } + else if (ownedRelationshipCursor.Current is IMembership membership) + { + // AliasMember : Membership — plain Membership that is neither OwningMembership nor FeatureMembership + MembershipTextualNotationBuilder.BuildAliasMember(membership, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + } + } + + /// + /// Builds the Textual Notation string for the rule RealValue (the value of a + /// LiteralReal), which the grammar expresses as an . + /// In the unparse direction, the real numeric value is stored as a property on the + /// POCO; this method simply emits it as a string. + /// + /// The that holds the real value expression + /// The used to get access to CursorCollection for the current + /// The that contains the entire textual notation + private static void BuildRealValueHandCoded(IExpression poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) + { + if (poco is ILiteralRational literalRational) + { + stringBuilder.Append(literalRational.Value.ToString(System.Globalization.CultureInfo.InvariantCulture)); + } + } + + /// + /// Builds the Textual Notation string for the shared two-ended connector declaration template + /// used by BindingConnectorDeclaration (with 'of'/'=') and + /// SuccessionDeclaration (with 'first'/'then'). + /// BindingConnectorDeclaration : BindingConnector = + /// FeatureDeclaration ( 'of' ownedRelationship += ConnectorEndMember '=' ownedRelationship += ConnectorEndMember )? + /// | ( isSufficient ?= 'all' )? ( 'of'? ownedRelationship += ConnectorEndMember '=' ownedRelationship += ConnectorEndMember )? + /// SuccessionDeclaration : Succession = + /// FeatureDeclaration ( 'first' ownedRelationship += ConnectorEndMember 'then' ownedRelationship += ConnectorEndMember )? + /// | ( isSufficient ?= 'all' )? ( 'first'? ownedRelationship += ConnectorEndMember 'then' ownedRelationship += ConnectorEndMember )? + /// Both rules share the same two-alternative shape; only the two end-keyword literals differ. + /// Alt 1 (declaration present) emits FeatureDeclaration then the two + /// ConnectorEndMember ends bracketed by the two keywords. Alt 2 (declaration absent) + /// emits the optional 'all' sufficient flag then the same two-ended payload. + /// + /// The (a BindingConnector or Succession) from which the rule should be built + /// Keyword literal that precedes the first ConnectorEndMember (e.g. "of " or "first ") + /// Keyword literal that precedes the second ConnectorEndMember (e.g. "= " or "then ") + /// The used to get access to the cursor cache for the current + /// The that contains the entire textual notation + internal static void BuildTwoEndedConnectorDeclarationHandCoded(IFeature poco, string firstEndKeyword, string secondEndKeyword, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) + { + var ownedRelationshipCursor = writerContext.CursorCache.GetOrCreateCursor(poco.Id, OwnedRelationshipPropertyName, poco.OwnedRelationship); + + var hasDeclaration = !string.IsNullOrWhiteSpace(poco.DeclaredShortName) + || !string.IsNullOrWhiteSpace(poco.DeclaredName) + || ownedRelationshipCursor.Current is ISpecialization + || ownedRelationshipCursor.Current is IConjugation; + + if (hasDeclaration) + { + // Alt 1: FeatureDeclaration (firstKw ConnectorEndMember secondKw ConnectorEndMember)? + FeatureTextualNotationBuilder.BuildFeatureDeclaration(poco, writerContext, stringBuilder); + + if (ownedRelationshipCursor.Current is IEndFeatureMembership firstEnd) + { + stringBuilder.Append(firstEndKeyword); + EndFeatureMembershipTextualNotationBuilder.BuildConnectorEndMember(firstEnd, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + + stringBuilder.Append(secondEndKeyword); + + if (ownedRelationshipCursor.Current is IEndFeatureMembership secondEnd) + { + EndFeatureMembershipTextualNotationBuilder.BuildConnectorEndMember(secondEnd, writerContext, stringBuilder); + } + + ownedRelationshipCursor.Move(); + } + } + else + { + // Alt 2: (isSufficient?='all')? (firstKw? ConnectorEndMember secondKw ConnectorEndMember)? + if (poco.IsSufficient) + { + stringBuilder.Append("all "); + } + + if (ownedRelationshipCursor.Current is IEndFeatureMembership firstEnd) + { + stringBuilder.Append(firstEndKeyword); + EndFeatureMembershipTextualNotationBuilder.BuildConnectorEndMember(firstEnd, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + + stringBuilder.Append(secondEndKeyword); + + if (ownedRelationshipCursor.Current is IEndFeatureMembership secondEnd) + { + EndFeatureMembershipTextualNotationBuilder.BuildConnectorEndMember(secondEnd, writerContext, stringBuilder); + } + + ownedRelationshipCursor.Move(); + } + } + } + + /// + /// Builds the Textual Notation string for the shared FlowDeclaration body used by both + /// Flow and SuccessionFlow. + /// FlowDeclaration : Flow = + /// FeatureDeclaration ValuePart? + /// ( 'of' ownedRelationship += PayloadFeatureMember )? + /// ( 'from' ownedRelationship += FlowEndMember 'to' ownedRelationship += FlowEndMember )? + /// | ( isSufficient ?= 'all' )? ownedRelationship += FlowEndMember 'to' ownedRelationship += FlowEndMember + /// ISuccessionFlow extends IFlow, so a single helper typed on IFlow serves + /// both rules. Auto-gen emits FeaturePrefix + 'flow ' (or 'succession flow ') before + /// and TypeBody after this method. + /// + /// The from which the rule should be built + /// The used to get access to the cursor cache for the current + /// The that contains the entire textual notation + internal static void BuildFlowDeclarationHandCoded(IFlow poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) + { + var ownedRelationshipCursor = writerContext.CursorCache.GetOrCreateCursor(poco.Id, OwnedRelationshipPropertyName, poco.OwnedRelationship); + + var hasDeclaration = !string.IsNullOrWhiteSpace(poco.DeclaredShortName) + || !string.IsNullOrWhiteSpace(poco.DeclaredName); + + if (hasDeclaration || ownedRelationshipCursor.Current is not IEndFeatureMembership) + { + // Alt 1: FeatureDeclaration ValuePart? ('of' PayloadFeatureMember)? ('from' FlowEndMember 'to' FlowEndMember)? + FeatureTextualNotationBuilder.BuildFeatureDeclaration(poco, writerContext, stringBuilder); + FeatureTextualNotationBuilder.BuildValuePart(poco, writerContext, stringBuilder); + + // 'of' PayloadFeatureMember? — IFeatureMembership but NOT IEndFeatureMembership + if (ownedRelationshipCursor.Current is IFeatureMembership payloadMember + && ownedRelationshipCursor.Current is not IEndFeatureMembership) + { + stringBuilder.Append("of "); + FeatureMembershipTextualNotationBuilder.BuildPayloadFeatureMember(payloadMember, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + } + + // 'from' FlowEndMember 'to' FlowEndMember? + if (ownedRelationshipCursor.Current is IEndFeatureMembership firstFlowEnd) + { + stringBuilder.Append("from "); + EndFeatureMembershipTextualNotationBuilder.BuildFlowEndMember(firstFlowEnd, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + + stringBuilder.Append("to "); + + if (ownedRelationshipCursor.Current is IEndFeatureMembership secondFlowEnd) + { + EndFeatureMembershipTextualNotationBuilder.BuildFlowEndMember(secondFlowEnd, writerContext, stringBuilder); + } + + ownedRelationshipCursor.Move(); + } + } + else + { + // Alt 2: (isSufficient?='all')? FlowEndMember 'to' FlowEndMember + if (poco.IsSufficient) + { + stringBuilder.Append("all "); + } + + if (ownedRelationshipCursor.Current is IEndFeatureMembership firstFlowEnd) + { + EndFeatureMembershipTextualNotationBuilder.BuildFlowEndMember(firstFlowEnd, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + + stringBuilder.Append("to "); + + if (ownedRelationshipCursor.Current is IEndFeatureMembership secondFlowEnd) + { + EndFeatureMembershipTextualNotationBuilder.BuildFlowEndMember(secondFlowEnd, writerContext, stringBuilder); + } + + ownedRelationshipCursor.Move(); + } + } + } + + /// + /// Processes one cursor element with the trailing NonBehaviorBodyItem alternatives that + /// are shared between ActionBodyItem and StateBodyItem. + /// Dispatches on cursor.Current's runtime type and delegates to the corresponding + /// membership builder: Import, VariantUsageMember, StructureUsageMember, + /// NonOccurrenceUsageMember, DefinitionMember (for ), + /// AliasMember (for plain ). The cursor is always advanced — when + /// no alternative matches, the default branch simply moves it. + /// Callers invoke this helper from the default: branch of their behavior-specific + /// outer switch so that all behavior-specific cases (e.g. InitialNodeMember, + /// ActionBehaviorMember, EntryActionMember) are matched first. + /// + /// The from which the rule should be built + /// The used to get access to the cursor cache for the current + /// The that contains the entire textual notation + internal static void BuildActionOrStateBodyItemNonBehaviorTailHandCoded(IType poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) + { + var ownedRelationshipCursor = writerContext.CursorCache.GetOrCreateCursor(poco.Id, OwnedRelationshipPropertyName, poco.OwnedRelationship); + + switch (ownedRelationshipCursor.Current) + { + case IImport import: + ImportTextualNotationBuilder.BuildImport(import, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + break; + + case IVariantMembership variantMembership: + VariantMembershipTextualNotationBuilder.BuildVariantUsageMember(variantMembership, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + break; + + case IFeatureMembership featureMembershipForStructure when featureMembershipForStructure.IsValidForStructureUsageMember(writerContext): + FeatureMembershipTextualNotationBuilder.BuildStructureUsageMember(featureMembershipForStructure, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + break; + + case IFeatureMembership featureMembershipForNonOccurrence when featureMembershipForNonOccurrence.IsValidForNonOccurrenceUsageMember(writerContext): + FeatureMembershipTextualNotationBuilder.BuildNonOccurrenceUsageMember(featureMembershipForNonOccurrence, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + break; + + case IOwningMembership owningMembership: + OwningMembershipTextualNotationBuilder.BuildDefinitionMember(owningMembership, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + break; + + case IMembership membership: + MembershipTextualNotationBuilder.BuildAliasMember(membership, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + break; + + default: + ownedRelationshipCursor.Move(); + break; + } + } + + /// + /// Builds the Textual Notation string for the shared DefinitionBodyItem / InterfaceBodyItem + /// rule body. Both rules share an identical structural shape; only the inner + /// OccurrenceUsageMember / NonOccurrenceUsageMember builders differ, so they are + /// supplied as delegates by the caller. + /// DefinitionBodyItem : Type = ownedRelationship += DefinitionMember + /// | ownedRelationship += VariantUsageMember + /// | ownedRelationship += NonOccurrenceUsageMember + /// | ( ownedRelationship += SourceSuccessionMember )? ownedRelationship += OccurrenceUsageMember + /// | ownedRelationship += AliasMember + /// | ownedRelationship += Import + /// InterfaceBodyItem : Type = ownedRelationship += DefinitionMember + /// | ownedRelationship += VariantUsageMember + /// | ownedRelationship += InterfaceNonOccurrenceUsageMember + /// | ( ownedRelationship += SourceSuccessionMember )? ownedRelationship += InterfaceOccurrenceUsageMember + /// | ownedRelationship += AliasMember + /// | ownedRelationship += Import + /// + /// The from which the rule should be built + /// The used to get access to the cursor cache for the current + /// The that contains the entire textual notation + /// Delegate that builds the OccurrenceUsageMember alternative — pass FeatureMembershipTextualNotationBuilder.BuildOccurrenceUsageMember for DefinitionBodyItem and BuildInterfaceOccurrenceUsageMember for InterfaceBodyItem + /// Delegate that builds the NonOccurrenceUsageMember alternative — pass FeatureMembershipTextualNotationBuilder.BuildNonOccurrenceUsageMember for DefinitionBodyItem and BuildInterfaceNonOccurrenceUsageMember for InterfaceBodyItem + internal static void BuildDefinitionOrInterfaceBodyItemHandCoded( + IType poco, + TextualNotationWriterContext writerContext, + StringBuilder stringBuilder, + Action buildOccurrenceUsageMember, + Action buildNonOccurrenceUsageMember) + { + var ownedRelationshipCursor = writerContext.CursorCache.GetOrCreateCursor(poco.Id, OwnedRelationshipPropertyName, poco.OwnedRelationship); + + while (ownedRelationshipCursor.Current != null) + { + switch (ownedRelationshipCursor.Current) + { + case IVariantMembership variantMembership: + VariantMembershipTextualNotationBuilder.BuildVariantUsageMember(variantMembership, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + break; + + case IFeatureMembership featureMembershipForSuccession when featureMembershipForSuccession.IsValidForSourceSuccessionMember(writerContext): + { + var nextElement = ownedRelationshipCursor.GetNext(1); + + if (nextElement is IFeatureMembership nextFeatureMembership && nextFeatureMembership.IsValidForOccurrenceUsageMember(writerContext)) + { + FeatureMembershipTextualNotationBuilder.BuildSourceSuccessionMember(featureMembershipForSuccession, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + buildOccurrenceUsageMember((IFeatureMembership)ownedRelationshipCursor.Current, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + } + else + { + ownedRelationshipCursor.Move(); + } + + break; + } + + case IFeatureMembership featureMembershipForOccurrence when featureMembershipForOccurrence.IsValidForOccurrenceUsageMember(writerContext): + buildOccurrenceUsageMember(featureMembershipForOccurrence, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + break; + + case IFeatureMembership featureMembershipForNonOccurrence when featureMembershipForNonOccurrence.IsValidForNonOccurrenceUsageMember(writerContext): + buildNonOccurrenceUsageMember(featureMembershipForNonOccurrence, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + break; + + case IOwningMembership owningMembership: + OwningMembershipTextualNotationBuilder.BuildDefinitionMember(owningMembership, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + break; + + case IMembership membership: + MembershipTextualNotationBuilder.BuildAliasMember(membership, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + break; + + case IImport import: + ImportTextualNotationBuilder.BuildImport(import, writerContext, stringBuilder); + ownedRelationshipCursor.Move(); + break; + + default: + ownedRelationshipCursor.Move(); + break; + } + } + } + + /// + /// Builds the Textual Notation string for the shared FeatureSpecializationPart body, + /// also reused by PayloadFeatureSpecializationPart. + /// FeatureSpecializationPart : Feature = FeatureSpecialization+ MultiplicityPart? FeatureSpecialization* + /// | MultiplicityPart FeatureSpecialization* + /// PayloadFeatureSpecializationPart : Feature = ( FeatureSpecialization )+ MultiplicityPart? FeatureSpecialization* + /// | MultiplicityPart FeatureSpecialization+ + /// The only grammar difference between the two rules (Alt 2's + vs *) is a + /// parse-time validation concern, not a serialization difference, so a single helper serves + /// both. Branches on whether the cursor starts on an or not, + /// mirroring the grammar's two alternatives; while-loops on + /// cursor.Current is ISpecialization drive the +/* quantifiers. + /// + /// The from which the rule should be built + /// The used to get access to the cursor cache for the current + /// The that contains the entire textual notation + internal static void BuildFeatureSpecializationPartHandCoded(IFeature poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) + { + var ownedRelationshipCursor = writerContext.CursorCache.GetOrCreateCursor(poco.Id, OwnedRelationshipPropertyName, poco.OwnedRelationship); + + if (ownedRelationshipCursor.Current is ISpecialization) + { + // Alt 1: FeatureSpecialization+ MultiplicityPart? FeatureSpecialization* + while (ownedRelationshipCursor.Current is ISpecialization) + { + FeatureTextualNotationBuilder.BuildFeatureSpecialization(poco, writerContext, stringBuilder); + } + + var multiplicityElementPresent = ownedRelationshipCursor.Current is IOwningMembership owningMembership + && owningMembership.OwnedRelatedElement.OfType().Any(); + + if (multiplicityElementPresent || poco.IsOrdered || !poco.IsUnique) + { + FeatureTextualNotationBuilder.BuildMultiplicityPart(poco, writerContext, stringBuilder); + } + + // Trailing FeatureSpecialization* — runs regardless of whether MultiplicityPart fired, + // per the grammar's three-segment shape `FeatureSpecialization+ MultiplicityPart? FeatureSpecialization*`. + while (ownedRelationshipCursor.Current is ISpecialization) + { + FeatureTextualNotationBuilder.BuildFeatureSpecialization(poco, writerContext, stringBuilder); + } + } + else + { + // Alt 2: MultiplicityPart FeatureSpecialization* + FeatureTextualNotationBuilder.BuildMultiplicityPart(poco, writerContext, stringBuilder); + + while (ownedRelationshipCursor.Current is ISpecialization) + { + FeatureTextualNotationBuilder.BuildFeatureSpecialization(poco, writerContext, stringBuilder); + } + } + } + + /// + /// Appends a body text formatted as a REGULAR_COMMENT (/* ... */). + /// The grammar defines REGULAR_COMMENT = '/*' COMMENT_TEXT '*/'. + /// During parsing, the /* and */ delimiters are stripped and each + /// line's leading * prefix is removed. This method reverses that + /// transformation for serialization. + /// + /// The to append to + /// The body text to format as a REGULAR_COMMENT + internal static void AppendRegularComment(StringBuilder stringBuilder, string body) + { + if (string.IsNullOrWhiteSpace(body)) + { + stringBuilder.AppendLine("/* */"); + return; + } + + var lines = body.Split('\n'); + + if (lines.Length == 1) + { + stringBuilder.Append("/* "); + stringBuilder.Append(lines[0].TrimEnd('\r')); + stringBuilder.AppendLine(" */"); + return; + } + + stringBuilder.AppendLine("/*"); + + foreach (var rawLine in lines.Where(l => !string.IsNullOrWhiteSpace(l))) + { + var line = rawLine.TrimEnd('\r'); + stringBuilder.Append(" * "); + stringBuilder.AppendLine(line); + } + + stringBuilder.AppendLine(" */"); + stringBuilder.AppendLine(); + } + + /// + /// Appends the shortest resolvable name of the for the textual notation, + /// per KerML specification section 8.2.3.5. + /// When the carries a non-null + /// , the method walks up the + /// namespace chain to find whether the element's simple name resolves via imports + /// (per 8.2.3.5.4 Full Resolution). If so, the simple name is used; otherwise the full + /// qualifiedName is emitted. + /// + /// The to append to + /// The that needs to have its name appended + /// The providing the serialization context + internal static void AppendQualifiedName(StringBuilder stringBuilder, IElement poco, TextualNotationWriterContext writerContext) + { + if (poco is IMembership membership) + { + // Membership references (used in import declarations) must retain + // their full qualified name — the path identifies WHAT is being imported. + stringBuilder.Append(membership.MemberElement.qualifiedName); + } + else + { + // Element references (used in type/feature references) can be shortened + // when the element is resolvable by its simple name via imports (8.2.3.5). + stringBuilder.Append(QueryShortestResolvableName(poco, writerContext?.ContextNamespace)); + } + } + + /// + /// Determines the shortest name that will resolve to the given + /// per the KerML name resolution rules (8.2.3.5). + /// Per 8.2.3.5.4, full resolution walks up from the local namespace through + /// containing namespaces to the global namespace. If the element's simple name resolves + /// via the membership (which includes imported memberships) of any namespace in + /// that chain, the simple name is sufficient. + /// + /// The referenced to resolve + /// + /// The root being serialized, or null to fall back to the full qualified name + /// + /// The shortest name that resolves to the element + private static string QueryShortestResolvableName(IElement element, INamespace contextNamespace) + { + if (element == null) + { + return string.Empty; + } + + var simpleName = element.EscapedName(); + + if (!string.IsNullOrWhiteSpace(simpleName) && contextNamespace != null) + { + // Per 8.2.3.5.4, full resolution walks up from the local namespace through + // containing namespaces. The contextNamespace is the root namespace being + // serialized; imports that make the simple name resolvable may be on any + // descendant namespace (e.g. a LibraryPackage nested inside the root). + // We check the context namespace and all its descendant namespaces. + if (QueryIsResolvableInNamespaceTree(contextNamespace, element, simpleName)) + { + return simpleName; + } + } + + return element.qualifiedName ?? string.Empty; + } + + /// + /// Recursively checks whether the given is resolvable by its + /// within the or any of its + /// descendant namespaces (per 8.2.3.5.4 full resolution, which walks up from the local + /// namespace — checking descendants ensures we cover all import scopes in the output model). + /// + /// The namespace to check (including descendants) + /// The element to find + /// The simple name to match + /// true if the element is found by simple name in the namespace tree + private static bool QueryIsResolvableInNamespaceTree(INamespace @namespace, IElement element, string simpleName) + { + try + { + if (QueryIsResolvableBySimpleName(@namespace, element, simpleName)) + { + return true; + } + } + catch (NotSupportedException) + { + // membership may not be fully implemented for this namespace + } + + try + { + foreach (var childNamespace in @namespace.ownedMember.OfType()) + { + if (QueryIsResolvableInNamespaceTree(childNamespace, element, simpleName)) + { + return true; + } + } + } + catch (NotSupportedException) + { + // ownedMember may not be fully implemented for this namespace + } + + return false; + } + + /// + /// Checks whether the given is resolvable by its + /// within the 's + /// memberships (owned, imported, and inherited). + /// + /// The namespace to check + /// The element to find + /// The simple name to match + /// true if the element is found by simple name in the namespace + private static bool QueryIsResolvableBySimpleName(INamespace @namespace, IElement element, string simpleName) + { + // Check ownedMembership first (non-derived, always available) + foreach (var ownedMember in @namespace.ownedMembership) + { + if (ownedMember is IOwningMembership owningMembership + && owningMembership.OwnedRelatedElement.Contains(element)) + { + return true; + } + + if (ownedMember.MemberElement == element) + { + return true; + } + } + + // Check imports: walk ownedImport (ownedRelationship filtered to IImport) to find + // MembershipImports that reference the element directly by its membership. + foreach (var import in @namespace.ownedImport) + { + if (import is IMembershipImport membershipImport + && membershipImport.ImportedMembership is IMembership importedMembership + && importedMembership.MemberElement == element) + { + return true; + } + + if (import is INamespaceImport namespaceImport) + { + var importedNs = namespaceImport.ImportedNamespace; + + if (importedNs != null) + { + foreach (var visibleMember in importedNs.ownedMembership) + { + if (visibleMember.MemberElement == element) + { + return true; + } + } + } + } + } + + return false; + } + } +} diff --git a/SysML2.NET.Serializer.TextualNotation/Writers/SuccessionFlowTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/SuccessionFlowTextualNotationBuilder.cs new file mode 100644 index 000000000..2e5a85ec3 --- /dev/null +++ b/SysML2.NET.Serializer.TextualNotation/Writers/SuccessionFlowTextualNotationBuilder.cs @@ -0,0 +1,55 @@ +// ------------------------------------------------------------------------------------------------- +// +// +// Copyright 2022-2026 Starion Group S.A. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// ------------------------------------------------------------------------------------------------ + +namespace SysML2.NET.Serializer.TextualNotation.Writers +{ + using System.Text; + + using SysML2.NET.Core.POCO.Kernel.Interactions; + + /// + /// Hand-coded part of the + /// + public static partial class SuccessionFlowTextualNotationBuilder + { + /// + /// Builds the Textual Notation string for the rule FlowDeclaration + /// + /// The from which the rule should be build + /// The used to get access to CursorCollection for the current + /// The that contains the entire textual notation + /// + /// FlowDeclaration : Flow = + /// FeatureDeclaration ValuePart? + /// ( 'of' ownedRelationship += PayloadFeatureMember )? + /// ( 'from' ownedRelationship += FlowEndMember 'to' ownedRelationship += FlowEndMember )? + /// | ( isSufficient ?= 'all' )? + /// ownedRelationship += FlowEndMember 'to' ownedRelationship += FlowEndMember + /// + /// Auto-gen emits FeaturePrefix + 'succession flow ' before and TypeBody after. + /// Same grammar as Flow's FlowDeclaration; ISuccessionFlow extends IFlow. Body delegates to the + /// shared helper. + /// + private static void BuildFlowDeclarationHandCoded(ISuccessionFlow poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) + { + SharedTextualNotationBuilder.BuildFlowDeclarationHandCoded(poco, writerContext, stringBuilder); + } + } +} diff --git a/SysML2.NET.Serializer.TextualNotation/Writers/SuccessionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/SuccessionTextualNotationBuilder.cs new file mode 100644 index 000000000..2e9572c4c --- /dev/null +++ b/SysML2.NET.Serializer.TextualNotation/Writers/SuccessionTextualNotationBuilder.cs @@ -0,0 +1,52 @@ +// ------------------------------------------------------------------------------------------------- +// +// +// Copyright 2022-2026 Starion Group S.A. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// ------------------------------------------------------------------------------------------------ + +namespace SysML2.NET.Serializer.TextualNotation.Writers +{ + using System.Text; + + using SysML2.NET.Core.POCO.Kernel.Connectors; + + /// + /// Hand-coded part of the + /// + public static partial class SuccessionTextualNotationBuilder + { + /// + /// Builds the Textual Notation string for the rule SuccessionDeclaration + /// + /// The from which the rule should be build + /// The used to get access to CursorCollection for the current + /// The that contains the entire textual notation + /// + /// SuccessionDeclaration : Succession = + /// FeatureDeclaration ( 'first' ownedRelationship += ConnectorEndMember 'then' ownedRelationship += ConnectorEndMember )? + /// | ( isSufficient ?= 'all' )? ( 'first'? ownedRelationship += ConnectorEndMember 'then' ownedRelationship += ConnectorEndMember )? + /// + /// Auto-gen delegates entirely to this method, which in turn delegates to the shared + /// helper — + /// the rule shares its body with BindingConnectorDeclaration save for the two end-keyword literals. + /// + private static void BuildSuccessionDeclarationHandCoded(ISuccession poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) + { + SharedTextualNotationBuilder.BuildTwoEndedConnectorDeclarationHandCoded(poco, "first ", "then ", writerContext, stringBuilder); + } + } +} diff --git a/SysML2.NET/TextualNotation/TextualNotationValidationExtensions.cs b/SysML2.NET.Serializer.TextualNotation/Writers/TextualNotationValidationExtensions.cs similarity index 99% rename from SysML2.NET/TextualNotation/TextualNotationValidationExtensions.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/TextualNotationValidationExtensions.cs index 0509766b6..768e2eedc 100644 --- a/SysML2.NET/TextualNotation/TextualNotationValidationExtensions.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/TextualNotationValidationExtensions.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Collections.Frozen; using System.Collections.Generic; diff --git a/SysML2.NET/TextualNotation/TextualNotationWriterContext.cs b/SysML2.NET.Serializer.TextualNotation/Writers/TextualNotationWriterContext.cs similarity index 98% rename from SysML2.NET/TextualNotation/TextualNotationWriterContext.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/TextualNotationWriterContext.cs index 933453051..caf35af03 100644 --- a/SysML2.NET/TextualNotation/TextualNotationWriterContext.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/TextualNotationWriterContext.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System; diff --git a/SysML2.NET/TextualNotation/TransitionUsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/TransitionUsageTextualNotationBuilder.cs similarity index 99% rename from SysML2.NET/TextualNotation/TransitionUsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/TransitionUsageTextualNotationBuilder.cs index b0b4f0c68..05230517b 100644 --- a/SysML2.NET/TextualNotation/TransitionUsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/TransitionUsageTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Text; diff --git a/SysML2.NET/TextualNotation/TriggerInvocationExpressionTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/TriggerInvocationExpressionTextualNotationBuilder.cs similarity index 98% rename from SysML2.NET/TextualNotation/TriggerInvocationExpressionTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/TriggerInvocationExpressionTextualNotationBuilder.cs index 7b001235d..6bcc27007 100644 --- a/SysML2.NET/TextualNotation/TriggerInvocationExpressionTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/TriggerInvocationExpressionTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Text; diff --git a/SysML2.NET/TextualNotation/TypeTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/TypeTextualNotationBuilder.cs similarity index 65% rename from SysML2.NET/TextualNotation/TypeTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/TypeTextualNotationBuilder.cs index f82c4be43..37c0f3583 100644 --- a/SysML2.NET/TextualNotation/TypeTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/TypeTextualNotationBuilder.cs @@ -18,15 +18,13 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Linq; using System.Text; using SysML2.NET.Core.POCO.Core.Types; - using SysML2.NET.Core.POCO.Root.Elements; using SysML2.NET.Core.POCO.Root.Namespaces; - using SysML2.NET.Core.POCO.Systems.DefinitionAndUsage; using SysML2.NET.Core.POCO.Systems.States; /// @@ -115,39 +113,9 @@ private static void BuildActionBodyItemHandCoded(IType poco, TextualNotationWrit ownedRelationshipCursor.Move(); break; - // NonBehaviorBodyItem cases - case IImport import: - ImportTextualNotationBuilder.BuildImport(import, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IVariantMembership variantMembership: - VariantMembershipTextualNotationBuilder.BuildVariantUsageMember(variantMembership, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IFeatureMembership featureMembershipForStructure when featureMembershipForStructure.IsValidForStructureUsageMember(writerContext): - FeatureMembershipTextualNotationBuilder.BuildStructureUsageMember(featureMembershipForStructure, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IFeatureMembership featureMembershipForNonOccurrence when featureMembershipForNonOccurrence.IsValidForNonOccurrenceUsageMember(writerContext): - FeatureMembershipTextualNotationBuilder.BuildNonOccurrenceUsageMember(featureMembershipForNonOccurrence, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IOwningMembership owningMembership: - OwningMembershipTextualNotationBuilder.BuildDefinitionMember(owningMembership, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IMembership membership: - MembershipTextualNotationBuilder.BuildAliasMember(membership, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - + // NonBehaviorBodyItem cases — shared with StateBodyItem; see Shared helper. default: - ownedRelationshipCursor.Move(); + SharedTextualNotationBuilder.BuildActionOrStateBodyItemNonBehaviorTailHandCoded(poco, writerContext, stringBuilder); break; } } @@ -162,66 +130,14 @@ private static void BuildActionBodyItemHandCoded(IType poco, TextualNotationWrit /// The that contains the entire textual notation private static void BuildDefinitionBodyItemHandCoded(IType poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) { - var ownedRelationshipCursor = writerContext.CursorCache.GetOrCreateCursor(poco.Id, "ownedRelationship", poco.OwnedRelationship); - - while (ownedRelationshipCursor.Current != null) - { - switch (ownedRelationshipCursor.Current) - { - case IVariantMembership variantMembership: - VariantMembershipTextualNotationBuilder.BuildVariantUsageMember(variantMembership, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IFeatureMembership featureMembershipForSuccession when featureMembershipForSuccession.IsValidForSourceSuccessionMember(writerContext): - { - var nextElement = ownedRelationshipCursor.GetNext(1); - - if (nextElement is IFeatureMembership nextFeatureMembership && nextFeatureMembership.IsValidForOccurrenceUsageMember(writerContext)) - { - FeatureMembershipTextualNotationBuilder.BuildSourceSuccessionMember(featureMembershipForSuccession, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - FeatureMembershipTextualNotationBuilder.BuildOccurrenceUsageMember((IFeatureMembership)ownedRelationshipCursor.Current, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - } - else - { - ownedRelationshipCursor.Move(); - } - - break; - } - - case IFeatureMembership featureMembershipForOccurrence when featureMembershipForOccurrence.IsValidForOccurrenceUsageMember(writerContext): - FeatureMembershipTextualNotationBuilder.BuildOccurrenceUsageMember(featureMembershipForOccurrence, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IFeatureMembership featureMembershipForNonOccurrence when featureMembershipForNonOccurrence.IsValidForNonOccurrenceUsageMember(writerContext): - FeatureMembershipTextualNotationBuilder.BuildNonOccurrenceUsageMember(featureMembershipForNonOccurrence, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IOwningMembership owningMembership: - OwningMembershipTextualNotationBuilder.BuildDefinitionMember(owningMembership, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IMembership membership: - MembershipTextualNotationBuilder.BuildAliasMember(membership, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IImport import: - ImportTextualNotationBuilder.BuildImport(import, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - default: - ownedRelationshipCursor.Move(); - break; - } - } + // DefinitionBodyItem shares its body with InterfaceBodyItem; the two rules differ only in the + // Occurrence / NonOccurrence membership builders, supplied here as method-group delegates. + SharedTextualNotationBuilder.BuildDefinitionOrInterfaceBodyItemHandCoded( + poco, + writerContext, + stringBuilder, + FeatureMembershipTextualNotationBuilder.BuildOccurrenceUsageMember, + FeatureMembershipTextualNotationBuilder.BuildNonOccurrenceUsageMember); } /// @@ -303,66 +219,14 @@ private static void BuildTypeDeclarationHandCoded(IType poco, TextualNotationWri /// The that contains the entire textual notation private static void BuildInterfaceBodyItemHandCoded(IType poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) { - var ownedRelationshipCursor = writerContext.CursorCache.GetOrCreateCursor(poco.Id, "ownedRelationship", poco.OwnedRelationship); - - while (ownedRelationshipCursor.Current != null) - { - switch (ownedRelationshipCursor.Current) - { - case IVariantMembership variantMembership: - VariantMembershipTextualNotationBuilder.BuildVariantUsageMember(variantMembership, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IFeatureMembership featureMembershipForSuccession when featureMembershipForSuccession.IsValidForSourceSuccessionMember(writerContext): - { - var nextElement = ownedRelationshipCursor.GetNext(1); - - if (nextElement is IFeatureMembership nextFeatureMembership && nextFeatureMembership.IsValidForOccurrenceUsageMember(writerContext)) - { - FeatureMembershipTextualNotationBuilder.BuildSourceSuccessionMember(featureMembershipForSuccession, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - FeatureMembershipTextualNotationBuilder.BuildInterfaceOccurrenceUsageMember((IFeatureMembership)ownedRelationshipCursor.Current, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - } - else - { - ownedRelationshipCursor.Move(); - } - - break; - } - - case IFeatureMembership featureMembershipForOccurrence when featureMembershipForOccurrence.IsValidForOccurrenceUsageMember(writerContext): - FeatureMembershipTextualNotationBuilder.BuildInterfaceOccurrenceUsageMember(featureMembershipForOccurrence, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IFeatureMembership featureMembershipForNonOccurrence when featureMembershipForNonOccurrence.IsValidForNonOccurrenceUsageMember(writerContext): - FeatureMembershipTextualNotationBuilder.BuildInterfaceNonOccurrenceUsageMember(featureMembershipForNonOccurrence, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IOwningMembership owningMembership: - OwningMembershipTextualNotationBuilder.BuildDefinitionMember(owningMembership, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IMembership membership: - MembershipTextualNotationBuilder.BuildAliasMember(membership, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IImport import: - ImportTextualNotationBuilder.BuildImport(import, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - default: - ownedRelationshipCursor.Move(); - break; - } - } + // InterfaceBodyItem shares its body with DefinitionBodyItem; the two rules differ only in the + // Occurrence / NonOccurrence membership builders, supplied here as method-group delegates. + SharedTextualNotationBuilder.BuildDefinitionOrInterfaceBodyItemHandCoded( + poco, + writerContext, + stringBuilder, + FeatureMembershipTextualNotationBuilder.BuildInterfaceOccurrenceUsageMember, + FeatureMembershipTextualNotationBuilder.BuildInterfaceNonOccurrenceUsageMember); } /// @@ -471,39 +335,9 @@ private static void BuildStateBodyItemHandCoded(IType poco, TextualNotationWrite ownedRelationshipCursor.Move(); break; - // NonBehaviorBodyItem cases - case IImport import: - ImportTextualNotationBuilder.BuildImport(import, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IVariantMembership variantMembership: - VariantMembershipTextualNotationBuilder.BuildVariantUsageMember(variantMembership, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IFeatureMembership featureMembershipForStructure when featureMembershipForStructure.IsValidForStructureUsageMember(writerContext): - FeatureMembershipTextualNotationBuilder.BuildStructureUsageMember(featureMembershipForStructure, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IFeatureMembership featureMembershipForNonOccurrence when featureMembershipForNonOccurrence.IsValidForNonOccurrenceUsageMember(writerContext): - FeatureMembershipTextualNotationBuilder.BuildNonOccurrenceUsageMember(featureMembershipForNonOccurrence, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IOwningMembership owningMembership: - OwningMembershipTextualNotationBuilder.BuildDefinitionMember(owningMembership, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - - case IMembership membership: - MembershipTextualNotationBuilder.BuildAliasMember(membership, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - break; - + // NonBehaviorBodyItem cases — shared with ActionBodyItem; see Shared helper. default: - ownedRelationshipCursor.Move(); + SharedTextualNotationBuilder.BuildActionOrStateBodyItemNonBehaviorTailHandCoded(poco, writerContext, stringBuilder); break; } } diff --git a/SysML2.NET/TextualNotation/UsageTextualNotationBuilder.cs b/SysML2.NET.Serializer.TextualNotation/Writers/UsageTextualNotationBuilder.cs similarity index 95% rename from SysML2.NET/TextualNotation/UsageTextualNotationBuilder.cs rename to SysML2.NET.Serializer.TextualNotation/Writers/UsageTextualNotationBuilder.cs index 7c376a983..eafa36484 100644 --- a/SysML2.NET/TextualNotation/UsageTextualNotationBuilder.cs +++ b/SysML2.NET.Serializer.TextualNotation/Writers/UsageTextualNotationBuilder.cs @@ -18,7 +18,7 @@ // // ------------------------------------------------------------------------------------------------ -namespace SysML2.NET.TextualNotation +namespace SysML2.NET.Serializer.TextualNotation.Writers { using System.Text; diff --git a/SysML2.NET.sln b/SysML2.NET.sln index d54c4c926..da9f0b796 100644 --- a/SysML2.NET.sln +++ b/SysML2.NET.sln @@ -70,6 +70,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SysML2.NET.Kpar.Tests", "Sy EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SysML2.NET.Tests", "SysML2.NET.Tests\SysML2.NET.Tests.csproj", "{C3953262-2718-4EC6-B7EB-BB94402D335A}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SysML2.NET.Serializer.TextualNotation", "SysML2.NET.Serializer.TextualNotation\SysML2.NET.Serializer.TextualNotation.csproj", "{767AEAEB-1D33-4B5A-AA77-AED7F9C5B4A8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SysML2.NET.Serializer.TextualNotation.Tests", "SysML2.NET.Serializer.TextualNotation.Tests\SysML2.NET.Serializer.TextualNotation.Tests.csproj", "{46EB73DF-D702-4FC2-BD1F-FA9FEEACE8A9}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -320,6 +324,30 @@ Global {C3953262-2718-4EC6-B7EB-BB94402D335A}.Release|x64.Build.0 = Release|Any CPU {C3953262-2718-4EC6-B7EB-BB94402D335A}.Release|x86.ActiveCfg = Release|Any CPU {C3953262-2718-4EC6-B7EB-BB94402D335A}.Release|x86.Build.0 = Release|Any CPU + {767AEAEB-1D33-4B5A-AA77-AED7F9C5B4A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {767AEAEB-1D33-4B5A-AA77-AED7F9C5B4A8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {767AEAEB-1D33-4B5A-AA77-AED7F9C5B4A8}.Debug|x64.ActiveCfg = Debug|Any CPU + {767AEAEB-1D33-4B5A-AA77-AED7F9C5B4A8}.Debug|x64.Build.0 = Debug|Any CPU + {767AEAEB-1D33-4B5A-AA77-AED7F9C5B4A8}.Debug|x86.ActiveCfg = Debug|Any CPU + {767AEAEB-1D33-4B5A-AA77-AED7F9C5B4A8}.Debug|x86.Build.0 = Debug|Any CPU + {767AEAEB-1D33-4B5A-AA77-AED7F9C5B4A8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {767AEAEB-1D33-4B5A-AA77-AED7F9C5B4A8}.Release|Any CPU.Build.0 = Release|Any CPU + {767AEAEB-1D33-4B5A-AA77-AED7F9C5B4A8}.Release|x64.ActiveCfg = Release|Any CPU + {767AEAEB-1D33-4B5A-AA77-AED7F9C5B4A8}.Release|x64.Build.0 = Release|Any CPU + {767AEAEB-1D33-4B5A-AA77-AED7F9C5B4A8}.Release|x86.ActiveCfg = Release|Any CPU + {767AEAEB-1D33-4B5A-AA77-AED7F9C5B4A8}.Release|x86.Build.0 = Release|Any CPU + {46EB73DF-D702-4FC2-BD1F-FA9FEEACE8A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {46EB73DF-D702-4FC2-BD1F-FA9FEEACE8A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46EB73DF-D702-4FC2-BD1F-FA9FEEACE8A9}.Debug|x64.ActiveCfg = Debug|Any CPU + {46EB73DF-D702-4FC2-BD1F-FA9FEEACE8A9}.Debug|x64.Build.0 = Debug|Any CPU + {46EB73DF-D702-4FC2-BD1F-FA9FEEACE8A9}.Debug|x86.ActiveCfg = Debug|Any CPU + {46EB73DF-D702-4FC2-BD1F-FA9FEEACE8A9}.Debug|x86.Build.0 = Debug|Any CPU + {46EB73DF-D702-4FC2-BD1F-FA9FEEACE8A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {46EB73DF-D702-4FC2-BD1F-FA9FEEACE8A9}.Release|Any CPU.Build.0 = Release|Any CPU + {46EB73DF-D702-4FC2-BD1F-FA9FEEACE8A9}.Release|x64.ActiveCfg = Release|Any CPU + {46EB73DF-D702-4FC2-BD1F-FA9FEEACE8A9}.Release|x64.Build.0 = Release|Any CPU + {46EB73DF-D702-4FC2-BD1F-FA9FEEACE8A9}.Release|x86.ActiveCfg = Release|Any CPU + {46EB73DF-D702-4FC2-BD1F-FA9FEEACE8A9}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/SysML2.NET/TextualNotation/BindingConnectorTextualNotationBuilder.cs b/SysML2.NET/TextualNotation/BindingConnectorTextualNotationBuilder.cs deleted file mode 100644 index ae1b2d871..000000000 --- a/SysML2.NET/TextualNotation/BindingConnectorTextualNotationBuilder.cs +++ /dev/null @@ -1,104 +0,0 @@ -// ------------------------------------------------------------------------------------------------- -// -// -// Copyright 2022-2026 Starion Group S.A. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// -// ------------------------------------------------------------------------------------------------ - -namespace SysML2.NET.TextualNotation -{ - using System.Text; - - using SysML2.NET.Core.POCO.Core.Features; - using SysML2.NET.Core.POCO.Core.Types; - using SysML2.NET.Core.POCO.Kernel.Connectors; - - /// - /// Hand-coded part of the - /// - public static partial class BindingConnectorTextualNotationBuilder - { - /// - /// Builds the Textual Notation string for the rule BindingConnectorDeclaration - /// - /// The from which the rule should be build - /// The used to get access to CursorCollection for the current - /// The that contains the entire textual notation - /// - /// BindingConnectorDeclaration : BindingConnector = - /// FeatureDeclaration ( 'of' ownedRelationship += ConnectorEndMember '=' ownedRelationship += ConnectorEndMember )? - /// | ( isSufficient ?= 'all' )? ( 'of'? ownedRelationship += ConnectorEndMember '=' ownedRelationship += ConnectorEndMember )? - /// - /// Auto-gen delegates entirely to this method. - /// - private static void BuildBindingConnectorDeclarationHandCoded(IBindingConnector poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) - { - var ownedRelationshipCursor = writerContext.CursorCache.GetOrCreateCursor(poco.Id, "ownedRelationship", poco.OwnedRelationship); - - var hasDeclaration = !string.IsNullOrWhiteSpace(poco.DeclaredShortName) - || !string.IsNullOrWhiteSpace(poco.DeclaredName) - || ownedRelationshipCursor.Current is ISpecialization - || ownedRelationshipCursor.Current is IConjugation; - - if (hasDeclaration) - { - // Alt 1: FeatureDeclaration ('of' ConnectorEndMember '=' ConnectorEndMember)? - FeatureTextualNotationBuilder.BuildFeatureDeclaration(poco, writerContext, stringBuilder); - - if (ownedRelationshipCursor.Current is IEndFeatureMembership firstEnd) - { - stringBuilder.Append("of "); - EndFeatureMembershipTextualNotationBuilder.BuildConnectorEndMember(firstEnd, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - - stringBuilder.Append("= "); - - if (ownedRelationshipCursor.Current is IEndFeatureMembership secondEnd) - { - EndFeatureMembershipTextualNotationBuilder.BuildConnectorEndMember(secondEnd, writerContext, stringBuilder); - } - - ownedRelationshipCursor.Move(); - } - } - else - { - // Alt 2: (isSufficient?='all')? ('of'? ConnectorEndMember '=' ConnectorEndMember)? - if (poco.IsSufficient) - { - stringBuilder.Append("all "); - } - - if (ownedRelationshipCursor.Current is IEndFeatureMembership firstEnd) - { - stringBuilder.Append("of "); - EndFeatureMembershipTextualNotationBuilder.BuildConnectorEndMember(firstEnd, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - - stringBuilder.Append("= "); - - if (ownedRelationshipCursor.Current is IEndFeatureMembership secondEnd) - { - EndFeatureMembershipTextualNotationBuilder.BuildConnectorEndMember(secondEnd, writerContext, stringBuilder); - } - - ownedRelationshipCursor.Move(); - } - } - } - - } -} diff --git a/SysML2.NET/TextualNotation/FlowTextualNotationBuilder.cs b/SysML2.NET/TextualNotation/FlowTextualNotationBuilder.cs deleted file mode 100644 index 495b3dce7..000000000 --- a/SysML2.NET/TextualNotation/FlowTextualNotationBuilder.cs +++ /dev/null @@ -1,114 +0,0 @@ -// ------------------------------------------------------------------------------------------------- -// -// -// Copyright 2022-2026 Starion Group S.A. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// -// ------------------------------------------------------------------------------------------------ - -namespace SysML2.NET.TextualNotation -{ - using System.Text; - - using SysML2.NET.Core.POCO.Core.Features; - using SysML2.NET.Core.POCO.Core.Types; - using SysML2.NET.Core.POCO.Kernel.Interactions; - - /// - /// Hand-coded part of the - /// - public static partial class FlowTextualNotationBuilder - { - /// - /// Builds the Textual Notation string for the rule FlowDeclaration - /// - /// The from which the rule should be build - /// The used to get access to CursorCollection for the current - /// The that contains the entire textual notation - /// - /// FlowDeclaration : Flow = - /// FeatureDeclaration ValuePart? - /// ( 'of' ownedRelationship += PayloadFeatureMember )? - /// ( 'from' ownedRelationship += FlowEndMember 'to' ownedRelationship += FlowEndMember )? - /// | ( isSufficient ?= 'all' )? - /// ownedRelationship += FlowEndMember 'to' ownedRelationship += FlowEndMember - /// - /// Auto-gen emits FeaturePrefix + 'flow ' before and TypeBody after this method. - /// - private static void BuildFlowDeclarationHandCoded(IFlow poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) - { - var ownedRelationshipCursor = writerContext.CursorCache.GetOrCreateCursor(poco.Id, "ownedRelationship", poco.OwnedRelationship); - - var hasDeclaration = !string.IsNullOrWhiteSpace(poco.DeclaredShortName) - || !string.IsNullOrWhiteSpace(poco.DeclaredName); - - if (hasDeclaration || ownedRelationshipCursor.Current is not IEndFeatureMembership) - { - // Alt 1: FeatureDeclaration ValuePart? ('of' PayloadFeatureMember)? ('from' FlowEndMember 'to' FlowEndMember)? - FeatureTextualNotationBuilder.BuildFeatureDeclaration(poco, writerContext, stringBuilder); - FeatureTextualNotationBuilder.BuildValuePart(poco, writerContext, stringBuilder); - - // 'of' PayloadFeatureMember? — IFeatureMembership but NOT IEndFeatureMembership - if (ownedRelationshipCursor.Current is IFeatureMembership payloadMember - && ownedRelationshipCursor.Current is not IEndFeatureMembership) - { - stringBuilder.Append("of "); - FeatureMembershipTextualNotationBuilder.BuildPayloadFeatureMember(payloadMember, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - } - - // 'from' FlowEndMember 'to' FlowEndMember? - if (ownedRelationshipCursor.Current is IEndFeatureMembership firstFlowEnd) - { - stringBuilder.Append("from "); - EndFeatureMembershipTextualNotationBuilder.BuildFlowEndMember(firstFlowEnd, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - - stringBuilder.Append("to "); - - if (ownedRelationshipCursor.Current is IEndFeatureMembership secondFlowEnd) - { - EndFeatureMembershipTextualNotationBuilder.BuildFlowEndMember(secondFlowEnd, writerContext, stringBuilder); - } - - ownedRelationshipCursor.Move(); - } - } - else - { - // Alt 2: (isSufficient?='all')? FlowEndMember 'to' FlowEndMember - if (poco.IsSufficient) - { - stringBuilder.Append("all "); - } - - if (ownedRelationshipCursor.Current is IEndFeatureMembership firstFlowEnd) - { - EndFeatureMembershipTextualNotationBuilder.BuildFlowEndMember(firstFlowEnd, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - - stringBuilder.Append("to "); - - if (ownedRelationshipCursor.Current is IEndFeatureMembership secondFlowEnd) - { - EndFeatureMembershipTextualNotationBuilder.BuildFlowEndMember(secondFlowEnd, writerContext, stringBuilder); - } - - ownedRelationshipCursor.Move(); - } - } - } - } -} diff --git a/SysML2.NET/TextualNotation/SharedTextualNotationBuilder.cs b/SysML2.NET/TextualNotation/SharedTextualNotationBuilder.cs deleted file mode 100644 index 58cd71c45..000000000 --- a/SysML2.NET/TextualNotation/SharedTextualNotationBuilder.cs +++ /dev/null @@ -1,386 +0,0 @@ -// ------------------------------------------------------------------------------------------------- -// -// -// Copyright 2022-2026 Starion Group S.A. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// -// ------------------------------------------------------------------------------------------------ - -namespace SysML2.NET.TextualNotation -{ - using System; - using System.Linq; - using System.Text; - - using SysML2.NET.Core.POCO.Core.Features; - using SysML2.NET.Core.POCO.Core.Types; - using SysML2.NET.Core.POCO.Kernel.Expressions; - using SysML2.NET.Core.POCO.Kernel.Functions; - using SysML2.NET.Core.POCO.Root.Elements; - using SysML2.NET.Core.POCO.Root.Namespaces; - using SysML2.NET.Core.POCO.Systems.DefinitionAndUsage; - using SysML2.NET.Core.POCO.Systems.Metadata; - - /// - /// Hand-coded part of the . - /// Hosts the Build{Rule}HandCoded methods for shared no-target rules whose body - /// cannot be fully generated and requires a manual implementation. - /// - public static partial class SharedTextualNotationBuilder - { - /// - /// Builds the Textual Notation string for the rule FeaturePrefix. - /// FeaturePrefix = ( EndFeaturePrefix (ownedRelationship += OwnedCrossFeatureMember)? - /// | BasicFeaturePrefix ) (ownedRelationship += PrefixMetadataMember)* - /// The AutoGen caller processes the trailing (ownedRelationship += PrefixMetadataMember)* - /// loop; this HandCoded method handles the inner alternation between EndFeaturePrefix - /// (dispatching to , then - /// optionally consuming the cross-feature member from the cursor) and BasicFeaturePrefix - /// (dispatching to ). - /// - /// The from which the rule should be build - /// The used to get access to CursorCollection for the current - /// The that contains the entire textual notation - private static void BuildFeaturePrefixHandCoded(IFeature poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) - { - var ownedRelationshipCursor = writerContext.CursorCache.GetOrCreateCursor(poco.Id, "ownedRelationship", poco.OwnedRelationship); - - if (poco.IsEnd) - { - FeatureTextualNotationBuilder.BuildEndFeaturePrefix(poco, writerContext, stringBuilder); - - if (ownedRelationshipCursor.Current is IOwningMembership owningMembership - && owningMembership.OwnedRelatedElement.OfType().Any() - && !owningMembership.OwnedRelatedElement.OfType().Any()) - { - OwningMembershipTextualNotationBuilder.BuildOwnedCrossFeatureMember(owningMembership, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - } - } - else - { - FeatureTextualNotationBuilder.BuildBasicFeaturePrefix(poco, writerContext, stringBuilder); - } - } - - /// - /// Builds the Textual Notation string for the rule NonBehaviorBodyItem. - /// NonBehaviorBodyItem = - /// ownedRelationship += Import - /// | ownedRelationship += AliasMember - /// | ownedRelationship += DefinitionMember - /// | ownedRelationship += VariantUsageMember - /// | ownedRelationship += NonOccurrenceUsageMember - /// | ( ownedRelationship += SourceSuccessionMember )? - /// ownedRelationship += StructureUsageMember - /// Cursor-element dispatcher: inspects cursor.Current's runtime type and delegates - /// to the corresponding membership builder. The last alternative has an optional - /// SourceSuccessionMember prefix before the StructureUsageMember. - /// - /// The from which the rule should be build - /// The used to get access to CursorCollection for the current - /// The that contains the entire textual notation - private static void BuildNonBehaviorBodyItemHandCoded(IElement poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) - { - var ownedRelationshipCursor = writerContext.CursorCache.GetOrCreateCursor(poco.Id, "ownedRelationship", poco.OwnedRelationship); - - if (ownedRelationshipCursor.Current is IImport import) - { - ImportTextualNotationBuilder.BuildImport(import, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - } - else if (ownedRelationshipCursor.Current is IFeatureMembership featureMembership) - { - if (featureMembership.IsValidForSourceSuccessionMember(writerContext)) - { - FeatureMembershipTextualNotationBuilder.BuildSourceSuccessionMember(featureMembership, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - } - - if (ownedRelationshipCursor.Current is IFeatureMembership structureMembership - && structureMembership.IsValidForStructureUsageMember(writerContext)) - { - FeatureMembershipTextualNotationBuilder.BuildStructureUsageMember(structureMembership, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - } - else if (ownedRelationshipCursor.Current is IVariantMembership variantMembership) - { - VariantMembershipTextualNotationBuilder.BuildVariantUsageMember(variantMembership, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - } - else if (ownedRelationshipCursor.Current is IFeatureMembership nonOccurrenceMembership - && nonOccurrenceMembership.IsValidForNonOccurrenceUsageMember(writerContext)) - { - FeatureMembershipTextualNotationBuilder.BuildNonOccurrenceUsageMember(nonOccurrenceMembership, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - } - else if (ownedRelationshipCursor.Current is IOwningMembership owningMembership) - { - if (owningMembership.IsValidForNonFeatureMember(writerContext)) - { - OwningMembershipTextualNotationBuilder.BuildDefinitionMember(owningMembership, writerContext, stringBuilder); - } - else - { - MembershipTextualNotationBuilder.BuildAliasMember(owningMembership, writerContext, stringBuilder); - } - - ownedRelationshipCursor.Move(); - } - } - else if (ownedRelationshipCursor.Current is IOwningMembership owningMembership) - { - if (owningMembership.IsValidForNonFeatureMember(writerContext)) - { - OwningMembershipTextualNotationBuilder.BuildDefinitionMember(owningMembership, writerContext, stringBuilder); - } - else - { - MembershipTextualNotationBuilder.BuildAliasMember(owningMembership, writerContext, stringBuilder); - } - - ownedRelationshipCursor.Move(); - } - else if (ownedRelationshipCursor.Current is IMembership membership) - { - // AliasMember : Membership — plain Membership that is neither OwningMembership nor FeatureMembership - MembershipTextualNotationBuilder.BuildAliasMember(membership, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - } - } - - /// - /// Builds the Textual Notation string for the rule RealValue (the value of a - /// LiteralReal), which the grammar expresses as an . - /// In the unparse direction, the real numeric value is stored as a property on the - /// POCO; this method simply emits it as a string. - /// - /// The that holds the real value expression - /// The used to get access to CursorCollection for the current - /// The that contains the entire textual notation - private static void BuildRealValueHandCoded(IExpression poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) - { - if (poco is ILiteralRational literalRational) - { - stringBuilder.Append(literalRational.Value.ToString(System.Globalization.CultureInfo.InvariantCulture)); - } - } - - /// - /// Appends a body text formatted as a REGULAR_COMMENT (/* ... */). - /// The grammar defines REGULAR_COMMENT = '/*' COMMENT_TEXT '*/'. - /// During parsing, the /* and */ delimiters are stripped and each - /// line's leading * prefix is removed. This method reverses that - /// transformation for serialization. - /// - /// The to append to - /// The body text to format as a REGULAR_COMMENT - internal static void AppendRegularComment(StringBuilder stringBuilder, string body) - { - if (string.IsNullOrWhiteSpace(body)) - { - stringBuilder.AppendLine("/* */"); - return; - } - - var lines = body.Split('\n'); - - if (lines.Length == 1) - { - stringBuilder.Append("/* "); - stringBuilder.Append(lines[0].TrimEnd('\r')); - stringBuilder.AppendLine(" */"); - return; - } - - stringBuilder.AppendLine("/*"); - - foreach (var rawLine in lines.Where(l => !string.IsNullOrWhiteSpace(l))) - { - var line = rawLine.TrimEnd('\r'); - stringBuilder.Append(" * "); - stringBuilder.AppendLine(line); - } - - stringBuilder.AppendLine(" */"); - stringBuilder.AppendLine(); - } - - /// - /// Appends the shortest resolvable name of the for the textual notation, - /// per KerML specification section 8.2.3.5. - /// When the carries a non-null - /// , the method walks up the - /// namespace chain to find whether the element's simple name resolves via imports - /// (per 8.2.3.5.4 Full Resolution). If so, the simple name is used; otherwise the full - /// qualifiedName is emitted. - /// - /// The to append to - /// The that needs to have its name appended - /// The providing the serialization context - internal static void AppendQualifiedName(StringBuilder stringBuilder, IElement poco, TextualNotationWriterContext writerContext) - { - if (poco is IMembership membership) - { - // Membership references (used in import declarations) must retain - // their full qualified name — the path identifies WHAT is being imported. - stringBuilder.Append(membership.MemberElement.qualifiedName); - } - else - { - // Element references (used in type/feature references) can be shortened - // when the element is resolvable by its simple name via imports (8.2.3.5). - stringBuilder.Append(QueryShortestResolvableName(poco, writerContext?.ContextNamespace)); - } - } - - /// - /// Determines the shortest name that will resolve to the given - /// per the KerML name resolution rules (8.2.3.5). - /// Per 8.2.3.5.4, full resolution walks up from the local namespace through - /// containing namespaces to the global namespace. If the element's simple name resolves - /// via the membership (which includes imported memberships) of any namespace in - /// that chain, the simple name is sufficient. - /// - /// The referenced to resolve - /// - /// The root being serialized, or null to fall back to the full qualified name - /// - /// The shortest name that resolves to the element - private static string QueryShortestResolvableName(IElement element, INamespace contextNamespace) - { - if (element == null) - { - return string.Empty; - } - - var simpleName = element.EscapedName(); - - if (!string.IsNullOrWhiteSpace(simpleName) && contextNamespace != null) - { - // Per 8.2.3.5.4, full resolution walks up from the local namespace through - // containing namespaces. The contextNamespace is the root namespace being - // serialized; imports that make the simple name resolvable may be on any - // descendant namespace (e.g. a LibraryPackage nested inside the root). - // We check the context namespace and all its descendant namespaces. - if (QueryIsResolvableInNamespaceTree(contextNamespace, element, simpleName)) - { - return simpleName; - } - } - - return element.qualifiedName ?? string.Empty; - } - - /// - /// Recursively checks whether the given is resolvable by its - /// within the or any of its - /// descendant namespaces (per 8.2.3.5.4 full resolution, which walks up from the local - /// namespace — checking descendants ensures we cover all import scopes in the output model). - /// - /// The namespace to check (including descendants) - /// The element to find - /// The simple name to match - /// true if the element is found by simple name in the namespace tree - private static bool QueryIsResolvableInNamespaceTree(INamespace @namespace, IElement element, string simpleName) - { - try - { - if (QueryIsResolvableBySimpleName(@namespace, element, simpleName)) - { - return true; - } - } - catch (NotSupportedException) - { - // membership may not be fully implemented for this namespace - } - - try - { - foreach (var childNamespace in @namespace.ownedMember.OfType()) - { - if (QueryIsResolvableInNamespaceTree(childNamespace, element, simpleName)) - { - return true; - } - } - } - catch (NotSupportedException) - { - // ownedMember may not be fully implemented for this namespace - } - - return false; - } - - /// - /// Checks whether the given is resolvable by its - /// within the 's - /// memberships (owned, imported, and inherited). - /// - /// The namespace to check - /// The element to find - /// The simple name to match - /// true if the element is found by simple name in the namespace - private static bool QueryIsResolvableBySimpleName(INamespace @namespace, IElement element, string simpleName) - { - // Check ownedMembership first (non-derived, always available) - foreach (var ownedMember in @namespace.ownedMembership) - { - if (ownedMember is IOwningMembership owningMembership - && owningMembership.OwnedRelatedElement.Contains(element)) - { - return true; - } - - if (ownedMember.MemberElement == element) - { - return true; - } - } - - // Check imports: walk ownedImport (ownedRelationship filtered to IImport) to find - // MembershipImports that reference the element directly by its membership. - foreach (var import in @namespace.ownedImport) - { - if (import is IMembershipImport membershipImport - && membershipImport.ImportedMembership is IMembership importedMembership - && importedMembership.MemberElement == element) - { - return true; - } - - if (import is INamespaceImport namespaceImport) - { - var importedNs = namespaceImport.ImportedNamespace; - - if (importedNs != null) - { - foreach (var visibleMember in importedNs.ownedMembership) - { - if (visibleMember.MemberElement == element) - { - return true; - } - } - } - } - } - - return false; - } - } -} diff --git a/SysML2.NET/TextualNotation/SuccessionFlowTextualNotationBuilder.cs b/SysML2.NET/TextualNotation/SuccessionFlowTextualNotationBuilder.cs deleted file mode 100644 index 941a10682..000000000 --- a/SysML2.NET/TextualNotation/SuccessionFlowTextualNotationBuilder.cs +++ /dev/null @@ -1,115 +0,0 @@ -// ------------------------------------------------------------------------------------------------- -// -// -// Copyright 2022-2026 Starion Group S.A. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// -// ------------------------------------------------------------------------------------------------ - -namespace SysML2.NET.TextualNotation -{ - using System.Text; - - using SysML2.NET.Core.POCO.Core.Features; - using SysML2.NET.Core.POCO.Core.Types; - using SysML2.NET.Core.POCO.Kernel.Interactions; - - /// - /// Hand-coded part of the - /// - public static partial class SuccessionFlowTextualNotationBuilder - { - /// - /// Builds the Textual Notation string for the rule FlowDeclaration - /// - /// The from which the rule should be build - /// The used to get access to CursorCollection for the current - /// The that contains the entire textual notation - /// - /// FlowDeclaration : Flow = - /// FeatureDeclaration ValuePart? - /// ( 'of' ownedRelationship += PayloadFeatureMember )? - /// ( 'from' ownedRelationship += FlowEndMember 'to' ownedRelationship += FlowEndMember )? - /// | ( isSufficient ?= 'all' )? - /// ownedRelationship += FlowEndMember 'to' ownedRelationship += FlowEndMember - /// - /// Auto-gen emits FeaturePrefix + 'succession flow ' before and TypeBody after. - /// Same grammar as Flow's FlowDeclaration; ISuccessionFlow extends IFlow. - /// - private static void BuildFlowDeclarationHandCoded(ISuccessionFlow poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) - { - var ownedRelationshipCursor = writerContext.CursorCache.GetOrCreateCursor(poco.Id, "ownedRelationship", poco.OwnedRelationship); - - var hasDeclaration = !string.IsNullOrWhiteSpace(poco.DeclaredShortName) - || !string.IsNullOrWhiteSpace(poco.DeclaredName); - - if (hasDeclaration || ownedRelationshipCursor.Current is not IEndFeatureMembership) - { - // Alt 1: FeatureDeclaration ValuePart? ('of' PayloadFeatureMember)? ('from' FlowEndMember 'to' FlowEndMember)? - FeatureTextualNotationBuilder.BuildFeatureDeclaration(poco, writerContext, stringBuilder); - FeatureTextualNotationBuilder.BuildValuePart(poco, writerContext, stringBuilder); - - // 'of' PayloadFeatureMember? — IFeatureMembership but NOT IEndFeatureMembership - if (ownedRelationshipCursor.Current is IFeatureMembership payloadMember - && ownedRelationshipCursor.Current is not IEndFeatureMembership) - { - stringBuilder.Append("of "); - FeatureMembershipTextualNotationBuilder.BuildPayloadFeatureMember(payloadMember, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - } - - // 'from' FlowEndMember 'to' FlowEndMember? - if (ownedRelationshipCursor.Current is IEndFeatureMembership firstFlowEnd) - { - stringBuilder.Append("from "); - EndFeatureMembershipTextualNotationBuilder.BuildFlowEndMember(firstFlowEnd, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - - stringBuilder.Append("to "); - - if (ownedRelationshipCursor.Current is IEndFeatureMembership secondFlowEnd) - { - EndFeatureMembershipTextualNotationBuilder.BuildFlowEndMember(secondFlowEnd, writerContext, stringBuilder); - } - - ownedRelationshipCursor.Move(); - } - } - else - { - // Alt 2: (isSufficient?='all')? FlowEndMember 'to' FlowEndMember - if (poco.IsSufficient) - { - stringBuilder.Append("all "); - } - - if (ownedRelationshipCursor.Current is IEndFeatureMembership firstFlowEnd) - { - EndFeatureMembershipTextualNotationBuilder.BuildFlowEndMember(firstFlowEnd, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - - stringBuilder.Append("to "); - - if (ownedRelationshipCursor.Current is IEndFeatureMembership secondFlowEnd) - { - EndFeatureMembershipTextualNotationBuilder.BuildFlowEndMember(secondFlowEnd, writerContext, stringBuilder); - } - - ownedRelationshipCursor.Move(); - } - } - } - } -} diff --git a/SysML2.NET/TextualNotation/SuccessionTextualNotationBuilder.cs b/SysML2.NET/TextualNotation/SuccessionTextualNotationBuilder.cs deleted file mode 100644 index 995ffa39e..000000000 --- a/SysML2.NET/TextualNotation/SuccessionTextualNotationBuilder.cs +++ /dev/null @@ -1,103 +0,0 @@ -// ------------------------------------------------------------------------------------------------- -// -// -// Copyright 2022-2026 Starion Group S.A. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// -// ------------------------------------------------------------------------------------------------ - -namespace SysML2.NET.TextualNotation -{ - using System.Text; - - using SysML2.NET.Core.POCO.Core.Features; - using SysML2.NET.Core.POCO.Core.Types; - using SysML2.NET.Core.POCO.Kernel.Connectors; - - /// - /// Hand-coded part of the - /// - public static partial class SuccessionTextualNotationBuilder - { - /// - /// Builds the Textual Notation string for the rule SuccessionDeclaration - /// - /// The from which the rule should be build - /// The used to get access to CursorCollection for the current - /// The that contains the entire textual notation - /// - /// SuccessionDeclaration : Succession = - /// FeatureDeclaration ( 'first' ownedRelationship += ConnectorEndMember 'then' ownedRelationship += ConnectorEndMember )? - /// | ( isSufficient ?= 'all' )? ( 'first'? ownedRelationship += ConnectorEndMember 'then' ownedRelationship += ConnectorEndMember )? - /// - /// Auto-gen delegates entirely to this method. - /// - private static void BuildSuccessionDeclarationHandCoded(ISuccession poco, TextualNotationWriterContext writerContext, StringBuilder stringBuilder) - { - var ownedRelationshipCursor = writerContext.CursorCache.GetOrCreateCursor(poco.Id, "ownedRelationship", poco.OwnedRelationship); - - var hasDeclaration = !string.IsNullOrWhiteSpace(poco.DeclaredShortName) - || !string.IsNullOrWhiteSpace(poco.DeclaredName) - || ownedRelationshipCursor.Current is ISpecialization - || ownedRelationshipCursor.Current is IConjugation; - - if (hasDeclaration) - { - // Alt 1: FeatureDeclaration ('first' ConnectorEndMember 'then' ConnectorEndMember)? - FeatureTextualNotationBuilder.BuildFeatureDeclaration(poco, writerContext, stringBuilder); - - if (ownedRelationshipCursor.Current is IEndFeatureMembership firstEnd) - { - stringBuilder.Append("first "); - EndFeatureMembershipTextualNotationBuilder.BuildConnectorEndMember(firstEnd, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - - stringBuilder.Append("then "); - - if (ownedRelationshipCursor.Current is IEndFeatureMembership secondEnd) - { - EndFeatureMembershipTextualNotationBuilder.BuildConnectorEndMember(secondEnd, writerContext, stringBuilder); - } - - ownedRelationshipCursor.Move(); - } - } - else - { - // Alt 2: (isSufficient?='all')? ('first'? ConnectorEndMember 'then' ConnectorEndMember)? - if (poco.IsSufficient) - { - stringBuilder.Append("all "); - } - - if (ownedRelationshipCursor.Current is IEndFeatureMembership firstEnd) - { - stringBuilder.Append("first "); - EndFeatureMembershipTextualNotationBuilder.BuildConnectorEndMember(firstEnd, writerContext, stringBuilder); - ownedRelationshipCursor.Move(); - - stringBuilder.Append("then "); - - if (ownedRelationshipCursor.Current is IEndFeatureMembership secondEnd) - { - EndFeatureMembershipTextualNotationBuilder.BuildConnectorEndMember(secondEnd, writerContext, stringBuilder); - } - - ownedRelationshipCursor.Move(); - } - } - } - } -}