001/*
002 * Sonar, open source software quality management tool.
003 * Copyright (C) 2008-2012 SonarSource
004 * mailto:contact AT sonarsource DOT com
005 *
006 * Sonar is free software; you can redistribute it and/or
007 * modify it under the terms of the GNU Lesser General Public
008 * License as published by the Free Software Foundation; either
009 * version 3 of the License, or (at your option) any later version.
010 *
011 * Sonar is distributed in the hope that it will be useful,
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
014 * Lesser General Public License for more details.
015 *
016 * You should have received a copy of the GNU Lesser General Public
017 * License along with Sonar; if not, write to the Free Software
018 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
019 */
020package org.sonar.wsclient.services;
021
022import java.util.LinkedHashMap;
023import java.util.Map;
024
025public class Measure extends Model {
026
027  private String metricKey;
028  private String metricName;
029  private Double value;
030  private String formattedValue;
031  private String data;
032  private String characteristicKey;
033  private String characteristicName;
034
035  private Integer trend;
036  private Integer var;
037
038  private String ruleKey;
039  private String ruleName;
040  private String ruleSeverity;
041
042  /**
043   * @deprecated since 2.5 See http://jira.codehaus.org/browse/SONAR-2007
044   */
045  @Deprecated
046  private String ruleCategory;
047
048  private Double variation1, variation2, variation3, variation4, variation5;
049
050  public String getMetricKey() {
051    return metricKey;
052  }
053
054  public Measure setMetricKey(String metricKey) {
055    this.metricKey = metricKey;
056    return this;
057  }
058
059  public String getMetricName() {
060    return metricName;
061  }
062
063  public Measure setMetricName(String metricName) {
064    this.metricName = metricName;
065    return this;
066  }
067
068  public Double getValue() {
069    return value;
070  }
071
072  public Integer getIntValue() {
073    if (value == null) {
074      return null;
075    }
076    return value.intValue();
077  }
078
079  public Measure setValue(Double value) {
080    this.value = value;
081    return this;
082  }
083
084  public String getFormattedValue() {
085    return formattedValue;
086  }
087
088  public String getFormattedValue(String defaultValue) {
089    if (formattedValue == null) {
090      return defaultValue;
091    }
092    return formattedValue;
093  }
094
095  public Measure setFormattedValue(String formattedValue) {
096    this.formattedValue = formattedValue;
097    return this;
098  }
099
100  public String getData() {
101    return data;
102  }
103
104  public Map<String, String> getDataAsMap() {
105    return getDataAsMap(",");
106  }
107
108  public Map<String, String> getDataAsMap(String separator) {
109    if (data == null) {
110      return null;
111    }
112    Map<String, String> map = new LinkedHashMap<String, String>();
113    String[] parts = data.split(separator);
114    for (String part : parts) {
115      String[] kv = part.split("=");
116      map.put(kv[0], kv[1]);
117    }
118    return map;
119  }
120
121  public Measure setData(String data) {
122    this.data = data;
123    return this;
124  }
125
126  public Integer getTrend() {
127    return trend;
128  }
129
130  public Measure setTrend(Integer trend) {
131    this.trend = trend;
132    return this;
133  }
134
135  public Integer getVar() {
136    return var;
137  }
138
139  public Measure setVar(Integer var) {
140    this.var = var;
141    return this;
142  }
143
144  public String getRuleKey() {
145    return ruleKey;
146  }
147
148  public Measure setRuleKey(String ruleKey) {
149    this.ruleKey = ruleKey;
150    return this;
151  }
152
153  public String getRuleName() {
154    return ruleName;
155  }
156
157  public Measure setRuleName(String ruleName) {
158    this.ruleName = ruleName;
159    return this;
160  }
161
162  /**
163   * @deprecated since 2.5 See http://jira.codehaus.org/browse/SONAR-2007
164   */
165  @Deprecated
166  public String getRuleCategory() {
167    return ruleCategory;
168  }
169
170  /**
171   * @deprecated since 2.5 See http://jira.codehaus.org/browse/SONAR-2007
172   */
173  @Deprecated
174  public Measure setRuleCategory(String ruleCategory) {
175    this.ruleCategory = ruleCategory;
176    return this;
177  }
178
179  /**
180   * @since 2.5
181   */
182  public Measure setRuleSeverity(String ruleSeverity) {
183    this.ruleSeverity = ruleSeverity;
184    return this;
185  }
186
187  /**
188   * @since 2.5
189   */
190  public String getRuleSeverity() {
191    return ruleSeverity;
192  }
193
194  /**
195   * @deprecated since 2.5 use {@link #getRuleSeverity()} instead. See http://jira.codehaus.org/browse/SONAR-1829
196   */
197  @Deprecated
198  public String getRulePriority() {
199    return ruleSeverity;
200  }
201
202  /**
203   * @deprecated since 2.5 use {@link #setRuleSeverity(String)} instead. See http://jira.codehaus.org/browse/SONAR-1829
204   */
205  @Deprecated
206  public Measure setRulePriority(String rulePriority) {
207    this.ruleSeverity = rulePriority;
208    return this;
209  }
210
211  public String getCharacteristicKey() {
212    return characteristicKey;
213  }
214
215  public String getCharacteristicName() {
216    return characteristicName;
217  }
218
219  public Measure setCharacteristicKey(String s) {
220    this.characteristicKey = s;
221    return this;
222  }
223
224  public Measure setCharacteristicName(String s) {
225    this.characteristicName = s;
226    return this;
227  }
228
229  /**
230   * Variation value on period 1. The value is loaded if ResourceQuery#setIncludeTrends() is set to true.
231   * @since 2.5
232   */
233  public Double getVariation1() {
234    return variation1;
235  }
236
237  /**
238   * @since 2.5
239   */
240  public Measure setVariation1(Double variation1) {
241    this.variation1 = variation1;
242    return this;
243  }
244
245  /**
246   * Variation value on period 2. The value is loaded if ResourceQuery#setIncludeTrends() is set to true.
247   * @since 2.5
248   */
249  public Double getVariation2() {
250    return variation2;
251  }
252
253  /**
254   * @since 2.5
255   */
256  public Measure setVariation2(Double variation2) {
257    this.variation2 = variation2;
258    return this;
259  }
260
261  /**
262   * Variation value on period 3. The value is loaded if ResourceQuery#setIncludeTrends() is set to true.
263   * @since 2.5
264   */
265  public Double getVariation3() {
266    return variation3;
267  }
268
269  /**
270   * @since 2.5
271   */
272  public Measure setVariation3(Double variation3) {
273    this.variation3 = variation3;
274    return this;
275  }
276
277  /**
278   * Variation value on period 4. The value is loaded if ResourceQuery#setIncludeTrends() is set to true.
279   * @since 2.5
280   */
281  public Double getVariation4() {
282    return variation4;
283  }
284
285  /**
286   * @since 2.5
287   */
288  public Measure setVariation4(Double variation4) {
289    this.variation4 = variation4;
290    return this;
291  }
292
293  /**
294   * Variation value on period 5. The value is loaded if ResourceQuery#setIncludeTrends() is set to true.
295   * @since 2.5
296   */
297  public Double getVariation5() {
298    return variation5;
299  }
300
301  /**
302   * @since 2.5
303   */
304  public Measure setVariation5(Double variation5) {
305    this.variation5 = variation5;
306    return this;
307  }
308
309  @Override
310  public String toString() {
311    return new StringBuilder().append("Measure{")
312        .append("metricKey='").append(metricKey).append('\'')
313        .append(", metricName='").append(metricName).append('\'')
314        .append(", value=").append(value)
315        .append(", formattedValue='").append(formattedValue).append('\'')
316        .append(", data='").append(data).append('\'')
317        .append(", characteristicKey='").append(characteristicKey).append('\'')
318        .append(", characteristicName='").append(characteristicName).append('\'')
319        .append(", trend=").append(trend).append(", var=").append(var)
320        .append(", ruleKey='").append(ruleKey).append('\'')
321        .append(", ruleName='").append(ruleName).append('\'')
322        .append(", ruleCategory='").append(ruleCategory).append('\'')
323        .append(", rulePriority='").append(ruleSeverity).append('\'')
324        .append('}').toString();
325  }
326}