1 package net.sf.openrocket.startup;
3 import net.sf.openrocket.database.ThrustCurveMotorSetDatabase;
4 import net.sf.openrocket.logging.LogHelper;
5 import net.sf.openrocket.logging.LogLevel;
6 import net.sf.openrocket.logging.LogLevelBufferLogger;
7 import net.sf.openrocket.logging.PrintStreamLogger;
10 * A class that provides singleton instances / beans for other classes to utilize.
12 * @author Sampo Niskanen <sampo.niskanen@iki.fi>
14 public final class Application {
16 private static LogHelper logger;
17 private static LogLevelBufferLogger logBuffer;
19 private static ThrustCurveMotorSetDatabase motorSetDatabase;
21 // Initialize the logger to something sane for testing without executing Startup
23 logger = new PrintStreamLogger();
24 for (LogLevel l : LogLevel.values()) {
25 ((PrintStreamLogger) logger).setOutput(l, System.out);
31 * Retrieve the logger to be used in logging. By default this returns
32 * a logger that outputs to stdout/stderr even if not separately initialized,
33 * useful for development and debugging.
35 public static LogHelper getLogger() {
40 * Set the logger to be used in logging. Note that calling this will only have effect
41 * on not-yet loaded classes, as the instance is stored in a static variable.
43 public static void setLogger(LogHelper logger) {
44 Application.logger = logger;
50 * Return the log buffer.
52 * @return the logBuffer or null if not initialized
54 public static LogLevelBufferLogger getLogBuffer() {
59 * Set the log buffer logger. The logger must be separately configured
60 * to receive the logging.
62 public static void setLogBuffer(LogLevelBufferLogger logBuffer) {
63 Application.logBuffer = logBuffer;
69 * Return the database of all thrust curves loaded into the system.
71 public static ThrustCurveMotorSetDatabase getMotorSetDatabase() {
72 return motorSetDatabase;
76 * Set the database of thrust curves loaded into the system.
78 public static void setMotorSetDatabase(ThrustCurveMotorSetDatabase motorSetDatabase) {
79 Application.motorSetDatabase = motorSetDatabase;