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 import com.google.inject.Key;
20
21 import jakarta.inject.Inject;
22 import jakarta.inject.Provider;
23
24 import org.apache.ibatis.session.Configuration;
25 import org.apache.ibatis.type.TypeHandler;
26
27 public final class TypeHandlerConfigurationSettingProvider implements Provider<ConfigurationSetting> {
28 @Inject
29 private Injector injector;
30
31 private final Key<? extends TypeHandler<?>> key;
32
33 public TypeHandlerConfigurationSettingProvider(final Key<? extends TypeHandler<?>> key) {
34 this.key = key;
35 }
36
37 @Override
38 public ConfigurationSetting get() {
39 final TypeHandler<?> handlerInstance = injector.getInstance(key);
40 return new ConfigurationSetting() {
41 @Override
42 public void applyConfigurationSetting(Configuration configuration) {
43 configuration.getTypeHandlerRegistry().register(handlerInstance);
44 }
45 };
46 }
47
48 }