Skip to content

Commit a25aab9

Browse files
authored
Obsolete JoinedEnumerable (#3543)
1 parent 25be55c commit a25aab9

File tree

7 files changed

+30
-23
lines changed

7 files changed

+30
-23
lines changed

src/NHibernate.Test/Async/Legacy/FooBarTest.cs

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
using System.Diagnostics;
1717
using System.Globalization;
1818
using System.IO;
19+
using System.Linq;
1920
using System.Runtime.Serialization;
2021
using System.Runtime.Serialization.Formatters.Binary;
2122
using System.Text;
@@ -1222,10 +1223,7 @@ public async Task BatchLoadAsync()
12221223
await (s.DeleteAsync(baz2));
12231224
await (s.DeleteAsync(baz3));
12241225

1225-
IEnumerable en = new JoinedEnumerable(
1226-
new IEnumerable[] {baz.FooSet, baz2.FooSet});
1227-
1228-
foreach (object obj in en)
1226+
foreach (var obj in baz.FooSet.Concat(baz2.FooSet))
12291227
{
12301228
await (s.DeleteAsync(obj));
12311229
}
@@ -5273,16 +5271,13 @@ public async Task TransientOrphanDeleteAsync()
52735271
Baz baz = new Baz();
52745272
var bars = new HashSet<BarProxy> { new Bar(), new Bar(), new Bar() };
52755273
baz.CascadingBars = bars;
5276-
IList<Foo> foos = new List<Foo>();
5277-
foos.Add(new Foo());
5278-
foos.Add(new Foo());
5274+
var foos = new List<Foo> { new Foo(), new Foo() };
52795275
baz.FooBag = foos;
52805276
await (s.SaveAsync(baz));
52815277

5282-
IEnumerator enumer = new JoinedEnumerable(new IEnumerable[] {foos, bars}).GetEnumerator();
5283-
while (enumer.MoveNext())
5278+
foreach (var foo in foos.Concat(bars.Cast<FooProxy>()))
52845279
{
5285-
FooComponent cmp = ((Foo) enumer.Current).Component;
5280+
var cmp = foo.Component;
52865281
await (s.DeleteAsync(cmp.Glarch));
52875282
cmp.Glarch = null;
52885283
}

src/NHibernate.Test/Legacy/FooBarTest.cs

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System.Diagnostics;
77
using System.Globalization;
88
using System.IO;
9+
using System.Linq;
910
using System.Runtime.Serialization;
1011
using System.Runtime.Serialization.Formatters.Binary;
1112
using System.Text;
@@ -1210,10 +1211,7 @@ public void BatchLoad()
12101211
s.Delete(baz2);
12111212
s.Delete(baz3);
12121213

1213-
IEnumerable en = new JoinedEnumerable(
1214-
new IEnumerable[] {baz.FooSet, baz2.FooSet});
1215-
1216-
foreach (object obj in en)
1214+
foreach (var obj in baz.FooSet.Concat(baz2.FooSet))
12171215
{
12181216
s.Delete(obj);
12191217
}
@@ -5261,16 +5259,13 @@ public void TransientOrphanDelete()
52615259
Baz baz = new Baz();
52625260
var bars = new HashSet<BarProxy> { new Bar(), new Bar(), new Bar() };
52635261
baz.CascadingBars = bars;
5264-
IList<Foo> foos = new List<Foo>();
5265-
foos.Add(new Foo());
5266-
foos.Add(new Foo());
5262+
var foos = new List<Foo> { new Foo(), new Foo() };
52675263
baz.FooBag = foos;
52685264
s.Save(baz);
52695265

5270-
IEnumerator enumer = new JoinedEnumerable(new IEnumerable[] {foos, bars}).GetEnumerator();
5271-
while (enumer.MoveNext())
5266+
foreach (var foo in foos.Concat(bars.Cast<FooProxy>()))
52725267
{
5273-
FooComponent cmp = ((Foo) enumer.Current).Component;
5268+
var cmp = foo.Component;
52745269
s.Delete(cmp.Glarch);
52755270
cmp.Glarch = null;
52765271
}

src/NHibernate.Test/UtilityTest/JoinedEnumerableFixture.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ namespace NHibernate.Test.UtilityTest
88
/// <summary>
99
/// Test cases for the <see cref="JoinedEnumerable"/> class.
1010
/// </summary>
11+
// Since v5.6
12+
[Obsolete]
1113
[TestFixture]
1214
public class JoinedEnumerableFixture
1315
{

src/NHibernate/Async/Engine/Query/HQLQueryPlan.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,8 @@ public async Task<IEnumerable> PerformIterateAsync(QueryParameters queryParamete
122122
var result = await (Translators[i].GetEnumerableAsync(queryParameters, session, cancellationToken)).ConfigureAwait(false);
123123
results[i] = result;
124124
}
125-
return new JoinedEnumerable(results);
125+
126+
return Enumerate(results);
126127
}
127128

128129
public async Task<IEnumerable<T>> PerformIterateAsync<T>(QueryParameters queryParameters, IEventSource session, CancellationToken cancellationToken)

src/NHibernate/Engine/Query/HQLQueryPlan.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,19 @@ public IEnumerable PerformIterate(QueryParameters queryParameters, IEventSource
171171
var result = Translators[i].GetEnumerable(queryParameters, session);
172172
results[i] = result;
173173
}
174-
return new JoinedEnumerable(results);
174+
175+
return Enumerate(results);
176+
}
177+
178+
private static IEnumerable Enumerate(IEnumerable[] enumerables)
179+
{
180+
foreach (var enumerable in enumerables)
181+
{
182+
foreach (var o in enumerable)
183+
{
184+
yield return o;
185+
}
186+
}
175187
}
176188

177189
public IEnumerable<T> PerformIterate<T>(QueryParameters queryParameters, IEventSource session)

src/NHibernate/IQueryOver.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ public interface IQueryOver<TRoot,TSubType> : IQueryOver<TRoot>
362362
/// </summary>
363363
/// <param name="path">A lambda expression path (e.g., ChildList[0].Granchildren[0].Pets).</param>
364364
/// <returns></returns>
365-
// Since 5.2
365+
// Since v5.2
366366
[Obsolete("Use Fetch(SelectMode mode, Expression<Func<TSubType, object>> path) instead")]
367367
IQueryOverFetchBuilder<TRoot,TSubType> Fetch(Expression<Func<TRoot, object>> path);
368368

src/NHibernate/Util/JoinedEnumerable.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ namespace NHibernate.Util
88
/// <summary>
99
/// Concatenates multiple objects implementing <see cref="IEnumerable"/> into one.
1010
/// </summary>
11+
// Since v5.6
12+
[Obsolete("This class has no more usages in NHibernate and will be removed in a future version.")]
1113
public class JoinedEnumerable : IEnumerable
1214
{
1315
private static readonly INHibernateLogger log = NHibernateLogger.For(typeof(JoinedEnumerable));

0 commit comments

Comments
 (0)