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() {
14 // BEGIN: anagram.property
16 protected WordLibrary getWordLibrary() {
18 if (wordLibrary == null) {
19 String implName = System.getProperty(
20 "org.apidesign.anagram.api.WordLibrary"
22 assert implName != null;
23 Class<?> impl = Class.forName(implName);
24 wordLibrary = (WordLibrary)impl.newInstance();
27 } catch (Exception ex) {
28 throw new IllegalStateException(ex);
33 protected Scrambler getScrambler() {
35 if (scrambler == null) {
36 String implName = System.getProperty(
37 "org.apidesign.anagram.api.Scrambler"
39 assert implName != null;
40 Class<?> impl = Class.forName(implName);
41 scrambler = (Scrambler)impl.newInstance();
44 } catch (Exception ex) {
45 throw new IllegalStateException(ex);
48 // END: anagram.property