1 25 package classycle.dependency; 26 27 import java.util.HashMap ; 28 29 30 53 public class DefaultPreferenceFactory implements PreferenceFactory 54 { 55 public static final Preference ONLY_SHORTEST_PATHS 56 = new DefaultPreference("onlyShortestPaths"); 57 public static final Preference ALL_PATHS = new DefaultPreference("allPaths"); 58 public static final Preference ALL_RESULTS 59 = new DefaultPreference("allResults"); 60 public static final Preference ONLY_FAILURES 61 = new DefaultPreference("onlyFailures"); 62 63 private static class DefaultPreference implements Preference 64 { 65 private static final HashMap REPOSITORY = new HashMap (); 66 public static Preference getPreference(String key) 67 { 68 return (Preference) REPOSITORY.get(key); 69 } 70 private final String _key; 71 protected DefaultPreference(String key) 72 { 73 _key = key; 74 if (REPOSITORY.containsKey(key)) 75 { 76 throw new IllegalArgumentException ( 77 "There exists already an instance for '" + key + "'."); 78 } 79 REPOSITORY.put(key, this); 80 } 81 public final String getKey() 82 { 83 return _key; 84 } 85 public String toString() 86 { 87 return getKey(); 88 } 89 } 90 91 public Preference get(String key) 92 { 93 return DefaultPreference.getPreference(key); 94 } 95 96 } 97 | Popular Tags |