|
From: <fab...@us...> - 2011-04-13 18:03:20
|
Revision: 5690
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5690&view=rev
Author: fabiomaulo
Date: 2011-04-13 18:03:13 +0000 (Wed, 13 Apr 2011)
Log Message:
-----------
Minor refactoring
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/NaturalIdCustomizer.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/PropertyContainerCustomizer.cs
Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinCustomizer.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinCustomizer.cs 2011-04-13 17:44:36 UTC (rev 5689)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/JoinCustomizer.cs 2011-04-13 18:03:13 UTC (rev 5690)
@@ -82,94 +82,73 @@
CustomizersHolder.AddCustomizer(typeof(TEntity), (IJoinAttributesMapper m) => m.Fetch(fetchMode));
}
- public override void Set<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property, Action<ISetPropertiesMapper<TEntity, TElement>> collectionMapping, Action<ICollectionElementRelation<TElement>> mapping)
+ protected override void RegisterSetMapping<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property, Action<ISetPropertiesMapper<TEntity, TElement>> collectionMapping, Action<ICollectionElementRelation<TElement>> mapping)
{
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
ExplicitDeclarationsHolder.AddAsPropertySplit(new SplitDefinition(typeof (TEntity), splitGroupId, member));
- base.Set(property, collectionMapping, mapping);
+ base.RegisterSetMapping(property, collectionMapping, mapping);
}
- public override void Bag<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property, Action<IBagPropertiesMapper<TEntity, TElement>> collectionMapping, Action<ICollectionElementRelation<TElement>> mapping)
+ protected override void RegisterBagMapping<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property, Action<IBagPropertiesMapper<TEntity, TElement>> collectionMapping, Action<ICollectionElementRelation<TElement>> mapping)
{
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
ExplicitDeclarationsHolder.AddAsPropertySplit(new SplitDefinition(typeof(TEntity), splitGroupId, member));
- base.Bag(property, collectionMapping, mapping);
+ base.RegisterBagMapping(property, collectionMapping, mapping);
}
- public override void List<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property, Action<IListPropertiesMapper<TEntity, TElement>> collectionMapping, Action<ICollectionElementRelation<TElement>> mapping)
+ protected override void RegisterListMapping<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property, Action<IListPropertiesMapper<TEntity, TElement>> collectionMapping, Action<ICollectionElementRelation<TElement>> mapping)
{
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
ExplicitDeclarationsHolder.AddAsPropertySplit(new SplitDefinition(typeof(TEntity), splitGroupId, member));
- base.List(property, collectionMapping, mapping);
+ base.RegisterListMapping(property, collectionMapping, mapping);
}
- public override void Map<TKey, TElement>(Expression<Func<TEntity, IDictionary<TKey, TElement>>> property, Action<IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping, Action<IMapKeyRelation<TKey>> keyMapping, Action<ICollectionElementRelation<TElement>> mapping)
+ protected override void RegisterMapMapping<TKey, TElement>(Expression<Func<TEntity, IDictionary<TKey, TElement>>> property, Action<IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping, Action<IMapKeyRelation<TKey>> keyMapping, Action<ICollectionElementRelation<TElement>> mapping)
{
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
ExplicitDeclarationsHolder.AddAsPropertySplit(new SplitDefinition(typeof(TEntity), splitGroupId, member));
- base.Map(property, collectionMapping, keyMapping, mapping);
+ base.RegisterMapMapping(property, collectionMapping, keyMapping, mapping);
}
- public override void Map<TKey, TElement>(Expression<Func<TEntity, IDictionary<TKey, TElement>>> property, Action<IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping, Action<ICollectionElementRelation<TElement>> mapping)
+ protected override void RegisterPropertyMapping<TProperty>(Expression<Func<TEntity, TProperty>> property, Action<IPropertyMapper> mapping)
{
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
ExplicitDeclarationsHolder.AddAsPropertySplit(new SplitDefinition(typeof(TEntity), splitGroupId, member));
- base.Map(property, collectionMapping, mapping);
+ base.RegisterPropertyMapping(property, mapping);
}
- public override void Property<TProperty>(Expression<Func<TEntity, TProperty>> property)
+ protected override void RegisterFieldMapping(FieldInfo member, Action<IPropertyMapper> mapping)
{
- MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
ExplicitDeclarationsHolder.AddAsPropertySplit(new SplitDefinition(typeof(TEntity), splitGroupId, member));
- base.Property(property);
+ base.RegisterFieldMapping(member, mapping);
}
- public override void Property<TProperty>(Expression<Func<TEntity, TProperty>> property, Action<IPropertyMapper> mapping)
+ protected override void RegisterComponentMapping<TComponent>(Expression<Func<TEntity, TComponent>> property, Action<IComponentMapper<TComponent>> mapping)
{
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
ExplicitDeclarationsHolder.AddAsPropertySplit(new SplitDefinition(typeof(TEntity), splitGroupId, member));
- base.Property(property, mapping);
+ base.RegisterComponentMapping(property, mapping);
}
- public override void Property(FieldInfo member, Action<IPropertyMapper> mapping)
+ protected override void RegisterManyToOneMapping<TProperty>(Expression<Func<TEntity, TProperty>> property, Action<IManyToOneMapper> mapping)
{
- ExplicitDeclarationsHolder.AddAsPropertySplit(new SplitDefinition(typeof(TEntity), splitGroupId, member));
- base.Property(member, mapping);
- }
-
- public override void Component<TComponent>(Expression<Func<TEntity, TComponent>> property, Action<IComponentMapper<TComponent>> mapping)
- {
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
ExplicitDeclarationsHolder.AddAsPropertySplit(new SplitDefinition(typeof(TEntity), splitGroupId, member));
- base.Component(property, mapping);
+ base.RegisterManyToOneMapping(property, mapping);
}
- public override void ManyToOne<TProperty>(Expression<Func<TEntity, TProperty>> property, Action<IManyToOneMapper> mapping)
+ protected override void RegisterAnyMapping<TProperty>(Expression<Func<TEntity, TProperty>> property, System.Type idTypeOfMetaType, Action<IAnyMapper> mapping)
{
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
ExplicitDeclarationsHolder.AddAsPropertySplit(new SplitDefinition(typeof(TEntity), splitGroupId, member));
- base.ManyToOne(property, mapping);
+ base.RegisterAnyMapping(property, idTypeOfMetaType, mapping);
}
- public override void ManyToOne<TProperty>(Expression<Func<TEntity, TProperty>> property)
+ protected override void RegisterIdBagMapping<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property, Action<IIdBagPropertiesMapper<TEntity, TElement>> collectionMapping, Action<ICollectionElementRelation<TElement>> mapping)
{
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
ExplicitDeclarationsHolder.AddAsPropertySplit(new SplitDefinition(typeof(TEntity), splitGroupId, member));
- base.ManyToOne(property);
+ base.RegisterIdBagMapping(property, collectionMapping, mapping);
}
-
- public override void Any<TProperty>(Expression<Func<TEntity, TProperty>> property, System.Type idTypeOfMetaType, Action<IAnyMapper> mapping)
- {
- MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
- ExplicitDeclarationsHolder.AddAsPropertySplit(new SplitDefinition(typeof(TEntity), splitGroupId, member));
- base.Any(property, idTypeOfMetaType, mapping);
- }
-
- public override void IdBag<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property, Action<IIdBagPropertiesMapper<TEntity, TElement>> collectionMapping, Action<ICollectionElementRelation<TElement>> mapping)
- {
- MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
- ExplicitDeclarationsHolder.AddAsPropertySplit(new SplitDefinition(typeof(TEntity), splitGroupId, member));
- base.IdBag(property, collectionMapping, mapping);
- }
}
}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/NaturalIdCustomizer.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/NaturalIdCustomizer.cs 2011-04-13 17:44:36 UTC (rev 5689)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/NaturalIdCustomizer.cs 2011-04-13 18:03:13 UTC (rev 5690)
@@ -7,55 +7,46 @@
public NaturalIdCustomizer(IModelExplicitDeclarationsHolder explicitDeclarationsHolder, ICustomizersHolder customizersHolder)
: base(explicitDeclarationsHolder, customizersHolder, null) {}
- public override void Property<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Action<IPropertyMapper> mapping)
+ protected override void RegisterPropertyMapping<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Action<IPropertyMapper> mapping)
{
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
MemberInfo memberOf = TypeExtensions.DecodeMemberAccessExpressionOf(property);
ExplicitDeclarationsHolder.AddAsNaturalId(member);
ExplicitDeclarationsHolder.AddAsNaturalId(memberOf);
- base.Property(property, mapping);
+ base.RegisterPropertyMapping(property, mapping);
}
- public override void Property(FieldInfo member, System.Action<IPropertyMapper> mapping)
+ protected override void RegisterFieldMapping(FieldInfo member, System.Action<IPropertyMapper> mapping)
{
ExplicitDeclarationsHolder.AddAsNaturalId(member);
- base.Property(member, mapping);
+ base.RegisterFieldMapping(member, mapping);
}
- public override void Component<TComponent>(System.Linq.Expressions.Expression<System.Func<TEntity, TComponent>> property, System.Action<IComponentMapper<TComponent>> mapping)
+ protected override void RegisterComponentMapping<TComponent>(System.Linq.Expressions.Expression<System.Func<TEntity, TComponent>> property, System.Action<IComponentMapper<TComponent>> mapping)
{
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
MemberInfo memberOf = TypeExtensions.DecodeMemberAccessExpressionOf(property);
ExplicitDeclarationsHolder.AddAsNaturalId(member);
ExplicitDeclarationsHolder.AddAsNaturalId(memberOf);
- base.Component(property, mapping);
+ base.RegisterComponentMapping(property, mapping);
}
- public override void Any<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Type idTypeOfMetaType, System.Action<IAnyMapper> mapping)
+ protected override void RegisterAnyMapping<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Type idTypeOfMetaType, System.Action<IAnyMapper> mapping)
{
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
MemberInfo memberOf = TypeExtensions.DecodeMemberAccessExpressionOf(property);
ExplicitDeclarationsHolder.AddAsNaturalId(member);
ExplicitDeclarationsHolder.AddAsNaturalId(memberOf);
- base.Any(property, idTypeOfMetaType, mapping);
+ base.RegisterAnyMapping(property, idTypeOfMetaType, mapping);
}
- public override void ManyToOne<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property)
+ protected override void RegisterManyToOneMapping<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Action<IManyToOneMapper> mapping)
{
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
MemberInfo memberOf = TypeExtensions.DecodeMemberAccessExpressionOf(property);
ExplicitDeclarationsHolder.AddAsNaturalId(member);
ExplicitDeclarationsHolder.AddAsNaturalId(memberOf);
- base.ManyToOne(property);
+ base.RegisterManyToOneMapping(property, mapping);
}
-
- public override void ManyToOne<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Action<IManyToOneMapper> mapping)
- {
- MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
- MemberInfo memberOf = TypeExtensions.DecodeMemberAccessExpressionOf(property);
- ExplicitDeclarationsHolder.AddAsNaturalId(member);
- ExplicitDeclarationsHolder.AddAsNaturalId(memberOf);
- base.ManyToOne(property, mapping);
- }
}
}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/PropertyContainerCustomizer.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/PropertyContainerCustomizer.cs 2011-04-13 17:44:36 UTC (rev 5689)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/CustomizersImpl/PropertyContainerCustomizer.cs 2011-04-13 18:03:13 UTC (rev 5690)
@@ -28,13 +28,18 @@
get { return explicitDeclarationsHolder; }
}
- public virtual void Property<TProperty>(Expression<Func<TEntity, TProperty>> property)
+ public void Property<TProperty>(Expression<Func<TEntity, TProperty>> property)
{
Property(property, x => { });
}
- public virtual void Property<TProperty>(Expression<Func<TEntity, TProperty>> property, Action<IPropertyMapper> mapping)
+ public void Property<TProperty>(Expression<Func<TEntity, TProperty>> property, Action<IPropertyMapper> mapping)
{
+ RegisterPropertyMapping(property, mapping);
+ }
+
+ protected virtual void RegisterPropertyMapping<TProperty>(Expression<Func<TEntity, TProperty>> property, Action<IPropertyMapper> mapping)
+ {
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
MemberInfo memberOf = TypeExtensions.DecodeMemberAccessExpressionOf(property);
CustomizersHolder.AddCustomizer(new PropertyPath(PropertyPath, member), mapping);
@@ -43,24 +48,41 @@
explicitDeclarationsHolder.AddAsProperty(memberOf);
}
- public virtual void Property(FieldInfo member, Action<IPropertyMapper> mapping)
+ public void Property(FieldInfo member, Action<IPropertyMapper> mapping)
{
+ RegisterFieldMapping(member, mapping);
+ }
+
+ protected virtual void RegisterFieldMapping(FieldInfo member, Action<IPropertyMapper> mapping)
+ {
CustomizersHolder.AddCustomizer(new PropertyPath(PropertyPath, member), mapping);
explicitDeclarationsHolder.AddAsProperty(member);
}
- public virtual void Component<TComponent>(Expression<Func<TEntity, TComponent>> property,
+ public void Component<TComponent>(Expression<Func<TEntity, TComponent>> property,
Action<IComponentMapper<TComponent>> mapping) where TComponent : class
{
+ RegisterComponentMapping(property, mapping);
+ }
+
+ protected virtual void RegisterComponentMapping<TComponent>(Expression<Func<TEntity, TComponent>> property, Action<IComponentMapper<TComponent>> mapping)
+ where TComponent : class
+ {
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
mapping(new ComponentCustomizer<TComponent>(explicitDeclarationsHolder, CustomizersHolder, new PropertyPath(PropertyPath, member)));
MemberInfo memberOf = TypeExtensions.DecodeMemberAccessExpressionOf(property);
mapping(new ComponentCustomizer<TComponent>(explicitDeclarationsHolder, CustomizersHolder, new PropertyPath(PropertyPath, memberOf)));
}
- public virtual void ManyToOne<TProperty>(Expression<Func<TEntity, TProperty>> property, Action<IManyToOneMapper> mapping)
+ public void ManyToOne<TProperty>(Expression<Func<TEntity, TProperty>> property, Action<IManyToOneMapper> mapping)
where TProperty : class
{
+ RegisterManyToOneMapping(property, mapping);
+ }
+
+ protected virtual void RegisterManyToOneMapping<TProperty>(Expression<Func<TEntity, TProperty>> property, Action<IManyToOneMapper> mapping)
+ where TProperty : class
+ {
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
CustomizersHolder.AddCustomizer(new PropertyPath(PropertyPath, member), mapping);
MemberInfo memberOf = TypeExtensions.DecodeMemberAccessExpressionOf(property);
@@ -69,7 +91,7 @@
explicitDeclarationsHolder.AddAsManyToOneRelation(memberOf);
}
- public virtual void ManyToOne<TProperty>(Expression<Func<TEntity, TProperty>> property) where TProperty : class
+ public void ManyToOne<TProperty>(Expression<Func<TEntity, TProperty>> property) where TProperty : class
{
ManyToOne(property, x => { });
}
@@ -85,9 +107,15 @@
explicitDeclarationsHolder.AddAsOneToOneRelation(memberOf);
}
- public virtual void Any<TProperty>(Expression<Func<TEntity, TProperty>> property, System.Type idTypeOfMetaType, Action<IAnyMapper> mapping)
+ public void Any<TProperty>(Expression<Func<TEntity, TProperty>> property, System.Type idTypeOfMetaType, Action<IAnyMapper> mapping)
where TProperty : class
{
+ RegisterAnyMapping(property, idTypeOfMetaType, mapping);
+ }
+
+ protected virtual void RegisterAnyMapping<TProperty>(Expression<Func<TEntity, TProperty>> property, System.Type idTypeOfMetaType, Action<IAnyMapper> mapping)
+ where TProperty : class
+ {
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
CustomizersHolder.AddCustomizer(new PropertyPath(PropertyPath, member), am => am.IdType(idTypeOfMetaType));
CustomizersHolder.AddCustomizer(new PropertyPath(PropertyPath, member), mapping);
@@ -98,10 +126,15 @@
explicitDeclarationsHolder.AddAsAny(memberOf);
}
- public virtual void Set<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property,
+ public void Set<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property,
Action<ISetPropertiesMapper<TEntity, TElement>> collectionMapping,
Action<ICollectionElementRelation<TElement>> mapping)
{
+ RegisterSetMapping(property, collectionMapping, mapping);
+ }
+
+ protected virtual void RegisterSetMapping<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property, Action<ISetPropertiesMapper<TEntity, TElement>> collectionMapping, Action<ICollectionElementRelation<TElement>> mapping)
+ {
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
collectionMapping(new SetPropertiesCustomizer<TEntity, TElement>(explicitDeclarationsHolder, new PropertyPath(null, member), CustomizersHolder));
mapping(new CollectionElementRelationCustomizer<TElement>(explicitDeclarationsHolder, new PropertyPath(PropertyPath, member), CustomizersHolder));
@@ -111,10 +144,15 @@
mapping(new CollectionElementRelationCustomizer<TElement>(explicitDeclarationsHolder, new PropertyPath(PropertyPath, member), CustomizersHolder));
}
- public virtual void Bag<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property,
+ public void Bag<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property,
Action<IBagPropertiesMapper<TEntity, TElement>> collectionMapping,
Action<ICollectionElementRelation<TElement>> mapping)
{
+ RegisterBagMapping(property, collectionMapping, mapping);
+ }
+
+ protected virtual void RegisterBagMapping<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property, Action<IBagPropertiesMapper<TEntity, TElement>> collectionMapping, Action<ICollectionElementRelation<TElement>> mapping)
+ {
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
collectionMapping(new BagPropertiesCustomizer<TEntity, TElement>(explicitDeclarationsHolder, new PropertyPath(null, member), CustomizersHolder));
mapping(new CollectionElementRelationCustomizer<TElement>(explicitDeclarationsHolder, new PropertyPath(PropertyPath, member), CustomizersHolder));
@@ -124,10 +162,15 @@
mapping(new CollectionElementRelationCustomizer<TElement>(explicitDeclarationsHolder, new PropertyPath(PropertyPath, memberOf), CustomizersHolder));
}
- public virtual void List<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property,
+ public void List<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property,
Action<IListPropertiesMapper<TEntity, TElement>> collectionMapping,
Action<ICollectionElementRelation<TElement>> mapping)
{
+ RegisterListMapping(property, collectionMapping, mapping);
+ }
+
+ protected virtual void RegisterListMapping<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property, Action<IListPropertiesMapper<TEntity, TElement>> collectionMapping, Action<ICollectionElementRelation<TElement>> mapping)
+ {
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
collectionMapping(new ListPropertiesCustomizer<TEntity, TElement>(explicitDeclarationsHolder, new PropertyPath(null, member), CustomizersHolder));
mapping(new CollectionElementRelationCustomizer<TElement>(explicitDeclarationsHolder, new PropertyPath(PropertyPath, member), CustomizersHolder));
@@ -137,11 +180,16 @@
mapping(new CollectionElementRelationCustomizer<TElement>(explicitDeclarationsHolder, new PropertyPath(PropertyPath, member), CustomizersHolder));
}
- public virtual void Map<TKey, TElement>(Expression<Func<TEntity, IDictionary<TKey, TElement>>> property,
+ public void Map<TKey, TElement>(Expression<Func<TEntity, IDictionary<TKey, TElement>>> property,
Action<IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping,
Action<IMapKeyRelation<TKey>> keyMapping,
Action<ICollectionElementRelation<TElement>> mapping)
{
+ RegisterMapMapping(property, collectionMapping, keyMapping, mapping);
+ }
+
+ protected virtual void RegisterMapMapping<TKey, TElement>(Expression<Func<TEntity, IDictionary<TKey, TElement>>> property, Action<IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping, Action<IMapKeyRelation<TKey>> keyMapping, Action<ICollectionElementRelation<TElement>> mapping)
+ {
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
var memberPath = new PropertyPath(PropertyPath, member);
collectionMapping(new MapPropertiesCustomizer<TEntity, TKey, TElement>(explicitDeclarationsHolder, memberPath, CustomizersHolder));
@@ -155,17 +203,22 @@
mapping(new CollectionElementRelationCustomizer<TElement>(explicitDeclarationsHolder, memberOfPath, CustomizersHolder));
}
- public virtual void Map<TKey, TElement>(Expression<Func<TEntity, IDictionary<TKey, TElement>>> property,
+ public void Map<TKey, TElement>(Expression<Func<TEntity, IDictionary<TKey, TElement>>> property,
Action<IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping,
Action<ICollectionElementRelation<TElement>> mapping)
{
Map(property, collectionMapping, keyMapping => { }, mapping);
}
- public virtual void IdBag<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property,
+ public void IdBag<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property,
Action<IIdBagPropertiesMapper<TEntity, TElement>> collectionMapping,
Action<ICollectionElementRelation<TElement>> mapping)
{
+ RegisterIdBagMapping(property, collectionMapping, mapping);
+ }
+
+ protected virtual void RegisterIdBagMapping<TElement>(Expression<Func<TEntity, IEnumerable<TElement>>> property, Action<IIdBagPropertiesMapper<TEntity, TElement>> collectionMapping, Action<ICollectionElementRelation<TElement>> mapping)
+ {
MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
collectionMapping(new IdBagPropertiesCustomizer<TEntity, TElement>(explicitDeclarationsHolder, new PropertyPath(null, member), CustomizersHolder));
mapping(new CollectionElementRelationCustomizer<TElement>(explicitDeclarationsHolder, new PropertyPath(PropertyPath, member), CustomizersHolder));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|