1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package net.ep.db4o.activator;
18
19 import net.ep.db4o.javassist.ActivateOnAllMethods;
20 import net.ep.db4o.javassist.ActivateOnMethodPolicy;
21 import net.ep.db4o.javassist.JVSTReflector;
22 import net.ep.db4o.javassist.PersistOnMethodPolicy;
23
24 import com.db4o.config.Configuration;
25 import com.db4o.config.ConfigurationItem;
26 import com.db4o.internal.InternalObjectContainer;
27 import com.db4o.ta.TransparentPersistenceSupport;
28
29 public class ProxyActivationSupport implements ConfigurationItem {
30
31 private JVSTReflector _reflector;
32 private boolean _threadLocal;
33 private PersistOnMethodPolicy _persistPolicy = null;
34 private ActivateOnMethodPolicy _activatePolicy = new ActivateOnAllMethods();
35 private boolean _ignoreNullActivator = false;
36
37 public ProxyActivationSupport ignoreNullActivator() {
38 _ignoreNullActivator = true;
39 return this;
40 }
41
42 public ProxyActivationSupport threadLocalActivator() {
43 _threadLocal = true;
44 return this;
45 }
46
47 public ProxyActivationSupport withActivationPolicy(ActivateOnMethodPolicy activatePolicy) {
48 _activatePolicy = activatePolicy;
49 return this;
50 }
51
52 public ProxyActivationSupport withPersistPolicy(PersistOnMethodPolicy persistPolicy) {
53 _persistPolicy = persistPolicy;
54 return this;
55 }
56
57
58
59 private ProxyActivationSupport() {
60 }
61
62 public static ProxyActivationSupport create() {
63 return new ProxyActivationSupport();
64 }
65
66 public void apply(InternalObjectContainer container) {
67
68
69 }
70
71 public void prepare(Configuration configuration) {
72
73
74 _reflector = new JVSTReflector(Thread.currentThread()
75 .getContextClassLoader());
76 _reflector.setThreadLocal(_threadLocal);
77 _reflector.setIgnoreNullActivator(_ignoreNullActivator);
78 _reflector.setPersistPolicy(_persistPolicy);
79 _reflector.setActivationPolicy(_activatePolicy);
80 configuration.reflectWith(_reflector);
81 configuration.add(new TransparentPersistenceSupport());
82
83 }
84
85 }