1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.rat.anttasks;
20
21 import java.io.File;
22 import java.io.IOException;
23 import java.io.InputStream;
24 import java.io.InputStreamReader;
25 import java.io.Reader;
26 import java.util.Iterator;
27
28 import org.apache.rat.api.Document;
29 import org.apache.rat.api.MetaData;
30 import org.apache.rat.api.RatException;
31 import org.apache.rat.document.impl.DocumentImplUtils;
32 import org.apache.rat.report.IReportable;
33 import org.apache.rat.report.RatReport;
34 import org.apache.tools.ant.types.Resource;
35 import org.apache.tools.ant.types.ResourceCollection;
36 import org.apache.tools.ant.types.resources.FileResource;
37
38
39
40
41
42 class ResourceCollectionContainer implements IReportable {
43 private final ResourceCollection rc;
44
45 ResourceCollectionContainer(ResourceCollection rc) {
46 this.rc = rc;
47 }
48
49 public void run(RatReport report) throws RatException {
50 ResourceDocument document = new ResourceDocument();
51 for (Iterator<?> iter = rc.iterator(); iter.hasNext(); ) {
52 Resource r = (Resource) iter.next();
53 if (!r.isDirectory()) {
54 document.setResource(r);
55 document.getMetaData().clear();
56 report.report(document);
57 }
58 }
59 }
60 private class ResourceDocument implements Document {
61
62 private Resource resource;
63 private final MetaData metaData = new MetaData();
64
65 private void setResource(Resource resource) {
66 this.resource = resource;
67 }
68
69 public Reader reader() throws IOException {
70 final InputStream in = resource.getInputStream();
71 final Reader result = new InputStreamReader(in);
72 return result;
73 }
74
75 public String getName() {
76
77 String result = null;
78 if (resource instanceof FileResource) {
79 final FileResource fileResource = (FileResource) resource;
80 final File file = fileResource.getFile();
81 result = DocumentImplUtils.toName(file);
82 } else {
83 result = resource.getName();
84 }
85 return result;
86 }
87
88 public boolean isComposite() {
89 if (resource instanceof FileResource) {
90 final FileResource fileResource = (FileResource) resource;
91 final File file = fileResource.getFile();
92 return DocumentImplUtils.isZip(file);
93 }
94 return false;
95 }
96
97 public MetaData getMetaData() {
98 return metaData;
99 }
100
101 public InputStream inputStream() throws IOException {
102 return resource.getInputStream();
103 }
104 }
105 }