forked from nhibernate/nhibernate-core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIBytecodeProvider.cs
38 lines (34 loc) · 1.58 KB
/
IBytecodeProvider.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
33
34
35
36
37
38
using NHibernate.Property;
namespace NHibernate.Bytecode
{
public interface IBytecodeProvider
{
/// <summary>
/// The specific factory for this provider capable of
/// generating run-time proxies for lazy-loading purposes.
/// </summary>
IProxyFactoryFactory ProxyFactoryFactory { get; set;}
// NH specific: we add the set method because NH-975; the responsability of
// ProxyFactory is of BytecodeProvider like H3.2
/// <summary>
/// Retrieve the <see cref="IReflectionOptimizer" /> delegate for this provider
/// capable of generating reflection optimization components.
/// </summary>
/// <param name="clazz">The class to be reflected upon.</param>
/// <param name="getters">All property getters to be accessed via reflection.</param>
/// <param name="setters">All property setters to be accessed via reflection.</param>
/// <returns>The reflection optimization delegate.</returns>
IReflectionOptimizer GetReflectionOptimizer(System.Type clazz, IGetter[] getters, ISetter[] setters);
/// <summary> Generate a ClassTransformer capable of performing bytecode manipulation. </summary>
/// <param name="classFilter">
/// filter used to limit which classes are to be instrumented via this ClassTransformer.
/// </param>
/// <param name="fieldFilter">
/// filter used to limit which fields are to be instrumented
/// via this ClassTransformer.
/// </param>
/// <returns> The appropriate ClassTransformer. </returns>
// Not ported
//ClassTransformer getTransformer(ClassFilter classFilter, FieldFilter fieldFilter);
}
}