1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.resolver.internal.ant.types;
20
21 import java.util.ArrayList;
22 import java.util.List;
23
24 import org.apache.tools.ant.Task;
25 import org.apache.tools.ant.types.DataType;
26 import org.apache.tools.ant.types.Reference;
27
28
29
30 public class Artifacts extends DataType implements ArtifactContainer {
31
32 private List<ArtifactContainer> containers = new ArrayList<>();
33
34 protected Artifacts getRef() {
35 return (Artifacts) getCheckedRef();
36 }
37
38 public void validate(Task task) {
39 if (isReference()) {
40 getRef().validate(task);
41 } else {
42 for (ArtifactContainer container : containers) {
43 container.validate(task);
44 }
45 }
46 }
47
48 public void setRefid(Reference ref) {
49 if (!containers.isEmpty()) {
50 throw noChildrenAllowed();
51 }
52 super.setRefid(ref);
53 }
54
55 public void addArtifact(Artifact artifact) {
56 checkChildrenAllowed();
57 containers.add(artifact);
58 }
59
60 public void addArtifacts(Artifacts artifacts) {
61 checkChildrenAllowed();
62 if (artifacts == this) {
63 throw circularReference();
64 }
65 containers.add(artifacts);
66 }
67
68 public List<Artifact> getArtifacts() {
69 if (isReference()) {
70 return getRef().getArtifacts();
71 }
72 List<Artifact> artifacts = new ArrayList<>();
73 for (ArtifactContainer container : containers) {
74 artifacts.addAll(container.getArtifacts());
75 }
76 return artifacts;
77 }
78 }