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); } }