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