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(
19 "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(
36 "org.apidesign.anagram.api.Scrambler"
38 assert implName != null;
39 Class<?> impl = Class.forName(implName);
40 scrambler = (Scrambler)impl.newInstance();
43 } catch (Exception ex) {
44 throw new IllegalStateException(ex);