1 package org.naftulin.classpathexplorer;
2
3
4 import org.naftulin.classpathexplorer.dublicate.imlp.DuplicateResourcesReport;
5 import org.naftulin.classpathexplorer.resourceinfo.impl.ResourceInfo;
6 import org.naftulin.classpathexplorer.stacktrace.impl.StackTraceElementExtension;
7
8
9 /***
10 * Exposes useful methods of classexplorer package. Follows Facede Gof desing pattern.
11 * @author henry naftulin
12 * @version 1.0
13 */
14 public class ClassPathExplorerFacade {
15 private static final DuplicateResourcesReport report = new DuplicateResourcesReport();
16
17 /***
18 * Returns dublicate resources.
19 * @return dublicate resources.
20 */
21 public AccessibleResource[] getAllDublicateResources() {
22 return report.getDublicateResources();
23 }
24
25 /***
26 * Returns dublicate resources as string.
27 * @return dublicate resources as string.
28 */
29 public String getAllDublicateResourcesAsStringReport() {
30 return report.getDublicateResourcesAsStringReport();
31 }
32
33 /***
34 * Returns dublicate resources as xml.
35 * @return dublicate resources as xml.
36 */
37 public String getAllDublicateResourcesAsXmlReport() {
38 return report.getDublicateResourcesAsXmlReport();
39 }
40
41 /***
42 * Returns dublicate resources only for file extensions specified.
43 * @param acceptedExtensions dublicate report will contain files with these extensions only.
44 * @return dublicate resources.
45 */
46 public AccessibleResource[] getFileteredDublicateResources(String[] acceptedExtensions) {
47 DuplicateResourcesReport report = new DuplicateResourcesReport();
48 report.setAccesptedExtensions(acceptedExtensions);
49 return report.getDublicateResources();
50 }
51
52 /***
53 * Returns dublicate resources only for file extensions specified from class path provided.
54 * @param acceptedExtensions dublicate report will contain files with these extensions only.
55 * @param archivePath class path considered for the report.
56 * @return dublicate resources.
57 */
58 public AccessibleResource[] getFileteredDublicateResourcesBasedOnPath(String[] acceptedExtensions, String[] archivePath) {
59 DuplicateResourcesReport report = new DuplicateResourcesReport();
60 report.setAccesptedExtensions(acceptedExtensions);
61 return report.getDublicateResources(archivePath);
62 }
63
64 /***
65 * Returns dublicate resources in a form of report only for file extensions specified.
66 * @param acceptedExtensions dublicate report will contain files with these extensions only.
67 * @return dublicate resources as string.
68 */
69 public String getFileteredDublicateResourcesAsStringReport(String[] acceptedExtensions) {
70 DuplicateResourcesReport report = new DuplicateResourcesReport();
71 report.setAccesptedExtensions(acceptedExtensions);
72 return report.getDublicateResourcesAsStringReport();
73 }
74
75 /***
76 * Returns dublicate resources in a form of XML report only for file extensions specified.
77 * @param acceptedExtensions dublicate report will contain files with these extensions only.
78 * @return dublicate resources as xml.
79 */
80 public String getFileteredDublicateResourcesAsXmlReport(String[] acceptedExtensions) {
81 DuplicateResourcesReport report = new DuplicateResourcesReport();
82 report.setAccesptedExtensions(acceptedExtensions);
83 return report.getDublicateResourcesAsXmlReport();
84 }
85
86 /***
87 * Given a class computes which archive it was loaded from and
88 * provides it's package information.
89 * @param clazz class
90 */
91 public ResourceInfo getResourceInfo(Class clazz) {
92 return ResourceInfo.getResourceInfo(clazz);
93 }
94
95 /***
96 * Returns exception that the stack trace with additional resource information.
97 * @exception exception that will be decorated, resorce infomation will be added.
98 * @return exception with additional stack trace information.
99 */
100 public Exception getExceptionDecorator(Exception e){
101 return StackTraceElementExtension.getExceptionDecorator(e);
102 }
103 }