1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.creadur.whisker.app.analysis;
20
21 import java.util.Collection;
22 import java.util.Collections;
23 import java.util.Map;
24
25
26
27
28 public final class ResourceDefinitionException extends Exception {
29
30
31
32
33
34
35 private static String message(
36 final Map<
37 ResourceDefinitionError,
38 Collection<ResourceDescription>> issues) {
39 final StringBuilder builder =
40 new StringBuilder("Resources definitions are incorrect. ");
41 for (Map.Entry<
42 ResourceDefinitionError,
43 Collection<ResourceDescription>>
44 entry: issues.entrySet()) {
45 final ResourceDefinitionError error = entry.getKey();
46 final Collection<ResourceDescription> resources = entry.getValue();
47 if (!resources.isEmpty()) {
48 builder.append(error.getDescription()).append(": ");
49 boolean firstTime = true;
50 for (final ResourceDescription description: resources) {
51 if (firstTime) {
52 firstTime = false;
53 } else {
54 builder.append("; ");
55 }
56 builder
57 .append(description.getResource())
58 .append(" in ")
59 .append(description.getDirectory());
60 }
61 builder.append(". ");
62 }
63 }
64 return builder.toString();
65 }
66
67
68 private static final long serialVersionUID = -455455829914484243L;
69
70
71
72
73 private final Map<
74 ResourceDefinitionError,
75 Collection<ResourceDescription>> issues;
76
77
78
79
80
81 public ResourceDefinitionException(
82 final Map<ResourceDefinitionError,
83 Collection<ResourceDescription>> issues) {
84 super(message(issues));
85 this.issues = Collections.unmodifiableMap(issues);
86 }
87
88
89
90
91
92 public Map<
93 ResourceDefinitionError,
94 Collection<ResourceDescription>> getIssues() {
95 return issues;
96 }
97 }