samples/componentinjection/anagram-modular/src-app-property/org/apidesign/anagram/app/property/AnagramsWithProperties.java
1 package org.apidesign.anagram.app.property;
3 import org.apidesign.anagram.api.Scrambler;
4 import org.apidesign.anagram.api.WordLibrary;
5 import org.apidesign.anagram.gui.Anagrams;
7 public final class AnagramsWithProperties extends Anagrams {
8 private WordLibrary wordLibrary;
9 private Scrambler scrambler;
11 public AnagramsWithProperties() {
15 protected WordLibrary getWordLibrary() {
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();
24 } catch (Exception ex) {
25 throw new IllegalStateException(ex);
30 protected Scrambler getScrambler() {
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();
39 } catch (Exception ex) {
40 throw new IllegalStateException(ex);