1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.guice.configuration.settings;
17
18 import com.google.inject.Injector;
19
20 import jakarta.inject.Inject;
21 import jakarta.inject.Provider;
22
23 import org.apache.ibatis.reflection.factory.ObjectFactory;
24 import org.apache.ibatis.session.Configuration;
25
26 public class ObjectFactoryConfigurationSetting implements Provider<ConfigurationSetting> {
27
28 @Inject
29 private Injector injector;
30
31 private final Class<? extends ObjectFactory> objectFactoryType;
32
33 public ObjectFactoryConfigurationSetting(Class<? extends ObjectFactory> objectFactoryType) {
34 this.objectFactoryType = objectFactoryType;
35 }
36
37 public void setInjector(final Injector injector) {
38 this.injector = injector;
39 }
40
41 @Override
42 public ConfigurationSetting get() {
43 final ObjectFactory objectFactory = injector.getInstance(objectFactoryType);
44 return new ConfigurationSetting() {
45 @Override
46 public void applyConfigurationSetting(Configuration configuration) {
47 configuration.setObjectFactory(objectFactory);
48 }
49 };
50 }
51
52 }