Created
April 2, 2016 19:36
-
-
Save Matthewacon/4b2b8d9513311073350733da6764d451 to your computer and use it in GitHub Desktop.
Why Oracle...
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// Source code recreated from a .class file by IntelliJ IDEA | |
// (powered by Fernflower decompiler) | |
// | |
package sun.reflect; | |
import java.lang.reflect.Field; | |
import java.lang.reflect.Modifier; | |
import sun.reflect.FieldAccessor; | |
import sun.reflect.UnsafeBooleanFieldAccessorImpl; | |
import sun.reflect.UnsafeByteFieldAccessorImpl; | |
import sun.reflect.UnsafeCharacterFieldAccessorImpl; | |
import sun.reflect.UnsafeDoubleFieldAccessorImpl; | |
import sun.reflect.UnsafeFieldAccessorImpl; | |
import sun.reflect.UnsafeFloatFieldAccessorImpl; | |
import sun.reflect.UnsafeIntegerFieldAccessorImpl; | |
import sun.reflect.UnsafeLongFieldAccessorImpl; | |
import sun.reflect.UnsafeObjectFieldAccessorImpl; | |
import sun.reflect.UnsafeQualifiedBooleanFieldAccessorImpl; | |
import sun.reflect.UnsafeQualifiedByteFieldAccessorImpl; | |
import sun.reflect.UnsafeQualifiedCharacterFieldAccessorImpl; | |
import sun.reflect.UnsafeQualifiedDoubleFieldAccessorImpl; | |
import sun.reflect.UnsafeQualifiedFloatFieldAccessorImpl; | |
import sun.reflect.UnsafeQualifiedIntegerFieldAccessorImpl; | |
import sun.reflect.UnsafeQualifiedLongFieldAccessorImpl; | |
import sun.reflect.UnsafeQualifiedObjectFieldAccessorImpl; | |
import sun.reflect.UnsafeQualifiedShortFieldAccessorImpl; | |
import sun.reflect.UnsafeQualifiedStaticBooleanFieldAccessorImpl; | |
import sun.reflect.UnsafeQualifiedStaticByteFieldAccessorImpl; | |
import sun.reflect.UnsafeQualifiedStaticCharacterFieldAccessorImpl; | |
import sun.reflect.UnsafeQualifiedStaticDoubleFieldAccessorImpl; | |
import sun.reflect.UnsafeQualifiedStaticFloatFieldAccessorImpl; | |
import sun.reflect.UnsafeQualifiedStaticIntegerFieldAccessorImpl; | |
import sun.reflect.UnsafeQualifiedStaticLongFieldAccessorImpl; | |
import sun.reflect.UnsafeQualifiedStaticObjectFieldAccessorImpl; | |
import sun.reflect.UnsafeQualifiedStaticShortFieldAccessorImpl; | |
import sun.reflect.UnsafeShortFieldAccessorImpl; | |
import sun.reflect.UnsafeStaticBooleanFieldAccessorImpl; | |
import sun.reflect.UnsafeStaticByteFieldAccessorImpl; | |
import sun.reflect.UnsafeStaticCharacterFieldAccessorImpl; | |
import sun.reflect.UnsafeStaticDoubleFieldAccessorImpl; | |
import sun.reflect.UnsafeStaticFloatFieldAccessorImpl; | |
import sun.reflect.UnsafeStaticIntegerFieldAccessorImpl; | |
import sun.reflect.UnsafeStaticLongFieldAccessorImpl; | |
import sun.reflect.UnsafeStaticObjectFieldAccessorImpl; | |
import sun.reflect.UnsafeStaticShortFieldAccessorImpl; | |
class UnsafeFieldAccessorFactory { | |
UnsafeFieldAccessorFactory() { | |
} | |
static FieldAccessor newFieldAccessor(Field var0, boolean var1) { | |
Class var2 = var0.getType(); | |
boolean var3 = Modifier.isStatic(var0.getModifiers()); | |
boolean var4 = Modifier.isFinal(var0.getModifiers()); | |
boolean var5 = Modifier.isVolatile(var0.getModifiers()); | |
boolean var6 = var4 || var5; | |
boolean var7 = var4 && (var3 || !var1); | |
if(var3) { | |
UnsafeFieldAccessorImpl.unsafe.ensureClassInitialized(var0.getDeclaringClass()); | |
return (FieldAccessor)(!var6?(var2 == Boolean.TYPE?new UnsafeStaticBooleanFieldAccessorImpl(var0):(var2 == Byte.TYPE?new UnsafeStaticByteFieldAccessorImpl(var0):(var2 == Short.TYPE?new UnsafeStaticShortFieldAccessorImpl(var0):(var2 == Character.TYPE?new UnsafeStaticCharacterFieldAccessorImpl(var0):(var2 == Integer.TYPE?new UnsafeStaticIntegerFieldAccessorImpl(var0):(var2 == Long.TYPE?new UnsafeStaticLongFieldAccessorImpl(var0):(var2 == Float.TYPE?new UnsafeStaticFloatFieldAccessorImpl(var0):(var2 == Double.TYPE?new UnsafeStaticDoubleFieldAccessorImpl(var0):new UnsafeStaticObjectFieldAccessorImpl(var0))))))))):(var2 == Boolean.TYPE?new UnsafeQualifiedStaticBooleanFieldAccessorImpl(var0, var7):(var2 == Byte.TYPE?new UnsafeQualifiedStaticByteFieldAccessorImpl(var0, var7):(var2 == Short.TYPE?new UnsafeQualifiedStaticShortFieldAccessorImpl(var0, var7):(var2 == Character.TYPE?new UnsafeQualifiedStaticCharacterFieldAccessorImpl(var0, var7):(var2 == Integer.TYPE?new UnsafeQualifiedStaticIntegerFieldAccessorImpl(var0, var7):(var2 == Long.TYPE?new UnsafeQualifiedStaticLongFieldAccessorImpl(var0, var7):(var2 == Float.TYPE?new UnsafeQualifiedStaticFloatFieldAccessorImpl(var0, var7):(var2 == Double.TYPE?new UnsafeQualifiedStaticDoubleFieldAccessorImpl(var0, var7):new UnsafeQualifiedStaticObjectFieldAccessorImpl(var0, var7)))))))))); | |
} else { | |
return (FieldAccessor)(!var6?(var2 == Boolean.TYPE?new UnsafeBooleanFieldAccessorImpl(var0):(var2 == Byte.TYPE?new UnsafeByteFieldAccessorImpl(var0):(var2 == Short.TYPE?new UnsafeShortFieldAccessorImpl(var0):(var2 == Character.TYPE?new UnsafeCharacterFieldAccessorImpl(var0):(var2 == Integer.TYPE?new UnsafeIntegerFieldAccessorImpl(var0):(var2 == Long.TYPE?new UnsafeLongFieldAccessorImpl(var0):(var2 == Float.TYPE?new UnsafeFloatFieldAccessorImpl(var0):(var2 == Double.TYPE?new UnsafeDoubleFieldAccessorImpl(var0):new UnsafeObjectFieldAccessorImpl(var0))))))))):(var2 == Boolean.TYPE?new UnsafeQualifiedBooleanFieldAccessorImpl(var0, var7):(var2 == Byte.TYPE?new UnsafeQualifiedByteFieldAccessorImpl(var0, var7):(var2 == Short.TYPE?new UnsafeQualifiedShortFieldAccessorImpl(var0, var7):(var2 == Character.TYPE?new UnsafeQualifiedCharacterFieldAccessorImpl(var0, var7):(var2 == Integer.TYPE?new UnsafeQualifiedIntegerFieldAccessorImpl(var0, var7):(var2 == Long.TYPE?new UnsafeQualifiedLongFieldAccessorImpl(var0, var7):(var2 == Float.TYPE?new UnsafeQualifiedFloatFieldAccessorImpl(var0, var7):(var2 == Double.TYPE?new UnsafeQualifiedDoubleFieldAccessorImpl(var0, var7):new UnsafeQualifiedObjectFieldAccessorImpl(var0, var7)))))))))); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment