From: <fab...@us...> - 2009-10-18 15:53:39
|
Revision: 4779 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4779&view=rev Author: fabiomaulo Date: 2009-10-18 15:53:31 +0000 (Sun, 18 Oct 2009) Log Message: ----------- Refactoring to Fix NH-1936 Modified Paths: -------------- branches/2.1.x/nhibernate/src/NHibernate/Event/AbstractEvent.cs branches/2.1.x/nhibernate/src/NHibernate/Event/AbstractPreDatabaseOperationEvent.cs branches/2.1.x/nhibernate/src/NHibernate/Event/PostDeleteEvent.cs branches/2.1.x/nhibernate/src/NHibernate/Event/PostInsertEvent.cs branches/2.1.x/nhibernate/src/NHibernate/Event/PostLoadEvent.cs branches/2.1.x/nhibernate/src/NHibernate/Event/PostUpdateEvent.cs branches/2.1.x/nhibernate/src/NHibernate/Event/PreLoadEvent.cs branches/2.1.x/nhibernate/src/NHibernate/NHibernate.csproj Added Paths: ----------- branches/2.1.x/nhibernate/src/NHibernate/Event/AbstractPostDatabaseOperationEvent.cs branches/2.1.x/nhibernate/src/NHibernate/Event/IDatabaseEventArgs.cs branches/2.1.x/nhibernate/src/NHibernate/Event/IPostDatabaseOperationEventArgs.cs branches/2.1.x/nhibernate/src/NHibernate/Event/IPreDatabaseOperationEventArgs.cs Modified: branches/2.1.x/nhibernate/src/NHibernate/Event/AbstractEvent.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate/Event/AbstractEvent.cs 2009-10-18 14:50:49 UTC (rev 4778) +++ branches/2.1.x/nhibernate/src/NHibernate/Event/AbstractEvent.cs 2009-10-18 15:53:31 UTC (rev 4779) @@ -6,7 +6,7 @@ /// Defines a base class for Session generated events. /// </summary> [Serializable] - public class AbstractEvent + public class AbstractEvent : IDatabaseEventArgs { /// <summary> /// Constructs an event from the given event session. Added: branches/2.1.x/nhibernate/src/NHibernate/Event/AbstractPostDatabaseOperationEvent.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate/Event/AbstractPostDatabaseOperationEvent.cs (rev 0) +++ branches/2.1.x/nhibernate/src/NHibernate/Event/AbstractPostDatabaseOperationEvent.cs 2009-10-18 15:53:31 UTC (rev 4779) @@ -0,0 +1,36 @@ +using System; +using NHibernate.Persister.Entity; + +namespace NHibernate.Event +{ + /// <summary> + /// Represents an operation we performed against the database. + /// </summary> + [Serializable] + public class AbstractPostDatabaseOperationEvent : AbstractEvent, IPostDatabaseOperationEventArgs + { + /// <summary> Constructs an event containing the pertinent information. </summary> + /// <param name="source">The session from which the event originated. </param> + /// <param name="entity">The entity to be invloved in the database operation. </param> + /// <param name="id">The entity id to be invloved in the database operation. </param> + /// <param name="persister">The entity's persister. </param> + protected AbstractPostDatabaseOperationEvent(IEventSource source, object entity, object id, IEntityPersister persister) + : base(source) + { + Entity = entity; + Id = id; + Persister = persister; + } + + /// <summary> The entity involved in the database operation. </summary> + public object Entity { get; private set; } + + /// <summary> The id to be used in the database operation. </summary> + public object Id { get; private set; } + + /// <summary> + /// The persister for the <see cref="Entity"/>. + /// </summary> + public IEntityPersister Persister { get; private set; } + } +} \ No newline at end of file Modified: branches/2.1.x/nhibernate/src/NHibernate/Event/AbstractPreDatabaseOperationEvent.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate/Event/AbstractPreDatabaseOperationEvent.cs 2009-10-18 14:50:49 UTC (rev 4778) +++ branches/2.1.x/nhibernate/src/NHibernate/Event/AbstractPreDatabaseOperationEvent.cs 2009-10-18 15:53:31 UTC (rev 4779) @@ -8,7 +8,7 @@ /// Represents an operation we are about to perform against the database. /// </summary> [Serializable] - public abstract class AbstractPreDatabaseOperationEvent : AbstractEvent + public abstract class AbstractPreDatabaseOperationEvent : AbstractEvent, IPreDatabaseOperationEventArgs { /// <summary> Constructs an event containing the pertinent information. </summary> /// <param name="source">The session from which the event originated. </param> Added: branches/2.1.x/nhibernate/src/NHibernate/Event/IDatabaseEventArgs.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate/Event/IDatabaseEventArgs.cs (rev 0) +++ branches/2.1.x/nhibernate/src/NHibernate/Event/IDatabaseEventArgs.cs 2009-10-18 15:53:31 UTC (rev 4779) @@ -0,0 +1,11 @@ +namespace NHibernate.Event +{ + public interface IDatabaseEventArgs + { + /// <summary> + /// Returns the session event source for this event. + /// This is the underlying session from which this event was generated. + /// </summary> + IEventSource Session { get; } + } +} \ No newline at end of file Added: branches/2.1.x/nhibernate/src/NHibernate/Event/IPostDatabaseOperationEventArgs.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate/Event/IPostDatabaseOperationEventArgs.cs (rev 0) +++ branches/2.1.x/nhibernate/src/NHibernate/Event/IPostDatabaseOperationEventArgs.cs 2009-10-18 15:53:31 UTC (rev 4779) @@ -0,0 +1,21 @@ +using NHibernate.Persister.Entity; + +namespace NHibernate.Event +{ + /// <summary> + /// Represents an operation we performed against the database. + /// </summary> + public interface IPostDatabaseOperationEventArgs : IDatabaseEventArgs + { + /// <summary> The entity involved in the database operation. </summary> + object Entity { get; } + + /// <summary> The id to be used in the database operation. </summary> + object Id { get; } + + /// <summary> + /// The persister for the <see cref="Entity"/>. + /// </summary> + IEntityPersister Persister { get; } + } +} \ No newline at end of file Added: branches/2.1.x/nhibernate/src/NHibernate/Event/IPreDatabaseOperationEventArgs.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate/Event/IPreDatabaseOperationEventArgs.cs (rev 0) +++ branches/2.1.x/nhibernate/src/NHibernate/Event/IPreDatabaseOperationEventArgs.cs 2009-10-18 15:53:31 UTC (rev 4779) @@ -0,0 +1,18 @@ +using NHibernate.Persister.Entity; + +namespace NHibernate.Event +{ + public interface IPreDatabaseOperationEventArgs : IDatabaseEventArgs + { + /// <summary> The entity involved in the database operation. </summary> + object Entity { get; } + + /// <summary> The id to be used in the database operation. </summary> + object Id { get; } + + /// <summary> + /// The persister for the <see cref="Entity"/>. + /// </summary> + IEntityPersister Persister { get; } + } +} \ No newline at end of file Modified: branches/2.1.x/nhibernate/src/NHibernate/Event/PostDeleteEvent.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate/Event/PostDeleteEvent.cs 2009-10-18 14:50:49 UTC (rev 4778) +++ branches/2.1.x/nhibernate/src/NHibernate/Event/PostDeleteEvent.cs 2009-10-18 15:53:31 UTC (rev 4779) @@ -7,40 +7,14 @@ /// Occurs after deleting an item from the datastore /// </summary> [Serializable] - public class PostDeleteEvent : AbstractEvent + public class PostDeleteEvent : AbstractPostDatabaseOperationEvent { - private readonly object entity; - private readonly object id; - private readonly IEntityPersister persister; - private readonly object[] deletedState; - public PostDeleteEvent(object entity, object id, object[] deletedState, IEntityPersister persister, IEventSource source) - : base(source) + : base(source, entity, id, persister) { - this.entity = entity; - this.id = id; - this.persister = persister; - this.deletedState = deletedState; + DeletedState = deletedState; } - public object Entity - { - get { return entity; } - } - - public object Id - { - get { return id; } - } - - public IEntityPersister Persister - { - get { return persister; } - } - - public object[] DeletedState - { - get { return deletedState; } - } + public object[] DeletedState { get; private set; } } } Modified: branches/2.1.x/nhibernate/src/NHibernate/Event/PostInsertEvent.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate/Event/PostInsertEvent.cs 2009-10-18 14:50:49 UTC (rev 4778) +++ branches/2.1.x/nhibernate/src/NHibernate/Event/PostInsertEvent.cs 2009-10-18 15:53:31 UTC (rev 4779) @@ -1,6 +1,4 @@ using System; -using System.Collections.Generic; -using System.Text; using NHibernate.Persister.Entity; namespace NHibernate.Event @@ -9,40 +7,14 @@ /// Occurs after inserting an item in the datastore /// </summary> [Serializable] - public class PostInsertEvent : AbstractEvent + public class PostInsertEvent : AbstractPostDatabaseOperationEvent { - private readonly object entity; - private readonly object id; - private readonly object[] state; - private readonly IEntityPersister persister; - public PostInsertEvent(object entity, object id, object[] state, IEntityPersister persister, IEventSource source) - : base(source) + : base(source, entity,id,persister) { - this.entity = entity; - this.id = id; - this.state = state; - this.persister = persister; + State = state; } - public object Entity - { - get { return entity; } - } - - public object Id - { - get { return id; } - } - - public object[] State - { - get { return state; } - } - - public IEntityPersister Persister - { - get { return persister; } - } + public object[] State { get; private set; } } } Modified: branches/2.1.x/nhibernate/src/NHibernate/Event/PostLoadEvent.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate/Event/PostLoadEvent.cs 2009-10-18 14:50:49 UTC (rev 4778) +++ branches/2.1.x/nhibernate/src/NHibernate/Event/PostLoadEvent.cs 2009-10-18 15:53:31 UTC (rev 4779) @@ -7,7 +7,7 @@ /// Occurs after an an entity instance is fully loaded. /// </summary> [Serializable] - public class PostLoadEvent : AbstractEvent + public class PostLoadEvent : AbstractEvent, IPostDatabaseOperationEventArgs { private object entity; private object id; Modified: branches/2.1.x/nhibernate/src/NHibernate/Event/PostUpdateEvent.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate/Event/PostUpdateEvent.cs 2009-10-18 14:50:49 UTC (rev 4778) +++ branches/2.1.x/nhibernate/src/NHibernate/Event/PostUpdateEvent.cs 2009-10-18 15:53:31 UTC (rev 4779) @@ -1,6 +1,4 @@ using System; -using System.Collections.Generic; -using System.Text; using NHibernate.Persister.Entity; namespace NHibernate.Event @@ -9,47 +7,17 @@ /// Occurs after the datastore is updated /// </summary> [Serializable] - public class PostUpdateEvent : AbstractEvent + public class PostUpdateEvent : AbstractPostDatabaseOperationEvent { - private readonly object entity; - private readonly object id; - private readonly object[] state; - private readonly object[] oldState; - private readonly IEntityPersister persister; - public PostUpdateEvent(object entity, object id, object[] state, object[] oldState, IEntityPersister persister, IEventSource source) - : base(source) + : base(source, entity, id, persister) { - this.entity = entity; - this.id = id; - this.state = state; - this.oldState = oldState; - this.persister = persister; + State = state; + OldState = oldState; } - public object Entity - { - get { return entity; } - } + public object[] State { get; private set; } - public object Id - { - get { return id; } - } - - public object[] State - { - get { return state; } - } - - public object[] OldState - { - get { return oldState; } - } - - public IEntityPersister Persister - { - get { return persister; } - } + public object[] OldState { get; private set; } } } Modified: branches/2.1.x/nhibernate/src/NHibernate/Event/PreLoadEvent.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate/Event/PreLoadEvent.cs 2009-10-18 14:50:49 UTC (rev 4778) +++ branches/2.1.x/nhibernate/src/NHibernate/Event/PreLoadEvent.cs 2009-10-18 15:53:31 UTC (rev 4779) @@ -7,7 +7,7 @@ /// Called before injecting property values into a newly loaded entity instance. /// </summary> [Serializable] - public class PreLoadEvent : AbstractEvent + public class PreLoadEvent : AbstractEvent, IPreDatabaseOperationEventArgs { private object entity; private object[] state; Modified: branches/2.1.x/nhibernate/src/NHibernate/NHibernate.csproj =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate/NHibernate.csproj 2009-10-18 14:50:49 UTC (rev 4778) +++ branches/2.1.x/nhibernate/src/NHibernate/NHibernate.csproj 2009-10-18 15:53:31 UTC (rev 4779) @@ -480,8 +480,12 @@ <Compile Include="Driver\IfxDriver.cs" /> <Compile Include="Driver\OracleLiteDataClientDriver.cs" /> <Compile Include="EntityModeEqualityComparer.cs" /> + <Compile Include="Event\AbstractPostDatabaseOperationEvent.cs" /> <Compile Include="Event\AbstractPreDatabaseOperationEvent.cs" /> <Compile Include="Event\IDestructible.cs" /> + <Compile Include="Event\IDatabaseEventArgs.cs" /> + <Compile Include="Event\IPostDatabaseOperationEventArgs.cs" /> + <Compile Include="Event\IPreDatabaseOperationEventArgs.cs" /> <Compile Include="Exceptions\AdoExceptionContextInfo.cs" /> <Compile Include="Exceptions\ReflectionBasedSqlStateExtracter.cs" /> <Compile Include="Exceptions\SqlStateExtracter.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |