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