davmail/src/java/davmail/Settings.java

75 lines
2.5 KiB
Java

package davmail;
import java.util.Properties;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/**
* Settings facade
*/
public class Settings {
protected static final Properties settings = new Properties();
protected static String configFilePath;
public static synchronized void setConfigFilePath(String value) {
configFilePath = value;
}
public static synchronized void load() {
try {
if (configFilePath == null) {
configFilePath = System.getProperty("user.home") + "/.davmail.properties";
}
File configFile = new File(configFilePath);
if (configFile.exists()) {
settings.load(new FileReader(configFile));
} else {
settings.put("davmail.url", "http://exchangeServer/exchange/");
settings.put("davmail.popPort", "110");
settings.put("davmail.smtpPort", "25");
settings.put("davmail.keepDelay", "30");
settings.put("davmail.enableProxy", "false");
settings.put("davmail.proxyHost", "");
settings.put("davmail.proxyPort", "");
settings.put("davmail.proxyUser", "");
settings.put("davmail.proxyPassword", "");
save();
}
} catch (IOException e) {
DavGatewayTray.error("Unable to load settings: ", e);
}
}
public static synchronized void save() {
try {
settings.store(new FileWriter(configFilePath), "DavMail settings");
} catch (IOException e) {
DavGatewayTray.error("Unable to store settings: ", e);
}
}
public static synchronized String getProperty(String property) {
return settings.getProperty(property);
}
public static synchronized void setProperty(String property, String value) {
settings.setProperty(property, value);
}
public static synchronized int getIntProperty(String property) {
int value = 0;
try {
String propertyValue = settings.getProperty(property);
if (propertyValue != null && propertyValue.length() > 0) {
value = Integer.valueOf(propertyValue);
}
} catch (NumberFormatException e) {
DavGatewayTray.error("Invalid setting value in " + property, e);
}
return value;
}
}