forked from nhibernate/nhibernate-core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIBytecodeProvider.cs
36 lines (32 loc) · 1.44 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
using NHibernate.Properties;
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;}
/// <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);
}
}