public Set<T> resolve(Matcher<T> matcher) throws IOException {
		Set<T> classes = new HashSet<T>();
		
		for (URL url : paths) {
			if (url.toString().endsWith(".jar")) {
//				System.out.println(url);
				JarFile jarFile = new JarFile(URLDecoder.decode(url.getPath(), "UTF-8"));
				Manifest manifest = jarFile.getManifest();
				
				if (manifest != null) {
//					System.out.println(manifest);
					Attributes mainAttributes = manifest.getMainAttributes();
					
					if (mainAttributes != null) {
//						System.out.println(mainAttributes);
						String classpath = mainAttributes.getValue(Name.CLASS_PATH);
						
						if (classpath != null) {
//							System.out.println(classpath);
							StringTokenizer stringTokenizer = new StringTokenizer(classpath);
							
							while (stringTokenizer.hasMoreTokens()) {
								String token = stringTokenizer.nextToken();
								URL entry = new URL(url, token);
								
								if (entry.toString().endsWith("/")) {
//									System.out.println(entry);
									classes.addAll(getMatchedClasses(matcher, new File(URLDecoder.decode(entry.getPath(), "UTF-8"))));
								} else {
//									System.out.println(entry);
									classes.addAll(getMatchedClasses(matcher, new JarFile(URLDecoder.decode(entry.getPath(), "UTF-8"))));
								}
							}
						}
					}
				}
				
				classes.addAll(getMatchedClasses(matcher, jarFile));
			} else {
				File base = new File(URLDecoder.decode(url.getPath(), "UTF-8"));
				classes.addAll(getMatchedClasses(matcher, base));
			}
		}
		
		return classes;
	}
public Set<T> resolve(Matcher<T> matcher) throws IOException {
		Set<T> classes = new HashSet<T>();
		
		for (URL url : paths) {
			if (url.toString().endsWith(".jar")) {

				JarFile jarFile = new JarFile(URLDecoder.decode(url.getPath(), "UTF-8"));
				Manifest manifest = jarFile.getManifest();
				
				if (manifest != null) {

					Attributes mainAttributes = manifest.getMainAttributes();
					
					if (mainAttributes != null) {

						String classpath = mainAttributes.getValue(Name.CLASS_PATH);
						
						if (classpath != null) {

							StringTokenizer stringTokenizer = new StringTokenizer(classpath);
							
							while (stringTokenizer.hasMoreTokens()) {
								String token = stringTokenizer.nextToken();
								URL entry = new URL(url, token);
								
								if (entry.toString().endsWith("/")) {

									classes.addAll(getMatchedClasses(matcher, new File(URLDecoder.decode(entry.getPath(), "UTF-8"))));
								} else {

									classes.addAll(getMatchedClasses(matcher, new JarFile(URLDecoder.decode(entry.getPath(), "UTF-8"))));
								}
							}
						}
					}
				}
				
				classes.addAll(getMatchedClasses(matcher, jarFile));
			} else {
				File base = new File(URLDecoder.decode(url.getPath(), "UTF-8"));
				classes.addAll(getMatchedClasses(matcher, base));
			}
		}
		
		return classes;
	}
public Set < T > resolve ( Matcher < T > matcher ) throws IOException { Set < T > classes = new HashSet < T > ( ) ; for ( URL url : paths ) { if ( url . toString ( ) . endsWith ( ".jar" ) ) { //				System.out.println(url); JarFile jarFile = new JarFile ( URLDecoder . decode ( url . getPath ( ) , "UTF-8" ) ) ; Manifest manifest = jarFile . getManifest ( ) ; if ( manifest != null ) { //					System.out.println(manifest); Attributes mainAttributes = manifest . getMainAttributes ( ) ; if ( mainAttributes != null ) { //						System.out.println(mainAttributes); String classpath = mainAttributes . getValue ( Name . CLASS_PATH ) ; if ( classpath != null ) { //							System.out.println(classpath); StringTokenizer stringTokenizer = new StringTokenizer ( classpath ) ; while ( stringTokenizer . hasMoreTokens ( ) ) { String token = stringTokenizer . nextToken ( ) ; URL entry = new URL ( url , token ) ; if ( entry . toString ( ) . endsWith ( "/" ) ) { //									System.out.println(entry); classes . addAll ( getMatchedClasses ( matcher , new File ( URLDecoder . decode ( entry . getPath ( ) , "UTF-8" ) ) ) ) ; } else { //									System.out.println(entry); classes . addAll ( getMatchedClasses ( matcher , new JarFile ( URLDecoder . decode ( entry . getPath ( ) , "UTF-8" ) ) ) ) ; } } } } } classes . addAll ( getMatchedClasses ( matcher , jarFile ) ) ; } else { File base = new File ( URLDecoder . decode ( url . getPath ( ) , "UTF-8" ) ) ; classes . addAll ( getMatchedClasses ( matcher , base ) ) ; } } return classes ; }
Resolves the {@code Class}es that matches to the specified {@code Matcher}.

@param matcher {@code Matcher}.
@return {@code Class}es that matches to the specified {@code Matcher}.
@throws IOException If any I/O access fails while traversing the search
path.
Resolves the { @code Class } es that matches to the specified { @code Matcher } .