samples/componentinjection/anagram-modular/src-app-property/org/apidesign/anagram/app/property/AnagramsWithProperties.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 10:07:01 +0200
changeset 222 def08b238fa5
parent 221 a89ad3d1da08
child 223 74232660cfff
permissions -rw-r--r--
Simplified with duplication of the code ;-)
     1 package org.apidesign.anagram.app.register;
     2 
     3 import java.util.logging.Level;
     4 import java.util.logging.Logger;
     5 import org.apidesign.anagram.api.Scrambler;
     6 import org.apidesign.anagram.api.WordLibrary;
     7 import org.apidesign.anagram.gui.Anagrams;
     8 
     9 public final class AnagramsWithProperties extends Anagrams {
    10     private WordLibrary wordLibrary;
    11     private Scrambler scrambler;
    12     
    13     public AnagramsWithProperties() {
    14     }
    15     
    16     @Override
    17     protected WordLibrary getWordLibrary() {
    18         try {
    19             if (wordLibrary == null) {
    20                 String implName = System.getProperty("org.apidesign.anagram.api.WordLibrary");
    21                 assert implName != null;
    22                 Class<?> impl = Class.forName(implName);
    23                 wordLibrary = (WordLibrary)impl.newInstance();
    24             }
    25             return wordLibrary;
    26         } catch (Exception ex) {
    27             throw new IllegalStateException(ex);
    28         }
    29     }
    30 
    31     @Override
    32     protected Scrambler getScrambler() {
    33         try {
    34             if (scrambler == null) {
    35                 String implName = System.getProperty("org.apidesign.anagram.api.Scrambler");
    36                 assert implName != null;
    37                 Class<?> impl = Class.forName(implName);
    38                 scrambler = (Scrambler)impl.newInstance();
    39             }
    40             return scrambler;
    41         } catch (Exception ex) {
    42             throw new IllegalStateException(ex);
    43         }
    44     }
    45 }