| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2015, the Dart project authors. | 2 * Copyright (c) 2015, the Dart project authors. |
| 3 * | 3 * |
| 4 * Licensed under the Eclipse Public License v1.0 (the "License"); you may not u
se this file except | 4 * Licensed under the Eclipse Public License v1.0 (the "License"); you may not u
se this file except |
| 5 * in compliance with the License. You may obtain a copy of the License at | 5 * in compliance with the License. You may obtain a copy of the License at |
| 6 * | 6 * |
| 7 * http://www.eclipse.org/legal/epl-v10.html | 7 * http://www.eclipse.org/legal/epl-v10.html |
| 8 * | 8 * |
| 9 * Unless required by applicable law or agreed to in writing, software distribut
ed under the License | 9 * Unless required by applicable law or agreed to in writing, software distribut
ed under the License |
| 10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY K
IND, either express | 10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY K
IND, either express |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 65 private final String message; | 65 private final String message; |
| 66 | 66 |
| 67 /** | 67 /** |
| 68 * The correction message to be displayed for this error. The correction messa
ge should indicate | 68 * The correction message to be displayed for this error. The correction messa
ge should indicate |
| 69 * how the user can fix the error. The field is omitted if there is no correct
ion message | 69 * how the user can fix the error. The field is omitted if there is no correct
ion message |
| 70 * associated with the error code. | 70 * associated with the error code. |
| 71 */ | 71 */ |
| 72 private final String correction; | 72 private final String correction; |
| 73 | 73 |
| 74 /** | 74 /** |
| 75 * The name, as a string, of the error code associated with this error. |
| 76 */ |
| 77 private final String code; |
| 78 |
| 79 /** |
| 75 * A hint to indicate to interested clients that this error has an associated
fix (or fixes). The | 80 * A hint to indicate to interested clients that this error has an associated
fix (or fixes). The |
| 76 * absence of this field implies there are not known to be fixes. Note that si
nce the operation to | 81 * absence of this field implies there are not known to be fixes. Note that si
nce the operation to |
| 77 * calculate whether fixes apply needs to be performant it is possible that co
mplicated tests will | 82 * calculate whether fixes apply needs to be performant it is possible that co
mplicated tests will |
| 78 * be skipped and a false negative returned. For this reason, this attribute s
hould be treated as a | 83 * be skipped and a false negative returned. For this reason, this attribute s
hould be treated as a |
| 79 * "hint". Despite the possibility of false negatives, no false positives shou
ld be returned. If a | 84 * "hint". Despite the possibility of false negatives, no false positives shou
ld be returned. If a |
| 80 * client sees this flag set they can proceed with the confidence that there a
re in fact associated | 85 * client sees this flag set they can proceed with the confidence that there a
re in fact associated |
| 81 * fixes. | 86 * fixes. |
| 82 */ | 87 */ |
| 83 private final Boolean hasFix; | 88 private final Boolean hasFix; |
| 84 | 89 |
| 85 /** | 90 /** |
| 86 * Constructor for {@link AnalysisError}. | 91 * Constructor for {@link AnalysisError}. |
| 87 */ | 92 */ |
| 88 public AnalysisError(String severity, String type, Location location, String m
essage, String correction, Boolean hasFix) { | 93 public AnalysisError(String severity, String type, Location location, String m
essage, String correction, String code, Boolean hasFix) { |
| 89 this.severity = severity; | 94 this.severity = severity; |
| 90 this.type = type; | 95 this.type = type; |
| 91 this.location = location; | 96 this.location = location; |
| 92 this.message = message; | 97 this.message = message; |
| 93 this.correction = correction; | 98 this.correction = correction; |
| 99 this.code = code; |
| 94 this.hasFix = hasFix; | 100 this.hasFix = hasFix; |
| 95 } | 101 } |
| 96 | 102 |
| 97 @Override | 103 @Override |
| 98 public boolean equals(Object obj) { | 104 public boolean equals(Object obj) { |
| 99 if (obj instanceof AnalysisError) { | 105 if (obj instanceof AnalysisError) { |
| 100 AnalysisError other = (AnalysisError) obj; | 106 AnalysisError other = (AnalysisError) obj; |
| 101 return | 107 return |
| 102 ObjectUtilities.equals(other.severity, severity) && | 108 ObjectUtilities.equals(other.severity, severity) && |
| 103 ObjectUtilities.equals(other.type, type) && | 109 ObjectUtilities.equals(other.type, type) && |
| 104 ObjectUtilities.equals(other.location, location) && | 110 ObjectUtilities.equals(other.location, location) && |
| 105 ObjectUtilities.equals(other.message, message) && | 111 ObjectUtilities.equals(other.message, message) && |
| 106 ObjectUtilities.equals(other.correction, correction) && | 112 ObjectUtilities.equals(other.correction, correction) && |
| 113 ObjectUtilities.equals(other.code, code) && |
| 107 ObjectUtilities.equals(other.hasFix, hasFix); | 114 ObjectUtilities.equals(other.hasFix, hasFix); |
| 108 } | 115 } |
| 109 return false; | 116 return false; |
| 110 } | 117 } |
| 111 | 118 |
| 112 public static AnalysisError fromJson(JsonObject jsonObject) { | 119 public static AnalysisError fromJson(JsonObject jsonObject) { |
| 113 String severity = jsonObject.get("severity").getAsString(); | 120 String severity = jsonObject.get("severity").getAsString(); |
| 114 String type = jsonObject.get("type").getAsString(); | 121 String type = jsonObject.get("type").getAsString(); |
| 115 Location location = Location.fromJson(jsonObject.get("location").getAsJsonOb
ject()); | 122 Location location = Location.fromJson(jsonObject.get("location").getAsJsonOb
ject()); |
| 116 String message = jsonObject.get("message").getAsString(); | 123 String message = jsonObject.get("message").getAsString(); |
| 117 String correction = jsonObject.get("correction") == null ? null : jsonObject
.get("correction").getAsString(); | 124 String correction = jsonObject.get("correction") == null ? null : jsonObject
.get("correction").getAsString(); |
| 125 String code = jsonObject.get("code").getAsString(); |
| 118 Boolean hasFix = jsonObject.get("hasFix") == null ? null : jsonObject.get("h
asFix").getAsBoolean(); | 126 Boolean hasFix = jsonObject.get("hasFix") == null ? null : jsonObject.get("h
asFix").getAsBoolean(); |
| 119 return new AnalysisError(severity, type, location, message, correction, hasF
ix); | 127 return new AnalysisError(severity, type, location, message, correction, code
, hasFix); |
| 120 } | 128 } |
| 121 | 129 |
| 122 public static List<AnalysisError> fromJsonArray(JsonArray jsonArray) { | 130 public static List<AnalysisError> fromJsonArray(JsonArray jsonArray) { |
| 123 if (jsonArray == null) { | 131 if (jsonArray == null) { |
| 124 return EMPTY_LIST; | 132 return EMPTY_LIST; |
| 125 } | 133 } |
| 126 ArrayList<AnalysisError> list = new ArrayList<AnalysisError>(jsonArray.size(
)); | 134 ArrayList<AnalysisError> list = new ArrayList<AnalysisError>(jsonArray.size(
)); |
| 127 Iterator<JsonElement> iterator = jsonArray.iterator(); | 135 Iterator<JsonElement> iterator = jsonArray.iterator(); |
| 128 while (iterator.hasNext()) { | 136 while (iterator.hasNext()) { |
| 129 list.add(fromJson(iterator.next().getAsJsonObject())); | 137 list.add(fromJson(iterator.next().getAsJsonObject())); |
| 130 } | 138 } |
| 131 return list; | 139 return list; |
| 132 } | 140 } |
| 133 | 141 |
| 134 /** | 142 /** |
| 143 * The name, as a string, of the error code associated with this error. |
| 144 */ |
| 145 public String getCode() { |
| 146 return code; |
| 147 } |
| 148 |
| 149 /** |
| 135 * The correction message to be displayed for this error. The correction messa
ge should indicate | 150 * The correction message to be displayed for this error. The correction messa
ge should indicate |
| 136 * how the user can fix the error. The field is omitted if there is no correct
ion message | 151 * how the user can fix the error. The field is omitted if there is no correct
ion message |
| 137 * associated with the error code. | 152 * associated with the error code. |
| 138 */ | 153 */ |
| 139 public String getCorrection() { | 154 public String getCorrection() { |
| 140 return correction; | 155 return correction; |
| 141 } | 156 } |
| 142 | 157 |
| 143 /** | 158 /** |
| 144 * A hint to indicate to interested clients that this error has an associated
fix (or fixes). The | 159 * A hint to indicate to interested clients that this error has an associated
fix (or fixes). The |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 } | 198 } |
| 184 | 199 |
| 185 @Override | 200 @Override |
| 186 public int hashCode() { | 201 public int hashCode() { |
| 187 HashCodeBuilder builder = new HashCodeBuilder(); | 202 HashCodeBuilder builder = new HashCodeBuilder(); |
| 188 builder.append(severity); | 203 builder.append(severity); |
| 189 builder.append(type); | 204 builder.append(type); |
| 190 builder.append(location); | 205 builder.append(location); |
| 191 builder.append(message); | 206 builder.append(message); |
| 192 builder.append(correction); | 207 builder.append(correction); |
| 208 builder.append(code); |
| 193 builder.append(hasFix); | 209 builder.append(hasFix); |
| 194 return builder.toHashCode(); | 210 return builder.toHashCode(); |
| 195 } | 211 } |
| 196 | 212 |
| 197 public JsonObject toJson() { | 213 public JsonObject toJson() { |
| 198 JsonObject jsonObject = new JsonObject(); | 214 JsonObject jsonObject = new JsonObject(); |
| 199 jsonObject.addProperty("severity", severity); | 215 jsonObject.addProperty("severity", severity); |
| 200 jsonObject.addProperty("type", type); | 216 jsonObject.addProperty("type", type); |
| 201 jsonObject.add("location", location.toJson()); | 217 jsonObject.add("location", location.toJson()); |
| 202 jsonObject.addProperty("message", message); | 218 jsonObject.addProperty("message", message); |
| 203 if (correction != null) { | 219 if (correction != null) { |
| 204 jsonObject.addProperty("correction", correction); | 220 jsonObject.addProperty("correction", correction); |
| 205 } | 221 } |
| 222 jsonObject.addProperty("code", code); |
| 206 if (hasFix != null) { | 223 if (hasFix != null) { |
| 207 jsonObject.addProperty("hasFix", hasFix); | 224 jsonObject.addProperty("hasFix", hasFix); |
| 208 } | 225 } |
| 209 return jsonObject; | 226 return jsonObject; |
| 210 } | 227 } |
| 211 | 228 |
| 212 @Override | 229 @Override |
| 213 public String toString() { | 230 public String toString() { |
| 214 StringBuilder builder = new StringBuilder(); | 231 StringBuilder builder = new StringBuilder(); |
| 215 builder.append("["); | 232 builder.append("["); |
| 216 builder.append("severity="); | 233 builder.append("severity="); |
| 217 builder.append(severity + ", "); | 234 builder.append(severity + ", "); |
| 218 builder.append("type="); | 235 builder.append("type="); |
| 219 builder.append(type + ", "); | 236 builder.append(type + ", "); |
| 220 builder.append("location="); | 237 builder.append("location="); |
| 221 builder.append(location + ", "); | 238 builder.append(location + ", "); |
| 222 builder.append("message="); | 239 builder.append("message="); |
| 223 builder.append(message + ", "); | 240 builder.append(message + ", "); |
| 224 builder.append("correction="); | 241 builder.append("correction="); |
| 225 builder.append(correction + ", "); | 242 builder.append(correction + ", "); |
| 243 builder.append("code="); |
| 244 builder.append(code + ", "); |
| 226 builder.append("hasFix="); | 245 builder.append("hasFix="); |
| 227 builder.append(hasFix); | 246 builder.append(hasFix); |
| 228 builder.append("]"); | 247 builder.append("]"); |
| 229 return builder.toString(); | 248 return builder.toString(); |
| 230 } | 249 } |
| 231 | 250 |
| 232 } | 251 } |
| OLD | NEW |