diff options
author | icelimetea <fr3shtea@outlook.com> | 2022-05-03 00:25:26 +0100 |
---|---|---|
committer | icelimetea <fr3shtea@outlook.com> | 2022-05-03 00:25:26 +0100 |
commit | eeb5297284494c03f3b8e3927c5ed6cc3ca09a41 (patch) | |
tree | e20d809a3fbb9154a064edd1d20bb2c22a9ae390 /libraries/launcher/org/multimc/LauncherFactory.java | |
parent | 8de63b60b1a9d0ba16f5d45f3198c13637151749 (diff) | |
download | PrismLauncher-eeb5297284494c03f3b8e3927c5ed6cc3ca09a41.tar.gz PrismLauncher-eeb5297284494c03f3b8e3927c5ed6cc3ca09a41.tar.bz2 PrismLauncher-eeb5297284494c03f3b8e3927c5ed6cc3ca09a41.zip |
Use only Java 7 features (in order to deal with #515)
Diffstat (limited to 'libraries/launcher/org/multimc/LauncherFactory.java')
-rw-r--r-- | libraries/launcher/org/multimc/LauncherFactory.java | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/libraries/launcher/org/multimc/LauncherFactory.java b/libraries/launcher/org/multimc/LauncherFactory.java index b5d0dd5b..2b370058 100644 --- a/libraries/launcher/org/multimc/LauncherFactory.java +++ b/libraries/launcher/org/multimc/LauncherFactory.java @@ -5,30 +5,39 @@ import org.multimc.utils.ParamBucket; import java.util.HashMap; import java.util.Map; -import java.util.function.Function; public final class LauncherFactory { private static final LauncherFactory INSTANCE = new LauncherFactory(); - private final Map<String, Function<ParamBucket, Launcher>> launcherRegistry = new HashMap<>(); + private final Map<String, LauncherProvider> launcherRegistry = new HashMap<>(); private LauncherFactory() { - launcherRegistry.put("onesix", OneSixLauncher::new); + launcherRegistry.put("onesix", new LauncherProvider() { + @Override + public Launcher provide(ParamBucket parameters) { + return new OneSixLauncher(parameters); + } + }); } public Launcher createLauncher(String name, ParamBucket parameters) { - Function<ParamBucket, Launcher> launcherCreator = - launcherRegistry.get(name); + LauncherProvider launcherProvider = launcherRegistry.get(name); - if (launcherCreator == null) + if (launcherProvider == null) throw new IllegalArgumentException("Invalid launcher type: " + name); - return launcherCreator.apply(parameters); + return launcherProvider.provide(parameters); } public static LauncherFactory getInstance() { return INSTANCE; } + public interface LauncherProvider { + + Launcher provide(ParamBucket parameters); + + } + } |