package com.intrbiz.bergamot.config.model;
import java.io.Serializable;
import java.util.LinkedHashSet;
import java.util.Set;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import com.intrbiz.bergamot.config.adapter.CSVAdapter;
import com.intrbiz.bergamot.config.adapter.YesNoAdapter;
import com.intrbiz.bergamot.config.resolver.ResolveWith;
import com.intrbiz.bergamot.config.resolver.stratergy.Coalesce;
import com.intrbiz.bergamot.config.resolver.stratergy.CoalesceEmptyCollection;
import com.intrbiz.bergamot.config.resolver.stratergy.CoalesceEmptyString;
@XmlType(name = "notification-engine")
@XmlRootElement(name = "notification-engine")
public class NotificationEngineCfg implements Serializable
{
private static final long serialVersionUID = 1L;
private String engine;
private Boolean enabled;
private String notificationPeriod;
private Boolean alerts;
private Boolean recovery;
private Boolean acknowledge;
private Set<String> ignore = new LinkedHashSet<String>();
public NotificationEngineCfg()
{
super();
}
@XmlAttribute(name = "engine")
@ResolveWith(CoalesceEmptyString.class)
public String getEngine()
{
return engine;
}
public void setEngine(String engine)
{
this.engine = engine;
}
@XmlJavaTypeAdapter(YesNoAdapter.class)
@XmlAttribute(name = "enabled")
@ResolveWith(Coalesce.class)
public Boolean getEnabled()
{
return enabled;
}
@XmlTransient
public boolean getEnabledBooleanValue()
{
return this.enabled == null ? true : this.enabled.booleanValue();
}
public void setEnabled(Boolean enabled)
{
this.enabled = enabled;
}
@XmlAttribute(name = "time-period")
@ResolveWith(CoalesceEmptyString.class)
public String getNotificationPeriod()
{
return notificationPeriod;
}
public void setNotificationPeriod(String notificationPeriod)
{
this.notificationPeriod = notificationPeriod;
}
@XmlJavaTypeAdapter(YesNoAdapter.class)
@XmlAttribute(name = "alerts")
@ResolveWith(Coalesce.class)
public Boolean getAlerts()
{
return alerts;
}
public boolean getAlertsBooleanValue()
{
return this.alerts == null ? true : this.alerts.booleanValue();
}
public void setAlerts(Boolean alerts)
{
this.alerts = alerts;
}
@XmlJavaTypeAdapter(YesNoAdapter.class)
@XmlAttribute(name = "recovery")
@ResolveWith(Coalesce.class)
public Boolean getRecovery()
{
return recovery;
}
public boolean getRecoveryBooleanValue()
{
return this.recovery == null ? true : this.recovery.booleanValue();
}
public void setRecovery(Boolean recovery)
{
this.recovery = recovery;
}
@XmlJavaTypeAdapter(YesNoAdapter.class)
@XmlAttribute(name = "acknowledge")
@ResolveWith(Coalesce.class)
public Boolean getAcknowledge()
{
return acknowledge;
}
public boolean getAcknowledgeBooleanValue()
{
return this.acknowledge == null ? true : this.acknowledge.booleanValue();
}
public void setAcknowledge(Boolean acknowledge)
{
this.acknowledge = acknowledge;
}
@XmlJavaTypeAdapter(CSVAdapter.class)
@XmlAttribute(name = "ignore")
@ResolveWith(CoalesceEmptyCollection.class)
public Set<String> getIgnore()
{
return ignore;
}
public boolean isIgnore(String state)
{
return this.getIgnore().contains(state);
}
public void setIgnore(Set<String> ignore)
{
this.ignore = ignore;
}
}