package com.tapadoo.slacknotifier;
import jetbrains.buildServer.serverSide.settings.ProjectSettings;
import org.jdom.Attribute;
import org.jdom.DataConversionException;
import org.jdom.Element;
/**
* Created by jasonconnery on 02/03/2014.
*/
public class SlackProjectSettings implements ProjectSettings {
public static final String ELEMENT_LOGO_URL = "logoUrl";
public static final String ATTR_ENABLED = "enabled";
public static final String ELEMENT_CHANNEL = "channel";
private String projectId;
private String channel;
private String logoUrl;
private boolean enabled = true ;
public SlackProjectSettings(String projectId) {
this.projectId = projectId ;
}
public SlackProjectSettings()
{
}
public String getChannel() {
return channel;
}
public void setChannel(String channel) {
this.channel = channel;
}
public String getLogoUrl() {
return logoUrl;
}
public void setLogoUrl(String logoUrl) {
this.logoUrl = logoUrl;
}
public boolean isEnabled()
{
return this.enabled;
}
public void dispose() {
}
public void readFrom(Element element) {
Element channelElement = element.getChild(ELEMENT_CHANNEL);
Element logoElement = element.getChild(ELEMENT_LOGO_URL);
Attribute enabledAttr = element.getAttribute(ATTR_ENABLED);
if( enabledAttr != null )
{
try {
enabled = enabledAttr.getBooleanValue() ;
} catch (DataConversionException e) {
enabled = true ;
}
}
else
{
enabled = true ;
}
if( channelElement != null ) {
this.channel = channelElement.getText();
}
if( logoElement != null )
{
this.logoUrl = logoElement.getText();
}
}
public void writeTo(Element element) {
Element channelElement = new Element(ELEMENT_CHANNEL);
channelElement.setText(this.channel);
Element logoUrlElement = new Element(ELEMENT_LOGO_URL);
logoUrlElement.setText(this.logoUrl);
Attribute enabledAttr = new Attribute(ATTR_ENABLED,Boolean.toString(enabled)) ;
element.setAttribute( enabledAttr );
element.addContent(channelElement);
element.addContent(logoUrlElement);
}
}