ReflectiveStaticInjection.java
2.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package dagger.internal.loaders;
import dagger.internal.Binding;
import dagger.internal.Keys;
import dagger.internal.Linker;
import dagger.internal.StaticInjection;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
public final class ReflectiveStaticInjection
extends StaticInjection
{
private Binding<?>[] bindings;
private final Field[] fields;
private final ClassLoader loader;
private ReflectiveStaticInjection(ClassLoader paramClassLoader, Field[] paramArrayOfField)
{
this.fields = paramArrayOfField;
this.loader = paramClassLoader;
}
public static StaticInjection create(Class<?> paramClass)
{
ArrayList localArrayList = new ArrayList();
Field[] arrayOfField = paramClass.getDeclaredFields();
int j = arrayOfField.length;
int i = 0;
while (i < j)
{
Field localField = arrayOfField[i];
if ((Modifier.isStatic(localField.getModifiers())) && (localField.isAnnotationPresent(Inject.class)))
{
localField.setAccessible(true);
localArrayList.add(localField);
}
i += 1;
}
if (localArrayList.isEmpty()) {
throw new IllegalArgumentException("No static injections: " + paramClass.getName());
}
return new ReflectiveStaticInjection(paramClass.getClassLoader(), (Field[])localArrayList.toArray(new Field[localArrayList.size()]));
}
public final void attach(Linker paramLinker)
{
this.bindings = new Binding[this.fields.length];
int i = 0;
while (i < this.fields.length)
{
Field localField = this.fields[i];
String str = Keys.get(localField.getGenericType(), localField.getAnnotations(), localField);
this.bindings[i] = paramLinker.requestBinding(str, localField, this.loader);
i += 1;
}
}
public final void inject()
{
int i = 0;
try
{
while (i < this.fields.length)
{
this.fields[i].set(null, this.bindings[i].get());
i += 1;
}
return;
}
catch (IllegalAccessException localIllegalAccessException)
{
throw new AssertionError(localIllegalAccessException);
}
}
}
/* Location: /home/merong/decompile/hackery-dex2jar.jar!/dagger/internal/loaders/ReflectiveStaticInjection.class
* Java compiler version: 6 (50.0)
* JD-Core Version: 0.7.1
*/