diff options
author | solonovamax <solonovamax@12oclockpoint.com> | 2022-10-27 18:01:17 -0400 |
---|---|---|
committer | TheKodeToad <TheKodeToad@proton.me> | 2022-11-08 16:25:09 +0000 |
commit | 9062d28704f8508a031612f102c27a63b3655e0a (patch) | |
tree | d67c196132f565bbe2911a3e313736de311bcac9 /libraries/launcher | |
parent | e68dcea6bcb5830659d17db40fc9a83a4eca9cc0 (diff) | |
download | PrismLauncher-9062d28704f8508a031612f102c27a63b3655e0a.tar.gz PrismLauncher-9062d28704f8508a031612f102c27a63b3655e0a.tar.bz2 PrismLauncher-9062d28704f8508a031612f102c27a63b3655e0a.zip |
Get rid of singleton, and refactor LauncherFactory to be a static class
Signed-off-by: solonovamax <solonovamax@12oclockpoint.com>
Diffstat (limited to 'libraries/launcher')
-rw-r--r-- | libraries/launcher/org/prismlauncher/EntryPoint.java | 5 | ||||
-rw-r--r-- | libraries/launcher/org/prismlauncher/LauncherFactory.java | 31 |
2 files changed, 17 insertions, 19 deletions
diff --git a/libraries/launcher/org/prismlauncher/EntryPoint.java b/libraries/launcher/org/prismlauncher/EntryPoint.java index 73ff9753..37db6a5d 100644 --- a/libraries/launcher/org/prismlauncher/EntryPoint.java +++ b/libraries/launcher/org/prismlauncher/EntryPoint.java @@ -138,10 +138,7 @@ public final class EntryPoint { } try { - Launcher launcher = - LauncherFactory - .INSTANCE - .createLauncher(params); + Launcher launcher = LauncherFactory.createLauncher(params); launcher.launch(); diff --git a/libraries/launcher/org/prismlauncher/LauncherFactory.java b/libraries/launcher/org/prismlauncher/LauncherFactory.java index 354ad1f0..5b18cc5f 100644 --- a/libraries/launcher/org/prismlauncher/LauncherFactory.java +++ b/libraries/launcher/org/prismlauncher/LauncherFactory.java @@ -35,6 +35,7 @@ package org.prismlauncher; + import org.prismlauncher.impl.LegacyLauncher; import org.prismlauncher.impl.StandardLauncher; import org.prismlauncher.utils.Parameters; @@ -42,13 +43,11 @@ import org.prismlauncher.utils.Parameters; import java.util.HashMap; import java.util.Map; -public final class LauncherFactory { - - public static final LauncherFactory INSTANCE = new LauncherFactory(); - - private final Map<String, LauncherProvider> launcherRegistry = new HashMap<>(); - private LauncherFactory() { +public final class LauncherFactory { + private static final Map<String, LauncherProvider> launcherRegistry = new HashMap<>(); + + static { launcherRegistry.put("standard", new LauncherProvider() { @Override public Launcher provide(Parameters parameters) { @@ -62,22 +61,24 @@ public final class LauncherFactory { } }); } - - public Launcher createLauncher(Parameters parameters) { + private LauncherFactory() { + } + + public static Launcher createLauncher(Parameters parameters) { String name = parameters.first("launcher"); - + LauncherProvider launcherProvider = launcherRegistry.get(name); - + if (launcherProvider == null) throw new IllegalArgumentException("Invalid launcher type: " + name); - + return launcherProvider.provide(parameters); } - + public interface LauncherProvider { - + Launcher provide(Parameters parameters); - + } - + } |