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 // BEGIN: anagram.programatic.register
8 public final class Launcher {
9 private static Class<? extends WordLibrary> wordLibrary;
10 private static Class<? extends Scrambler> scrambler;
11 private static Class<? extends UI> ui;
18 public static void registerWordLibrary(
19 Class<? extends WordLibrary> libraryClass
21 wordLibrary = libraryClass;
23 public static void registerScrambler(
24 Class<? extends Scrambler> scramblerClass
26 scrambler = scramblerClass;
28 public static void registerUI(Class<? extends UI> uiClass) {
32 public static UI launch() throws Exception {
33 WordLibrary w = wordLibrary.newInstance();
34 Scrambler s = scrambler.newInstance();
35 return ui.getConstructor(
36 WordLibrary.class, Scrambler.class
40 // END: anagram.programatic.register