1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package gov.nist.secauto.swid.plugin.entry.archive;
28
29 import gov.nist.secauto.swid.plugin.entry.AbstractFileEntryProcessor;
30 import gov.nist.secauto.swid.plugin.entry.FileEntry;
31
32 import org.apache.maven.artifact.Artifact;
33 import org.apache.maven.plugin.logging.Log;
34 import org.apache.maven.project.MavenProject;
35 import org.codehaus.plexus.archiver.ArchiveEntry;
36 import org.codehaus.plexus.components.io.fileselectors.IncludeExcludeFileSelector;
37
38 import java.io.IOException;
39 import java.util.Collection;
40 import java.util.Collections;
41
42 public class ArchiveEntryFileEntryProcessor extends AbstractFileEntryProcessor<ArchiveEntry> {
43 private final ArtifactMap artifactMap;
44 private IncludeExcludeFileSelector selector = new IncludeExcludeFileSelector();
45
46 public ArchiveEntryFileEntryProcessor(MavenProject project, Log log) {
47 super(log);
48 artifactMap = new ArtifactMap(project);
49 }
50
51 public void setIncludes(String[] includes) {
52 selector.setIncludes(includes);
53 }
54
55 public void setExcludes(String[] excludes) {
56 selector.setExcludes(excludes);
57 }
58
59 protected Artifact lookupArtifact(ArchiveEntry entry) {
60 return artifactMap.lookupArtifactForArchiveEntry(entry);
61 }
62
63 @Override
64 protected Collection<? extends FileEntry> generateFileEntries(ArchiveEntry entry) throws IOException {
65 Artifact artifact = lookupArtifact(entry);
66 ArchiveFileEntryive/ArchiveFileEntry.html#ArchiveFileEntry">ArchiveFileEntry archiveFileEntry = new ArchiveFileEntry(entry, artifact);
67
68 Collection<? extends FileEntry> retval;
69 if (selector.isSelected(archiveFileEntry.asFileInfo())) {
70 retval = Collections.singleton(archiveFileEntry);
71 } else {
72 retval = Collections.emptyList();
73 }
74 return retval;
75 }
76 }