From: <fab...@us...> - 2011-04-20 16:17:32
|
Revision: 5724 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5724&view=rev Author: fabiomaulo Date: 2011-04-20 16:17:26 +0000 (Wed, 20 Apr 2011) Log Message: ----------- API to map dynamic-component (only API not implemented) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IPlainPropertyContainerMapper.cs trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/AbstractBasePropertyContainerMapper.cs trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/PropertyContainerCustomizer.cs trunk/nhibernate/src/NHibernate/NHibernate.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IDynamicComponentAttributesMapper.cs Added: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IDynamicComponentAttributesMapper.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IDynamicComponentAttributesMapper.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IDynamicComponentAttributesMapper.cs 2011-04-20 16:17:26 UTC (rev 5724) @@ -0,0 +1,19 @@ +namespace NHibernate.Mapping.ByCode +{ + public interface IDynamicComponentAttributesMapper : IEntityPropertyMapper + { + void Update(bool consideredInUpdateQuery); + void Insert(bool consideredInInsertQuery); + } + + public interface IDynamicComponentMapper : IDynamicComponentAttributesMapper, IPropertyContainerMapper { } + + public interface IDynamicComponentAttributesMapper<TComponent> : IEntityPropertyMapper + { + void Update(bool consideredInUpdateQuery); + void Insert(bool consideredInInsertQuery); + } + + public interface IDynamicComponentMapper<TComponent> : IDynamicComponentAttributesMapper<TComponent>, IPropertyContainerMapper<TComponent> where TComponent : class { } + +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/IPlainPropertyContainerMapper.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/IPlainPropertyContainerMapper.cs 2011-04-20 12:12:23 UTC (rev 5723) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/IPlainPropertyContainerMapper.cs 2011-04-20 16:17:26 UTC (rev 5724) @@ -1,4 +1,5 @@ using System; +using System.Collections; using System.Linq.Expressions; using System.Reflection; @@ -9,6 +10,7 @@ void Property(MemberInfo property, Action<IPropertyMapper> mapping); void Component(MemberInfo property, Action<IComponentMapper> mapping); + void Component(MemberInfo property, Action<IDynamicComponentMapper> mapping); void ManyToOne(MemberInfo property, Action<IManyToOneMapper> mapping); void Any(MemberInfo property, System.Type idTypeOfMetaType, Action<IAnyMapper> mapping); @@ -29,6 +31,10 @@ Action<IComponentMapper<TComponent>> mapping) where TComponent : class; void Component<TComponent>(Expression<Func<TContainer, TComponent>> property) where TComponent : class; + void Component<TComponent>(Expression<Func<TContainer, IDictionary>> property, + TComponent dynamicComponentTemplate, + Action<IDynamicComponentMapper<TComponent>> mapping) where TComponent : class; + void ManyToOne<TProperty>(Expression<Func<TContainer, TProperty>> property, Action<IManyToOneMapper> mapping) where TProperty : class; void ManyToOne<TProperty>(Expression<Func<TContainer, TProperty>> property) where TProperty : class; Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/AbstractBasePropertyContainerMapper.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/AbstractBasePropertyContainerMapper.cs 2011-04-20 12:12:23 UTC (rev 5723) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/AbstractBasePropertyContainerMapper.cs 2011-04-20 16:17:26 UTC (rev 5724) @@ -53,6 +53,11 @@ AddProperty(hbm); } + public virtual void Component(MemberInfo property, Action<IDynamicComponentMapper> mapping) + { + throw new NotImplementedException(); + } + public virtual void ManyToOne(MemberInfo property, Action<IManyToOneMapper> mapping) { var hbm = new HbmManyToOne {name = property.Name}; Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/PropertyContainerCustomizer.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/PropertyContainerCustomizer.cs 2011-04-20 12:12:23 UTC (rev 5723) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/PropertyContainerCustomizer.cs 2011-04-20 16:17:26 UTC (rev 5724) @@ -1,4 +1,5 @@ using System; +using System.Collections; using System.Collections.Generic; using System.Linq.Expressions; using System.Reflection; @@ -78,6 +79,13 @@ mapping(new ComponentCustomizer<TComponent>(explicitDeclarationsHolder, CustomizersHolder, new PropertyPath(PropertyPath, memberOf))); } + public void Component<TComponent>(Expression<Func<TEntity, IDictionary>> property, + TComponent dynamicComponentTemplate, + Action<IDynamicComponentMapper<TComponent>> mapping) where TComponent : class + { + throw new NotImplementedException(); + } + public void ManyToOne<TProperty>(Expression<Func<TEntity, TProperty>> property, Action<IManyToOneMapper> mapping) where TProperty : class { Modified: trunk/nhibernate/src/NHibernate/NHibernate.csproj =================================================================== --- trunk/nhibernate/src/NHibernate/NHibernate.csproj 2011-04-20 12:12:23 UTC (rev 5723) +++ trunk/nhibernate/src/NHibernate/NHibernate.csproj 2011-04-20 16:17:26 UTC (rev 5724) @@ -294,6 +294,7 @@ <Compile Include="Mapping\ByCode\Conformist\JoinedSubclassMapping.cs" /> <Compile Include="Mapping\ByCode\Conformist\SubclassMapping.cs" /> <Compile Include="Mapping\ByCode\Conformist\UnionSubclassMapping.cs" /> + <Compile Include="Mapping\ByCode\IDynamicComponentAttributesMapper.cs" /> <Compile Include="Mapping\ByCode\PropertyToField.cs" /> <Compile Include="Mapping\ByCode\SimpleModelInspector.cs" /> <Compile Include="Mapping\ByCode\ExplicitlyDeclaredModel.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |