diff --git a/.claude/agents/textual-notation-reviewer.md b/.claude/agents/textual-notation-reviewer.md index 391793d6..07b28984 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 72bcc74e..7f4b4880 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 f537b99a..d7915ca2 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 b789115f..26d35314 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 00000000..9f34bbb4 --- /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 e41972e0..d213272f 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 3fbee3d4..719c6e7c 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 a3f1ee51..35402f27 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 00000000..b96111b4 --- /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 02b6a7e1..0b2a3ccb 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 00000000..a5022973 --- /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 0fc3bd7d..ae0d920a 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 fe00f0c8..697b63a3 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 44210b82..77c545b3 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 35f6768d..932bacf7 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 97496a28..5b58df71 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 87b6c5ef..fab7d981 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 d8875297..8d343374 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 f7f51604..ea26e27c 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 cca0148f..0276da84 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 cf3516ec..9e74257c 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 7bc13044..7fda2739 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 bf7ab3fc..c01b6e7d 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 1a0c8fed..7b1c271e 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 3ba0de37..f9097ef9 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 eb55028d..ffd69633 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 17a700c1..cd1f4967 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 70088dde..d632216b 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 e372a970..6b4696b5 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 581ee3de..17b487f7 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 dd8c5919..1defbad4 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 20dbc004..dce55b1d 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 fd596db7..387335cd 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 2b6b2271..591681b1 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 2d1d2284..0138c4ed 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 aef2e154..08c5f8bd 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 a7ca59eb..971af20f 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 7bba5ee2..b4e28292 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 97a51b6a..1a006248 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 8d2b2944..61ee4456 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 f5e88675..9d426faa 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 6d43d7cb..25e2afc0 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 6828fffb..c5465d4c 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 587107aa..0b40b440 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 f3c0e35a..6c1511bc 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 4f16675a..4cc9d754 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 42e69d45..442525d5 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 01c55132..ef2f0e89 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 2e0cb7c7..8d201a57 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 33ff60f5..3c14615e 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 bca77d98..63b753bf 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 c180c132..43132ff5 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 6b6baa39..b4838edf 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 7ae57f3d..b8ded3ef 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 1495e654..f2707fb5 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 afe831e0..07bfd004 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 296dbf02..6155766b 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 3e193a5d..ff90c2c9 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 8f0aabb0..3157fa16 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 56387623..c81bc77a 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 c04c458e..98f8d459 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 992fdaf1..47784cee 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 e997fe75..43373cfd 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 63c035ff..c4165f53 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 c5bac8c0..a30f5ac4 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 7c196508..6ce4c793 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 673ae9df..f585aedc 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 0b60d64f..59c044fb 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 e0a09532..0b72aaee 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 3de796be..579caa9e 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 0e250e3b..57a320dd 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 049e29fb..cf22f561 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 a2e1c908..1e06b06b 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 7f3fe037..ff088b8e 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 63791202..a4d8c155 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 7ff18af7..66bc3394 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 62899192..8028335d 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 9c647607..48298831 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 6c985beb..3030b6e6 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 d38d7f76..5bb6bd99 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 ff3af172..58d9b6fc 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 b6ebbe5f..86284460 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 ea65f80f..8ef714f3 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 1d929fea..935e949d 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 11802203..bf5e1391 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 b3f07374..8ba94383 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 9e2fcc13..adc601d5 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 4c881419..7b60385f 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 ffbe1e9a..4645d12e 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 3a9a5935..c9b50030 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 46c06b98..f3212d2b 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 96de3855..277a3880 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 d7f74ae9..74b66b18 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 b3ed7c8e..d69eae02 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 595bccf6..b6cb5d3c 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 da417a29..d1f9e6ca 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 9cabba92..c01cc770 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 05671cec..684f9d93 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 66fa28d9..45c22577 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 47763bd5..fc3d4f1c 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 929bd34f..51b9f178 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 351c116e..afd4a5b2 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 132e9e4c..007e15fd 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 a9860ee4..20a73450 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 49641ae9..6b2557e3 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 6b4412dd..f1afb22d 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 cf20daf6..755bcc04 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 03c2353a..de5c1314 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 9466bd65..bb5c89d5 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 b699ab34..efaa2cca 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 d5583ece..b94bceaf 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 f53db072..ef839361 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 00c99f66..173b315e 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 5e84c38e..e2b7121f 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 d6f21ca6..8d81376a 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 322536b2..fab6b162 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 cc0e59d7..de860951 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 b83552c6..27bb53fe 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 53f1760e..2f747812 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 b31909de..26384460 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 6c5fc415..fe272ead 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 d6ca9442..9086ae7c 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 13ac5eac..c7b7d0ec 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 b0a01b5e..7a8e803e 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 a5791cec..1da74140 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 178e8bfa..c014ee95 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 a0a4176d..ccf74fa1 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 42a31de9..28635de5 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 b500f7b7..e43deac6 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 f490aff3..44412987 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 279ee440..6faf3922 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 e34be6cc..5dd787f0 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 a19270a4..aea841ed 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 f6ca1cd0..8ee0a314 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 a3bdae94..7041f137 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 6092dd1a..12ecb5d9 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 22df568f..638ee0cc 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 0a6186bb..b36fa6ba 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 ee458b41..fdcfe8d3 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 e58ddac1..21628c92 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 1e4266c1..214b1d60 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 7ce89411..c28b6a90 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 22b858eb..93167d7f 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 2605212e..17e0d499 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 1138a155..9907a628 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 431fc3ea..59ff02d2 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 69fb737c..16b7729f 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 b6dd7167..fdca3e7c 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 da5344b7..3feb425b 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 d972f7b8..a71bbc3c 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 3b52d656..af11f0f7 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 56268bf5..2ba68d1d 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 75bfe776..d3c9e553 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 8479f6a2..c96097bc 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 7ee0a606..c74f4c6b 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 09e01d7f..9c0aadd3 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 327beca1..aa22152a 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 ddc24764..4234b47f 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 e74d1c13..26effceb 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 720b1c62..ec811230 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 6358d647..7c5e12cb 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 b77adde6..3065fc00 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 7f8e8b10..efb9d268 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 6875be38..b254d3a4 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 11c6eba3..7ec320b2 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 451c7624..7b7d83f7 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 196bda96..09e476c0 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 63597523..446e2d0a 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 c5144d56..5859047f 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 dc1b7e1a..c1fc35b6 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 d75d5094..5cb80b2d 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 df801ef6..fdf745ff 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 66ea2a16..cb889fd7 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 4658a598..dd740b35 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 b9652d97..d9ab679b 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 9717c075..cc64c3eb 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 0df296f0..2e4eddc3 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 692da479..1fde1fab 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 228ec42a..e33daa2c 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 3a8bb9ef..743f8ba2 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 caff9eb8..5b398ebf 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 5b181992..26ceed31 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 f3e446ca..21d34c59 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 818e1c9c..993a3228 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 b94e1b0b..d79e2507 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 120aeca7..2a1c62fb 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 7fa5fdc8..076c78f6 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 00000000..1f4f30cf --- /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 d67ffc7f..1cb90989 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 098c44e4..4f214bf9 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 51d2e681..3c8ef5cb 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 aeeb356d..49626d0d 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 1e997906..48240a04 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 8a23044e..fdf1534e 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 64f4e647..8118e7fa 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 e775ab1e..611288ed 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 b2fa8f22..3c81b847 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 69708291..550a6373 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 0bf515d2..a36cb3ba 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 6415d197..859728f1 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 f3c5cad2..fa786d97 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 00000000..e06bf051 --- /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 23c37b31..21558577 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 2d9d021d..4de20210 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 702dd6fc..7ea811c1 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 13e11526..23962ab9 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 a5ed0717..df147f77 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 4e9e1566..d7f51c17 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 b908e0de..f15d2af4 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 0e66dd55..28ddf5c8 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 212fd0b6..19003b73 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 d2157ba2..0c1c2b05 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 21363ba2..29b37e6e 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 46d781e1..cc2d2068 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 f5c52870..8a27bd96 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 71ee3fff..51ea1e7b 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 5ad3f85f..6f07956b 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 00000000..ce599d39 --- /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 00000000..2e5a85ec --- /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 00000000..2e9572c4 --- /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 0509766b..768e2eed 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 93345305..caf35af0 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 b0b4f0c6..05230517 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 7b001235..6bcc2700 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 f82c4be4..37c0f358 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 7c376a98..eafa3648 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 d54c4c92..da9f0b79 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 ae1b2d87..00000000 --- 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 495b3dce..00000000 --- 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 58cd71c4..00000000 --- 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 941a1068..00000000 --- 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 995ffa39..00000000 --- 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(); - } - } - } - } -}