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
     1 package org.apidesign.anagram.app.register;
     2 
     3 import org.apidesign.anagram.api.Scrambler;
     4 import org.apidesign.anagram.api.UI;
     5 import org.apidesign.anagram.api.WordLibrary;
     6 
     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;
    11     
    12     
    13     private Launcher() {
    14     }
    15 
    16     
    17     public static void registerWordLibrary(Class<? extends WordLibrary> libraryClass) {
    18         wordLibrary = libraryClass;
    19     }
    20     public static void registerScrambler(Class<? extends Scrambler> scramblerClass) {
    21         scrambler = scramblerClass;
    22     }
    23     public static void registerUI(Class<? extends UI> uiClass) {
    24         ui = uiClass;
    25     }
    26     
    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);
    31     }
    32 }