Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Impl
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26229/src/NHibernate/Impl
Modified Files:
Tag: alpha_avalon-proxy
SessionImpl.cs
Log Message:
much work done to implement proxies with classes and virtual properties.
All test that are being run now pass with proxy="some class"
Index: SessionImpl.cs
===================================================================
RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Impl/SessionImpl.cs,v
retrieving revision 1.44.2.2
retrieving revision 1.44.2.3
diff -C2 -d -r1.44.2.2 -r1.44.2.3
*** SessionImpl.cs 3 Oct 2004 16:58:14 -0000 1.44.2.2
--- SessionImpl.cs 5 Oct 2004 15:25:05 -0000 1.44.2.3
***************
*** 994,998 ****
IClassPersister persister = GetPersister( li.PersistentClass );
Key key = new Key( li.Identifier, persister );
! if ( !proxiesByKey.Contains(key) ) proxiesByKey[key] = proxy; // any earlier proxy takes precedence
NHibernateProxyHelper.GetLazyInitializer( (INHibernateProxy) proxy ).Session = this;
}
--- 994,1002 ----
IClassPersister persister = GetPersister( li.PersistentClass );
Key key = new Key( li.Identifier, persister );
! if ( !proxiesByKey.Contains(key) )
! {
! proxiesByKey[key] = proxy; // any earlier proxy takes precedence
! }
!
NHibernateProxyHelper.GetLazyInitializer( (INHibernateProxy) proxy ).Session = this;
}
***************
*** 1921,1926 ****
else
{
! //TODO: Get the proxy - there is some CGLIB code here
! proxy = null;
proxiesByKey[key] = proxy;
--- 1925,1936 ----
else
{
! IProxyGenerator generator = ProxyGeneratorFactory.GetProxyGenerator();
! proxy = generator.GetProxy(
! p.MappedClass
! , p.ConcreteProxyClass
! , p.ProxyInterfaces
! , p.ProxyIdentifierProperty
! , key.Identifier
! , this );
proxiesByKey[key] = proxy;
***************
*** 2123,2127 ****
{
IProxyGenerator generator = ProxyGeneratorFactory.GetProxyGenerator();
! proxy = generator.GetProxy( clazz, persister.ProxyInterfaces, persister.ProxyIdentifierProperty, id, this );
}
proxiesByKey[key] = proxy;
--- 2133,2137 ----
{
IProxyGenerator generator = ProxyGeneratorFactory.GetProxyGenerator();
! proxy = generator.GetProxy( clazz, persister.ConcreteProxyClass, persister.ProxyInterfaces, persister.ProxyIdentifierProperty, id, this );
}
proxiesByKey[key] = proxy;
***************
*** 2748,2752 ****
{
LazyInitializer li = NHibernateProxyHelper.GetLazyInitializer( (INHibernateProxy) obj );
! if ( li.Session!=this ) throw new TransientObjectException("The proxy was not associated with this session");
return li.Identifier;
}
--- 2758,2765 ----
{
LazyInitializer li = NHibernateProxyHelper.GetLazyInitializer( (INHibernateProxy) obj );
! if ( li.Session!=this )
! {
! throw new TransientObjectException("The proxy was not associated with this session");
! }
return li.Identifier;
}
***************
*** 3881,3885 ****
if (obj is INHibernateProxy)
{
! LazyInitializer li = NHibernateProxyHelper.GetLazyInitializer( (INHibernateProxy) obj );
object id = li.Identifier;
IClassPersister persister = GetPersister( li.PersistentClass );
--- 3894,3898 ----
if (obj is INHibernateProxy)
{
! LazyInitializer li = NHibernateProxyHelper.GetLazyInitializer( (INHibernateProxy) obj );
object id = li.Identifier;
IClassPersister persister = GetPersister( li.PersistentClass );
|