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.wrapper.ObjectWrapperFactory;
24 import org.apache.ibatis.session.Configuration;
25
26 public class ObjectWrapperFactoryConfigurationSetting implements Provider<ConfigurationSetting> {
27
28 @Inject
29 private Injector injector;
30 private final Class<? extends ObjectWrapperFactory> objectWrapperFactoryType;
31
32 public ObjectWrapperFactoryConfigurationSetting(Class<? extends ObjectWrapperFactory> objectWrapperFactoryType) {
33 this.objectWrapperFactoryType = objectWrapperFactoryType;
34 }
35
36 public void setInjector(final Injector injector) {
37 this.injector = injector;
38 }
39
40 @Override
41 public ConfigurationSetting get() {
42 final ObjectWrapperFactory objectWrapperFactory = injector.getInstance(objectWrapperFactoryType);
43 return new ConfigurationSetting() {
44 @Override
45 public void applyConfigurationSetting(Configuration configuration) {
46 configuration.setObjectWrapperFactory(objectWrapperFactory);
47 }
48 };
49 }
50 }