View Javadoc

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 }