diff options
Diffstat (limited to 'src/Java/sun/repackage/ForgeEnumHelper.java')
-rw-r--r-- | src/Java/sun/repackage/ForgeEnumHelper.java | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/Java/sun/repackage/ForgeEnumHelper.java b/src/Java/sun/repackage/ForgeEnumHelper.java new file mode 100644 index 0000000000..8d77877cee --- /dev/null +++ b/src/Java/sun/repackage/ForgeEnumHelper.java @@ -0,0 +1,57 @@ +package sun.repackage; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +import gtPlusPlus.core.util.reflect.ReflectionUtils; + +public class ForgeEnumHelper +{ + private static Object reflectionFactory = null; + private static Method newConstructorAccessor = null; + private static Method newInstance = null; + private static Method newFieldAccessor = null; + private static Method fieldAccessorSet = null; + private static boolean isSetup = false; + + private static void setup() + { + if (isSetup) + { + return; + } + + try + { + + Class aRefFac = ReflectionUtils.getClass("sun.repackage.ReflectionFactory"); + Class aConAcc = ReflectionUtils.getClass("sun.repackage.ConstructorAccessor"); + Class aFieAcc = ReflectionUtils.getClass("sun.repackage.FieldAccessor"); + + Method getReflectionFactory = ReflectionUtils.getMethod(aRefFac, "getReflectionFactory", new Class[] {}); + reflectionFactory = ReflectionUtils.invoke(aRefFac, getReflectionFactory, new Object[] {}); + newConstructorAccessor = ReflectionUtils.getMethod(aRefFac, "newConstructorAccessor", new Class[] {Constructor.class}); + newFieldAccessor = ReflectionUtils.getMethod(aRefFac, "newFieldAccessor", new Class[] {Field.class, boolean.class}); + newInstance = ReflectionUtils.getMethod(aConAcc, "newInstance", new Class[] {Object[].class}); + fieldAccessorSet = ReflectionUtils.getMethod(aFieAcc, "set", new Class[] {Object.class, Object.class}); + + + + } + catch (Exception e) + { + e.printStackTrace(); + } + + isSetup = true; + } + + static + { + if (!isSetup) + { + setup(); + } + } +}
\ No newline at end of file |