Skip to content

Commit

Permalink
feat:
Browse files Browse the repository at this point in the history
+ Generate methods with access modifiers specified in the generation attribute.
  • Loading branch information
Vyacheslav committed May 9, 2023
1 parent 469a7ac commit 1acfa58
Show file tree
Hide file tree
Showing 12 changed files with 58 additions and 30 deletions.
1 change: 1 addition & 0 deletions Src/DbConnectionTests/MsSql/QueryFixture.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using DbConnectionTests.Model;
using Gedaq.Common.Enums;
using Gedaq.DbConnection.Attributes;
using NUnit.Framework;
using System;
Expand Down
12 changes: 6 additions & 6 deletions Src/Gedaq/Base/Batch/BatchCommandBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ StringBuilder builder
{
builder.Append($@"
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static {(methodType == MethodType.Async ? $"async Task<{ProviderInfo.BatchType()}>" : ProviderInfo.BatchType())} Create{source.MethodName}Batch{(methodType == MethodType.Async ? "Async" : "")}(
{source.AccessModifier.ToLowerInvariant()} static {(methodType == MethodType.Async ? $"async Task<{ProviderInfo.BatchType()}>" : ProviderInfo.BatchType())} Create{source.MethodName}Batch{(methodType == MethodType.Async ? "Async" : "")}(
{source.ContainTypeName.GCThisWordOrEmpty()}{sourceTypeName} {sourceParametrName}
");
AddFormatParametrs(source, builder);
Expand Down Expand Up @@ -366,7 +366,7 @@ StringBuilder builder
{
builder.Append($@"
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void Set{source.MethodName}Parametrs(
{source.AccessModifier.ToLowerInvariant()} static void Set{source.MethodName}Parametrs(
{source.ContainTypeName.GCThisWordOrEmpty()}{ProviderInfo.BatchType()} batch
");
if(source.HaveParametrs)
Expand Down Expand Up @@ -509,14 +509,14 @@ StringBuilder builder
if (methodType == MethodType.Sync)
{
builder.Append($@"
public static IEnumerable<IEnumerable<{type}>> Execute{source.MethodName}Batch({source.ContainTypeName.GCThisWordOrEmpty()}{ProviderInfo.BatchType()} batch)
{source.AccessModifier.ToLowerInvariant()} static IEnumerable<IEnumerable<{type}>> Execute{source.MethodName}Batch({source.ContainTypeName.GCThisWordOrEmpty()}{ProviderInfo.BatchType()} batch)
{{
");
}
else
{
builder.Append($@"
public static async IAsyncEnumerable<IAsyncEnumerable<{type}>> Execute{source.MethodName}BatchAsync(
{source.AccessModifier.ToLowerInvariant()} static async IAsyncEnumerable<IAsyncEnumerable<{type}>> Execute{source.MethodName}BatchAsync(
{source.ContainTypeName.GCThisWordOrEmpty()}{ProviderInfo.BatchType()} batch,
[EnumeratorCancellation] CancellationToken cancellationToken = default
)
Expand Down Expand Up @@ -586,7 +586,7 @@ StringBuilder builder
if (methodType == MethodType.Sync)
{
builder.Append($@"
public static {BatchCommonBase.GetScalarTypeName(source, ProviderInfo)} Scalar{source.MethodName}Batch(
{source.AccessModifier.ToLowerInvariant()} static {BatchCommonBase.GetScalarTypeName(source, ProviderInfo)} Scalar{source.MethodName}Batch(
{source.ContainTypeName.GCThisWordOrEmpty()}{ProviderInfo.BatchType()} batch
");
BatchCommonBase.WriteMethodParametrs(source, builder);
Expand All @@ -599,7 +599,7 @@ StringBuilder builder
else
{
builder.Append($@"
public static async Task<{BatchCommonBase.GetScalarTypeName(source, ProviderInfo)}> Scalar{source.MethodName}BatchAsync(
{source.AccessModifier.ToLowerInvariant()} static async Task<{BatchCommonBase.GetScalarTypeName(source, ProviderInfo)}> Scalar{source.MethodName}BatchAsync(
{source.ContainTypeName.GCThisWordOrEmpty()}{ProviderInfo.BatchType()} batch,
CancellationToken cancellationToken = default
)
Expand Down
4 changes: 2 additions & 2 deletions Src/Gedaq/Base/Batch/QueryBatchReadBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,13 @@ StringBuilder builder
if (methodType == MethodType.Sync)
{
builder.Append($@"
public static IEnumerable<IEnumerable<{type}>> {source.MethodName}(
{source.AccessModifier.ToLowerInvariant()} static IEnumerable<IEnumerable<{type}>> {source.MethodName}(
");
}
else
{
builder.Append($@"
public static async IAsyncEnumerable<IAsyncEnumerable<{type}>> {source.MethodName}Async(
{source.AccessModifier.ToLowerInvariant()} static async IAsyncEnumerable<IAsyncEnumerable<{type}>> {source.MethodName}Async(
");
}
}
Expand Down
8 changes: 4 additions & 4 deletions Src/Gedaq/Base/Batch/QueryBatchScalarNoQueryBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -84,13 +84,13 @@ StringBuilder builder
if (methodType == MethodType.Sync)
{
builder.Append($@"
public static {BatchCommonBase.GetScalarTypeName(source, ProviderInfo)} Scalar{source.MethodName}(
{source.AccessModifier.ToLowerInvariant()} static {BatchCommonBase.GetScalarTypeName(source, ProviderInfo)} Scalar{source.MethodName}(
");
}
else
{
builder.Append($@"
public static async Task<{BatchCommonBase.GetScalarTypeName(source, ProviderInfo)}> Scalar{source.MethodName}Async(
{source.AccessModifier.ToLowerInvariant()} static async Task<{BatchCommonBase.GetScalarTypeName(source, ProviderInfo)}> Scalar{source.MethodName}Async(
");
}
}
Expand All @@ -104,13 +104,13 @@ StringBuilder builder
if (methodType == MethodType.Sync)
{
builder.Append($@"
public static System.Int32 NonQuery{source.MethodName}(
{source.AccessModifier.ToLowerInvariant()} static System.Int32 NonQuery{source.MethodName}(
");
}
else
{
builder.Append($@"
public static async Task<System.Int32> NonQuery{source.MethodName}Async(
{source.AccessModifier.ToLowerInvariant()} static async Task<System.Int32> NonQuery{source.MethodName}Async(
");
}
}
Expand Down
5 changes: 5 additions & 0 deletions Src/Gedaq/Base/Model/BaseMethodInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,11 @@ private AccessModifier GetAccessModifier(
INamedTypeSymbol type
)
{
if(accessModifier != AccessModifier.AsContainingClass)
{
return accessModifier;
}

if (type.DeclaredAccessibility == Accessibility.Private)
{
return AccessModifier.Private;
Expand Down
12 changes: 6 additions & 6 deletions Src/Gedaq/Base/Query/CommandGeneratorBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ StringBuilder builder
{
builder.Append($@"
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static {(methodType == MethodType.Async ? $"async Task<{ProviderInfo.CommandType()}>" : ProviderInfo.CommandType())} Create{source.MethodName}Command{(methodType == MethodType.Async ? "Async" : "")}(
{source.AccessModifier.ToLowerInvariant()} static {(methodType == MethodType.Async ? $"async Task<{ProviderInfo.CommandType()}>" : ProviderInfo.CommandType())} Create{source.MethodName}Command{(methodType == MethodType.Async ? "Async" : "")}(
{source.ContainTypeName.GCThisWordOrEmpty()}{sourceTypeName} {sourceParametrName}
");
QueryCommonBase.AddFormatParametrs(source, builder);
Expand Down Expand Up @@ -215,14 +215,14 @@ StringBuilder builder
if (methodType == MethodType.Sync)
{
builder.Append($@"
public static IEnumerable<{source.MapTypeName.GetFullTypeName(true)}> Execute{source.MethodName}Command({source.ContainTypeName.GCThisWordOrEmpty()}{ProviderInfo.CommandType()} command)
{source.AccessModifier.ToLowerInvariant()} static IEnumerable<{source.MapTypeName.GetFullTypeName(true)}> Execute{source.MethodName}Command({source.ContainTypeName.GCThisWordOrEmpty()}{ProviderInfo.CommandType()} command)
{{
");
}
else
{
builder.Append($@"
public static async IAsyncEnumerable<{source.MapTypeName.GetFullTypeName(true)}> Execute{source.MethodName}CommandAsync(
{source.AccessModifier.ToLowerInvariant()} static async IAsyncEnumerable<{source.MapTypeName.GetFullTypeName(true)}> Execute{source.MethodName}CommandAsync(
{source.ContainTypeName.GCThisWordOrEmpty()}{ProviderInfo.CommandType()} command,
[EnumeratorCancellation] CancellationToken cancellationToken = default
)
Expand Down Expand Up @@ -291,7 +291,7 @@ StringBuilder builder
if (methodType == MethodType.Sync)
{
builder.Append($@"
public static {QueryCommonBase.GetScalarTypeName(source, ProviderInfo)} Scalar{source.MethodName}Command(
{source.AccessModifier.ToLowerInvariant()} static {QueryCommonBase.GetScalarTypeName(source, ProviderInfo)} Scalar{source.MethodName}Command(
{source.ContainTypeName.GCThisWordOrEmpty()}{ProviderInfo.CommandType()} command
");
QueryCommonBase.AddParametrs(source, builder, true);
Expand All @@ -303,7 +303,7 @@ StringBuilder builder
else
{
builder.Append($@"
public static async Task<{QueryCommonBase.GetScalarTypeName(source, ProviderInfo)}> Scalar{source.MethodName}CommandAsync(
{source.AccessModifier.ToLowerInvariant()} static async Task<{QueryCommonBase.GetScalarTypeName(source, ProviderInfo)}> Scalar{source.MethodName}CommandAsync(
{source.ContainTypeName.GCThisWordOrEmpty()}{ProviderInfo.CommandType()} command
");
QueryCommonBase.AddParametrs(source, builder, false);
Expand Down Expand Up @@ -339,7 +339,7 @@ StringBuilder builder
{
builder.Append($@"
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void Set{source.MethodName}Parametrs(
{source.AccessModifier.ToLowerInvariant()} static void Set{source.MethodName}Parametrs(
{source.ContainTypeName.GCThisWordOrEmpty()}{ProviderInfo.CommandType()} command
");
QueryCommonBase.AddParametrs(source, builder, false);
Expand Down
4 changes: 2 additions & 2 deletions Src/Gedaq/Base/Query/QueryReadBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,13 @@ StringBuilder builder
if (methodType == MethodType.Sync)
{
builder.Append($@"
public static IEnumerable<{source.MapTypeName.GetFullTypeName(true)}> {source.MethodName}(
{source.AccessModifier.ToLowerInvariant()} static IEnumerable<{source.MapTypeName.GetFullTypeName(true)}> {source.MethodName}(
");
}
else
{
builder.Append($@"
public static async IAsyncEnumerable<{source.MapTypeName.GetFullTypeName(true)}> {source.MethodName}Async(
{source.AccessModifier.ToLowerInvariant()} static async IAsyncEnumerable<{source.MapTypeName.GetFullTypeName(true)}> {source.MethodName}Async(
");
}
}
Expand Down
8 changes: 4 additions & 4 deletions Src/Gedaq/Base/Query/QueryScalarNonQueryBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -130,13 +130,13 @@ StringBuilder builder
if (methodType == MethodType.Sync)
{
builder.Append($@"
public static System.Int32 NonQuery{source.MethodName}(
{source.AccessModifier.ToLowerInvariant()} static System.Int32 NonQuery{source.MethodName}(
");
}
else
{
builder.Append($@"
public static async Task<System.Int32> NonQuery{source.MethodName}Async(
{source.AccessModifier.ToLowerInvariant()} static async Task<System.Int32> NonQuery{source.MethodName}Async(
");
}
}
Expand All @@ -150,13 +150,13 @@ StringBuilder builder
if (methodType == MethodType.Sync)
{
builder.Append($@"
public static {QueryCommonBase.GetScalarTypeName(source, ProviderInfo)} Scalar{source.MethodName}(
{source.AccessModifier.ToLowerInvariant()} static {QueryCommonBase.GetScalarTypeName(source, ProviderInfo)} Scalar{source.MethodName}(
");
}
else
{
builder.Append($@"
public static async Task<{QueryCommonBase.GetScalarTypeName(source, ProviderInfo)}> Scalar{source.MethodName}Async(
{source.AccessModifier.ToLowerInvariant()} static async Task<{QueryCommonBase.GetScalarTypeName(source, ProviderInfo)}> Scalar{source.MethodName}Async(
");
}
}
Expand Down
2 changes: 1 addition & 1 deletion Src/Gedaq/Gedaq.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
</ItemGroup>
<PropertyGroup>
<PackageId>Gedaq</PackageId>
<PackageVersion>1.2.1.0</PackageVersion>
<PackageVersion>1.4.0.0</PackageVersion>
<Authors>Brevnov Vyacheslav Sergeevich</Authors>
<RepositoryUrl>https://github.com/SoftStoneDevelop/Gedaq</RepositoryUrl>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
Expand Down
24 changes: 23 additions & 1 deletion Src/Gedaq/Helpers/TypeHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,29 @@ internal static string GCDeclarationName(
string extansionPrefix
)
{
return $@"{methodInfo.AccessModifier.ToLowerInvariant()} {type.GCStaticWordOrEmpty()} {type.GCPartialWordOrEmpty()} class {(type.IsPatrial() ? type.Name : $"{methodInfo.MethodName}{extansionPrefix}Extension")}";
return $@"{type.ToAccessModifier().ToLowerInvariant()} {type.GCStaticWordOrEmpty()} {type.GCPartialWordOrEmpty()} class {(type.IsPatrial() ? type.Name : $"{methodInfo.MethodName}{extansionPrefix}Extension")}";
}

internal static AccessModifier ToAccessModifier(
this INamedTypeSymbol type
)
{
if (type.DeclaredAccessibility == Accessibility.Private)
{
return AccessModifier.Private;
}

if (type.DeclaredAccessibility == Accessibility.Protected)
{
return AccessModifier.Protected;
}

if (type.DeclaredAccessibility == Accessibility.Internal)
{
return AccessModifier.Internal;
}

return AccessModifier.Public;
}
}
internal static class TypeHelper
Expand Down
4 changes: 2 additions & 2 deletions Src/Gedaq/Npgsql/Generators/BinaryExportGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ private void StartMethod(BinaryExport binaryExport, NpgsqlSourceType sourceType,
if(methodType == MethodType.Async)
{
_methodCode.Append($@"
public static async IAsyncEnumerable<{binaryExport.MapTypeName.GetFullTypeName(true, true)}> {binaryExport.MethodName}Async(
{binaryExport.AccessModifier.ToLowerInvariant()} static async IAsyncEnumerable<{binaryExport.MapTypeName.GetFullTypeName(true, true)}> {binaryExport.MethodName}Async(
{binaryExport.ContainTypeName.GCThisWordOrEmpty()}{sourceType.ToTypeName()} {sourceType.ToParametrName()},
TimeSpan? timeout = null,
[EnumeratorCancellation] CancellationToken cancellationToken = default
Expand All @@ -98,7 +98,7 @@ private void StartMethod(BinaryExport binaryExport, NpgsqlSourceType sourceType,
else
{
_methodCode.Append($@"
public static IEnumerable<{binaryExport.MapTypeName.GetFullTypeName(true, true)}> {binaryExport.MethodName}(
{binaryExport.AccessModifier.ToLowerInvariant()} static IEnumerable<{binaryExport.MapTypeName.GetFullTypeName(true, true)}> {binaryExport.MethodName}(
{binaryExport.ContainTypeName.GCThisWordOrEmpty()}{sourceType.ToTypeName()} {sourceType.ToParametrName()},
TimeSpan? timeout = null
)
Expand Down
4 changes: 2 additions & 2 deletions Src/Gedaq/Npgsql/Generators/BinaryImportGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ bool isAsyncCollection
if (methodType == MethodType.Async)
{
_methodCode.Append($@"
public static async Task {binaryImport.MethodName}Async(
{binaryImport.AccessModifier.ToLowerInvariant()} static async Task {binaryImport.MethodName}Async(
{binaryImport.ContainTypeName.GCThisWordOrEmpty()}{sourceType.ToTypeName()} {sourceType.ToParametrName()},
{collectionType} collection,
TimeSpan? timeout = null,
Expand All @@ -113,7 +113,7 @@ bool isAsyncCollection
else
{
_methodCode.Append($@"
public static void {binaryImport.MethodName}(
{binaryImport.AccessModifier.ToLowerInvariant()} static void {binaryImport.MethodName}(
{binaryImport.ContainTypeName.GCThisWordOrEmpty()}{sourceType.ToTypeName()} {sourceType.ToParametrName()},
{collectionType} collection,
TimeSpan? timeout = null
Expand Down

0 comments on commit 1acfa58

Please sign in to comment.