diff options
Diffstat (limited to 'libraries/launcher/org/prismlauncher/utils/ReflectionUtils.java')
-rw-r--r-- | libraries/launcher/org/prismlauncher/utils/ReflectionUtils.java | 50 |
1 files changed, 28 insertions, 22 deletions
diff --git a/libraries/launcher/org/prismlauncher/utils/ReflectionUtils.java b/libraries/launcher/org/prismlauncher/utils/ReflectionUtils.java index ad9e57fd..6e882387 100644 --- a/libraries/launcher/org/prismlauncher/utils/ReflectionUtils.java +++ b/libraries/launcher/org/prismlauncher/utils/ReflectionUtils.java @@ -38,7 +38,6 @@ package org.prismlauncher.utils; - import java.applet.Applet; import java.io.File; import java.lang.invoke.MethodHandle; @@ -53,8 +52,7 @@ public final class ReflectionUtils { private static final Logger LOGGER = Logger.getLogger("ReflectionUtils"); - private ReflectionUtils() { - } + private ReflectionUtils() {} /** * Instantiate an applet class by name @@ -65,13 +63,16 @@ public final class ReflectionUtils { * * @throws ClassNotFoundException if the provided class name cannot be found * @throws NoSuchMethodException if the no-args constructor cannot be found - * @throws IllegalAccessException if the constructor cannot be accessed via method handles + * @throws IllegalAccessException if the constructor cannot be accessed via + * method handles * @throws Throwable any exceptions from the class's constructor */ - public static Applet createAppletClass(String appletClassName) throws Throwable { + public static Applet createAppletClass(String appletClassName) throws Throwable + { Class<?> appletClass = ClassLoader.getSystemClassLoader().loadClass(appletClassName); - MethodHandle appletConstructor = MethodHandles.lookup().findConstructor(appletClass, MethodType.methodType(void.class)); + MethodHandle appletConstructor = MethodHandles.lookup().findConstructor(appletClass, + MethodType.methodType(void.class)); return (Applet) appletConstructor.invoke(); } @@ -82,7 +83,8 @@ public final class ReflectionUtils { * * @return The found field. */ - public static Field getMinecraftGameDirField(Class<?> minecraftMainClass) { + public static Field getMinecraftGameDirField(Class<?> minecraftMainClass) + { LOGGER.fine("Resolving minecraft game directory field"); // Field we're looking for is always // private static File obfuscatedName = null; @@ -94,7 +96,6 @@ public final class ReflectionUtils { int fieldModifiers = field.getModifiers(); - // Must be static if (!Modifier.isStatic(fieldModifiers)) { LOGGER.log(Level.FINE, "Rejecting field {0} because it is not static", field.getName()); @@ -113,7 +114,8 @@ public final class ReflectionUtils { continue; } - LOGGER.log(Level.FINE, "Identified field {0} to match conditions for minecraft game directory field", field.getName()); + LOGGER.log(Level.FINE, "Identified field {0} to match conditions for minecraft game directory field", + field.getName()); return field; } @@ -124,8 +126,7 @@ public final class ReflectionUtils { /** * Resolve main entrypoint and returns method handle for it. * <p> - * Resolves a method that matches the following signature - * <code> + * Resolves a method that matches the following signature <code> * public static void main(String[] args) { * <p> * } @@ -135,34 +136,39 @@ public final class ReflectionUtils { * * @return The method handle for the resolved entrypoint * - * @throws NoSuchMethodException If no method matching the correct signature can be found + * @throws NoSuchMethodException If no method matching the correct signature + * can be found * @throws IllegalAccessException If method handles cannot access the entrypoint */ - public static MethodHandle findMainEntrypoint(Class<?> entrypointClass) throws NoSuchMethodException, IllegalAccessException { - return MethodHandles.lookup().findStatic(entrypointClass, "main", MethodType.methodType(void.class, String[].class)); + public static MethodHandle findMainEntrypoint(Class<?> entrypointClass) + throws NoSuchMethodException, IllegalAccessException + { + return MethodHandles.lookup().findStatic(entrypointClass, "main", + MethodType.methodType(void.class, String[].class)); } /** * Resolve main entrypoint and returns method handle for it. * <p> - * Resolves a method that matches the following signature - * <code> + * Resolves a method that matches the following signature <code> * public static void main(String[] args) { * <p> * } * </code> * - * @param entrypointClassName The name of the entrypoint class to resolve the method from + * @param entrypointClassName The name of the entrypoint class to resolve the + * method from * * @return The method handle for the resolved entrypoint * - * @throws ClassNotFoundException If a class cannot be found with the provided name - * @throws NoSuchMethodException If no method matching the correct signature can be found + * @throws ClassNotFoundException If a class cannot be found with the provided + * name + * @throws NoSuchMethodException If no method matching the correct signature + * can be found * @throws IllegalAccessException If method handles cannot access the entrypoint */ public static MethodHandle findMainMethod(String entrypointClassName) - throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException { - return findMainEntrypoint(ClassLoader.getSystemClassLoader().loadClass(entrypointClassName)); - } + throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException + { return findMainEntrypoint(ClassLoader.getSystemClassLoader().loadClass(entrypointClassName)); } } |