1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.api.services;
20
21 import java.util.ArrayList;
22 import java.util.Comparator;
23 import java.util.List;
24
25 import org.apache.maven.api.annotations.Experimental;
26
27
28
29
30
31
32 @Experimental
33 public abstract class MavenBuilderException extends MavenException {
34
35 private final List<BuilderProblem> problems;
36
37 public MavenBuilderException(String message, Throwable cause) {
38 super(message, cause);
39 problems = List.of();
40 }
41
42 public MavenBuilderException(String message, List<BuilderProblem> problems) {
43 super(buildMessage(message, problems), null);
44 this.problems = problems;
45 }
46
47
48
49
50
51
52 protected static String buildMessage(String message, List<BuilderProblem> problems) {
53 StringBuilder msg = new StringBuilder(message);
54 ArrayList<BuilderProblem> sorted = new ArrayList<>(problems);
55 sorted.sort(Comparator.comparing(BuilderProblem::getSeverity));
56 for (BuilderProblem problem : sorted) {
57 msg.append("\n * ")
58 .append(problem.getSeverity().name())
59 .append(": ")
60 .append(problem.getMessage());
61 }
62 return msg.toString();
63 }
64
65 public List<BuilderProblem> getProblems() {
66 return problems;
67 }
68 }