Skip to content

Commit 8fae98c

Browse files
hazzikmaca88
authored andcommitted
Use helper method to upcast classes
1 parent 8079eb5 commit 8fae98c

File tree

5 files changed

+11
-31
lines changed

5 files changed

+11
-31
lines changed

src/NHibernate/Engine/ISessionImplementor.cs

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,8 @@ internal static void AutoFlushIfRequired(this ISessionImplementor implementor, I
7373
/// <param name="queryParameters">The query parameters.</param>
7474
public static IAsyncEnumerable<T> AsyncEnumerable<T>(this ISessionImplementor session, IQueryExpression query, QueryParameters queryParameters)
7575
{
76-
if (session is AbstractSessionImpl abstractSession)
77-
{
78-
return abstractSession.AsyncEnumerable<T>(query, queryParameters);
79-
}
80-
81-
throw new NotImplementedException();
76+
return ReflectHelper.CastOrThrow<AbstractSessionImpl>(session, "async enumerable")
77+
.AsyncEnumerable<T>(query, queryParameters);
8278
}
8379

8480
/// <summary>
@@ -91,12 +87,8 @@ public static IAsyncEnumerable<T> AsyncEnumerable<T>(this ISessionImplementor se
9187
/// <param name="parameters">The query parameters.</param>
9288
public static IAsyncEnumerable<T> AsyncEnumerableFilter<T>(this ISessionImplementor session, object collection, string filter, QueryParameters parameters)
9389
{
94-
if (session is AbstractSessionImpl abstractSession)
95-
{
96-
return abstractSession.AsyncEnumerableFilter<T>(collection, filter, parameters);
97-
}
98-
99-
throw new NotImplementedException();
90+
return ReflectHelper.CastOrThrow<AbstractSessionImpl>(session, "async enumerable")
91+
.AsyncEnumerableFilter<T>(collection, filter, parameters);
10092
}
10193

10294
/// <summary>

src/NHibernate/Hql/IQueryTranslator.cs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using NHibernate.Event;
99
using NHibernate.Hql.Ast.ANTLR;
1010
using NHibernate.Type;
11+
using NHibernate.Util;
1112

1213
namespace NHibernate.Hql
1314
{
@@ -140,12 +141,8 @@ internal static class QueryTranslatorExtensions
140141
/// <param name="session">The session.</param>
141142
public static IAsyncEnumerable<T> GetAsyncEnumerable<T>(this IQueryTranslator queryTranslator, QueryParameters queryParameters, IEventSource session)
142143
{
143-
if (queryTranslator is QueryTranslatorImpl queryTranslatorImpl)
144-
{
145-
return queryTranslatorImpl.GetAsyncEnumerable<T>(queryParameters, session);
146-
}
147-
148-
throw new NotImplementedException();
144+
return ReflectHelper.CastOrThrow<QueryTranslatorImpl>(queryTranslator, "async enumerable")
145+
.GetAsyncEnumerable<T>(queryParameters, session);
149146
}
150147
}
151148
}

src/NHibernate/IQuery.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using NHibernate.Impl;
77
using System.Threading.Tasks;
88
using System.Threading;
9+
using NHibernate.Util;
910

1011
namespace NHibernate
1112
{
@@ -711,12 +712,7 @@ public static class QueryExtensions
711712
/// <param name="query">The query.</param>
712713
public static IAsyncEnumerable<T> AsyncEnumerable<T>(this IQuery query)
713714
{
714-
if (query is AbstractQueryImpl abstractQuery)
715-
{
716-
return abstractQuery.AsyncEnumerable<T>();
717-
}
718-
719-
throw new NotImplementedException();
715+
return ReflectHelper.CastOrThrow<AbstractQueryImpl>(query, "async enumerable").AsyncEnumerable<T>();
720716
}
721717
}
722718
}

src/NHibernate/Impl/AbstractSessionImpl.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -661,7 +661,6 @@ internal IOuterJoinLoadable GetOuterJoinLoadable(string entityName)
661661
[Obsolete("This method has no more usages and will be removed in a future version")]
662662
public abstract Task<IEnumerable<T>> EnumerableAsync<T>(IQueryExpression queryExpression, QueryParameters queryParameters, CancellationToken cancellationToken);
663663

664-
665664
// 6.0 TODO: make abstract
666665
public virtual IAsyncEnumerable<T> AsyncEnumerable<T>(IQueryExpression queryExpression, QueryParameters queryParameters)
667666
{

src/NHibernate/Linq/DefaultQueryProvider.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,8 @@ internal static class NhQueryProviderExtensions
3939
/// <param name="expression">The query expression.</param>
4040
public static IAsyncEnumerable<T> GetAsyncEnumerable<T>(this INhQueryProvider nhQueryProvider, Expression expression)
4141
{
42-
if (nhQueryProvider is DefaultQueryProvider defaultQueryProvider)
43-
{
44-
return defaultQueryProvider.GetAsyncEnumerable<T>(expression);
45-
}
46-
47-
throw new NotImplementedException();
42+
return ReflectHelper.CastOrThrow<DefaultQueryProvider>(nhQueryProvider, "async enumerable")
43+
.GetAsyncEnumerable<T>(expression);
4844
}
4945
}
5046

0 commit comments

Comments
 (0)