|
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.
|