public CollectionListeners(ISessionFactory sf)
		{
			preCollectionRecreateListener = new PreCollectionRecreateListener(this);
			initializeCollectionListener = new InitializeCollectionListener(this);
			preCollectionRemoveListener = new PreCollectionRemoveListener(this);
			preCollectionUpdateListener = new PreCollectionUpdateListener(this);
			postCollectionRecreateListener = new PostCollectionRecreateListener(this);
			postCollectionRemoveListener = new PostCollectionRemoveListener(this);
			postCollectionUpdateListener = new PostCollectionUpdateListener(this);
			SessionFactoryImpl impl = (SessionFactoryImpl) sf;
			impl.EventListeners.InitializeCollectionEventListeners = new IInitializeCollectionEventListener[]
			                                                         	{initializeCollectionListener};

			impl.EventListeners.PreCollectionRecreateEventListeners = new IPreCollectionRecreateEventListener[]
			                                                          	{preCollectionRecreateListener};
			impl.EventListeners.PostCollectionRecreateEventListeners = new IPostCollectionRecreateEventListener[]
			                                                           	{postCollectionRecreateListener};
			impl.EventListeners.PreCollectionRemoveEventListeners = new IPreCollectionRemoveEventListener[]
			                                                        	{preCollectionRemoveListener};
			impl.EventListeners.PostCollectionRemoveEventListeners = new IPostCollectionRemoveEventListener[]
			                                                         	{postCollectionRemoveListener};
			impl.EventListeners.PreCollectionUpdateEventListeners = new IPreCollectionUpdateEventListener[]
			                                                        	{preCollectionUpdateListener};
			impl.EventListeners.PostCollectionUpdateEventListeners = new IPostCollectionUpdateEventListener[]
			                                                         	{postCollectionUpdateListener};
		}
        public CollectionListeners(ISessionFactory sf)
        {
            preCollectionRecreateListener  = new PreCollectionRecreateListener(this);
            initializeCollectionListener   = new InitializeCollectionListener(this);
            preCollectionRemoveListener    = new PreCollectionRemoveListener(this);
            preCollectionUpdateListener    = new PreCollectionUpdateListener(this);
            postCollectionRecreateListener = new PostCollectionRecreateListener(this);
            postCollectionRemoveListener   = new PostCollectionRemoveListener(this);
            postCollectionUpdateListener   = new PostCollectionUpdateListener(this);
            var listeners = ((DebugSessionFactory)sf).EventListeners;

            listeners.InitializeCollectionEventListeners =
                new IInitializeCollectionEventListener[] { initializeCollectionListener };
            listeners.PreCollectionRecreateEventListeners =
                new IPreCollectionRecreateEventListener[] { preCollectionRecreateListener };
            listeners.PostCollectionRecreateEventListeners =
                new IPostCollectionRecreateEventListener[] { postCollectionRecreateListener };
            listeners.PreCollectionRemoveEventListeners =
                new IPreCollectionRemoveEventListener[] { preCollectionRemoveListener };
            listeners.PostCollectionRemoveEventListeners =
                new IPostCollectionRemoveEventListener[] { postCollectionRemoveListener };
            listeners.PreCollectionUpdateEventListeners =
                new IPreCollectionUpdateEventListener[] { preCollectionUpdateListener };
            listeners.PostCollectionUpdateEventListeners =
                new IPostCollectionUpdateEventListener[] { postCollectionUpdateListener };
        }
        public CollectionListeners(ISessionFactory sf)
        {
            preCollectionRecreateListener  = new PreCollectionRecreateListener(this);
            initializeCollectionListener   = new InitializeCollectionListener(this);
            preCollectionRemoveListener    = new PreCollectionRemoveListener(this);
            preCollectionUpdateListener    = new PreCollectionUpdateListener(this);
            postCollectionRecreateListener = new PostCollectionRecreateListener(this);
            postCollectionRemoveListener   = new PostCollectionRemoveListener(this);
            postCollectionUpdateListener   = new PostCollectionUpdateListener(this);
            SessionFactoryImpl impl = (SessionFactoryImpl)sf;

            impl.EventListeners.InitializeCollectionEventListeners = new IInitializeCollectionEventListener[]
            { initializeCollectionListener };

            impl.EventListeners.PreCollectionRecreateEventListeners = new IPreCollectionRecreateEventListener[]
            { preCollectionRecreateListener };
            impl.EventListeners.PostCollectionRecreateEventListeners = new IPostCollectionRecreateEventListener[]
            { postCollectionRecreateListener };
            impl.EventListeners.PreCollectionRemoveEventListeners = new IPreCollectionRemoveEventListener[]
            { preCollectionRemoveListener };
            impl.EventListeners.PostCollectionRemoveEventListeners = new IPostCollectionRemoveEventListener[]
            { postCollectionRemoveListener };
            impl.EventListeners.PreCollectionUpdateEventListeners = new IPreCollectionUpdateEventListener[]
            { preCollectionUpdateListener };
            impl.EventListeners.PostCollectionUpdateEventListeners = new IPostCollectionUpdateEventListener[]
            { postCollectionUpdateListener };
        }