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.Date;
023
024public class Violation extends Model {
025
026  private Long id = null;
027  private String message = null;
028  private String severity = null;
029  private Integer line = null;
030  private String ruleKey = null;
031  private String ruleName = null;
032  private String resourceKey = null;
033  private String resourceName = null;
034  private String resourceScope = null;
035  private String resourceQualifier = null;
036  private Date createdAt = null;
037  private boolean switchedOff;
038  private Review review = null;
039
040  public String getMessage() {
041    return message;
042  }
043
044  public void setMessage(String message) {
045    this.message = message;
046  }
047
048  /**
049   * @since 2.5
050   */
051  public String getSeverity() {
052    return severity;
053  }
054
055  /**
056   * @since 2.5
057   */
058  public void setSeverity(String severity) {
059    this.severity = severity;
060  }
061
062  /**
063   * @deprecated since 2.5 use {@link #getSeverity()} instead. See http://jira.codehaus.org/browse/SONAR-1829
064   */
065  @Deprecated
066  public String getPriority() {
067    return severity;
068  }
069
070  /**
071   * @deprecated since 2.5 use {@link #setSeverity(String)} instead. See http://jira.codehaus.org/browse/SONAR-1829
072   */
073  @Deprecated
074  public void setPriority(String priority) {
075    this.severity = priority;
076  }
077
078  /**
079   * @return line number (numeration starts from 1), or <code>null</code> if violation doesn't belong to concrete line
080   * @see #hasLine()
081   */
082  public Integer getLine() {
083    return line;
084  }
085
086  public void setLine(Integer line) {
087    if (line != null && line < 1) {
088      /*
089       * This shouldn't happen, however line would be normalized to null if web service returns incorrect value (less than 1) in compliance
090       * with a contract for getLine method. Normalization added in 2.8 - see http://jira.codehaus.org/browse/SONAR-2386
091       */
092      this.line = null;
093    } else {
094      this.line = line;
095    }
096  }
097
098  /**
099   * @return <code>true<code> if violation belongs to concrete line
100   * @since 2.8
101   */
102  public boolean hasLine() {
103    return line != null;
104  }
105
106  public String getResourceKey() {
107    return resourceKey;
108  }
109
110  public void setResourceKey(String resourceKey) {
111    this.resourceKey = resourceKey;
112  }
113
114  public String getRuleKey() {
115    return ruleKey;
116  }
117
118  public Violation setRuleKey(String s) {
119    this.ruleKey = s;
120    return this;
121  }
122
123  public String getRuleName() {
124    return ruleName;
125  }
126
127  public Violation setRuleName(String ruleName) {
128    this.ruleName = ruleName;
129    return this;
130  }
131
132  public String getResourceName() {
133    return resourceName;
134  }
135
136  public Violation setResourceName(String resourceName) {
137    this.resourceName = resourceName;
138    return this;
139  }
140
141  public String getResourceScope() {
142    return resourceScope;
143  }
144
145  public Violation setResourceScope(String resourceScope) {
146    this.resourceScope = resourceScope;
147    return this;
148  }
149
150  public String getResourceQualifier() {
151    return resourceQualifier;
152  }
153
154  public Violation setResourceQualifier(String resourceQualifier) {
155    this.resourceQualifier = resourceQualifier;
156    return this;
157  }
158
159  /**
160   * @since 2.5
161   */
162  public Date getCreatedAt() {
163    return createdAt;
164  }
165
166  /**
167   * @since 2.5
168   */
169  public Violation setCreatedAt(Date createdAt) {
170    this.createdAt = createdAt;
171    return this;
172  }
173
174  /**
175   * @since 2.5
176   */
177  public boolean isCreatedAfter(Date date) {
178    return createdAt != null && date != null && createdAt.after(date);
179  }
180
181  /**
182   * @since 2.8
183   */
184  public Violation setSwitchedOff(Boolean b) {
185    this.switchedOff = (b != null && b);
186    return this;
187  }
188
189  /**
190   * @since 2.8
191   */
192  public boolean isSwitchedOff() {
193    return switchedOff;
194  }
195
196  /**
197   * @since 2.8
198   */
199  public Review getReview() {
200    return review;
201  }
202
203  /**
204   * @since 2.8
205   */
206  public Violation setReview(Review review) {
207    this.review = review;
208    return this;
209  }
210
211  /**
212   * @since 2.9
213   */
214  public Long getId() {
215    return id;
216  }
217
218  /**
219   * @since 2.9
220   */
221  public void setId(Long id) {
222    this.id = id;
223  }
224}