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 }