Skip to content

Commit f4c3e2e

Browse files
committed
Make IPersistentCollection.GetSnapshot() return object instead of ICollection. Some of the implementations return sets, and when those are BCL sets they don't implement non-generic ICollection. Since the contents of the snapshots are never accessed outside each type of persistent collection (and probably never should be), we might as well make it a completely opaque object.
1 parent 2d324e0 commit f4c3e2e

9 files changed

+10
-10
lines changed

src/NHibernate/Collection/AbstractPersistentCollection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -797,7 +797,7 @@ public virtual object GetIdentifier(object entry, int i)
797797

798798
public abstract IEnumerable Entries(ICollectionPersister persister);
799799

800-
public abstract ICollection GetSnapshot(ICollectionPersister persister);
800+
public abstract object GetSnapshot(ICollectionPersister persister);
801801

802802
public abstract bool EqualsSnapshot(ICollectionPersister persister);
803803

src/NHibernate/Collection/Generic/PersistentGenericMap.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public PersistentGenericMap(ISessionImplementor session, IDictionary<TKey, TValu
3030
gmap = map;
3131
}
3232

33-
public override ICollection GetSnapshot(ICollectionPersister persister)
33+
public override object GetSnapshot(ICollectionPersister persister)
3434
{
3535
EntityMode entityMode = Session.EntityMode;
3636
Dictionary<TKey, TValue> clonedMap = new Dictionary<TKey, TValue>(map.Count);

src/NHibernate/Collection/Generic/PersistentGenericSet.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public override bool RowUpdatePossible
8787
get { return false; }
8888
}
8989

90-
public override ICollection GetSnapshot(ICollectionPersister persister)
90+
public override object GetSnapshot(ICollectionPersister persister)
9191
{
9292
var entityMode = Session.EntityMode;
9393
var clonedSet = new SetSnapShot<T>(set.Count);

src/NHibernate/Collection/IPersistentCollection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ public interface IPersistentCollection
251251
/// <summary>
252252
/// Return a new snapshot of the current state of the collection
253253
/// </summary>
254-
ICollection GetSnapshot(ICollectionPersister persister);
254+
object GetSnapshot(ICollectionPersister persister);
255255

256256
/// <summary>
257257
/// To be called internally by the session, forcing

src/NHibernate/Collection/PersistentArrayHolder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public override object GetValue()
6767
return array;
6868
}
6969

70-
public override ICollection GetSnapshot(ICollectionPersister persister)
70+
public override object GetSnapshot(ICollectionPersister persister)
7171
{
7272
EntityMode entityMode = Session.EntityMode;
7373

src/NHibernate/Collection/PersistentBag.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ private static int CountOccurrences(object element, IList list, IType elementTyp
132132
return result;
133133
}
134134

135-
public override ICollection GetSnapshot(ICollectionPersister persister)
135+
public override object GetSnapshot(ICollectionPersister persister)
136136
{
137137
EntityMode entityMode = Session.EntityMode;
138138
List<object> clonedList = new List<object>(bag.Count);

src/NHibernate/Collection/PersistentIdentifierBag.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ public override bool EqualsSnapshot(ICollectionPersister persister)
196196

197197
public override bool IsSnapshotEmpty(object snapshot)
198198
{
199-
return ((ICollection) snapshot).Count == 0;
199+
return ((ISet<SnapshotElement>) snapshot).Count == 0;
200200
}
201201

202202
public override IEnumerable GetDeletes(ICollectionPersister persister, bool indexIsFormula)
@@ -271,7 +271,7 @@ public override object ReadFrom(IDataReader reader, ICollectionPersister persist
271271
return element;
272272
}
273273

274-
public override ICollection GetSnapshot(ICollectionPersister persister)
274+
public override object GetSnapshot(ICollectionPersister persister)
275275
{
276276
EntityMode entityMode = Session.EntityMode;
277277

src/NHibernate/Collection/PersistentList.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public PersistentList(ISessionImplementor session, IList list) : base(session)
5151
IsDirectlyAccessible = true;
5252
}
5353

54-
public override ICollection GetSnapshot(ICollectionPersister persister)
54+
public override object GetSnapshot(ICollectionPersister persister)
5555
{
5656
EntityMode entityMode = Session.EntityMode;
5757

src/NHibernate/Collection/PersistentMap.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public PersistentMap(ISessionImplementor session, IDictionary map) : base(sessio
4242
IsDirectlyAccessible = true;
4343
}
4444

45-
public override ICollection GetSnapshot(ICollectionPersister persister)
45+
public override object GetSnapshot(ICollectionPersister persister)
4646
{
4747
EntityMode entityMode = Session.EntityMode;
4848
Hashtable clonedMap = new Hashtable(map.Count);

0 commit comments

Comments
 (0)