1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.onami.factoryannotation;
20
21 import java.lang.annotation.Annotation;
22
23 import com.google.inject.Inject;
24 import com.google.inject.Injector;
25
26 class FactoryAnnotationProviderInjectionAdapter<T, A extends Annotation>
27 implements FactoryAnnotationProvider<T, A>
28 {
29
30 private final FactoryAnnotationProvider<T, A> factoryAnnotationProvider;
31
32 @Inject
33 private Injector injector;
34
35 FactoryAnnotationProviderInjectionAdapter( final FactoryAnnotationProvider<T, A> factoryAnnotationProvider )
36 {
37
38 this.factoryAnnotationProvider = factoryAnnotationProvider;
39 }
40
41 public Class<T> getInjectionType()
42 {
43 return factoryAnnotationProvider.getInjectionType();
44 }
45
46 public T buildValue( A annotation )
47 {
48 final T value = factoryAnnotationProvider.buildValue( annotation );
49 injector.injectMembers( value );
50 return value;
51 }
52
53 }