package fr.jcgay.notification.notifier.snarl; import com.google.auto.value.AutoValue; import javax.annotation.Nullable; import java.util.Properties; @AutoValue public abstract class SnarlConfiguration { private static final SnarlConfiguration DEFAULT = new AutoValue_SnarlConfiguration("localhost", 9887, null); public abstract String host(); public abstract int port(); @Nullable public abstract String applicationPassword(); SnarlConfiguration() { // prevent external subclasses } public static SnarlConfiguration byDefault() { return DEFAULT; } public static SnarlConfiguration create(Properties properties) { if (properties == null) { return byDefault(); } return new AutoValue_SnarlConfiguration( properties.getProperty("notifier.snarl.host", DEFAULT.host()), Integer.valueOf(properties.getProperty("notifier.snarl.port", String.valueOf(DEFAULT.port()))), properties.getProperty("notifier.snarl.appPassword", DEFAULT.applicationPassword()) ); } }