|
From: <fab...@us...> - 2011-04-20 21:27:39
|
Revision: 5728
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5728&view=rev
Author: fabiomaulo
Date: 2011-04-20 21:27:33 +0000 (Wed, 20 Apr 2011)
Log Message:
-----------
Refactoring (+ fix wrong test)
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/AbstractBasePropertyContainerMapper.cs
trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/AbstractPropertyContainerMapperTest.cs
Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/AbstractBasePropertyContainerMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/AbstractBasePropertyContainerMapper.cs 2011-04-20 20:50:46 UTC (rev 5727)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/AbstractBasePropertyContainerMapper.cs 2011-04-20 21:27:33 UTC (rev 5728)
@@ -37,7 +37,7 @@
public virtual void Property(MemberInfo property, Action<IPropertyMapper> mapping)
{
- if (!property.DeclaringType.IsAssignableFrom(container))
+ if (!IsMemberSupportedByMappedContainer(property))
{
throw new ArgumentOutOfRangeException("property", "Can't add a property of another graph");
}
@@ -46,28 +46,49 @@
AddProperty(hbmProperty);
}
+ protected virtual bool IsMemberSupportedByMappedContainer(MemberInfo property)
+ {
+ return property.DeclaringType.IsAssignableFrom(container);
+ }
+
public virtual void Component(MemberInfo property, Action<IComponentMapper> mapping)
{
- var hbm = new HbmComponent {name = property.Name};
+ if (!IsMemberSupportedByMappedContainer(property))
+ {
+ throw new ArgumentOutOfRangeException("property", "Can't add a property of another graph");
+ }
+ var hbm = new HbmComponent { name = property.Name };
mapping(new ComponentMapper(hbm, property.GetPropertyOrFieldType(), property, MapDoc));
AddProperty(hbm);
}
public virtual void Component(MemberInfo property, Action<IDynamicComponentMapper> mapping)
{
+ if (!IsMemberSupportedByMappedContainer(property))
+ {
+ throw new ArgumentOutOfRangeException("property", "Can't add a property of another graph");
+ }
throw new NotImplementedException();
}
public virtual void ManyToOne(MemberInfo property, Action<IManyToOneMapper> mapping)
{
- var hbm = new HbmManyToOne {name = property.Name};
+ if (!IsMemberSupportedByMappedContainer(property))
+ {
+ throw new ArgumentOutOfRangeException("property", "Can't add a property of another graph");
+ }
+ var hbm = new HbmManyToOne { name = property.Name };
mapping(new ManyToOneMapper(property, hbm, MapDoc));
AddProperty(hbm);
}
public void Any(MemberInfo property, System.Type idTypeOfMetaType, Action<IAnyMapper> mapping)
{
- var hbm = new HbmAny {name = property.Name};
+ if (!IsMemberSupportedByMappedContainer(property))
+ {
+ throw new ArgumentOutOfRangeException("property", "Can't add a property of another graph");
+ }
+ var hbm = new HbmAny { name = property.Name };
mapping(new AnyMapper(property, idTypeOfMetaType, hbm, MapDoc));
AddProperty(hbm);
}
Modified: trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/AbstractPropertyContainerMapperTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/AbstractPropertyContainerMapperTest.cs 2011-04-20 20:50:46 UTC (rev 5727)
+++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/AbstractPropertyContainerMapperTest.cs 2011-04-20 21:27:33 UTC (rev 5728)
@@ -88,7 +88,7 @@
public void CallAnyMapper()
{
var properties = new List<object>();
- var map = new StubPropertyContainerMapper<EntitySimple>(properties);
+ var map = new StubPropertyContainerMapper<MyClass>(properties);
var called = false;
map.Any(typeof(MyClass).GetProperty("Reference"), typeof(int), x => called = true);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|