View Javadoc

1   package org.catacomb.druid.load;
2   
3   
4   import java.io.File;
5   
6   import org.catacomb.interlish.report.Logger;
7   import org.catacomb.interlish.report.PrintLogger;
8   import org.catacomb.interlish.service.AppPersist;
9   import org.catacomb.interlish.service.AppPersistProvider;
10  import org.catacomb.report.E;
11  
12  
13  public final class DruidAppBase implements AppPersistProvider {
14  
15      static DruidAppBase instance;
16  
17  
18      String applicationName;
19      Logger logger;
20      Settings settings;
21  
22  
23      static String defaultApplicationName = "druid-application";
24  
25  
26  
27      public static void init() {
28          init(null, null);
29      }
30  
31  
32      public static void init(String s, Object projroot) {
33          String apn = null;
34          if (s == null || s.length() == 0) {
35              apn = defaultApplicationName;
36          } else {
37              apn = s;
38          }
39  
40          if (instance == null) {
41              instance = new DruidAppBase(apn);
42              AppPersist.setProvider(instance);
43  
44              DruidContentLoader.initLoader(projroot);
45  
46  
47  
48          } else {
49              E.debugError("Sys.init called when it has already been initialized");
50          }
51  
52  
53  
54      }
55  
56  
57  
58      public DruidAppBase(String ap) {
59          applicationName = ap;
60  
61      }
62  
63  
64  
65      public static DruidAppBase getSys() {
66          if (instance == null) {
67              init();
68          }
69          return instance;
70      }
71  
72  
73  
74  
75  
76      public String getApplicationName() {
77          return applicationName;
78      }
79  
80  
81      public Settings getSettings() {
82          if (settings == null) {
83              settings = new Settings(applicationName);
84          }
85          return settings;
86      }
87  
88  
89  
90  
91  
92  
93  
94      public Logger getLogger() {
95          if (logger == null) {
96              logger = new PrintLogger();
97          }
98          return logger;
99      }
100 
101 
102 
103     public void requestExit() {
104 
105         System.exit(0);
106 
107 
108     }
109 
110 
111 
112 
113 
114     public boolean hasValueFor(String pel) {
115         return getSettings().hasElement(pel);
116     }
117 
118     public boolean hasValue(String pel, String val) {
119         return getSettings().hasElement(pel, val);
120     }
121 
122     public String getValueFor(String pel) {
123         return getSettings().getValue(pel);
124     }
125 
126     public void addRecentFile(File f) {
127         getSettings().addRecentFile(f);
128     }
129 
130     public void setValue(String lab, String val) {
131         getSettings().setElement(lab, val);
132     }
133 
134     public String[] getRecentPaths() {
135         return getSettings().getRecentPaths();
136     }
137 
138 
139     public void forceExit() {
140         System.exit(0);
141     }
142 
143 
144 }