001 /*
002 * Sonar, open source software quality management tool.
003 * Copyright (C) 2009 SonarSource SA
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 */
020 package org.sonar.wsclient.services;
021
022 import java.util.Collections;
023 import java.util.Date;
024 import java.util.List;
025
026 public class Resource extends Model {
027
028 /* SCOPES */
029 public static final String SCOPE_SET = "PRJ";
030 public static final String SCOPE_SPACE = "DIR";
031 public static final String SCOPE_ENTITY = "FIL";
032
033 /* QUALIFIERS */
034 public static final String QUALIFIER_VIEW = "VW";
035 public static final String QUALIFIER_SUBVIEW = "SVW";
036 public static final String QUALIFIER_LIB = "LIB";
037 public static final String QUALIFIER_PROJECT = "TRK";
038 public static final String QUALIFIER_MODULE = "BRC";
039 public static final String QUALIFIER_PACKAGE = "PAC";
040 public static final String QUALIFIER_DIRECTORY = "DIR";
041 public static final String QUALIFIER_FILE = "FIL";
042 public static final String QUALIFIER_CLASS = "CLA";
043 public static final String QUALIFIER_UNIT_TEST_CLASS = "UTS";
044
045 /* LANGUAGES */
046 public static final String LANGUAGE_JAVA = "java";
047
048 private Integer id;
049 private String key;
050 private String name;
051 private String longName;
052 private String scope;
053 private String qualifier;
054 private String language;
055 private String version;
056 private Integer copy;
057 private String description;
058 private Date date;
059 private List<Measure> measures;
060
061 public Integer getId() {
062 return id;
063 }
064
065 public Resource setId(Integer id) {
066 this.id = id;
067 return this;
068 }
069
070 public String getKey() {
071 return key;
072 }
073
074 public Resource setKey(String key) {
075 this.key = key;
076 return this;
077 }
078
079 public String getDescription() {
080 return description;
081 }
082
083 public Resource setDescription(String description) {
084 this.description = description;
085 return this;
086 }
087
088 public String getName() {
089 return name;
090 }
091
092 public String getName(boolean longFormatIfDefined) {
093 if (longFormatIfDefined && longName != null && !"".equals(longName)) {
094 return longName;
095 }
096 return name;
097 }
098
099 public String getLongName() {
100 return longName;
101 }
102
103 public Resource setLongName(String longName) {
104 this.longName = longName;
105 return this;
106 }
107
108 public Resource setName(String s) {
109 this.name = s;
110 return this;
111 }
112
113 public String getScope() {
114 return scope;
115 }
116
117 public Resource setScope(String scope) {
118 this.scope = scope;
119 return this;
120 }
121
122 public String getQualifier() {
123 return qualifier;
124 }
125
126 public Resource setQualifier(String qualifier) {
127 this.qualifier = qualifier;
128 return this;
129 }
130
131 public String getLanguage() {
132 return language;
133 }
134
135 public Resource setLanguage(String language) {
136 this.language = language;
137 return this;
138 }
139
140 public String getVersion() {
141 return version;
142 }
143
144 public Resource setVersion(String version) {
145 this.version = version;
146 return this;
147 }
148
149 public Integer getCopy() {
150 return copy;
151 }
152
153 public Resource setCopy(Integer copy) {
154 this.copy = copy;
155 return this;
156 }
157
158 public Date getDate() {
159 return date;
160 }
161
162 public Resource setDate(Date d) {
163 this.date = d;
164 return this;
165 }
166
167 public List<Measure> getMeasures() {
168 if (measures == null) {
169 return Collections.emptyList();
170 }
171 return measures;
172 }
173
174 public Measure getMeasure(String metricKey) {
175 for (Measure measure : getMeasures()) {
176 if (metricKey.equals(measure.getMetricKey())) {
177 return measure;
178 }
179 }
180 return null;
181 }
182
183 public Double getMeasureValue(String metricKey) {
184 Measure measure = getMeasure(metricKey);
185 if (measure != null) {
186 return measure.getValue();
187 }
188 return null;
189 }
190
191 public Integer getMeasureIntValue(String metricKey) {
192 Double d = getMeasureValue(metricKey);
193 if (d != null) {
194 return d.intValue();
195 }
196 return null;
197 }
198
199 public String getMeasureFormattedValue(String metricKey, String defaultValue) {
200 Measure measure = getMeasure(metricKey);
201 if (measure != null) {
202 return measure.getFormattedValue(defaultValue);
203 }
204 return defaultValue;
205 }
206
207 public void setMeasures(List<Measure> measures) {
208 this.measures = measures;
209 }
210
211 @Override
212 public String toString() {
213 return new StringBuilder()
214 .append("[id=")
215 .append(id)
216 .append(",key=")
217 .append(key)
218 .append("]")
219 .toString();
220 }
221 }