1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.model.building;
20
21 import java.util.ArrayList;
22 import java.util.HashMap;
23 import java.util.List;
24 import java.util.Map;
25 import java.util.Objects;
26
27 import org.apache.maven.model.Model;
28 import org.apache.maven.model.Profile;
29
30
31
32
33
34 class DefaultModelBuildingResult implements ModelBuildingResult {
35 private Model fileModel;
36
37 private Model effectiveModel;
38
39 private List<String> modelIds;
40
41 private Map<String, Model> rawModels;
42
43 private Map<String, List<Profile>> activePomProfiles;
44
45 private List<Profile> activeExternalProfiles;
46
47 private List<ModelProblem> problems;
48
49 DefaultModelBuildingResult() {
50 modelIds = new ArrayList<>();
51 rawModels = new HashMap<>();
52 activePomProfiles = new HashMap<>();
53 activeExternalProfiles = new ArrayList<>();
54 problems = new ArrayList<>();
55 }
56
57 DefaultModelBuildingResult(ModelBuildingResult result) {
58 this();
59 this.activeExternalProfiles.addAll(result.getActiveExternalProfiles());
60 this.effectiveModel = result.getEffectiveModel();
61 this.fileModel = result.getFileModel();
62 this.problems.addAll(result.getProblems());
63
64 for (String modelId : result.getModelIds()) {
65 this.modelIds.add(modelId);
66 this.rawModels.put(modelId, result.getRawModel(modelId));
67 this.activePomProfiles.put(modelId, result.getActivePomProfiles(modelId));
68 }
69 }
70
71 @Override
72 public Model getFileModel() {
73 return fileModel;
74 }
75
76 public DefaultModelBuildingResult setFileModel(Model fileModel) {
77 this.fileModel = fileModel;
78
79 return this;
80 }
81
82 @Override
83 public Model getEffectiveModel() {
84 return effectiveModel;
85 }
86
87 public DefaultModelBuildingResult setEffectiveModel(Model model) {
88 this.effectiveModel = model;
89
90 return this;
91 }
92
93 @Override
94 public List<String> getModelIds() {
95 return modelIds;
96 }
97
98 public DefaultModelBuildingResult addModelId(String modelId) {
99
100 Objects.requireNonNull(modelId, "modelId cannot null");
101
102 modelIds.add(modelId);
103
104 return this;
105 }
106
107 @Override
108 public Model getRawModel() {
109 return rawModels.get(modelIds.get(0));
110 }
111
112 @Override
113 public Model getRawModel(String modelId) {
114 return rawModels.get(modelId);
115 }
116
117 public DefaultModelBuildingResult setRawModel(String modelId, Model rawModel) {
118
119 Objects.requireNonNull(modelId, "modelId cannot null");
120
121 rawModels.put(modelId, rawModel);
122
123 return this;
124 }
125
126 @Override
127 public List<Profile> getActivePomProfiles(String modelId) {
128 return activePomProfiles.get(modelId);
129 }
130
131 public DefaultModelBuildingResult setActivePomProfiles(String modelId, List<Profile> activeProfiles) {
132
133 Objects.requireNonNull(modelId, "modelId cannot null");
134
135 if (activeProfiles != null) {
136 this.activePomProfiles.put(modelId, new ArrayList<>(activeProfiles));
137 } else {
138 this.activePomProfiles.remove(modelId);
139 }
140
141 return this;
142 }
143
144 @Override
145 public List<Profile> getActiveExternalProfiles() {
146 return activeExternalProfiles;
147 }
148
149 public DefaultModelBuildingResult setActiveExternalProfiles(List<Profile> activeProfiles) {
150 if (activeProfiles != null) {
151 this.activeExternalProfiles = new ArrayList<>(activeProfiles);
152 } else {
153 this.activeExternalProfiles.clear();
154 }
155
156 return this;
157 }
158
159 @Override
160 public List<ModelProblem> getProblems() {
161 return problems;
162 }
163
164 public DefaultModelBuildingResult setProblems(List<ModelProblem> problems) {
165 if (problems != null) {
166 this.problems = new ArrayList<>(problems);
167 } else {
168 this.problems.clear();
169 }
170
171 return this;
172 }
173 }