01: package org.hibernate.bytecode;
02:
03: /**
04: * Represents reflection optimization for a particular class.
05: *
06: * @author Steve Ebersole
07: */
08: public interface ReflectionOptimizer {
09:
10: public InstantiationOptimizer getInstantiationOptimizer();
11:
12: public AccessOptimizer getAccessOptimizer();
13:
14: /**
15: * Represents optimized entity instantiation.
16: */
17: public static interface InstantiationOptimizer {
18: /**
19: * Perform instantiation of an instance of the underlying class.
20: *
21: * @return The new instance.
22: */
23: public Object newInstance();
24: }
25:
26: /**
27: * Represents optimized entity property access.
28: *
29: * @author Steve Ebersole
30: */
31: public interface AccessOptimizer {
32: public String[] getPropertyNames();
33:
34: public Object[] getPropertyValues(Object object);
35:
36: public void setPropertyValues(Object object, Object[] values);
37: }
38: }
|