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