aboutsummaryrefslogtreecommitdiff
path: root/libraries/launcher/org/multimc/LauncherFactory.java
diff options
context:
space:
mode:
authoricelimetea <fr3shtea@outlook.com>2022-05-03 00:25:26 +0100
committericelimetea <fr3shtea@outlook.com>2022-05-03 00:25:26 +0100
commiteeb5297284494c03f3b8e3927c5ed6cc3ca09a41 (patch)
treee20d809a3fbb9154a064edd1d20bb2c22a9ae390 /libraries/launcher/org/multimc/LauncherFactory.java
parent8de63b60b1a9d0ba16f5d45f3198c13637151749 (diff)
downloadPrismLauncher-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.java23
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);
+
+ }
+
}