package com.baselet.control.enums; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * PROGRAM, PLATTFORM AND JAVA SPECIFIC SETTINGS **/ public class Program { private static final Logger log = LoggerFactory.getLogger(Program.class); private static Program instance; public static Program getInstance() { if (!isInitialized()) { throw new RuntimeException("Program must be initialized before using it"); } return instance; } public static void init(String version, RuntimeType runtimeType) { instance = new Program(version, runtimeType); } public static boolean isInitialized() { return instance != null; } private final RuntimeType runtimeType; private final String configName; private final String programName; private final String extension; private final String website; private final String version; private Program(String version, RuntimeType runtimeType) { log.info("Initializing Program: Version=" + version + ", Runtime=" + runtimeType); this.version = version; this.runtimeType = runtimeType; programName = "UMLet"; extension = "uxf"; website = "http://www." + getProgramName().toLowerCase() + ".com"; if (runtimeType == RuntimeType.ECLIPSE_PLUGIN) { configName = getProgramName().toLowerCase() + "plugin.cfg"; } else /* STANDALONE and BATCH */ { configName = getProgramName().toLowerCase() + ".cfg"; } } public RuntimeType getRuntimeType() { return runtimeType; } public String getConfigName() { return configName; } public String getProgramName() { return programName; } public String getExtension() { return extension; } public String getWebsite() { return website; } public String getVersion() { return version; } }