Skip to content

Commit b398eeb

Browse files
committed
Replace usage of ArrayList with List<object> (or specific generic version, where possible)
1 parent dbc5d97 commit b398eeb

31 files changed

+91
-81
lines changed

src/NHibernate.Test/QueryTest/MultiCriteriaFixture.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ public void CanGetResultInAGenericList()
451451
.Add<int>(countItems); // we expect a generic result from this (List<int>)
452452
var results = multiCriteria.List();
453453

454-
Assert.That(results[0], Is.InstanceOf<ArrayList>());
454+
Assert.That(results[0], Is.InstanceOf<List<object>>());
455455
Assert.That(results[1], Is.InstanceOf<List<int>>());
456456
}
457457
}

src/NHibernate.Test/QueryTest/MultipleMixedQueriesFixture.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@ public void CanGetResultsInAGenericList()
425425
.Add<long>(countItems)
426426
.List();
427427

428-
Assert.That(results[0], Is.InstanceOf<ArrayList>());
428+
Assert.That(results[0], Is.InstanceOf<List<object>>());
429429
Assert.That(results[1], Is.InstanceOf<List<long>>());
430430
}
431431
}

src/NHibernate.Test/QueryTest/MultipleQueriesFixture.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ public void CanGetResultsInAGenericList()
452452
.Add<long>(countItems)
453453
.List();
454454

455-
Assert.That(results[0], Is.InstanceOf<ArrayList>());
455+
Assert.That(results[0], Is.InstanceOf<List<object>>());
456456
Assert.That(results[1], Is.InstanceOf<List<long>>());
457457
}
458458
}
@@ -482,7 +482,7 @@ public void CanGetResultsInAGenericListClass()
482482
.Add<Item>(parents)
483483
.List();
484484

485-
Assert.That(results[0], Is.InstanceOf<ArrayList>());
485+
Assert.That(results[0], Is.InstanceOf<List<object>>());
486486
Assert.That(results[1], Is.InstanceOf<List<Item>>());
487487
}
488488
}
Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
using System.Collections;
2+
using System.Collections.Generic;
3+
using System.Linq;
24
using NHibernate.Engine;
35

46
namespace NHibernate.Cache.Entry
@@ -7,14 +9,17 @@ public class StructuredCollectionCacheEntry : ICacheEntryStructure
79
{
810
public virtual object Structure(object item)
911
{
10-
CollectionCacheEntry entry = (CollectionCacheEntry)item;
11-
return new ArrayList(entry.State);
12+
var entry = (CollectionCacheEntry)item;
13+
return new List<object>(entry.State);
1214
}
1315

1416
public virtual object Destructure(object item, ISessionFactoryImplementor factory)
1517
{
16-
ArrayList list = new ArrayList((IList)item);
17-
return new CollectionCacheEntry(list.ToArray());
18+
var collection = item as IEnumerable;
19+
var objects = collection != null
20+
? collection.Cast<object>().ToArray()
21+
: new object[0];
22+
return new CollectionCacheEntry(objects);
1823
}
1924
}
2025
}

src/NHibernate/Criterion/Example.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ private object[] GetPropertyValues(IEntityPersister persister, ICriteria criteri
278278
{
279279
return persister.GetPropertyValues(_entity, GetEntityMode(criteria, criteriaQuery));
280280
}
281-
ArrayList list = new ArrayList();
281+
var list = new List<object>();
282282
for(int i = 0; i < persister.PropertyNames.Length; i++)
283283
{
284284
PropertyInfo pInfo = type.GetProperty(persister.PropertyNames[i]);
@@ -354,9 +354,9 @@ public override TypedValue[] GetTypedValues(ICriteria criteria, ICriteriaQuery c
354354
IEntityPersister meta = criteriaQuery.Factory.GetEntityPersister(criteriaQuery.GetEntityName(criteria));
355355
string[] propertyNames = meta.PropertyNames;
356356
IType[] propertyTypes = meta.PropertyTypes;
357-
object[] values = GetPropertyValues(meta, criteria, criteriaQuery);
358-
359-
ArrayList list = new ArrayList();
357+
object[] values = GetPropertyValues(meta, criteria, criteriaQuery);
358+
359+
var list = new List<TypedValue>();
360360
for (int i = 0; i < propertyNames.Length; i++)
361361
{
362362
object value = values[i];
@@ -378,7 +378,7 @@ public override TypedValue[] GetTypedValues(ICriteria criteria, ICriteriaQuery c
378378
}
379379
}
380380

381-
return (TypedValue[]) list.ToArray(typeof(TypedValue));
381+
return list.ToArray();
382382
}
383383

384384
public override IProjection[] GetProjections()

src/NHibernate/Criterion/Junction.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,16 +60,16 @@ public Junction Add(Expression<Func<bool>> expression)
6060
protected abstract String Op { get; }
6161

6262
public override TypedValue[] GetTypedValues(ICriteria criteria, ICriteriaQuery criteriaQuery)
63-
{
64-
ArrayList typedValues = new ArrayList();
63+
{
64+
var typedValues = new List<TypedValue>();
6565

6666
foreach (ICriterion criterion in this.criteria)
6767
{
6868
TypedValue[] subvalues = criterion.GetTypedValues(criteria, criteriaQuery);
6969
ArrayHelper.AddAll(typedValues, subvalues);
7070
}
7171

72-
return (TypedValue[]) typedValues.ToArray(typeof(TypedValue));
72+
return typedValues.ToArray();
7373
}
7474

7575
/// <summary>

src/NHibernate/Criterion/ProjectionList.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ public string[] GetColumnAliases(string alias, int loc)
120120

121121
public string[] GetColumnAliases(int position, ICriteria criteria, ICriteriaQuery criteriaQuery)
122122
{
123-
IList result = new ArrayList(this.Length);
123+
IList result = new List<object>(this.Length);
124124
for (int i = 0; i < this.Length; i++)
125125
{
126126
string[] colAliases = ProjectionList.GetColumnAliases(position, criteria, criteriaQuery, this[i]);

src/NHibernate/Criterion/SqlFunctionProjection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public override SqlString ToSqlString(ICriteria criteria, int position, ICriteri
7474
{
7575
ISQLFunction sqlFunction = GetFunction(criteriaQuery);
7676

77-
var arguments = new ArrayList();
77+
var arguments = new List<object>();
7878
for (int i = 0; i < args.Length; i++)
7979
{
8080
SqlString projectArg = GetProjectionArgument(criteriaQuery, criteria, args[i], 0, enabledFilters); // The loc parameter is unused.

src/NHibernate/Driver/NDataReader.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public class NDataReader : IDataReader
4444
/// </remarks>
4545
public NDataReader(IDataReader reader, bool isMidstream)
4646
{
47-
ArrayList resultList = new ArrayList(2);
47+
var resultList = new List<NResult>(2);
4848

4949
try
5050
{
@@ -64,7 +64,7 @@ public NDataReader(IDataReader reader, bool isMidstream)
6464
resultList.Add(new NResult(reader, false));
6565
}
6666

67-
results = (NResult[]) resultList.ToArray(typeof(NResult));
67+
results = resultList.ToArray();
6868
}
6969
catch (Exception e)
7070
{

src/NHibernate/Hql/Classic/QueryTranslator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1401,8 +1401,8 @@ public string[] ConcreteQueries(string query, ISessionFactoryImplementor factory
14011401
return new String[] {query};
14021402
} // just especially for the trivial collection filter
14031403

1404-
ArrayList placeholders = new ArrayList();
1405-
ArrayList replacements = new ArrayList();
1404+
var placeholders = new List<object>();
1405+
var replacements = new List<object>();
14061406
StringBuilder templateQuery = new StringBuilder(40);
14071407
int count = 0;
14081408
string last = null;

src/NHibernate/Hql/QuerySplitter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ public static string[] ConcreteQueries(string query, ISessionFactoryImplementor
5252
{
5353
return new String[] {query}; // just especially for the trivial collection filter
5454
}
55-
ArrayList placeholders = new ArrayList();
56-
ArrayList replacements = new ArrayList();
55+
var placeholders = new List<object>();
56+
var replacements = new List<object>();
5757
StringBuilder templateQuery = new StringBuilder(40);
5858
int count = 0;
5959
string last = null;

src/NHibernate/Impl/AbstractDetachedQuery.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public abstract class AbstractDetachedQuery : IDetachedQuery, IDetachedQueryImpl
3333

3434
// Optional parameters are used for parameters values from bean.
3535
// The IQuery implementation use the actualNamedParameters to know which property it need.
36-
protected readonly IList optionalUntypeParams = new ArrayList(2);
36+
protected readonly IList optionalUntypeParams = new List<object>(2);
3737

3838
// Typed Parameters
3939
protected readonly Dictionary<int, TypedValue> posParams = new Dictionary<int, TypedValue>(4);

src/NHibernate/Impl/AbstractQueryImpl.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public abstract class AbstractQueryImpl : IQuery
2323
protected internal ParameterMetadata parameterMetadata;
2424

2525
private readonly RowSelection selection;
26-
private readonly ArrayList values = new ArrayList(4);
26+
private readonly List<object> values = new List<object>(4);
2727
private readonly List<IType> types = new List<IType>(4);
2828
private readonly Dictionary<string, TypedValue> namedParameters = new Dictionary<string, TypedValue>(4);
2929
protected readonly Dictionary<string, TypedValue> namedParameterLists = new Dictionary<string, TypedValue>(4);
@@ -985,7 +985,7 @@ public virtual IType[] TypeArray()
985985

986986
public virtual object[] ValueArray()
987987
{
988-
return (object[])values.ToArray(typeof(object));
988+
return values.ToArray();
989989
}
990990

991991
public virtual QueryParameters GetQueryParameters()

src/NHibernate/Impl/AbstractSessionImpl.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public virtual IList List(string query, QueryParameters parameters)
102102
{
103103
using (new SessionIdLoggingContext(SessionId))
104104
{
105-
var results = new ArrayList();
105+
var results = new List<object>();
106106
List(query, parameters, results);
107107
return results;
108108
}
@@ -154,7 +154,7 @@ public virtual IList List(CriteriaImpl criteria)
154154
{
155155
using (new SessionIdLoggingContext(SessionId))
156156
{
157-
var results = new ArrayList();
157+
var results = new List<object>();
158158
List(criteria, results);
159159
return results;
160160
}
@@ -177,7 +177,7 @@ public virtual IList List(NativeSQLQuerySpecification spec, QueryParameters quer
177177
{
178178
using (new SessionIdLoggingContext(SessionId))
179179
{
180-
var results = new ArrayList();
180+
var results = new List<object>();
181181
List(spec, queryParameters, results);
182182
return results;
183183
}

src/NHibernate/Impl/CriteriaImpl.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ public ICriteria Add(ICriterion expression)
252252

253253
public IList List()
254254
{
255-
ArrayList results = new ArrayList();
255+
var results = new List<object>();
256256
List(results);
257257
return results;
258258
}

src/NHibernate/Impl/FilterImpl.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ public IFilter SetParameterList(string name, ICollection values)
110110
/// <returns>This FilterImpl instance (for method chaining).</returns>
111111
public IFilter SetParameterList(string name, object[] values)
112112
{
113-
return SetParameterList(name, new ArrayList(values));
113+
return SetParameterList(name, new List<object>(values));
114114
}
115115

116116
public object GetParameter(string name)

src/NHibernate/Impl/MultiCriteriaImpl.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -139,12 +139,12 @@ private IList ListIgnoreQueryCache()
139139

140140
protected virtual IList GetResultList(IList results)
141141
{
142-
var resultCollections = new ArrayList(resultCollectionGenericType.Count);
142+
var resultCollections = new List<object>(resultCollectionGenericType.Count);
143143
for (int i = 0; i < criteriaQueries.Count; i++)
144144
{
145145
if (resultCollectionGenericType[i] == typeof(object))
146146
{
147-
resultCollections.Add(new ArrayList());
147+
resultCollections.Add(new List<object>());
148148
}
149149
else
150150
{
@@ -205,17 +205,17 @@ private void GetResultsFromDatabase(IList results)
205205
{
206206
using (var reader = resultSetsCommand.GetReader(null))
207207
{
208-
ArrayList[] hydratedObjects = new ArrayList[loaders.Count];
208+
var hydratedObjects = new List<object>[loaders.Count];
209209
List<EntityKey[]>[] subselectResultKeys = new List<EntityKey[]>[loaders.Count];
210210
bool[] createSubselects = new bool[loaders.Count];
211211
for (int i = 0; i < loaders.Count; i++)
212212
{
213213
CriteriaLoader loader = loaders[i];
214214
int entitySpan = loader.EntityPersisters.Length;
215-
hydratedObjects[i] = entitySpan == 0 ? null : new ArrayList(entitySpan);
215+
hydratedObjects[i] = entitySpan == 0 ? null : new List<object>(entitySpan);
216216
EntityKey[] keys = new EntityKey[entitySpan];
217217
QueryParameters queryParameters = parameters[i];
218-
IList tmpResults = new ArrayList();
218+
IList tmpResults = new List<object>();
219219

220220
RowSelection selection = parameters[i].RowSelection;
221221
createSubselects[i] = loader.IsSubselectLoadingEnabled;
@@ -435,8 +435,8 @@ private QueryParameters CreateCombinedQueryParameters()
435435
QueryParameters combinedQueryParameters = new QueryParameters();
436436
combinedQueryParameters.ForceCacheRefresh = forceCacheRefresh;
437437
combinedQueryParameters.NamedParameters = new Dictionary<string, TypedValue>();
438-
ArrayList positionalParameterTypes = new ArrayList();
439-
ArrayList positionalParameterValues = new ArrayList();
438+
var positionalParameterTypes = new List<IType>();
439+
var positionalParameterValues = new List<object>();
440440
int index = 0;
441441
foreach (QueryParameters queryParameters in parameters)
442442
{
@@ -448,8 +448,8 @@ private QueryParameters CreateCombinedQueryParameters()
448448
positionalParameterTypes.AddRange(queryParameters.PositionalParameterTypes);
449449
positionalParameterValues.AddRange(queryParameters.PositionalParameterValues);
450450
}
451-
combinedQueryParameters.PositionalParameterTypes = (IType[])positionalParameterTypes.ToArray(typeof(IType));
452-
combinedQueryParameters.PositionalParameterValues = (object[])positionalParameterValues.ToArray(typeof(object));
451+
combinedQueryParameters.PositionalParameterTypes = positionalParameterTypes.ToArray();
452+
combinedQueryParameters.PositionalParameterValues = positionalParameterValues.ToArray();
453453
return combinedQueryParameters;
454454
}
455455

src/NHibernate/Impl/MultiQueryImpl.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -446,12 +446,12 @@ protected void After()
446446

447447
protected virtual IList GetResultList(IList results)
448448
{
449-
var resultCollections = new ArrayList(resultCollectionGenericType.Count);
449+
var resultCollections = new List<object>(resultCollectionGenericType.Count);
450450
for (int i = 0; i < queries.Count; i++)
451451
{
452452
if (resultCollectionGenericType[i] == typeof(object))
453453
{
454-
resultCollections.Add(new ArrayList());
454+
resultCollections.Add(new List<object>());
455455
}
456456
else
457457
{
@@ -500,7 +500,7 @@ private bool HasMultiQueryResultTransformer()
500500
return resultTransformer != null;
501501
}
502502

503-
protected ArrayList DoList()
503+
protected List<object> DoList()
504504
{
505505
bool statsEnabled = session.Factory.Statistics.IsStatisticsEnabled;
506506
var stopWatch = new Stopwatch();
@@ -510,9 +510,9 @@ protected ArrayList DoList()
510510
}
511511
int rowCount = 0;
512512

513-
ArrayList results = new ArrayList();
513+
var results = new List<object>();
514514

515-
ArrayList[] hydratedObjects = new ArrayList[Translators.Count];
515+
var hydratedObjects = new List<object>[Translators.Count];
516516
List<EntityKey[]>[] subselectResultKeys = new List<EntityKey[]>[Translators.Count];
517517
bool[] createSubselects = new bool[Translators.Count];
518518

@@ -530,7 +530,7 @@ protected ArrayList DoList()
530530
QueryParameters parameter = Parameters[i];
531531

532532
int entitySpan = translator.Loader.EntityPersisters.Length;
533-
hydratedObjects[i] = entitySpan > 0 ? new ArrayList() : null;
533+
hydratedObjects[i] = entitySpan > 0 ? new List<object>() : null;
534534
RowSelection selection = parameter.RowSelection;
535535
int maxRows = Loader.Loader.HasMaxRows(selection) ? selection.MaxRows : int.MaxValue;
536536
if (!dialect.SupportsLimitOffset || !translator.Loader.UseLimit(selection, dialect))
@@ -552,7 +552,7 @@ protected ArrayList DoList()
552552
log.Debug("processing result set");
553553
}
554554

555-
IList tempResults = new ArrayList();
555+
IList tempResults = new List<object>();
556556
int count;
557557
for (count = 0; count < maxRows && reader.Read(); count++)
558558
{
@@ -708,7 +708,7 @@ private IList ListUsingQueryCache()
708708
if (result == null)
709709
{
710710
log.Debug("Cache miss for multi query");
711-
ArrayList list = DoList();
711+
var list = DoList();
712712
queryCache.Put(key, new ICacheAssembler[] { assembler }, new object[] { list }, false, session);
713713
result = list;
714714
}
@@ -733,8 +733,8 @@ private QueryParameters CreateCombinedQueryParameters()
733733
QueryParameters combinedQueryParameters = new QueryParameters();
734734
combinedQueryParameters.ForceCacheRefresh = forceCacheRefresh;
735735
combinedQueryParameters.NamedParameters = new Dictionary<string, TypedValue>();
736-
ArrayList positionalParameterTypes = new ArrayList();
737-
ArrayList positionalParameterValues = new ArrayList();
736+
var positionalParameterTypes = new List<IType>();
737+
var positionalParameterValues = new List<object>();
738738
int index = 0;
739739
foreach (QueryParameters queryParameters in Parameters)
740740
{
@@ -746,8 +746,8 @@ private QueryParameters CreateCombinedQueryParameters()
746746
positionalParameterTypes.AddRange(queryParameters.PositionalParameterTypes);
747747
positionalParameterValues.AddRange(queryParameters.PositionalParameterValues);
748748
}
749-
combinedQueryParameters.PositionalParameterTypes = (IType[])positionalParameterTypes.ToArray(typeof(IType));
750-
combinedQueryParameters.PositionalParameterValues = (object[])positionalParameterValues.ToArray(typeof(object));
749+
combinedQueryParameters.PositionalParameterTypes = positionalParameterTypes.ToArray();
750+
combinedQueryParameters.PositionalParameterValues = positionalParameterValues.ToArray();
751751
return combinedQueryParameters;
752752
}
753753

0 commit comments

Comments
 (0)