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:02 +0200
changeset 223 74232660cfff
parent 222 def08b238fa5
child 224 7a15b5efae6a
permissions -rw-r--r--
Made compilable
     1 package org.apidesign.anagram.app.property;
     2 
     3 import org.apidesign.anagram.api.Scrambler;
     4 import org.apidesign.anagram.api.WordLibrary;
     5 import org.apidesign.anagram.gui.Anagrams;
     6 
     7 public final class AnagramsWithProperties extends Anagrams {
     8     private WordLibrary wordLibrary;
     9     private Scrambler scrambler;
    10     
    11     public AnagramsWithProperties() {
    12     }
    13     
    14     @Override
    15     protected WordLibrary getWordLibrary() {
    16         try {
    17             if (wordLibrary == null) {
    18                 String implName = System.getProperty("org.apidesign.anagram.api.WordLibrary");
    19                 assert implName != null;
    20                 Class<?> impl = Class.forName(implName);
    21                 wordLibrary = (WordLibrary)impl.newInstance();
    22             }
    23             return wordLibrary;
    24         } catch (Exception ex) {
    25             throw new IllegalStateException(ex);
    26         }
    27     }
    28 
    29     @Override
    30     protected Scrambler getScrambler() {
    31         try {
    32             if (scrambler == null) {
    33                 String implName = System.getProperty("org.apidesign.anagram.api.Scrambler");
    34                 assert implName != null;
    35                 Class<?> impl = Class.forName(implName);
    36                 scrambler = (Scrambler)impl.newInstance();
    37             }
    38             return scrambler;
    39         } catch (Exception ex) {
    40             throw new IllegalStateException(ex);
    41         }
    42     }
    43 }