diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml
index fbccce399..537e2c097 100644
--- a/.github/workflows/dev.yml
+++ b/.github/workflows/dev.yml
@@ -29,7 +29,7 @@ jobs:
- name: "Run build script"
env:
GH_TOKEN : ${{ secrets.GH_TOKEN }}
- run: dotnet run --project cake/Build.csproj --do-test true --do-pack true --test-level 2 --do-publish true
+ run: dotnet run --project cake/Build.csproj --do-test true --do-pack true --test-level 2 --do-publish true --framework net9.0
- name: Test Report
uses: dorny/test-reporter@v1
if: success() || failure()
diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml
index 7f2e40b7a..09b489d75 100644
--- a/.github/workflows/master.yml
+++ b/.github/workflows/master.yml
@@ -35,7 +35,7 @@ jobs:
- name: "Run build script"
env:
GH_TOKEN : ${{ secrets.GH_TOKEN }}
- run: dotnet run --project cake/Build.csproj --do-test true --do-pack true --test-level 100 --do-publish true --do-publish-release true
+ run: dotnet run --project cake/Build.csproj --do-test true --do-pack true --test-level 100 --do-publish true --do-publish-release true --framework net9.0
- name: Test Report
uses: dorny/test-reporter@v1
if: success() || failure()
diff --git a/.github/workflows/pr-dev.yml b/.github/workflows/pr-dev.yml
index 6d27cfdf2..dd6a6f0e9 100644
--- a/.github/workflows/pr-dev.yml
+++ b/.github/workflows/pr-dev.yml
@@ -27,7 +27,7 @@ jobs:
run: dotnet build cake/Build.csproj
- name: "Run build script"
- run: dotnet run --project cake/Build.csproj --do-test true --do-pack true --test-level 1
+ run: dotnet run --project cake/Build.csproj --do-test true --do-pack true --test-level 1 --framework net9.0
- name: Test Report
uses: dorny/test-reporter@v1
if: success() || failure()
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index be0bb2579..934fb960a 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -35,7 +35,7 @@ jobs:
- name: "Run build script"
env:
GH_TOKEN : ${{ secrets.GH_TOKEN }}
- run: dotnet run --project cake/Build.csproj --do-test true --do-pack true --test-level 2 --do-publish true --do-publish-release true
+ run: dotnet run --project cake/Build.csproj --do-test true --do-pack true --test-level 2 --do-publish true --do-publish-release true --framework net9.0
- name: Test Report
uses: dorny/test-reporter@v1
if: success() || failure()
diff --git a/src/Directory.Build.props b/Directory.Build.props
similarity index 88%
rename from src/Directory.Build.props
rename to Directory.Build.props
index 4e39d4470..4fd88b7c4 100644
--- a/src/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,6 +1,6 @@
- net8.0
+ net9.0
diff --git a/src/Directory.Packages.props b/Directory.Packages.props
similarity index 56%
rename from src/Directory.Packages.props
rename to Directory.Packages.props
index 8d02745ed..2ea35cf5a 100644
--- a/src/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -5,58 +5,59 @@
true
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
-
+
-
-
-
-
-
-
-
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/GitVersion.yml b/GitVersion.yml
index 34fa3d313..2334d94b7 100644
--- a/GitVersion.yml
+++ b/GitVersion.yml
@@ -1,117 +1,54 @@
-assembly-versioning-scheme: MajorMinorPatch
-assembly-file-versioning-scheme: MajorMinorPatch
-next-version: 0.19.3
-tag-prefix: '[vV]?'
-version-in-branch-pattern: (?[vV]?\d+(\.\d+)?(\.\d+)?).*
-major-version-bump-message: \+semver:\s?(breaking|major)
-minor-version-bump-message: \+semver:\s?(feature|minor)
-patch-version-bump-message: \+semver:\s?(fix|patch)
-no-bump-message: \+semver:\s?(none|skip)
-tag-pre-release-weight: 60000
-commit-date-format: yyyy-MM-dd
-merge-message-formats: {}
-update-build-number: true
-semantic-version-format: Strict
-strategies:
-- Fallback
-- ConfiguredNextVersion
-- MergeMessage
-- TaggedCommit
-- TrackReleaseBranches
-- VersionInBranchName
+mode: ContinuousDeployment
+next-version: 0.20.0
branches:
main:
- label: ''
+ regex: ^master$|^main$
+ mode: ContinuousDelivery
+ tag: ''
increment: Patch
- prevent-increment:
- of-merged-branch: true
+ prevent-increment-of-merged-branch-version: true
track-merge-target: false
- track-merge-message: true
- regex: ^master$|^main$
- source-branches: []
- is-source-branch-for: []
+ source-branches: [ 'develop', 'release' ]
tracks-release-branches: false
is-release-branch: false
- is-main-branch: true
+ is-mainline: true
pre-release-weight: 55000
+ develop:
+ regex: ^dev(elop)?(ment)?$
+ mode: ContinuousDeployment
+ tag: alpha
+ increment: Minor
+ prevent-increment-of-merged-branch-version: false
+ track-merge-target: true
+ source-branches: []
+ tracks-release-branches: true
+ is-release-branch: false
+ is-mainline: false
+ pre-release-weight: 0
release:
- mode: ManualDeployment
- label: beta
- increment: Patch
- prevent-increment:
- of-merged-branch: true
- when-branch-merged: false
- when-current-commit-tagged: false
+ regex: ^releases?[/-]
+ mode: ContinuousDeployment
+ tag: preview
+ increment: None
+ prevent-increment-of-merged-branch-version: true
track-merge-target: false
- track-merge-message: true
- regex: ^releases?[/-](?.+)
- source-branches:
- - main
- is-source-branch-for: []
+ source-branches: [ 'develop', 'main', 'support', 'release' ]
tracks-release-branches: false
is-release-branch: true
- is-main-branch: false
- pre-release-weight: 30000
- feature:
- mode: ManualDeployment
- label: '{BranchName}'
- increment: Inherit
- prevent-increment:
- when-current-commit-tagged: false
- track-merge-message: true
- regex: ^features?[/-](?.+)
- source-branches:
- - main
- - release
- is-source-branch-for: []
- is-main-branch: false
- pre-release-weight: 30000
- pull-request:
+ is-mainline: false
+ pre-release-weight: 30000
+ support:
+ regex: ^support[/-]
mode: ContinuousDelivery
- label: PullRequest
- increment: Inherit
- prevent-increment:
- of-merged-branch: true
- when-current-commit-tagged: false
- label-number-pattern: '[/-](?\d+)'
- track-merge-message: true
- regex: ^(pull|pull\-requests|pr)[/-]
- source-branches:
- - main
- - release
- - feature
- is-source-branch-for: []
- pre-release-weight: 30000
- unknown:
- mode: ManualDeployment
- label: '{BranchName}'
- increment: Inherit
- prevent-increment:
- when-current-commit-tagged: false
- track-merge-message: false
- regex: (?.+)
- source-branches:
- - main
- - release
- - feature
- - pull-request
- is-source-branch-for: []
- is-main-branch: false
+ tag: ''
+ increment: Patch
+ prevent-increment-of-merged-branch-version: true
+ track-merge-target: false
+ source-branches: [ 'main' ]
+ tracks-release-branches: false
+ is-release-branch: false
+ is-mainline: true
+ pre-release-weight: 55000
ignore:
sha: []
-mode: ContinuousDelivery
-label: '{BranchName}'
-increment: Inherit
-prevent-increment:
- of-merged-branch: false
- when-branch-merged: false
- when-current-commit-tagged: true
-track-merge-target: false
-track-merge-message: true
-commit-message-incrementing: Enabled
-regex: ''
-source-branches: []
-is-source-branch-for: []
-tracks-release-branches: false
-is-release-branch: false
-is-main-branch: false
\ No newline at end of file
+merge-message-formats: {}
diff --git a/build.ps1 b/build.ps1
index 2dcbcf732..e8df803e9 100644
--- a/build.ps1
+++ b/build.ps1
@@ -1,3 +1,3 @@
# run build
-dotnet run --project cake/Build.csproj -- $args
-exit $LASTEXITCODE;
\ No newline at end of file
+dotnet run --project cake/Build.csproj --framework net9.0 -- $args
+exit $LASTEXITCODE;vm43001Jetpow3r
\ No newline at end of file
diff --git a/cake/Build.csproj b/cake/Build.csproj
index 0de3fe35e..0340c6cce 100644
--- a/cake/Build.csproj
+++ b/cake/Build.csproj
@@ -1,25 +1,22 @@
- Exe
- net8.0
+ Exe
$(MSBuildProjectDirectory)
false
-
-
-
-
-
-
-
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
+
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/cake/BuildContext.cs b/cake/BuildContext.cs
index 606b11574..b084a802f 100644
--- a/cake/BuildContext.cs
+++ b/cake/BuildContext.cs
@@ -18,7 +18,6 @@
using Cake.Common.Tools.DotNet.Restore;
using Cake.Common.Tools.DotNet.Run;
using Cake.Common.Tools.DotNet.Test;
-using Cake.Common.Tools.DotNetCore.MSBuild;
using Cake.Core;
using Cake.Core.Diagnostics;
using Cake.Core.IO;
@@ -85,7 +84,7 @@ public BuildContext(ICakeContext context, BuildParameters buildParameters)
DotNetRunSettings = new DotNetRunSettings()
{
Verbosity = buildParameters.Verbosity,
- Framework = "net8.0",
+ Framework = "net9.0",
Configuration = buildParameters.Configuration,
NoBuild = true,
NoRestore = true,
@@ -115,7 +114,7 @@ public void UploadTestPlc(string workingDirectory, string targetIp,
this.ProcessRunner.Start(Helpers.GetApaxCommand(), new ProcessSettings()
{
- Arguments = " apax build",
+ Arguments = " build",
WorkingDirectory = workingDirectory,
RedirectStandardOutput = false,
RedirectStandardError = false,
@@ -128,12 +127,22 @@ public void UploadTestPlc(string workingDirectory, string targetIp,
this.ProcessRunner.Start(Helpers.GetApaxCommand(), new ProcessSettings()
{
- Arguments =
- $" sld -t {targetIp} -i {targetPlatform} --accept-security-disclaimer --default-server-interface -r",
+ Arguments = " download",
WorkingDirectory = workingDirectory,
RedirectStandardOutput = false,
- RedirectStandardError = false
+ RedirectStandardError = false,
+ RedirectedStandardOutputHandler = (a) => string.Join(System.Environment.NewLine, a),
+ Silent = false
}).WaitForExit();
+
+ // this.ProcessRunner.Start(Helpers.GetApaxCommand(), new ProcessSettings()
+ // {
+ // Arguments =
+ // $" sld -t {targetIp} -i {targetPlatform} --accept-security-disclaimer --default-server-interface -r",
+ // WorkingDirectory = workingDirectory,
+ // RedirectStandardOutput = false,
+ // RedirectStandardError = false
+ // }).WaitForExit();
}
public void RunTestsFromFilteredSolution(string filteredSolutionFile)
@@ -169,7 +178,7 @@ public void PushNugetPackages(string artifactDirectory)
}
}
- public IEnumerable TargetFrameworks { get; } = new List() { "net8.0" };
+ public IEnumerable TargetFrameworks { get; } = new List() { "net9.0" };
public IEnumerable<(string ax, string approject, string solution)> GetTemplateProjects()
{
diff --git a/cake/Program.cs b/cake/Program.cs
index 9681e9ee8..11d4aed74 100644
--- a/cake/Program.cs
+++ b/cake/Program.cs
@@ -160,31 +160,29 @@ public override void Run(BuildContext context)
}
- if (context.BuildParameters.TestLevel == 1)
+ if (context.BuildParameters.TestLevel >= 1)
{
context.RunTestsFromFilteredSolution(Path.Combine(context.ScrDir, "AXSharp-L1-tests.slnf"));
}
- else if (context.BuildParameters.TestLevel == 2)
+ if (context.BuildParameters.TestLevel >= 2)
{
context.RunTestsFromFilteredSolution(Path.Combine(context.ScrDir, "AXSharp-L2-tests.slnf"));
}
- else if (context.BuildParameters.TestLevel == 3)
- {
- context.RunTestsFromFilteredSolution(Path.Combine(context.ScrDir, "AXSharp-L3-tests.slnf"));
- }
- else
+ if (context.BuildParameters.TestLevel >= 3)
{
context.UploadTestPlc(
Path.GetFullPath(Path.Combine(context.WorkDirName, "..//..//src//AXSharp.connectors//tests//ax-test-project//")),
- Environment.GetEnvironmentVariable("AX_WEBAPI_TARGET"),
+ Environment.GetEnvironmentVariable("AXTARGET"),
Environment.GetEnvironmentVariable("AXTARGETPLATFORMINPUT"));
-
+
+ context.RunTestsFromFilteredSolution(Path.Combine(context.ScrDir, "AXSharp-L3-tests_WebApi.slnf"));
+
context.UploadTestPlc(
Path.GetFullPath(Path.Combine(context.WorkDirName, "..//..//src//tests.integrations//integrated//src//ax")),
Environment.GetEnvironmentVariable("AXTARGET"),
Environment.GetEnvironmentVariable("AXTARGETPLATFORMINPUT"));
-
- context.RunTestsFromFilteredSolution(Path.Combine(context.ScrDir, "AXSharp-L3-tests.slnf"));
+
+ context.RunTestsFromFilteredSolution(Path.Combine(context.ScrDir, "AXSharp-L3-tests_Integration.slnf"));
}
diff --git a/global.json b/global.json
index 062f5fef3..6f0362aa9 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"sdk": {
- "version": "8.0.100"
+ "version": "9.0.100"
}
}
\ No newline at end of file
diff --git a/src/AXSharp-L3-tests.slnf b/src/AXSharp-L3-tests.slnf
deleted file mode 100644
index 26fc668f9..000000000
--- a/src/AXSharp-L3-tests.slnf
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "solution": {
- "path": "AXSharp.sln",
- "projects": [
- "AXSharp.abstractions\\src\\AXSharp.Abstractions\\AXSharp.Abstractions.csproj",
- "AXSharp.blazor\\src\\AXSharp.Presentation.Blazor.Controls\\AXSharp.Presentation.Blazor.Controls.csproj",
- "AXSharp.blazor\\src\\AXSharp.Presentation.Blazor\\AXSharp.Presentation.Blazor.csproj",
- "AXSharp.blazor\\tests\\sandbox\\AXSharp.RenderableContent.Tests\\AXSharp.RenderableContent.Tests.csproj",
- "AXSharp.blazor\\tests\\sandbox\\ComponentsExamples\\ComponentsExamples.csproj",
- "AXSharp.blazor\\tests\\sandbox\\IxBlazor.App\\IxBlazor.App.csproj",
- "AXSharp.blazor\\tests\\sandbox\\ax-blazor-example\\ix\\ax_blazor_example.csproj",
- "AXSharp.compiler\\src\\AXSharp.Compiler.Abstractions\\AXSharp.Compiler.Abstractions.csproj",
- "AXSharp.compiler\\src\\AXSharp.Compiler\\AXSharp.Compiler.csproj",
- "AXSharp.compiler\\src\\AXSharp.Cs.Compiler\\AXSharp.Compiler.Cs.csproj",
- "AXSharp.compiler\\src\\ixc\\AXSharp.ixc.csproj",
- "AXSharp.compiler\\src\\ixd\\AXSharp.ixd.csproj",
- "AXSharp.compiler\\src\\ixr\\AXSharp.ixr.csproj",
- "AXSharp.compiler\\tests\\AXSharp.Compiler.CsTests\\AXSharp.Compiler.CsTests.csproj",
- "AXSharp.compiler\\tests\\AXSharp.CompilerTests\\AXSharp.CompilerTests.csproj",
- "AXSharp.compiler\\tests\\AXSharp.ixc.Tests\\AXSharp.ixc.Tests.csproj",
- "AXSharp.compiler\\tests\\AXSharp.ixr.Tests\\AXSharp.ixr.Tests.csproj",
- "AXSharp.connectors\\src\\AXSharp.Connector.S71500.WebAPI\\AXSharp.Connector.S71500.WebAPI.csproj",
- "AXSharp.connectors\\src\\AXSharp.Connector\\AXSharp.Connector.csproj",
- "AXSharp.connectors\\src\\AXSharp.TIA.Connector\\AXSharp.TIA2AXSharp.csproj",
- "AXSharp.connectors\\tests\\AXSharp.Connector.Sax.WebAPITests\\AXSharp.Connector.S71500.WebAPITests.csproj",
- "AXSharp.connectors\\tests\\AXSharp.ConnectorLegacyTests\\AXSharp.ConnectorLegacyTests.csproj",
- "AXSharp.connectors\\tests\\AXSharp.ConnectorTests\\AXSharp.ConnectorTests\\AXSharp.ConnectorTests.csproj",
- "AXSharp.connectors\\tests\\AXSharp.TIA.ConnectorTests\\AXSharp.TIA2AXSharpTests_L3.csproj",
- "AXSharp.connectors\\tests\\ax-test-project\\ix\\ax_test_project.csproj",
- "AXSharp.connectors\\tests\\exploring\\Webserver.Api.Exploratory\\Webserver.Api.Exploratory.csproj",
- "AXSharp.connectors\\tests\\exploring\\exploratory.consoleapp\\exploratory.consoleapp.csproj",
- "AXSharp.examples\\hello.world.console\\hello.world.console.plc\\ix\\hello.world.console.plc.csproj",
- "AXSharp.examples\\hello.world.console\\hello.world.console\\hello.world.console.csproj",
- "AXSharp.tools\\src\\AXSharp.LocalizablesToResx\\AXSharp.LocalizablesToResx.csproj",
- "AXSharp.tools\\src\\AXSharp.TIA2AXTool\\AXSharp.TIA2AXTool.csproj",
- "AXSharp.tools\\src\\AXSharp.nuget.update\\AXSharp.nuget.update.csproj",
- "AXSharp.tools\\tests\\AXSharp.LocalizablesToResx.Tests\\AXSharp.LocalizablesToResx.Tests.csproj",
- "AXSharp.tools\\tests\\AXSharp.nuget.update.Tests\\AXSharp.nuget.update.Tests.csproj",
- "sanbox\\integration\\ix-integration-blazor\\ix-integration-blazor.csproj",
- "sanbox\\integration\\ix-integration-library\\ix-integration-library.csproj",
- "sanbox\\integration\\ix-integration-plc\\ix\\ix_integration_plc.csproj",
- "tests.integrations\\integrated\\src\\integrated.app\\integrated.hmi.csproj",
- "tests.integrations\\integrated\\src\\integrated.twin\\integrated.csproj",
- "tests.integrations\\integrated\\tests\\integrated.tests\\integrated.tests.csproj"
- ]
- }
-}
\ No newline at end of file
diff --git a/src/AXSharp-L3-tests_Integration.slnf b/src/AXSharp-L3-tests_Integration.slnf
new file mode 100644
index 000000000..723d62fc6
--- /dev/null
+++ b/src/AXSharp-L3-tests_Integration.slnf
@@ -0,0 +1,10 @@
+{
+ "solution": {
+ "path": "AXSharp.sln",
+ "projects": [
+ "tests.integrations\\integrated\\src\\integrated.app\\integrated.hmi.csproj",
+ "tests.integrations\\integrated\\src\\integrated.twin\\integrated.csproj",
+ "tests.integrations\\integrated\\tests\\integrated.tests\\integrated.tests.csproj"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/src/AXSharp-L3-tests_WebApi.slnf b/src/AXSharp-L3-tests_WebApi.slnf
new file mode 100644
index 000000000..164ac60d1
--- /dev/null
+++ b/src/AXSharp-L3-tests_WebApi.slnf
@@ -0,0 +1,9 @@
+{
+ "solution": {
+ "path": "AXSharp.sln",
+ "projects": [
+ "AXSharp.connectors\\tests\\AXSharp.Connector.Sax.WebAPITests\\AXSharp.Connector.S71500.WebAPITests.csproj",
+ "AXSharp.connectors\\tests\\exploring\\Webserver.Api.Exploratory\\Webserver.Api.Exploratory.csproj",
+ ]
+ }
+}
\ No newline at end of file
diff --git a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/CsProject.cs b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/CsProject.cs
index 238847d15..eda833ff5 100644
--- a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/CsProject.cs
+++ b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/CsProject.cs
@@ -123,7 +123,7 @@ private void EnsureCsProjFile()
var defaultCsProjectWhenNotProvidedByTemplate =
$@"
- net8.0
+ net9.0
enable
enable
diff --git a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Helpers/CsHelpers.cs b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Helpers/CsHelpers.cs
index 1dc2cd069..52fb9f68a 100644
--- a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Helpers/CsHelpers.cs
+++ b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Helpers/CsHelpers.cs
@@ -59,4 +59,14 @@ public static string CreateGenericSwapperMethodFromPlainer(string methodName, st
var qualifier = isExtended ? "override" : "virtual";
return $"public async {qualifier} Task {methodName}(T plain){{\n await this.{methodName}Async((dynamic)plain);\n}}";
}
+
+ ///
+ /// Gets fully qualified name of poco type for a given type declaration.
+ ///
+ ///
+ /// Fully qualified poco name for given declarations
+ public static string GetFullyQualifiedPocoName(this IDeclaration declaration)
+ {
+ return declaration.ContainingNamespace.FullyQualifiedName == "$GLOBAL" ? $"global::Pocos.{declaration.Name}" : $"{declaration.ContainingNamespace.FullyQualifiedName}.Pocos.{declaration.Name}";
+ }
}
\ No newline at end of file
diff --git a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerOnlineToPlainBuilder.cs b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerOnlineToPlainBuilder.cs
index 3e6e79280..c74863f29 100644
--- a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerOnlineToPlainBuilder.cs
+++ b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerOnlineToPlainBuilder.cs
@@ -17,6 +17,7 @@
using AXSharp.Compiler.Cs.Helpers.Plain;
using AXSharp.Connector;
+
namespace AXSharp.Compiler.Cs.Onliner;
internal class CsOnlinerPlainerOnlineToPlainBuilder : ICombinedThreeVisitor
@@ -121,16 +122,16 @@ public void AddTypeConstructionParameters(string parametersString)
protected static readonly string MethodName = TwinObjectExtensions.OnlineToPlainMethodName;
protected static readonly string MethodNameNoac = $"_{TwinObjectExtensions.OnlineToPlainMethodName}Noac";
-
+
public static CsOnlinerPlainerOnlineToPlainBuilder Create(IxNodeVisitor visitor, IStructuredTypeDeclaration semantics,
ISourceBuilder sourceBuilder)
{
var builder = new CsOnlinerPlainerOnlineToPlainBuilder(sourceBuilder);
- builder.AddToSource(CsHelpers.CreateGenericSwapperMethodToPlainer(MethodName, $"Pocos.{semantics.FullyQualifiedName}", false));
+ builder.AddToSource(CsHelpers.CreateGenericSwapperMethodToPlainer(MethodName, $"{semantics.GetFullyQualifiedPocoName()}", false));
- builder.AddToSource($"public async Task {MethodName}Async(){{\n");
- builder.AddToSource($"Pocos.{semantics.FullyQualifiedName} plain = new Pocos.{semantics.FullyQualifiedName}();");
+ builder.AddToSource($"public async Task<{semantics.GetFullyQualifiedPocoName()}> {MethodName}Async(){{\n");
+ builder.AddToSource($"{semantics.GetFullyQualifiedPocoName()} plain = new {semantics.GetFullyQualifiedPocoName()}();");
builder.AddToSource("await this.ReadAsync();");
semantics.Fields.ToList().ForEach(p => p.Accept(visitor, builder));
@@ -142,8 +143,8 @@ public static CsOnlinerPlainerOnlineToPlainBuilder Create(IxNodeVisitor visitor,
// Noac method
builder.AddToSource($"[Obsolete(\"This method should not be used if you indent to access the controllers data. Use `{MethodName}` instead.\")]");
builder.AddToSource("[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]");
- builder.AddToSource($"public async Task {MethodNameNoac}Async(){{\n");
- builder.AddToSource($"Pocos.{semantics.FullyQualifiedName} plain = new Pocos.{semantics.FullyQualifiedName}();");
+ builder.AddToSource($"public async Task<{semantics.GetFullyQualifiedPocoName()}> {MethodNameNoac}Async(){{\n");
+ builder.AddToSource($"{semantics.GetFullyQualifiedPocoName()} plain = new {semantics.GetFullyQualifiedPocoName()}();");
semantics.Fields.ToList().ForEach(p => p.Accept(visitor, builder));
builder.AddToSource($"return plain;");
@@ -157,12 +158,12 @@ public static CsOnlinerPlainerOnlineToPlainBuilder Create(IxNodeVisitor visitor,
{
var builder = new CsOnlinerPlainerOnlineToPlainBuilder(sourceBuilder);
- builder.AddToSource(CsHelpers.CreateGenericSwapperMethodToPlainer(MethodName,$"Pocos.{semantics.FullyQualifiedName}", isExtended));
+ builder.AddToSource(CsHelpers.CreateGenericSwapperMethodToPlainer(MethodName,$"{semantics.GetFullyQualifiedPocoName()}", isExtended));
var qualifier = isExtended ? "new" : string.Empty;
- builder.AddToSource($"public {qualifier} async Task {MethodName}Async(){{\n");
- builder.AddToSource($"Pocos.{semantics.FullyQualifiedName} plain = new Pocos.{semantics.FullyQualifiedName}();");
+ builder.AddToSource($"public {qualifier} async Task<{semantics.GetFullyQualifiedPocoName()}> {MethodName}Async(){{\n");
+ builder.AddToSource($"{semantics.GetFullyQualifiedPocoName()} plain = new {semantics.GetFullyQualifiedPocoName()}();");
builder.AddToSource("await this.ReadAsync();");
if (isExtended)
@@ -180,8 +181,8 @@ public static CsOnlinerPlainerOnlineToPlainBuilder Create(IxNodeVisitor visitor,
builder.AddToSource($"[Obsolete(\"This method should not be used if you indent to access the controllers data. Use `{MethodName}` instead.\")]");
builder.AddToSource("[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]");
- builder.AddToSource($"public {qualifier} async Task {MethodNameNoac}Async(){{\n");
- builder.AddToSource($"Pocos.{semantics.FullyQualifiedName} plain = new Pocos.{semantics.FullyQualifiedName}();");
+ builder.AddToSource($"public {qualifier} async Task<{semantics.GetFullyQualifiedPocoName()}> {MethodNameNoac}Async(){{\n");
+ builder.AddToSource($"{semantics.GetFullyQualifiedPocoName()} plain = new {semantics.GetFullyQualifiedPocoName()}();");
if (isExtended)
{
diff --git a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerOnlineToPlainProtectedBuilder.cs b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerOnlineToPlainProtectedBuilder.cs
index cbd9ae027..92c1c7f72 100644
--- a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerOnlineToPlainProtectedBuilder.cs
+++ b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerOnlineToPlainProtectedBuilder.cs
@@ -32,7 +32,7 @@ protected CsOnlinerPlainerOnlineToPlainProtectedBuilder(ISourceBuilder sourceBui
ISourceBuilder sourceBuilder)
{
var builder = new CsOnlinerPlainerOnlineToPlainProtectedBuilder(sourceBuilder);
- builder.AddToSource($"protected async Task {MethodName}Async(Pocos.{semantics.FullyQualifiedName} plain){{\n");
+ builder.AddToSource($"protected async Task<{semantics.GetFullyQualifiedPocoName()}> {MethodName}Async({semantics.GetFullyQualifiedPocoName()} plain){{\n");
semantics.Fields.ToList().ForEach(p => p.Accept(visitor, builder));
builder.AddToSource($"return plain;");
@@ -49,7 +49,7 @@ protected CsOnlinerPlainerOnlineToPlainProtectedBuilder(ISourceBuilder sourceBui
var qualifier = string.Empty;
builder.AddToSource($"[Obsolete(\"This method should not be used if you indent to access the controllers data. Use `{MethodName}` instead.\")]");
builder.AddToSource("[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]");
- builder.AddToSource($"protected {qualifier} async Task {MethodNameNoac}Async(Pocos.{semantics.FullyQualifiedName} plain){{\n");
+ builder.AddToSource($"protected {qualifier} async Task<{semantics.GetFullyQualifiedPocoName()}> {MethodNameNoac}Async({semantics.GetFullyQualifiedPocoName()} plain){{\n");
if (isExtended)
diff --git a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerPlainToOnlineBuilder.cs b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerPlainToOnlineBuilder.cs
index fd6ca8ec6..0ae642061 100644
--- a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerPlainToOnlineBuilder.cs
+++ b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerPlainToOnlineBuilder.cs
@@ -140,9 +140,9 @@ public static CsOnlinerPlainerPlainToOnlineBuilder Create(IxNodeVisitor visitor,
{
var builder = new CsOnlinerPlainerPlainToOnlineBuilder(sourceBuilder);
- builder.AddToSource(CsHelpers.CreateGenericSwapperMethodFromPlainer(MethodName, $"Pocos.{semantics.FullyQualifiedName}", false));
+ builder.AddToSource(CsHelpers.CreateGenericSwapperMethodFromPlainer(MethodName, $"{semantics.GetFullyQualifiedPocoName()}", false));
- builder.AddToSource($"public async Task> {MethodName}Async(Pocos.{semantics.FullyQualifiedName} plain){{\n");
+ builder.AddToSource($"public async Task> {MethodName}Async({semantics.GetFullyQualifiedPocoName()} plain){{\n");
semantics.Fields.ToList().ForEach(p => p.Accept(visitor, builder));
@@ -153,7 +153,7 @@ public static CsOnlinerPlainerPlainToOnlineBuilder Create(IxNodeVisitor visitor,
// Noac method
builder.AddToSource($"[Obsolete(\"This method should not be used if you indent to access the controllers data. Use `{MethodName}` instead.\")]");
builder.AddToSource("[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]");
- builder.AddToSource($"public async Task {MethodNameNoac}Async(Pocos.{semantics.FullyQualifiedName} plain){{\n");
+ builder.AddToSource($"public async Task {MethodNameNoac}Async({semantics.GetFullyQualifiedPocoName()} plain){{\n");
semantics.Fields.ToList().ForEach(p => p.Accept(visitor, builder));
@@ -167,12 +167,12 @@ public static CsOnlinerPlainerPlainToOnlineBuilder Create(IxNodeVisitor visitor,
{
var builder = new CsOnlinerPlainerPlainToOnlineBuilder(sourceBuilder);
- builder.AddToSource(CsHelpers.CreateGenericSwapperMethodFromPlainer(MethodName, $"Pocos.{semantics.FullyQualifiedName}", isExtended));
+ builder.AddToSource(CsHelpers.CreateGenericSwapperMethodFromPlainer(MethodName, $"{semantics.GetFullyQualifiedPocoName()}", isExtended));
//var qualifier = isExtended ? "new" : string.Empty;
var qualifier = string.Empty;
- builder.AddToSource($"public {qualifier} async Task> {MethodName}Async(Pocos.{semantics.FullyQualifiedName} plain){{\n");
+ builder.AddToSource($"public {qualifier} async Task> {MethodName}Async({semantics.GetFullyQualifiedPocoName()} plain){{\n");
if (isExtended)
@@ -189,7 +189,7 @@ public static CsOnlinerPlainerPlainToOnlineBuilder Create(IxNodeVisitor visitor,
// Noac method
builder.AddToSource($"[Obsolete(\"This method should not be used if you indent to access the controllers data. Use `{MethodName}` instead.\")]");
builder.AddToSource("[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]");
- builder.AddToSource($"public async Task {MethodNameNoac}Async(Pocos.{semantics.FullyQualifiedName} plain){{\n");
+ builder.AddToSource($"public async Task {MethodNameNoac}Async({semantics.GetFullyQualifiedPocoName()} plain){{\n");
if (isExtended)
{
diff --git a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerPlainToShadowBuilder.cs b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerPlainToShadowBuilder.cs
index e23b1ea69..2121ed017 100644
--- a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerPlainToShadowBuilder.cs
+++ b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerPlainToShadowBuilder.cs
@@ -125,9 +125,9 @@ public static CsOnlinerPlainerPlainToShadowBuilder Create(IxNodeVisitor visitor,
{
var builder = new CsOnlinerPlainerPlainToShadowBuilder(sourceBuilder);
- builder.AddToSource(CsHelpers.CreateGenericSwapperMethodFromPlainer(MethodName, $"Pocos.{semantics.FullyQualifiedName}", false));
+ builder.AddToSource(CsHelpers.CreateGenericSwapperMethodFromPlainer(MethodName, $"{semantics.GetFullyQualifiedPocoName()}", false));
- builder.AddToSource($"public async Task> {MethodName}Async(Pocos.{semantics.FullyQualifiedName} plain){{\n");
+ builder.AddToSource($"public async Task> {MethodName}Async({semantics.GetFullyQualifiedPocoName()} plain){{\n");
semantics.Fields.ToList().ForEach(p => p.Accept(visitor, builder));
@@ -141,11 +141,11 @@ public static CsOnlinerPlainerPlainToShadowBuilder Create(IxNodeVisitor visitor,
{
var builder = new CsOnlinerPlainerPlainToShadowBuilder(sourceBuilder);
- builder.AddToSource(CsHelpers.CreateGenericSwapperMethodFromPlainer(MethodName, $"Pocos.{semantics.FullyQualifiedName}", isExtended));
+ builder.AddToSource(CsHelpers.CreateGenericSwapperMethodFromPlainer(MethodName, $"{semantics.GetFullyQualifiedPocoName()}", isExtended));
//var qualifier = isExtended ? "new" : string.Empty;
var qualifier = string.Empty;
- builder.AddToSource($"public {qualifier} async Task> {MethodName}Async(Pocos.{semantics.FullyQualifiedName} plain){{\n");
+ builder.AddToSource($"public {qualifier} async Task> {MethodName}Async({semantics.GetFullyQualifiedPocoName()} plain){{\n");
if (isExtended)
diff --git a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerShadowToPlainBuilder.cs b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerShadowToPlainBuilder.cs
index 3a0ede03f..f814ddaac 100644
--- a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerShadowToPlainBuilder.cs
+++ b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerShadowToPlainBuilder.cs
@@ -123,10 +123,10 @@ public static CsOnlinerPlainerShadowToPlainBuilder Create(IxNodeVisitor visitor,
{
var builder = new CsOnlinerPlainerShadowToPlainBuilder(sourceBuilder);
- builder.AddToSource(CsHelpers.CreateGenericSwapperMethodToPlainer(MethodName, $"Pocos.{semantics.FullyQualifiedName}", false));
+ builder.AddToSource(CsHelpers.CreateGenericSwapperMethodToPlainer(MethodName, $"{semantics.GetFullyQualifiedPocoName()}", false));
- builder.AddToSource($"public async Task {MethodName}Async(){{\n");
- builder.AddToSource($"Pocos.{semantics.FullyQualifiedName} plain = new Pocos.{semantics.FullyQualifiedName}();");
+ builder.AddToSource($"public async Task<{semantics.GetFullyQualifiedPocoName()}> {MethodName}Async(){{\n");
+ builder.AddToSource($"{semantics.GetFullyQualifiedPocoName()} plain = new {semantics.GetFullyQualifiedPocoName()}();");
semantics.Fields.ToList().ForEach(p => p.Accept(visitor, builder));
@@ -140,12 +140,12 @@ public static CsOnlinerPlainerShadowToPlainBuilder Create(IxNodeVisitor visitor,
{
var builder = new CsOnlinerPlainerShadowToPlainBuilder(sourceBuilder);
- builder.AddToSource(CsHelpers.CreateGenericSwapperMethodToPlainer(MethodName, $"Pocos.{semantics.FullyQualifiedName}", isExtended));
+ builder.AddToSource(CsHelpers.CreateGenericSwapperMethodToPlainer(MethodName, $"{semantics.GetFullyQualifiedPocoName()}", isExtended));
var qualifier = isExtended ? "new" : string.Empty;
- builder.AddToSource($"public {qualifier} async Task {MethodName}Async(){{\n");
- builder.AddToSource($"Pocos.{semantics.FullyQualifiedName} plain = new Pocos.{semantics.FullyQualifiedName}();");
+ builder.AddToSource($"public {qualifier} async Task<{semantics.GetFullyQualifiedPocoName()}> {MethodName}Async(){{\n");
+ builder.AddToSource($"{semantics.GetFullyQualifiedPocoName()} plain = new {semantics.GetFullyQualifiedPocoName()}();");
if (isExtended)
{
diff --git a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerShadowToPlainProtectedBuilder.cs b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerShadowToPlainProtectedBuilder.cs
index 4c1d98746..1733902c8 100644
--- a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerShadowToPlainProtectedBuilder.cs
+++ b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerPlainerShadowToPlainProtectedBuilder.cs
@@ -14,6 +14,7 @@
using System.Text;
using System.Threading.Tasks;
using AXSharp.Compiler.Core;
+using AXSharp.Compiler.Cs.Helpers;
namespace AXSharp.Compiler.Cs.Onliner
{
@@ -30,7 +31,7 @@ protected CsOnlinerPlainerShadowToPlainProtectedBuilder(ISourceBuilder sourceBui
ISourceBuilder sourceBuilder)
{
var builder = new CsOnlinerPlainerShadowToPlainProtectedBuilder(sourceBuilder);
- builder.AddToSource($"protected async Task {MethodName}Async(Pocos.{semantics.FullyQualifiedName} plain){{\n");
+ builder.AddToSource($"protected async Task<{semantics.GetFullyQualifiedPocoName()}> {MethodName}Async({semantics.GetFullyQualifiedPocoName()} plain){{\n");
semantics.Fields.ToList().ForEach(p => p.Accept(visitor, builder));
builder.AddToSource($"return plain;");
@@ -46,7 +47,7 @@ protected CsOnlinerPlainerShadowToPlainProtectedBuilder(ISourceBuilder sourceBui
//var qualifier = isExtended ? "new" : string.Empty;
var qualifier = string.Empty;
- builder.AddToSource($"protected {qualifier} async Task {MethodName}Async(Pocos.{semantics.FullyQualifiedName} plain){{\n");
+ builder.AddToSource($"protected {qualifier} async Task<{semantics.GetFullyQualifiedPocoName()}> {MethodName}Async({semantics.GetFullyQualifiedPocoName()} plain){{\n");
if (isExtended)
diff --git a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerSourceBuilder.cs b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerSourceBuilder.cs
index bc1556623..f16590e28 100644
--- a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerSourceBuilder.cs
+++ b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/CsOnlinerSourceBuilder.cs
@@ -180,7 +180,7 @@ private void AddPollingMethod(bool isExtended)
private void AddCreatePocoMethod(ITypeDeclaration typeDeclaration, bool isExtended)
{
var qualifier = isExtended ? "new" : string.Empty;
- AddToSource($"public {qualifier} Pocos.{typeDeclaration.FullyQualifiedName} CreateEmptyPoco(){{ return new Pocos.{typeDeclaration.FullyQualifiedName}();}}");
+ AddToSource($"public {qualifier} {typeDeclaration.GetFullyQualifiedPocoName()} CreateEmptyPoco(){{ return new {typeDeclaration.GetFullyQualifiedPocoName()}();}}");
}
///
diff --git a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/HasChangedBuilder/CsOnlinerHasChangedBuilder.cs b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/HasChangedBuilder/CsOnlinerHasChangedBuilder.cs
index e7c4d5987..60af3bc76 100644
--- a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/HasChangedBuilder/CsOnlinerHasChangedBuilder.cs
+++ b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Onliner/HasChangedBuilder/CsOnlinerHasChangedBuilder.cs
@@ -123,7 +123,7 @@ public static CsOnlinerHasChangedBuilder Create(IxNodeVisitor visitor, IStructur
{
var builder = new CsOnlinerHasChangedBuilder(sourceBuilder);
- builder.AddToSource(CsHelpers.CreateGenericHasChangedMethodMethod(MethodName, $"Pocos.{semantics.FullyQualifiedName}"));
+ builder.AddToSource(CsHelpers.CreateGenericHasChangedMethodMethod(MethodName, $"{semantics.GetFullyQualifiedPocoName()}"));
builder.AddToSource("///\n");
builder.AddToSource("///Compares if the current plain object has changed from the previous object.This method is used by the framework to determine if the object has changed and needs to be updated.\n");
@@ -131,7 +131,7 @@ public static CsOnlinerHasChangedBuilder Create(IxNodeVisitor visitor, IStructur
builder.AddToSource("///\n");
- builder.AddToSource($"public async Task {MethodName}(Pocos.{semantics.FullyQualifiedName} plain, Pocos.{semantics.FullyQualifiedName} latest = null){{\n");
+ builder.AddToSource($"public async Task {MethodName}({semantics.GetFullyQualifiedPocoName()} plain, {semantics.GetFullyQualifiedPocoName()} latest = null){{\n");
builder.AddToSource("var somethingChanged = false;");
builder.AddToSource("if(latest == null) latest = await this._OnlineToPlainNoacAsync();");
builder.AddToSource("return await Task.Run(async () => {\n");
@@ -148,7 +148,7 @@ public static CsOnlinerHasChangedBuilder Create(IxNodeVisitor visitor, IClassDec
{
var builder = new CsOnlinerHasChangedBuilder(sourceBuilder);
- builder.AddToSource(CsHelpers.CreateGenericHasChangedMethodMethod(MethodName, $"Pocos.{semantics.FullyQualifiedName}", isExtended));
+ builder.AddToSource(CsHelpers.CreateGenericHasChangedMethodMethod(MethodName, $"{semantics.GetFullyQualifiedPocoName()}", isExtended));
var qualifier = isExtended ? "new" : string.Empty;
@@ -156,7 +156,7 @@ public static CsOnlinerHasChangedBuilder Create(IxNodeVisitor visitor, IClassDec
builder.AddToSource("///Compares if the current plain object has changed from the previous object.This method is used by the framework to determine if the object has changed and needs to be updated.\n");
builder.AddToSource("///[!NOTE] Any member in the hierarchy that is ignored by the compilers (e.g. when CompilerOmitAttribute is used) will not be compared, and therefore will not be detected as changed.\n");
builder.AddToSource("///\n");
- builder.AddToSource($"public {qualifier} async Task {MethodName}(Pocos.{semantics.FullyQualifiedName} plain, Pocos.{semantics.FullyQualifiedName} latest = null){{\n");
+ builder.AddToSource($"public {qualifier} async Task {MethodName}({semantics.GetFullyQualifiedPocoName()} plain, {semantics.GetFullyQualifiedPocoName()} latest = null){{\n");
builder.AddToSource("if(latest == null) latest = await this._OnlineToPlainNoacAsync();");
builder.AddToSource("var somethingChanged = false;");
diff --git a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Plain/CsPlainConstructorBuilder.cs b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Plain/CsPlainConstructorBuilder.cs
index 34a8c28ef..571fff8b3 100644
--- a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Plain/CsPlainConstructorBuilder.cs
+++ b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Plain/CsPlainConstructorBuilder.cs
@@ -36,7 +36,7 @@ protected CsPlainConstructorBuilder(ISourceBuilder sourceBuilder)
public void CreateClassDeclaration(IClassDeclaration classDeclaration, IxNodeVisitor visitor)
{
- AddToSource($"{classDeclaration.GetQualifiedName()}");
+ AddToSource($"{classDeclaration.GetFullyQualifiedPocoName()}");
}
public void CreateReferenceToDeclaration(IReferenceTypeDeclaration referenceTypeDeclaration, IxNodeVisitor visitor)
@@ -61,7 +61,7 @@ public void CreateStringTypeDeclaration(IStringTypeDeclaration stringTypeDeclara
public void CreateStructuredType(IStructuredTypeDeclaration structuredTypeDeclaration, IxNodeVisitor visitor)
{
- AddToSource($"{structuredTypeDeclaration.GetQualifiedName()}");
+ AddToSource($"{structuredTypeDeclaration.GetFullyQualifiedPocoName()}");
}
public void CreateFieldDeclaration(IFieldDeclaration fieldDeclaration, IxNodeVisitor visitor)
diff --git a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Plain/CsPlainSourceBuilder.cs b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Plain/CsPlainSourceBuilder.cs
index 7af3e64db..7a065e1bd 100644
--- a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Plain/CsPlainSourceBuilder.cs
+++ b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/Plain/CsPlainSourceBuilder.cs
@@ -67,6 +67,9 @@ public void CreateClassDeclaration(IClassDeclarationSyntax classDeclarationSynta
TypeCommAccessibility = eCommAccessibility.ReadOnly;
}
+
+ AddToSource($"namespace Pocos{{");
+
classDeclarationSyntax.UsingDirectives.ToList().ForEach(p => p.Visit(visitor, this));
var classDeclarations = this.Compilation.GetSemanticTree().Classes
@@ -79,7 +82,7 @@ public void CreateClassDeclaration(IClassDeclarationSyntax classDeclarationSynta
.Any(p => p.FullyQualifiedName == classDeclaration.ExtendedTypeAccesses.FirstOrDefault()?.Type.FullyQualifiedName);
if (isExtended)
- AddToSource($" : {classDeclaration.ExtendedTypeAccesses.FirstOrDefault()?.Type.FullyQualifiedName}");
+ AddToSource($" : {classDeclaration.ExtendedTypeAccesses.FirstOrDefault()?.Type.GetFullyQualifiedPocoName()}");
@@ -98,6 +101,8 @@ public void CreateClassDeclaration(IClassDeclarationSyntax classDeclarationSynta
classDeclarationSyntax.UsingDirectives.ToList().ForEach(p => p.Visit(visitor, this));
classDeclaration.Fields.ToList().ForEach(p => p.Accept(visitor, this));
AddToSource("}");
+
+ AddToSource("}"); // Close namespace
}
///
@@ -195,11 +200,9 @@ public void CreateFile(IFileSyntax fileSyntax, IxNodeVisitor visitor)
fileSyntax.UsingDirectives
.Where(p => this.Compilation.GetSemanticTree().Namespaces.Select(p => p.FullyQualifiedName).Contains(p.QualifiedIdentifierList.GetText())))
{
- AddToSource($"using Pocos.{fileSyntaxUsingDirective.QualifiedIdentifierList.GetText()};");
+ AddToSource($"using {fileSyntaxUsingDirective.QualifiedIdentifierList.GetText()}.Pocos;");
}
- AddToSource("namespace Pocos {");
fileSyntax.Declarations.ToList().ForEach(p => p.Visit(visitor, this));
- AddToSource("}");
}
///
@@ -209,9 +212,19 @@ public void CreateConfigDeclaration(IConfigDeclarationSyntax configDeclarationSy
{
TypeCommAccessibility = eCommAccessibility.None;
+ if (configurationDeclaration.ContainingNamespace.FullyQualifiedName != "$GLOBAL")
+ {
+ AddToSource($"namespace {configurationDeclaration.ContainingNamespace.FullyQualifiedName}.Pocos{{");
+ }
+ else
+ {
+ AddToSource($"namespace Pocos{{");
+ }
+
AddToSource($"public partial class {Project.TargetProject.ProjectRootNamespace}TwinController{{");
configurationDeclaration.Variables.ToList().ForEach(p => p.Accept(visitor, this));
AddToSource("}");
+ AddToSource("}");// closing namespace
}
///
@@ -320,7 +333,9 @@ public void CreateStructuredType(IStructTypeDeclarationSyntax structTypeDeclarat
IxNodeVisitor visitor)
{
TypeCommAccessibility = structuredTypeDeclaration.GetCommAccessibility(this);
-
+
+ AddToSource($"namespace Pocos{{");
+
AddToSource(
$"{structuredTypeDeclaration.AccessModifier.Transform()}partial class {structTypeDeclarationSyntax.Name.Text} : AXSharp.Connector.IPlain");
AddToSource("{");
@@ -329,6 +344,8 @@ public void CreateStructuredType(IStructTypeDeclarationSyntax structTypeDeclarat
structuredTypeDeclaration.Fields.ToList().ForEach(p => p.Accept(visitor, this));
AddToSource("}");
+
+ AddToSource("}"); // namespace closing
}
///
@@ -352,13 +369,13 @@ public void CreateScalarTypeDeclaration(IScalarTypeDeclaration scalarTypeDeclara
///
public void CreateClassDeclaration(IClassDeclaration classDeclaration, IxNodeVisitor data)
{
- AddToSource(classDeclaration.GetQualifiedName());
+ AddToSource(classDeclaration.GetFullyQualifiedPocoName());
}
///
public void CreateInterfaceDeclaration(IInterfaceDeclaration interfaceDeclaration, IxNodeVisitor visitor)
{
- AddToSource(interfaceDeclaration.GetQualifiedName());
+ AddToSource(interfaceDeclaration.GetFullyQualifiedPocoName());
}
///
@@ -387,7 +404,7 @@ public void CreateStringTypeDeclaration(IStringTypeDeclaration stringTypeDeclara
public void CreateStructuredType(IStructuredTypeDeclaration structuredTypeDeclaration, IxNodeVisitor visitor)
{
structuredTypeDeclaration.Pragmas.ToList().ForEach(p => p.Accept(visitor, this));
- AddToSource($"{structuredTypeDeclaration.GetQualifiedName()}");
+ AddToSource($"{structuredTypeDeclaration.GetFullyQualifiedPocoName()}");
}
///
diff --git a/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/DisplayNameOrderer.cs b/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/DisplayNameOrderer.cs
index 59018b41a..5537d2627 100644
--- a/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/DisplayNameOrderer.cs
+++ b/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/DisplayNameOrderer.cs
@@ -7,7 +7,7 @@
using Xunit.Abstractions;
-[assembly: TestCollectionOrderer("AXSharp.CompilerTests.DisplayNameOrderer", "AXSharp.CompilerTests")]
+[assembly: TestCollectionOrderer("AXSharp.Compiler.CsTests.DisplayNameOrderer", "AXSharp.Compiler.CsTests")]
[assembly: CollectionBehavior(DisableTestParallelization = true)]
namespace AXSharp.Compiler.CsTests;
diff --git a/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/samples/units/expected/.g/Onliners/abstract_members.g.cs b/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/samples/units/expected/.g/Onliners/abstract_members.g.cs
index 750f4f2fc..2736ecbe1 100644
--- a/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/samples/units/expected/.g/Onliners/abstract_members.g.cs
+++ b/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/samples/units/expected/.g/Onliners/abstract_members.g.cs
@@ -8,7 +8,6 @@
public partial class AbstractMotor : AXSharp.Connector.ITwinObject
{
public OnlinerBool Run { get; }
-
public OnlinerBool ReverseDirection { get; }
partial void PreConstruct(AXSharp.Connector.ITwinObject parent, string readableTail, string symbolTail);
@@ -33,9 +32,9 @@ public async virtual Task OnlineToPlain()
return await (dynamic)this.OnlineToPlainAsync();
}
- public async Task OnlineToPlainAsync()
+ public async Task OnlineToPlainAsync()
{
- Pocos.AbstractMotor plain = new Pocos.AbstractMotor();
+ global::Pocos.AbstractMotor plain = new global::Pocos.AbstractMotor();
await this.ReadAsync();
plain.Run = Run.LastValue;
plain.ReverseDirection = ReverseDirection.LastValue;
@@ -44,9 +43,9 @@ public async virtual Task OnlineToPlain()
[Obsolete("This method should not be used if you indent to access the controllers data. Use `OnlineToPlain` instead.")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- public async Task _OnlineToPlainNoacAsync()
+ public async Task _OnlineToPlainNoacAsync()
{
- Pocos.AbstractMotor plain = new Pocos.AbstractMotor();
+ global::Pocos.AbstractMotor plain = new global::Pocos.AbstractMotor();
plain.Run = Run.LastValue;
plain.ReverseDirection = ReverseDirection.LastValue;
return plain;
@@ -54,7 +53,7 @@ public async virtual Task OnlineToPlain()
[Obsolete("This method should not be used if you indent to access the controllers data. Use `OnlineToPlain` instead.")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- protected async Task _OnlineToPlainNoacAsync(Pocos.AbstractMotor plain)
+ protected async Task _OnlineToPlainNoacAsync(global::Pocos.AbstractMotor plain)
{
plain.Run = Run.LastValue;
plain.ReverseDirection = ReverseDirection.LastValue;
@@ -66,7 +65,7 @@ public async virtual Task PlainToOnline(T plain)
await this.PlainToOnlineAsync((dynamic)plain);
}
- public async Task> PlainToOnlineAsync(Pocos.AbstractMotor plain)
+ public async Task> PlainToOnlineAsync(global::Pocos.AbstractMotor plain)
{
#pragma warning disable CS0612
Run.LethargicWrite(plain.Run);
@@ -79,7 +78,7 @@ public async Task> PlainToOnlineAsync(Pocos.Abstract
[Obsolete("This method should not be used if you indent to access the controllers data. Use `PlainToOnline` instead.")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- public async Task _PlainToOnlineNoacAsync(Pocos.AbstractMotor plain)
+ public async Task _PlainToOnlineNoacAsync(global::Pocos.AbstractMotor plain)
{
#pragma warning disable CS0612
Run.LethargicWrite(plain.Run);
@@ -94,15 +93,15 @@ public async virtual Task ShadowToPlain()
return await (dynamic)this.ShadowToPlainAsync();
}
- public async Task ShadowToPlainAsync()
+ public async Task ShadowToPlainAsync()
{
- Pocos.AbstractMotor plain = new Pocos.AbstractMotor();
+ global::Pocos.AbstractMotor plain = new global::Pocos.AbstractMotor();
plain.Run = Run.Shadow;
plain.ReverseDirection = ReverseDirection.Shadow;
return plain;
}
- protected async Task ShadowToPlainAsync(Pocos.AbstractMotor plain)
+ protected async Task ShadowToPlainAsync(global::Pocos.AbstractMotor plain)
{
plain.Run = Run.Shadow;
plain.ReverseDirection = ReverseDirection.Shadow;
@@ -114,7 +113,7 @@ public async virtual Task PlainToShadow(T plain)
await this.PlainToShadowAsync((dynamic)plain);
}
- public async Task> PlainToShadowAsync(Pocos.AbstractMotor plain)
+ public async Task> PlainToShadowAsync(global::Pocos.AbstractMotor plain)
{
Run.Shadow = plain.Run;
ReverseDirection.Shadow = plain.ReverseDirection;
@@ -131,7 +130,7 @@ public async virtual Task AnyChangeAsync(T plain)
///Compares if the current plain object has changed from the previous object.This method is used by the framework to determine if the object has changed and needs to be updated.
///[!NOTE] Any member in the hierarchy that is ignored by the compilers (e.g. when CompilerOmitAttribute is used) will not be compared, and therefore will not be detected as changed.
///
- public async Task DetectsAnyChangeAsync(Pocos.AbstractMotor plain, Pocos.AbstractMotor latest = null)
+ public async Task DetectsAnyChangeAsync(global::Pocos.AbstractMotor plain, global::Pocos.AbstractMotor latest = null)
{
if (latest == null)
latest = await this._OnlineToPlainNoacAsync();
@@ -152,24 +151,27 @@ public void Poll()
this.RetrievePrimitives().ToList().ForEach(x => x.Poll());
}
- public Pocos.AbstractMotor CreateEmptyPoco()
+ public global::Pocos.AbstractMotor CreateEmptyPoco()
{
- return new Pocos.AbstractMotor();
+ return new global::Pocos.AbstractMotor();
}
private IList Children { get; } = new List();
+
public IEnumerable GetChildren()
{
return Children;
}
private IList Kids { get; } = new List();
+
public IEnumerable GetKids()
{
return Kids;
}
private IList ValueTags { get; } = new List();
+
public IEnumerable GetValueTags()
{
return ValueTags;
@@ -226,8 +228,6 @@ public System.String GetHumanReadable(System.Globalization.CultureInfo culture)
}
protected System.String @SymbolTail { get; set; }
-
protected AXSharp.Connector.ITwinObject @Parent { get; set; }
-
public AXSharp.Connector.Localizations.Translator Interpreter => global::units.PlcTranslator.Instance;
}
\ No newline at end of file
diff --git a/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/samples/units/expected/.g/Onliners/array_declaration.g.cs b/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/samples/units/expected/.g/Onliners/array_declaration.g.cs
index 63044eae5..bbe1e56be 100644
--- a/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/samples/units/expected/.g/Onliners/array_declaration.g.cs
+++ b/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/samples/units/expected/.g/Onliners/array_declaration.g.cs
@@ -10,7 +10,6 @@ namespace ArrayDeclarationSimpleNamespace
public partial class array_declaration_class : AXSharp.Connector.ITwinObject
{
public OnlinerInt[] primitive { get; }
-
public ArrayDeclarationSimpleNamespace.some_complex_type[] complex { get; }
partial void PreConstruct(AXSharp.Connector.ITwinObject parent, string readableTail, string symbolTail);
@@ -37,9 +36,9 @@ public async virtual Task OnlineToPlain()
return await (dynamic)this.OnlineToPlainAsync();
}
- public async Task OnlineToPlainAsync()
+ public async Task OnlineToPlainAsync()
{
- Pocos.ArrayDeclarationSimpleNamespace.array_declaration_class plain = new Pocos.ArrayDeclarationSimpleNamespace.array_declaration_class();
+ ArrayDeclarationSimpleNamespace.Pocos.array_declaration_class plain = new ArrayDeclarationSimpleNamespace.Pocos.array_declaration_class();
await this.ReadAsync();
plain.primitive = primitive.Select(p => p.LastValue).ToArray();
#pragma warning disable CS0612
@@ -50,9 +49,9 @@ public async virtual Task OnlineToPlain()
[Obsolete("This method should not be used if you indent to access the controllers data. Use `OnlineToPlain` instead.")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- public async Task _OnlineToPlainNoacAsync()
+ public async Task _OnlineToPlainNoacAsync()
{
- Pocos.ArrayDeclarationSimpleNamespace.array_declaration_class plain = new Pocos.ArrayDeclarationSimpleNamespace.array_declaration_class();
+ ArrayDeclarationSimpleNamespace.Pocos.array_declaration_class plain = new ArrayDeclarationSimpleNamespace.Pocos.array_declaration_class();
plain.primitive = primitive.Select(p => p.LastValue).ToArray();
#pragma warning disable CS0612
plain.complex = complex.Select(async p => await p._OnlineToPlainNoacAsync()).Select(p => p.Result).ToArray();
@@ -62,7 +61,7 @@ public async virtual Task OnlineToPlain()
[Obsolete("This method should not be used if you indent to access the controllers data. Use `OnlineToPlain` instead.")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- protected async Task _OnlineToPlainNoacAsync(Pocos.ArrayDeclarationSimpleNamespace.array_declaration_class plain)
+ protected async Task _OnlineToPlainNoacAsync(ArrayDeclarationSimpleNamespace.Pocos.array_declaration_class plain)
{
plain.primitive = primitive.Select(p => p.LastValue).ToArray();
#pragma warning disable CS0612
@@ -76,7 +75,7 @@ public async virtual Task PlainToOnline(T plain)
await this.PlainToOnlineAsync((dynamic)plain);
}
- public async Task> PlainToOnlineAsync(Pocos.ArrayDeclarationSimpleNamespace.array_declaration_class plain)
+ public async Task> PlainToOnlineAsync(ArrayDeclarationSimpleNamespace.Pocos.array_declaration_class plain)
{
var _primitive_i_FE8484DAB3 = 0;
#pragma warning disable CS0612
@@ -91,7 +90,7 @@ public async Task> PlainToOnlineAsync(Pocos.ArrayDec
[Obsolete("This method should not be used if you indent to access the controllers data. Use `PlainToOnline` instead.")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- public async Task _PlainToOnlineNoacAsync(Pocos.ArrayDeclarationSimpleNamespace.array_declaration_class plain)
+ public async Task _PlainToOnlineNoacAsync(ArrayDeclarationSimpleNamespace.Pocos.array_declaration_class plain)
{
var _primitive_i_FE8484DAB3 = 0;
#pragma warning disable CS0612
@@ -108,15 +107,15 @@ public async virtual Task ShadowToPlain()
return await (dynamic)this.ShadowToPlainAsync();
}
- public async Task ShadowToPlainAsync()
+ public async Task ShadowToPlainAsync()
{
- Pocos.ArrayDeclarationSimpleNamespace.array_declaration_class plain = new Pocos.ArrayDeclarationSimpleNamespace.array_declaration_class();
+ ArrayDeclarationSimpleNamespace.Pocos.array_declaration_class plain = new ArrayDeclarationSimpleNamespace.Pocos.array_declaration_class();
plain.primitive = primitive.Select(p => p.Shadow).ToArray();
plain.complex = complex.Select(async p => await p.ShadowToPlainAsync()).Select(p => p.Result).ToArray();
return plain;
}
- protected async Task ShadowToPlainAsync(Pocos.ArrayDeclarationSimpleNamespace.array_declaration_class plain)
+ protected async Task ShadowToPlainAsync(ArrayDeclarationSimpleNamespace.Pocos.array_declaration_class plain)
{
plain.primitive = primitive.Select(p => p.Shadow).ToArray();
plain.complex = complex.Select(async p => await p.ShadowToPlainAsync()).Select(p => p.Result).ToArray();
@@ -128,7 +127,7 @@ public async virtual Task PlainToShadow(T plain)
await this.PlainToShadowAsync((dynamic)plain);
}
- public async Task> PlainToShadowAsync(Pocos.ArrayDeclarationSimpleNamespace.array_declaration_class plain)
+ public async Task> PlainToShadowAsync(ArrayDeclarationSimpleNamespace.Pocos.array_declaration_class plain)
{
var _primitive_i_FE8484DAB3 = 0;
primitive.Select(p => p.Shadow = plain.primitive[_primitive_i_FE8484DAB3++]).ToArray();
@@ -147,7 +146,7 @@ public async virtual Task AnyChangeAsync(T plain)
///Compares if the current plain object has changed from the previous object.This method is used by the framework to determine if the object has changed and needs to be updated.
///[!NOTE] Any member in the hierarchy that is ignored by the compilers (e.g. when CompilerOmitAttribute is used) will not be compared, and therefore will not be detected as changed.
///
- public async Task DetectsAnyChangeAsync(Pocos.ArrayDeclarationSimpleNamespace.array_declaration_class plain, Pocos.ArrayDeclarationSimpleNamespace.array_declaration_class latest = null)
+ public async Task DetectsAnyChangeAsync(ArrayDeclarationSimpleNamespace.Pocos.array_declaration_class plain, ArrayDeclarationSimpleNamespace.Pocos.array_declaration_class latest = null)
{
if (latest == null)
latest = await this._OnlineToPlainNoacAsync();
@@ -176,24 +175,27 @@ public void Poll()
this.RetrievePrimitives().ToList().ForEach(x => x.Poll());
}
- public Pocos.ArrayDeclarationSimpleNamespace.array_declaration_class CreateEmptyPoco()
+ public ArrayDeclarationSimpleNamespace.Pocos.array_declaration_class CreateEmptyPoco()
{
- return new Pocos.ArrayDeclarationSimpleNamespace.array_declaration_class();
+ return new ArrayDeclarationSimpleNamespace.Pocos.array_declaration_class();
}
private IList Children { get; } = new List();
+
public IEnumerable GetChildren()
{
return Children;
}
private IList Kids { get; } = new List();
+
public IEnumerable GetKids()
{
return Kids;
}
private IList ValueTags { get; } = new List();
+
public IEnumerable GetValueTags()
{
return ValueTags;
@@ -250,9 +252,7 @@ public System.String GetHumanReadable(System.Globalization.CultureInfo culture)
}
protected System.String @SymbolTail { get; set; }
-
protected AXSharp.Connector.ITwinObject @Parent { get; set; }
-
public AXSharp.Connector.Localizations.Translator Interpreter => global::units.PlcTranslator.Instance;
}
@@ -278,24 +278,24 @@ public async virtual Task OnlineToPlain()
return await (dynamic)this.OnlineToPlainAsync();
}
- public async Task OnlineToPlainAsync()
+ public async Task OnlineToPlainAsync()
{
- Pocos.ArrayDeclarationSimpleNamespace.some_complex_type plain = new Pocos.ArrayDeclarationSimpleNamespace.some_complex_type();
+ ArrayDeclarationSimpleNamespace.Pocos.some_complex_type plain = new ArrayDeclarationSimpleNamespace.Pocos.some_complex_type();
await this.ReadAsync();
return plain;
}
[Obsolete("This method should not be used if you indent to access the controllers data. Use `OnlineToPlain` instead.")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- public async Task _OnlineToPlainNoacAsync()
+ public async Task _OnlineToPlainNoacAsync()
{
- Pocos.ArrayDeclarationSimpleNamespace.some_complex_type plain = new Pocos.ArrayDeclarationSimpleNamespace.some_complex_type();
+ ArrayDeclarationSimpleNamespace.Pocos.some_complex_type plain = new ArrayDeclarationSimpleNamespace.Pocos.some_complex_type();
return plain;
}
[Obsolete("This method should not be used if you indent to access the controllers data. Use `OnlineToPlain` instead.")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- protected async Task _OnlineToPlainNoacAsync(Pocos.ArrayDeclarationSimpleNamespace.some_complex_type plain)
+ protected async Task _OnlineToPlainNoacAsync(ArrayDeclarationSimpleNamespace.Pocos.some_complex_type plain)
{
return plain;
}
@@ -305,14 +305,14 @@ public async virtual Task PlainToOnline(T plain)
await this.PlainToOnlineAsync((dynamic)plain);
}
- public async Task> PlainToOnlineAsync(Pocos.ArrayDeclarationSimpleNamespace.some_complex_type plain)
+ public async Task> PlainToOnlineAsync(ArrayDeclarationSimpleNamespace.Pocos.some_complex_type plain)
{
return await this.WriteAsync();
}
[Obsolete("This method should not be used if you indent to access the controllers data. Use `PlainToOnline` instead.")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- public async Task _PlainToOnlineNoacAsync(Pocos.ArrayDeclarationSimpleNamespace.some_complex_type plain)
+ public async Task _PlainToOnlineNoacAsync(ArrayDeclarationSimpleNamespace.Pocos.some_complex_type plain)
{
}
@@ -321,13 +321,13 @@ public async virtual Task ShadowToPlain()
return await (dynamic)this.ShadowToPlainAsync();
}
- public async Task ShadowToPlainAsync()
+ public async Task ShadowToPlainAsync()
{
- Pocos.ArrayDeclarationSimpleNamespace.some_complex_type plain = new Pocos.ArrayDeclarationSimpleNamespace.some_complex_type();
+ ArrayDeclarationSimpleNamespace.Pocos.some_complex_type plain = new ArrayDeclarationSimpleNamespace.Pocos.some_complex_type();
return plain;
}
- protected async Task ShadowToPlainAsync(Pocos.ArrayDeclarationSimpleNamespace.some_complex_type plain)
+ protected async Task ShadowToPlainAsync(ArrayDeclarationSimpleNamespace.Pocos.some_complex_type plain)
{
return plain;
}
@@ -337,7 +337,7 @@ public async virtual Task PlainToShadow(T plain)
await this.PlainToShadowAsync((dynamic)plain);
}
- public async Task> PlainToShadowAsync(Pocos.ArrayDeclarationSimpleNamespace.some_complex_type plain)
+ public async Task> PlainToShadowAsync(ArrayDeclarationSimpleNamespace.Pocos.some_complex_type plain)
{
return this.RetrievePrimitives();
}
@@ -352,7 +352,7 @@ public async virtual Task AnyChangeAsync(T plain)
///Compares if the current plain object has changed from the previous object.This method is used by the framework to determine if the object has changed and needs to be updated.
///[!NOTE] Any member in the hierarchy that is ignored by the compilers (e.g. when CompilerOmitAttribute is used) will not be compared, and therefore will not be detected as changed.
///
- public async Task DetectsAnyChangeAsync(Pocos.ArrayDeclarationSimpleNamespace.some_complex_type plain, Pocos.ArrayDeclarationSimpleNamespace.some_complex_type latest = null)
+ public async Task DetectsAnyChangeAsync(ArrayDeclarationSimpleNamespace.Pocos.some_complex_type plain, ArrayDeclarationSimpleNamespace.Pocos.some_complex_type latest = null)
{
if (latest == null)
latest = await this._OnlineToPlainNoacAsync();
@@ -369,24 +369,27 @@ public void Poll()
this.RetrievePrimitives().ToList().ForEach(x => x.Poll());
}
- public Pocos.ArrayDeclarationSimpleNamespace.some_complex_type CreateEmptyPoco()
+ public ArrayDeclarationSimpleNamespace.Pocos.some_complex_type CreateEmptyPoco()
{
- return new Pocos.ArrayDeclarationSimpleNamespace.some_complex_type();
+ return new ArrayDeclarationSimpleNamespace.Pocos.some_complex_type();
}
private IList Children { get; } = new List();
+
public IEnumerable GetChildren()
{
return Children;
}
private IList Kids { get; } = new List();
+
public IEnumerable GetKids()
{
return Kids;
}
private IList ValueTags { get; } = new List();
+
public IEnumerable GetValueTags()
{
return ValueTags;
@@ -443,9 +446,7 @@ public System.String GetHumanReadable(System.Globalization.CultureInfo culture)
}
protected System.String @SymbolTail { get; set; }
-
protected AXSharp.Connector.ITwinObject @Parent { get; set; }
-
public AXSharp.Connector.Localizations.Translator Interpreter => global::units.PlcTranslator.Instance;
}
}
\ No newline at end of file
diff --git a/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/samples/units/expected/.g/Onliners/class_all_primitives.g.cs b/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/samples/units/expected/.g/Onliners/class_all_primitives.g.cs
index cf0032ca1..a6bd7f84b 100644
--- a/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/samples/units/expected/.g/Onliners/class_all_primitives.g.cs
+++ b/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/samples/units/expected/.g/Onliners/class_all_primitives.g.cs
@@ -8,47 +8,26 @@
public partial class class_all_primitives : AXSharp.Connector.ITwinObject
{
public OnlinerBool myBOOL { get; }
-
public OnlinerByte myBYTE { get; }
-
public OnlinerWord myWORD { get; }
-
public OnlinerDWord myDWORD { get; }
-
public OnlinerLWord myLWORD { get; }
-
public OnlinerSInt mySINT { get; }
-
public OnlinerInt myINT { get; }
-
public OnlinerDInt myDINT { get; }
-
public OnlinerLInt myLINT { get; }
-
public OnlinerUSInt myUSINT { get; }
-
public OnlinerUInt myUINT { get; }
-
public OnlinerUDInt myUDINT { get; }
-
public OnlinerULInt myULINT { get; }
-
public OnlinerReal myREAL { get; }
-
public OnlinerLReal myLREAL { get; }
-
public OnlinerTime myTIME { get; }
-
public OnlinerLTime myLTIME { get; }
-
public OnlinerDate myDATE { get; }
-
public OnlinerTimeOfDay myTIME_OF_DAY { get; }
-
public OnlinerDateTime myDATE_AND_TIME { get; }
-
public OnlinerString mySTRING { get; }
-
public OnlinerWString myWSTRING { get; }
partial void PreConstruct(AXSharp.Connector.ITwinObject parent, string readableTail, string symbolTail);
@@ -93,9 +72,9 @@ public async virtual Task OnlineToPlain()
return await (dynamic)this.OnlineToPlainAsync();
}
- public async Task OnlineToPlainAsync()
+ public async Task OnlineToPlainAsync()
{
- Pocos.class_all_primitives plain = new Pocos.class_all_primitives();
+ global::Pocos.class_all_primitives plain = new global::Pocos.class_all_primitives();
await this.ReadAsync();
plain.myBOOL = myBOOL.LastValue;
plain.myBYTE = myBYTE.LastValue;
@@ -124,9 +103,9 @@ public async virtual Task OnlineToPlain()
[Obsolete("This method should not be used if you indent to access the controllers data. Use `OnlineToPlain` instead.")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- public async Task _OnlineToPlainNoacAsync()
+ public async Task _OnlineToPlainNoacAsync()
{
- Pocos.class_all_primitives plain = new Pocos.class_all_primitives();
+ global::Pocos.class_all_primitives plain = new global::Pocos.class_all_primitives();
plain.myBOOL = myBOOL.LastValue;
plain.myBYTE = myBYTE.LastValue;
plain.myWORD = myWORD.LastValue;
@@ -154,7 +133,7 @@ public async virtual Task OnlineToPlain()
[Obsolete("This method should not be used if you indent to access the controllers data. Use `OnlineToPlain` instead.")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- protected async Task _OnlineToPlainNoacAsync(Pocos.class_all_primitives plain)
+ protected async Task _OnlineToPlainNoacAsync(global::Pocos.class_all_primitives plain)
{
plain.myBOOL = myBOOL.LastValue;
plain.myBYTE = myBYTE.LastValue;
@@ -186,7 +165,7 @@ public async virtual Task PlainToOnline(T plain)
await this.PlainToOnlineAsync((dynamic)plain);
}
- public async Task> PlainToOnlineAsync(Pocos.class_all_primitives plain)
+ public async Task> PlainToOnlineAsync(global::Pocos.class_all_primitives plain)
{
#pragma warning disable CS0612
myBOOL.LethargicWrite(plain.myBOOL);
@@ -259,7 +238,7 @@ public async Task> PlainToOnlineAsync(Pocos.class_al
[Obsolete("This method should not be used if you indent to access the controllers data. Use `PlainToOnline` instead.")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- public async Task _PlainToOnlineNoacAsync(Pocos.class_all_primitives plain)
+ public async Task _PlainToOnlineNoacAsync(global::Pocos.class_all_primitives plain)
{
#pragma warning disable CS0612
myBOOL.LethargicWrite(plain.myBOOL);
@@ -334,9 +313,9 @@ public async virtual Task ShadowToPlain()
return await (dynamic)this.ShadowToPlainAsync();
}
- public async Task ShadowToPlainAsync()
+ public async Task ShadowToPlainAsync()
{
- Pocos.class_all_primitives plain = new Pocos.class_all_primitives();
+ global::Pocos.class_all_primitives plain = new global::Pocos.class_all_primitives();
plain.myBOOL = myBOOL.Shadow;
plain.myBYTE = myBYTE.Shadow;
plain.myWORD = myWORD.Shadow;
@@ -362,7 +341,7 @@ public async virtual Task ShadowToPlain()
return plain;
}
- protected async Task ShadowToPlainAsync(Pocos.class_all_primitives plain)
+ protected async Task ShadowToPlainAsync(global::Pocos.class_all_primitives plain)
{
plain.myBOOL = myBOOL.Shadow;
plain.myBYTE = myBYTE.Shadow;
@@ -394,7 +373,7 @@ public async virtual Task PlainToShadow(T plain)
await this.PlainToShadowAsync((dynamic)plain);
}
- public async Task> PlainToShadowAsync(Pocos.class_all_primitives plain)
+ public async Task> PlainToShadowAsync(global::Pocos.class_all_primitives plain)
{
myBOOL.Shadow = plain.myBOOL;
myBYTE.Shadow = plain.myBYTE;
@@ -431,7 +410,7 @@ public async virtual Task AnyChangeAsync(T plain)
///Compares if the current plain object has changed from the previous object.This method is used by the framework to determine if the object has changed and needs to be updated.
///[!NOTE] Any member in the hierarchy that is ignored by the compilers (e.g. when CompilerOmitAttribute is used) will not be compared, and therefore will not be detected as changed.
///
- public async Task DetectsAnyChangeAsync(Pocos.class_all_primitives plain, Pocos.class_all_primitives latest = null)
+ public async Task DetectsAnyChangeAsync(global::Pocos.class_all_primitives plain, global::Pocos.class_all_primitives latest = null)
{
if (latest == null)
latest = await this._OnlineToPlainNoacAsync();
@@ -492,24 +471,27 @@ public void Poll()
this.RetrievePrimitives().ToList().ForEach(x => x.Poll());
}
- public Pocos.class_all_primitives CreateEmptyPoco()
+ public global::Pocos.class_all_primitives CreateEmptyPoco()
{
- return new Pocos.class_all_primitives();
+ return new global::Pocos.class_all_primitives();
}
private IList Children { get; } = new List();
+
public IEnumerable GetChildren()
{
return Children;
}
private IList Kids { get; } = new List();
+
public IEnumerable GetKids()
{
return Kids;
}
private IList ValueTags { get; } = new List();
+
public IEnumerable GetValueTags()
{
return ValueTags;
@@ -566,8 +548,6 @@ public System.String GetHumanReadable(System.Globalization.CultureInfo culture)
}
protected System.String @SymbolTail { get; set; }
-
protected AXSharp.Connector.ITwinObject @Parent { get; set; }
-
public AXSharp.Connector.Localizations.Translator Interpreter => global::units.PlcTranslator.Instance;
}
\ No newline at end of file
diff --git a/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/samples/units/expected/.g/Onliners/class_extended_by_known_type.g.cs b/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/samples/units/expected/.g/Onliners/class_extended_by_known_type.g.cs
index 9a60d6bf3..17b37b6e7 100644
--- a/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/samples/units/expected/.g/Onliners/class_extended_by_known_type.g.cs
+++ b/src/AXSharp.compiler/tests/AXSharp.Compiler.CsTests/samples/units/expected/.g/Onliners/class_extended_by_known_type.g.cs
@@ -23,9 +23,9 @@ public async override Task OnlineToPlain()
return await (dynamic)this.OnlineToPlainAsync();
}
- public new async Task OnlineToPlainAsync()
+ public new async Task OnlineToPlainAsync()
{
- Pocos.Simatic.Ax.StateFramework.State1Transition plain = new Pocos.Simatic.Ax.StateFramework.State1Transition();
+ Simatic.Ax.StateFramework.Pocos.State1Transition plain = new Simatic.Ax.StateFramework.Pocos.State1Transition();
await this.ReadAsync();
#pragma warning disable CS0612
await base._OnlineToPlainNoacAsync(plain);
@@ -35,9 +35,9 @@ public async override Task OnlineToPlain()
[Obsolete("This method should not be used if you indent to access the controllers data. Use `OnlineToPlain` instead.")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- public new async Task _OnlineToPlainNoacAsync()
+ public new async Task _OnlineToPlainNoacAsync()
{
- Pocos.Simatic.Ax.StateFramework.State1Transition plain = new Pocos.Simatic.Ax.StateFramework.State1Transition();
+ Simatic.Ax.StateFramework.Pocos.State1Transition plain = new Simatic.Ax.StateFramework.Pocos.State1Transition();
#pragma warning disable CS0612
await base._OnlineToPlainNoacAsync(plain);
#pragma warning restore CS0612
@@ -46,7 +46,7 @@ public async override Task OnlineToPlain()
[Obsolete("This method should not be used if you indent to access the controllers data. Use `OnlineToPlain` instead.")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- protected async Task _OnlineToPlainNoacAsync(Pocos.Simatic.Ax.StateFramework.State1Transition plain)
+ protected async Task _OnlineToPlainNoacAsync(Simatic.Ax.StateFramework.Pocos.State1Transition plain)
{
#pragma warning disable CS0612
await base._OnlineToPlainNoacAsync(plain);
@@ -59,7 +59,7 @@ public async override Task PlainToOnline(T plain)
await this.PlainToOnlineAsync((dynamic)plain);
}
- public async Task> PlainToOnlineAsync(Pocos.Simatic.Ax.StateFramework.State1Transition plain)
+ public async Task> PlainToOnlineAsync(Simatic.Ax.StateFramework.Pocos.State1Transition plain)
{
await base._PlainToOnlineNoacAsync(plain);
return await this.WriteAsync();
@@ -67,7 +67,7 @@ public async Task> PlainToOnlineAsync(Pocos.Simatic.
[Obsolete("This method should not be used if you indent to access the controllers data. Use `PlainToOnline` instead.")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- public async Task _PlainToOnlineNoacAsync(Pocos.Simatic.Ax.StateFramework.State1Transition plain)
+ public async Task _PlainToOnlineNoacAsync(Simatic.Ax.StateFramework.Pocos.State1Transition plain)
{
await base._PlainToOnlineNoacAsync(plain);
}
@@ -77,14 +77,14 @@ public async override Task ShadowToPlain()
return await (dynamic)this.ShadowToPlainAsync();
}
- public new async Task ShadowToPlainAsync()
+ public new async Task ShadowToPlainAsync()
{
- Pocos.Simatic.Ax.StateFramework.State1Transition plain = new Pocos.Simatic.Ax.StateFramework.State1Transition();
+ Simatic.Ax.StateFramework.Pocos.State1Transition plain = new Simatic.Ax.StateFramework.Pocos.State1Transition();
await base.ShadowToPlainAsync(plain);
return plain;
}
- protected async Task ShadowToPlainAsync(Pocos.Simatic.Ax.StateFramework.State1Transition plain)
+ protected async Task ShadowToPlainAsync(Simatic.Ax.StateFramework.Pocos.State1Transition plain)
{
await base.ShadowToPlainAsync(plain);
return plain;
@@ -95,7 +95,7 @@ public async override Task PlainToShadow(T plain)
await this.PlainToShadowAsync((dynamic)plain);
}
- public async Task> PlainToShadowAsync(Pocos.Simatic.Ax.StateFramework.State1Transition plain)
+ public async Task> PlainToShadowAsync(Simatic.Ax.StateFramework.Pocos.State1Transition plain)
{
await base.PlainToShadowAsync(plain);
return this.RetrievePrimitives();
@@ -111,7 +111,7 @@ public async override Task AnyChangeAsync(T plain)
///Compares if the current plain object has changed from the previous object.This method is used by the framework to determine if the object has changed and needs to be updated.
///[!NOTE] Any member in the hierarchy that is ignored by the compilers (e.g. when CompilerOmitAttribute is used) will not be compared, and therefore will not be detected as changed.
///
- public new async Task DetectsAnyChangeAsync(Pocos.Simatic.Ax.StateFramework.State1Transition plain, Pocos.Simatic.Ax.StateFramework.State1Transition latest = null)
+ public new async Task DetectsAnyChangeAsync(Simatic.Ax.StateFramework.Pocos.State1Transition plain, Simatic.Ax.StateFramework.Pocos.State1Transition latest = null)
{
if (latest == null)
latest = await this._OnlineToPlainNoacAsync();
@@ -130,9 +130,9 @@ public async override Task AnyChangeAsync(T plain)
this.RetrievePrimitives().ToList().ForEach(x => x.Poll());
}
- public new Pocos.Simatic.Ax.StateFramework.State1Transition CreateEmptyPoco()
+ public new Simatic.Ax.StateFramework.Pocos.State1Transition CreateEmptyPoco()
{
- return new Pocos.Simatic.Ax.StateFramework.State1Transition();
+ return new Simatic.Ax.StateFramework.Pocos.State1Transition();
}
}
}
@@ -142,7 +142,6 @@ namespace Simatic.Ax.StateFramework
public partial class AbstractState : AXSharp.Connector.ITwinObject, IState, IStateMuteable
{
public OnlinerInt StateID { get; }
-
public OnlinerString StateName { get; }
partial void PreConstruct(AXSharp.Connector.ITwinObject parent, string readableTail, string symbolTail);
@@ -167,9 +166,9 @@ public async virtual Task OnlineToPlain()
return await (dynamic)this.OnlineToPlainAsync();
}
- public async Task OnlineToPlainAsync()
+ public async Task OnlineToPlainAsync()
{
- Pocos.Simatic.Ax.StateFramework.AbstractState plain = new Pocos.Simatic.Ax.StateFramework.AbstractState();
+ Simatic.Ax.StateFramework.Pocos.AbstractState plain = new Simatic.Ax.StateFramework.Pocos.AbstractState();
await this.ReadAsync();
plain.StateID = StateID.LastValue;
plain.StateName = StateName.LastValue;
@@ -178,9 +177,9 @@ public async virtual Task OnlineToPlain()
[Obsolete("This method should not be used if you indent to access the controllers data. Use `OnlineToPlain` instead.")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- public async Task _OnlineToPlainNoacAsync()
+ public async Task _OnlineToPlainNoacAsync()
{
- Pocos.Simatic.Ax.StateFramework.AbstractState plain = new Pocos.Simatic.Ax.StateFramework.AbstractState();
+ Simatic.Ax.StateFramework.Pocos.AbstractState plain = new Simatic.Ax.StateFramework.Pocos.AbstractState();
plain.StateID = StateID.LastValue;
plain.StateName = StateName.LastValue;
return plain;
@@ -188,7 +187,7 @@ public async virtual Task OnlineToPlain()
[Obsolete("This method should not be used if you indent to access the controllers data. Use `OnlineToPlain` instead.")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- protected async Task _OnlineToPlainNoacAsync(Pocos.Simatic.Ax.StateFramework.AbstractState plain)
+ protected async Task _OnlineToPlainNoacAsync(Simatic.Ax.StateFramework.Pocos.AbstractState plain)
{
plain.StateID = StateID.LastValue;
plain.StateName = StateName.LastValue;
@@ -200,7 +199,7 @@ public async virtual Task PlainToOnline(T plain)
await this.PlainToOnlineAsync((dynamic)plain);
}
- public async Task> PlainToOnlineAsync(Pocos.Simatic.Ax.StateFramework.AbstractState plain)
+ public async Task> PlainToOnlineAsync(Simatic.Ax.StateFramework.Pocos.AbstractState plain)
{
#pragma warning disable CS0612
StateID.LethargicWrite(plain.StateID);
@@ -213,7 +212,7 @@ public async Task> PlainToOnlineAsync(Pocos.Simatic.
[Obsolete("This method should not be used if you indent to access the controllers data. Use `PlainToOnline` instead.")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- public async Task _PlainToOnlineNoacAsync(Pocos.Simatic.Ax.StateFramework.AbstractState plain)
+ public async Task _PlainToOnlineNoacAsync(Simatic.Ax.StateFramework.Pocos.AbstractState plain)
{
#pragma warning disable CS0612
StateID.LethargicWrite(plain.StateID);
@@ -228,15 +227,15 @@ public async virtual Task ShadowToPlain()
return await (dynamic)this.ShadowToPlainAsync();
}
- public async Task ShadowToPlainAsync()
+ public async Task ShadowToPlainAsync()
{
- Pocos.Simatic.Ax.StateFramework.AbstractState plain = new Pocos.Simatic.Ax.StateFramework.AbstractState();
+ Simatic.Ax.StateFramework.Pocos.AbstractState plain = new Simatic.Ax.StateFramework.Pocos.AbstractState();
plain.StateID = StateID.Shadow;
plain.StateName = StateName.Shadow;
return plain;
}
- protected async Task ShadowToPlainAsync(Pocos.Simatic.Ax.StateFramework.AbstractState plain)
+ protected async Task ShadowToPlainAsync(Simatic.Ax.StateFramework.Pocos.AbstractState plain)
{
plain.StateID = StateID.Shadow;
plain.StateName = StateName.Shadow;
@@ -248,7 +247,7 @@ public async virtual Task PlainToShadow(T plain)
await this.PlainToShadowAsync((dynamic)plain);
}
- public async Task> PlainToShadowAsync(Pocos.Simatic.Ax.StateFramework.AbstractState plain)
+ public async Task> PlainToShadowAsync(Simatic.Ax.StateFramework.Pocos.AbstractState plain)
{
StateID.Shadow = plain.StateID;
StateName.Shadow = plain.StateName;
@@ -265,7 +264,7 @@ public async virtual Task AnyChangeAsync(T plain)
///Compares if the current plain object has changed from the previous object.This method is used by the framework to determine if the object has changed and needs to be updated.
///[!NOTE] Any member in the hierarchy that is ignored by the compilers (e.g. when CompilerOmitAttribute is used) will not be compared, and therefore will not be detected as changed.
///
- public async Task DetectsAnyChangeAsync(Pocos.Simatic.Ax.StateFramework.AbstractState plain, Pocos.Simatic.Ax.StateFramework.AbstractState latest = null)
+ public async Task DetectsAnyChangeAsync(Simatic.Ax.StateFramework.Pocos.AbstractState plain, Simatic.Ax.StateFramework.Pocos.AbstractState latest = null)
{
if (latest == null)
latest = await this._OnlineToPlainNoacAsync();
@@ -286,24 +285,27 @@ public void Poll()
this.RetrievePrimitives().ToList().ForEach(x => x.Poll());
}
- public Pocos.Simatic.Ax.StateFramework.AbstractState CreateEmptyPoco()
+ public Simatic.Ax.StateFramework.Pocos.AbstractState CreateEmptyPoco()
{
- return new Pocos.Simatic.Ax.StateFramework.AbstractState();
+ return new Simatic.Ax.StateFramework.Pocos.AbstractState();
}
private IList Children { get; } = new List();
+
public IEnumerable