samples/componentinjection/anagram-modular/src-app-property/org/apidesign/anagram/app/property/AnagramsWithProperties.java
1 package org.apidesign.anagram.app.register;
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;
9 public final class AnagramsWithProperties extends Anagrams {
10 private WordLibrary wordLibrary;
11 private Scrambler scrambler;
13 public AnagramsWithProperties() {
17 protected WordLibrary getWordLibrary() {
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();
26 } catch (Exception ex) {
27 throw new IllegalStateException(ex);
32 protected Scrambler getScrambler() {
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();
41 } catch (Exception ex) {
42 throw new IllegalStateException(ex);