From: <fab...@us...> - 2011-04-06 18:11:21
|
Revision: 5627 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5627&view=rev Author: fabiomaulo Date: 2011-04-06 18:11:14 +0000 (Wed, 06 Apr 2011) Log Message: ----------- Facility to get mappings for declared entities Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersHolder.cs trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ICustomizersHolder.cs trunk/nhibernate/src/NHibernate/Mapping/ByCode/ModelMapper.cs trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/BasicMappingOfSimpleClass.cs trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/ConformistMappingRegistrationTests/ClassMappingRegistrationTest.cs Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersHolder.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersHolder.cs 2011-04-06 17:49:34 UTC (rev 5626) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersHolder.cs 2011-04-06 18:11:14 UTC (rev 5627) @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; namespace NHibernate.Mapping.ByCode.Impl { @@ -183,6 +184,11 @@ AddCustomizer(mapKeyElementCustomizers, member, mapKeyElementCustomizer); } + public IEnumerable<System.Type> GetAllCustomizedEntities() + { + return rootClassCustomizers.Keys.Concat(subclassCustomizers.Keys).Concat(joinedClassCustomizers.Keys).Concat(unionClassCustomizers.Keys); + } + public void InvokeCustomizers(System.Type type, IClassMapper mapper) { InvokeCustomizers(rootClassCustomizers, type, mapper); Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ICustomizersHolder.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ICustomizersHolder.cs 2011-04-06 17:49:34 UTC (rev 5626) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ICustomizersHolder.cs 2011-04-06 18:11:14 UTC (rev 5627) @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; namespace NHibernate.Mapping.ByCode.Impl { @@ -72,5 +73,7 @@ void AddCustomizer(PropertyPath member, Action<IMapKeyMapper> mapKeyElementCustomizer); #endregion + + IEnumerable<System.Type> GetAllCustomizedEntities(); } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/ModelMapper.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/ModelMapper.cs 2011-04-06 17:49:34 UTC (rev 5626) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/ModelMapper.cs 2011-04-06 18:11:14 UTC (rev 5627) @@ -1650,5 +1650,15 @@ AddMapping(type); } } + + public HbmMapping CompileMappingForAllExplicitAddedEntities() + { + return CompileMappingFor(customizerHolder.GetAllCustomizedEntities()); + } + + public IEnumerable<HbmMapping> CompileMappingForEachExplicitAddedEntity() + { + return CompileMappingForEach(customizerHolder.GetAllCustomizedEntities()); + } } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/BasicMappingOfSimpleClass.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/BasicMappingOfSimpleClass.cs 2011-04-06 17:49:34 UTC (rev 5626) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/BasicMappingOfSimpleClass.cs 2011-04-06 18:11:14 UTC (rev 5627) @@ -73,7 +73,7 @@ }); ca.Property(x => x.Something, map => map.Length(150)); }); - var hbmMapping = mapper.CompileMappingFor(new[] { typeof(MyClass) }); + var hbmMapping = mapper.CompileMappingForAllExplicitAddedEntities(); ModelIsWellFormed(hbmMapping); } Modified: trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/ConformistMappingRegistrationTests/ClassMappingRegistrationTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/ConformistMappingRegistrationTests/ClassMappingRegistrationTest.cs 2011-04-06 17:49:34 UTC (rev 5626) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/ConformistMappingRegistrationTests/ClassMappingRegistrationTest.cs 2011-04-06 18:11:14 UTC (rev 5627) @@ -58,6 +58,16 @@ ModelIsWellFormed(hbmMapping); } + [Test] + public void WhenRegisterClassMappingThroughTypeThenGetMapping() + { + var mapper = new ModelMapper(); + mapper.AddMapping(typeof(MyClassMap)); + var hbmMapping = mapper.CompileMappingForAllExplicitAddedEntities(); + + ModelIsWellFormed(hbmMapping); + } + private void ModelIsWellFormed(HbmMapping hbmMapping) { var hbmClass = hbmMapping.RootClasses[0]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |