author | Jaroslav Tulach <jaroslav.tulach@apidesign.org> |
Thu, 30 Oct 2014 21:30:10 +0100 | |
changeset 409 | 40cabcdcd2be |
parent 219 | 3fb53f65db57 |
permissions | -rw-r--r-- |
jtulach@219 | 1 |
package org.apidesign.anagram.app.register; |
jtulach@219 | 2 |
|
jtulach@219 | 3 |
import org.apidesign.anagram.api.Scrambler; |
jtulach@219 | 4 |
import org.apidesign.anagram.api.UI; |
jtulach@219 | 5 |
import org.apidesign.anagram.api.WordLibrary; |
jtulach@219 | 6 |
|
jtulach@233 | 7 |
// BEGIN: anagram.programatic.register |
jtulach@219 | 8 |
public final class Launcher { |
jtulach@219 | 9 |
private static Class<? extends WordLibrary> wordLibrary; |
jtulach@219 | 10 |
private static Class<? extends Scrambler> scrambler; |
jtulach@219 | 11 |
private static Class<? extends UI> ui; |
jtulach@219 | 12 |
|
jtulach@219 | 13 |
|
jtulach@219 | 14 |
private Launcher() { |
jtulach@219 | 15 |
} |
jtulach@219 | 16 |
|
jtulach@219 | 17 |
|
jtulach@233 | 18 |
public static void registerWordLibrary( |
jtulach@233 | 19 |
Class<? extends WordLibrary> libraryClass |
jtulach@233 | 20 |
) { |
jtulach@219 | 21 |
wordLibrary = libraryClass; |
jtulach@219 | 22 |
} |
jtulach@233 | 23 |
public static void registerScrambler( |
jtulach@233 | 24 |
Class<? extends Scrambler> scramblerClass |
jtulach@233 | 25 |
) { |
jtulach@219 | 26 |
scrambler = scramblerClass; |
jtulach@219 | 27 |
} |
jtulach@219 | 28 |
public static void registerUI(Class<? extends UI> uiClass) { |
jtulach@219 | 29 |
ui = uiClass; |
jtulach@219 | 30 |
} |
jtulach@219 | 31 |
|
jtulach@219 | 32 |
public static UI launch() throws Exception { |
jtulach@219 | 33 |
WordLibrary w = wordLibrary.newInstance(); |
jtulach@219 | 34 |
Scrambler s = scrambler.newInstance(); |
jtulach@233 | 35 |
return ui.getConstructor( |
jtulach@233 | 36 |
WordLibrary.class, Scrambler.class |
jtulach@233 | 37 |
).newInstance(w, s); |
jtulach@219 | 38 |
} |
jtulach@219 | 39 |
} |
jtulach@233 | 40 |
// END: anagram.programatic.register |