samples/componentinjection/anagram-modular/src-app-register/org/apidesign/anagram/app/register/Launcher.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 10:06:54 +0200
changeset 219 3fb53f65db57
child 233 15d31c98a129
permissions -rw-r--r--
Example with registration methods is working
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@219
     7
public final class Launcher {
jtulach@219
     8
    private static Class<? extends WordLibrary> wordLibrary;
jtulach@219
     9
    private static Class<? extends Scrambler> scrambler;
jtulach@219
    10
    private static Class<? extends UI> ui;
jtulach@219
    11
    
jtulach@219
    12
    
jtulach@219
    13
    private Launcher() {
jtulach@219
    14
    }
jtulach@219
    15
jtulach@219
    16
    
jtulach@219
    17
    public static void registerWordLibrary(Class<? extends WordLibrary> libraryClass) {
jtulach@219
    18
        wordLibrary = libraryClass;
jtulach@219
    19
    }
jtulach@219
    20
    public static void registerScrambler(Class<? extends Scrambler> scramblerClass) {
jtulach@219
    21
        scrambler = scramblerClass;
jtulach@219
    22
    }
jtulach@219
    23
    public static void registerUI(Class<? extends UI> uiClass) {
jtulach@219
    24
        ui = uiClass;
jtulach@219
    25
    }
jtulach@219
    26
    
jtulach@219
    27
    public static UI launch() throws Exception {
jtulach@219
    28
        WordLibrary w = wordLibrary.newInstance();
jtulach@219
    29
        Scrambler s = scrambler.newInstance();
jtulach@219
    30
        return ui.getConstructor(WordLibrary.class, Scrambler.class).newInstance(w, s);
jtulach@219
    31
    }
jtulach@219
    32
}