Enums.java
3.29 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
package com.google.common.base;
import com.google.common.annotations.Beta;
import com.google.common.annotations.GwtCompatible;
import com.google.common.annotations.GwtIncompatible;
import java.io.Serializable;
import java.lang.ref.WeakReference;
import java.lang.reflect.Field;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.WeakHashMap;
import javax.annotation.Nullable;
@Beta
@GwtCompatible(emulated=true)
public final class Enums
{
@GwtIncompatible("java.lang.ref.WeakReference")
private static final Map<Class<? extends Enum<?>>, Map<String, WeakReference<? extends Enum<?>>>> a = new WeakHashMap();
@GwtIncompatible("java.lang.ref.WeakReference")
private static <T extends Enum<T>> Map<String, WeakReference<? extends Enum<?>>> a(Class<T> paramClass)
{
Object localObject1;
synchronized (a)
{
Object localObject2 = (Map)a.get(paramClass);
localObject1 = localObject2;
if (localObject2 != null) {
break label101;
}
localObject1 = new HashMap();
localObject2 = EnumSet.allOf(paramClass).iterator();
if (((Iterator)localObject2).hasNext())
{
Enum localEnum = (Enum)((Iterator)localObject2).next();
((Map)localObject1).put(localEnum.name(), new WeakReference(localEnum));
}
}
a.put(paramClass, localObject1);
label101:
return (Map<String, WeakReference<? extends Enum<?>>>)localObject1;
}
@GwtIncompatible("reflection")
public static Field getField(Enum<?> paramEnum)
{
Class localClass = paramEnum.getDeclaringClass();
try
{
paramEnum = localClass.getDeclaredField(paramEnum.name());
return paramEnum;
}
catch (NoSuchFieldException paramEnum)
{
throw new AssertionError(paramEnum);
}
}
public static <T extends Enum<T>> Optional<T> getIfPresent(Class<T> paramClass, String paramString)
{
Preconditions.checkNotNull(paramClass);
Preconditions.checkNotNull(paramString);
paramString = (WeakReference)a(paramClass).get(paramString);
if (paramString == null) {
return Optional.absent();
}
return Optional.of(paramClass.cast(paramString.get()));
}
public static <T extends Enum<T>> Converter<String, T> stringConverter(Class<T> paramClass)
{
return new a(paramClass);
}
static final class a<T extends Enum<T>>
extends Converter<String, T>
implements Serializable
{
private static final long serialVersionUID = 0L;
private final Class<T> a;
a(Class<T> paramClass)
{
this.a = ((Class)Preconditions.checkNotNull(paramClass));
}
public final boolean equals(@Nullable Object paramObject)
{
if ((paramObject instanceof a))
{
paramObject = (a)paramObject;
return this.a.equals(((a)paramObject).a);
}
return false;
}
public final int hashCode()
{
return this.a.hashCode();
}
public final String toString()
{
String str = String.valueOf(String.valueOf(this.a.getName()));
return str.length() + 29 + "Enums.stringConverter(" + str + ".class)";
}
}
}
/* Location: /home/merong/decompile/hackery-dex2jar.jar!/com/google/common/base/Enums.class
* Java compiler version: 6 (50.0)
* JD-Core Version: 0.7.1
*/