package com.tapadoo.slacknotifier;
import jetbrains.buildServer.serverSide.MainConfigProcessor;
import org.jdom.Attribute;
import org.jdom.DataConversionException;
import org.jdom.Element;
/**
* Created by jasonconnery on 02/03/2014.
*/
public class SlackConfigProcessor implements MainConfigProcessor {
public static final String PREF_KEY_SLACK_DEF_CHANNEL = "slackDefaultChannel";
public static final String PREF_KEY_SLACK_POSTURL = "slackPostUrl";
public static final String PREF_KEY_SLACK_LOGOURL = "slackLogoUrl";
private static final java.lang.String PREF_CHILD_ELEMENT = "slackNotifier";
private static final java.lang.String ATTR_NAME_POST_SUCCESSFUL = "postSuccessful" ;
private static final java.lang.String ATTR_NAME_POST_STARTED = "postStarted" ;
private static final java.lang.String ATTR_NAME_POST_FAILED = "postFailed" ;
private String defaultChannel = "#general";
private String postUrl;
private String logoUrl;
private boolean postSuccessful = true ;
private boolean postStarted = false ;
private boolean postFailed = false ;
public SlackConfigProcessor()
{
}
public void init()
{
}
public boolean postSuccessful()
{
return postSuccessful ;
}
public boolean postFailed()
{
return postFailed ;
}
public boolean postStarted()
{
return postStarted ;
}
public String getDefaultChannel() {
return defaultChannel;
}
public void setDefaultChannel(String defaultChannel) {
this.defaultChannel = defaultChannel;
}
public String getPostUrl() {
return postUrl;
}
public void setPostUrl(String postUrl) {
this.postUrl = postUrl;
}
public String getLogoUrl() {
return logoUrl;
}
public void setLogoUrl(String logoUrl) {
this.logoUrl = logoUrl;
}
public void readFrom(org.jdom.Element element) {
Element mainConfigElement = element.getChild(PREF_CHILD_ELEMENT);
if( mainConfigElement == null )
{
postUrl = "http://localhost/" ;
return ;
}
defaultChannel = mainConfigElement.getChildText(PREF_KEY_SLACK_DEF_CHANNEL);
postUrl = mainConfigElement.getChildText(PREF_KEY_SLACK_POSTURL);
logoUrl = mainConfigElement.getChildText(PREF_KEY_SLACK_LOGOURL);
Attribute postSuccessfulAttr = mainConfigElement.getAttribute(ATTR_NAME_POST_SUCCESSFUL);
Attribute postStartedAttr = mainConfigElement.getAttribute(ATTR_NAME_POST_STARTED);
Attribute postFailedAttr = mainConfigElement.getAttribute(ATTR_NAME_POST_FAILED);
if( postSuccessfulAttr != null )
{
try {
postSuccessful = postSuccessfulAttr.getBooleanValue();
}
catch( DataConversionException ex )
{
postSuccessful = true ;
}
}
if( postStartedAttr != null )
{
try {
postStarted = postStartedAttr.getBooleanValue();
}
catch( DataConversionException ex )
{
postStarted = false ;
}
}
if( postFailedAttr != null )
{
try {
postFailed = postFailedAttr.getBooleanValue();
}
catch( DataConversionException ex )
{
postFailed = false ;
}
}
}
public void writeTo(org.jdom.Element element) {
Element mainConfigElement = new Element(PREF_CHILD_ELEMENT);
Element defChannelElement = new Element(PREF_KEY_SLACK_DEF_CHANNEL);
Element postUrlElement = new Element(PREF_KEY_SLACK_POSTURL);
Element logoUrlElement = new Element(PREF_KEY_SLACK_LOGOURL);
defChannelElement.setText(defaultChannel);
mainConfigElement.addContent(defChannelElement);
mainConfigElement.addContent(postUrlElement);
mainConfigElement.addContent(logoUrlElement);
element.addContent(mainConfigElement);
}
}