samples/componentinjection/anagram-modular/src-app-register/org/apidesign/anagram/app/register/Launcher.java
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/samples/componentinjection/anagram-modular/src-app-register/org/apidesign/anagram/app/register/Launcher.java Sat Jun 14 10:06:54 2008 +0200
1.3 @@ -0,0 +1,32 @@
1.4 +package org.apidesign.anagram.app.register;
1.5 +
1.6 +import org.apidesign.anagram.api.Scrambler;
1.7 +import org.apidesign.anagram.api.UI;
1.8 +import org.apidesign.anagram.api.WordLibrary;
1.9 +
1.10 +public final class Launcher {
1.11 + private static Class<? extends WordLibrary> wordLibrary;
1.12 + private static Class<? extends Scrambler> scrambler;
1.13 + private static Class<? extends UI> ui;
1.14 +
1.15 +
1.16 + private Launcher() {
1.17 + }
1.18 +
1.19 +
1.20 + public static void registerWordLibrary(Class<? extends WordLibrary> libraryClass) {
1.21 + wordLibrary = libraryClass;
1.22 + }
1.23 + public static void registerScrambler(Class<? extends Scrambler> scramblerClass) {
1.24 + scrambler = scramblerClass;
1.25 + }
1.26 + public static void registerUI(Class<? extends UI> uiClass) {
1.27 + ui = uiClass;
1.28 + }
1.29 +
1.30 + public static UI launch() throws Exception {
1.31 + WordLibrary w = wordLibrary.newInstance();
1.32 + Scrambler s = scrambler.newInstance();
1.33 + return ui.getConstructor(WordLibrary.class, Scrambler.class).newInstance(w, s);
1.34 + }
1.35 +}