package net.jscanner.archive.impl; import java.io.IOException; import java.util.Enumeration; import java.util.jar.JarEntry; import java.util.jar.JarFile; import org.apache.commons.io.IOUtils; import net.jscanner.archive.Archive; /** * Represents a jar file. * * @author Desmond Jackson */ public class JavaArchive extends Archive { /** * Creates a new jar file representation. * * @param jarFile The jar file to represent */ public JavaArchive(JarFile jarFile) { super(jarFile); } @Override protected void findClasses() { try { Enumeration<JarEntry> entries = jarFile.entries(); while (entries.hasMoreElements()) { JarEntry entry = entries.nextElement(); if (entry.getName().endsWith(".class")) addClass(IOUtils.toByteArray(jarFile.getInputStream(entry))); } jarFile.close(); } catch (IOException e) { e.printStackTrace(); } } @Override public String getName() { return jarFile.getName(); } }