if ( parsedClass == null ) { while (entries.hasMoreElements()) { if (Thread.interrupted()) throw new InterruptedException(); ZipEntry entry = (ZipEntry) entries.nextElement(); String name = entry.getName(); if (name.endsWith(".class")) { try { parsedClass =  new ClassParser(zipFile.getInputStream(entry), name).parse(); break; } catch (ClassFormatException e) { throw new ClassFormatException("Invalid class file format for " + fileName + ":" + name + ": " + e.getMessage()); } } else if ( name.endsWith(".jar") || name.endsWith( ".zip" ) ) { setZipStream(new ZipInputStream(zipFile.getInputStream(entry)), name ); parsedClass = getNextNestedClass(); if ( parsedClass != null ) { break; } } else if (name.endsWith(".java")) containsSourceFiles = true;
if ( parsedClass != null ) return parsedClass;
	public JavaClass getNextClass() throws IOException, InterruptedException {		JavaClass parsedClass = getNextNestedClass();		if ( parsedClass == null ) {			while (entries.hasMoreElements()) {				if (Thread.interrupted()) throw new InterruptedException();				ZipEntry entry = (ZipEntry) entries.nextElement();				String name = entry.getName();				if (name.endsWith(".class")) {					try {						parsedClass =  new ClassParser(zipFile.getInputStream(entry), name).parse();						break;					} catch (ClassFormatException e) {						throw new ClassFormatException("Invalid class file format for " +							fileName + ":" + name + ": " + e.getMessage());					}				} else if ( name.endsWith(".jar") || name.endsWith( ".zip" ) ) {					setZipStream(new ZipInputStream(zipFile.getInputStream(entry)),								 name );					parsedClass = getNextNestedClass();					if ( parsedClass != null ) {						break;					}				} else if (name.endsWith(".java"))					containsSourceFiles = true;			}		}        	return parsedClass;	}