MultiBackgroundInitializer.java
4.54 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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
package org.apache.commons.lang3.concurrent;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.concurrent.ExecutorService;
public class MultiBackgroundInitializer
extends BackgroundInitializer<MultiBackgroundInitializerResults>
{
private final Map<String, BackgroundInitializer<?>> a = new HashMap();
public MultiBackgroundInitializer() {}
public MultiBackgroundInitializer(ExecutorService paramExecutorService)
{
super(paramExecutorService);
}
public void addInitializer(String paramString, BackgroundInitializer<?> paramBackgroundInitializer)
{
if (paramString == null) {
throw new IllegalArgumentException("Name of child initializer must not be null!");
}
if (paramBackgroundInitializer == null) {
throw new IllegalArgumentException("Child initializer must not be null!");
}
try
{
if (isStarted()) {
throw new IllegalStateException("addInitializer() must not be called after start()!");
}
}
finally {}
this.a.put(paramString, paramBackgroundInitializer);
}
protected int getTaskCount()
{
Iterator localIterator = this.a.values().iterator();
for (int i = 1; localIterator.hasNext(); i = ((BackgroundInitializer)localIterator.next()).getTaskCount() + i) {}
return i;
}
protected MultiBackgroundInitializerResults initialize()
throws Exception
{
Object localObject1;
try
{
HashMap localHashMap = new HashMap(this.a);
localObject1 = getActiveExecutor();
localObject2 = localHashMap.values().iterator();
while (((Iterator)localObject2).hasNext())
{
localObject3 = (BackgroundInitializer)((Iterator)localObject2).next();
if (((BackgroundInitializer)localObject3).getExternalExecutor() == null) {
((BackgroundInitializer)localObject3).setExternalExecutor((ExecutorService)localObject1);
}
((BackgroundInitializer)localObject3).start();
}
localObject1 = new HashMap();
}
finally {}
Object localObject2 = new HashMap();
Object localObject3 = localMap.entrySet().iterator();
while (((Iterator)localObject3).hasNext())
{
Map.Entry localEntry = (Map.Entry)((Iterator)localObject3).next();
try
{
((Map)localObject1).put(localEntry.getKey(), ((BackgroundInitializer)localEntry.getValue()).get());
}
catch (ConcurrentException localConcurrentException)
{
((Map)localObject2).put(localEntry.getKey(), localConcurrentException);
}
}
return new MultiBackgroundInitializerResults(localMap, (Map)localObject1, (Map)localObject2, (byte)0);
}
public static class MultiBackgroundInitializerResults
{
private final Map<String, BackgroundInitializer<?>> a;
private final Map<String, Object> b;
private final Map<String, ConcurrentException> c;
private MultiBackgroundInitializerResults(Map<String, BackgroundInitializer<?>> paramMap, Map<String, Object> paramMap1, Map<String, ConcurrentException> paramMap2)
{
this.a = paramMap;
this.b = paramMap1;
this.c = paramMap2;
}
private BackgroundInitializer<?> a(String paramString)
{
BackgroundInitializer localBackgroundInitializer = (BackgroundInitializer)this.a.get(paramString);
if (localBackgroundInitializer == null) {
throw new NoSuchElementException("No child initializer with name " + paramString);
}
return localBackgroundInitializer;
}
public ConcurrentException getException(String paramString)
{
a(paramString);
return (ConcurrentException)this.c.get(paramString);
}
public BackgroundInitializer<?> getInitializer(String paramString)
{
return a(paramString);
}
public Object getResultObject(String paramString)
{
a(paramString);
return this.b.get(paramString);
}
public Set<String> initializerNames()
{
return Collections.unmodifiableSet(this.a.keySet());
}
public boolean isException(String paramString)
{
a(paramString);
return this.c.containsKey(paramString);
}
public boolean isSuccessful()
{
return this.c.isEmpty();
}
}
}
/* Location: /home/merong/decompile/hackery-dex2jar.jar!/org/apache/commons/lang3/concurrent/MultiBackgroundInitializer.class
* Java compiler version: 6 (50.0)
* JD-Core Version: 0.7.1
*/