Updated Spanish translations
[debian/openrocket] / src / net / sf / openrocket / startup / Application.java
1 package net.sf.openrocket.startup;
2
3 import net.sf.openrocket.database.ThrustCurveMotorSetDatabase;
4 import net.sf.openrocket.l10n.DebugTranslator;
5 import net.sf.openrocket.l10n.Translator;
6 import net.sf.openrocket.logging.LogHelper;
7 import net.sf.openrocket.logging.LogLevel;
8 import net.sf.openrocket.logging.LogLevelBufferLogger;
9 import net.sf.openrocket.logging.PrintStreamLogger;
10
11 /**
12  * A class that provides singleton instances / beans for other classes to utilize.
13  * 
14  * @author Sampo Niskanen <sampo.niskanen@iki.fi>
15  */
16 public final class Application {
17         
18         private static LogHelper logger;
19         private static LogLevelBufferLogger logBuffer;
20         
21         private static Translator translator = new DebugTranslator();
22         
23         private static ThrustCurveMotorSetDatabase motorSetDatabase;
24         
25
26         // Initialize the logger to something sane for testing without executing Startup
27         static {
28                 setLogOutputLevel(LogLevel.DEBUG);
29         }
30         
31         
32         /**
33          * Retrieve the logger to be used in logging.  By default this returns
34          * a logger that outputs to stdout/stderr even if not separately initialized,
35          * useful for development and debugging.
36          */
37         public static LogHelper getLogger() {
38                 return logger;
39         }
40         
41         /**
42          * Set the logger to be used in logging.  Note that calling this will only have effect
43          * on not-yet loaded classes, as the instance is stored in a static variable.
44          */
45         public static void setLogger(LogHelper logger) {
46                 Application.logger = logger;
47         }
48         
49         
50
51         /**
52          * Return the log buffer.
53          * 
54          * @return the logBuffer or null if not initialized
55          */
56         public static LogLevelBufferLogger getLogBuffer() {
57                 return logBuffer;
58         }
59         
60         /**
61          * Set the log buffer logger.  The logger must be separately configured
62          * to receive the logging.
63          */
64         public static void setLogBuffer(LogLevelBufferLogger logBuffer) {
65                 Application.logBuffer = logBuffer;
66         }
67         
68         
69         /**
70          * Set the logging to output the specified log level and upwards to standard output.
71          * 
72          * @param level         the minimum logging level to output.
73          */
74         public static void setLogOutputLevel(LogLevel level) {
75                 logger = new PrintStreamLogger();
76                 for (LogLevel l : LogLevel.values()) {
77                         if (l.atLeast(level)) {
78                                 ((PrintStreamLogger) logger).setOutput(l, System.out);
79                         }
80                 }
81                 
82         }
83         
84         
85         /**
86          * Return the translator to use for obtaining translated strings.
87          * @return      a translator.
88          */
89         public static Translator getTranslator() {
90                 return translator;
91         }
92         
93         /**
94          * Set the translator used in obtaining translated strings.
95          * @param translator    the translator to set.
96          */
97         public static void setTranslator(Translator translator) {
98                 Application.translator = translator;
99         }
100         
101         
102
103         /**
104          * Return the database of all thrust curves loaded into the system.
105          */
106         public static ThrustCurveMotorSetDatabase getMotorSetDatabase() {
107                 return motorSetDatabase;
108         }
109         
110         /**
111          * Set the database of thrust curves loaded into the system.
112          */
113         public static void setMotorSetDatabase(ThrustCurveMotorSetDatabase motorSetDatabase) {
114                 Application.motorSetDatabase = motorSetDatabase;
115         }
116         
117
118 }