forked from nhibernate/nhibernate-core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDynamicMapComponentTuplizer.cs
32 lines (27 loc) · 1.04 KB
/
DynamicMapComponentTuplizer.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using NHibernate.Properties;
using NHibernate.Util;
namespace NHibernate.Tuple.Component
{
/// <summary>
/// A <see cref="IComponentTuplizer"/> specific to the dynamic-map entity mode.
/// </summary>
[Serializable]
public class DynamicMapComponentTuplizer : AbstractComponentTuplizer
{
public DynamicMapComponentTuplizer(Mapping.Component component)
: base(component)
{
// Fix for NH-3119
instantiator = BuildInstantiator(component);
}
public override System.Type MappedClass =>
typeof(DynamicComponent);
protected internal override IInstantiator BuildInstantiator(Mapping.Component component) =>
new DynamicComponentInstantiator();
protected internal override IGetter BuildGetter(Mapping.Component component, Mapping.Property prop) =>
PropertyAccessorFactory.DynamicMapPropertyAccessor.GetGetter(null, prop.Name);
protected internal override ISetter BuildSetter(Mapping.Component component, Mapping.Property prop) =>
PropertyAccessorFactory.DynamicMapPropertyAccessor.GetSetter(null, prop.Name);
}
}