samples/componentinjection/anagram-modular/src-app-register/org/apidesign/anagram/app/register/Launcher.java
1 package org.apidesign.anagram.app.register;
3 import org.apidesign.anagram.api.Scrambler;
4 import org.apidesign.anagram.api.UI;
5 import org.apidesign.anagram.api.WordLibrary;
7 public final class Launcher {
8 private static Class<? extends WordLibrary> wordLibrary;
9 private static Class<? extends Scrambler> scrambler;
10 private static Class<? extends UI> ui;
17 public static void registerWordLibrary(Class<? extends WordLibrary> libraryClass) {
18 wordLibrary = libraryClass;
20 public static void registerScrambler(Class<? extends Scrambler> scramblerClass) {
21 scrambler = scramblerClass;
23 public static void registerUI(Class<? extends UI> uiClass) {
27 public static UI launch() throws Exception {
28 WordLibrary w = wordLibrary.newInstance();
29 Scrambler s = scrambler.newInstance();
30 return ui.getConstructor(WordLibrary.class, Scrambler.class).newInstance(w, s);