1 package net.sf.jour.processor; 2 3 import java.io.File; 4 import java.io.IOException; 5 import java.util.Enumeration; 6 import java.util.jar.JarEntry; 7 import java.util.jar.JarFile; 8 9 public class JarFileInputSource implements InputSource { 10 11 JarFile jarFile; 12 13 public JarFileInputSource(File file) throws IOException { 14 jarFile = new JarFile(file); 15 } 16 17 public void close() { 18 try { 19 jarFile.close(); 20 } catch (IOException ignore) { 21 } 22 } 23 24 25 public Enumeration getEntries() { 26 return new JarEnumeration(); 27 } 28 29 private class JarEnumeration implements Enumeration { 30 31 Enumeration jarEnum; 32 33 JarEnumeration() { 34 jarEnum = jarFile.entries(); 35 } 36 37 public boolean hasMoreElements() { 38 return jarEnum.hasMoreElements(); 39 } 40 41 public Object nextElement() { 42 JarEntry jarEntry = (JarEntry)jarEnum.nextElement(); 43 return new JarFileEntry(jarFile, jarEntry); 44 } 45 46 } 47 }