]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - libjava/java/util/jar/JarFile.java
Imported gcc-4.4.3
[msp430-gcc.git] / libjava / java / util / jar / JarFile.java
diff --git a/libjava/java/util/jar/JarFile.java b/libjava/java/util/jar/JarFile.java
deleted file mode 100644 (file)
index 25179d2..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-/* JarFile.java - Representation of a jar file
-   Copyright (C) 2000 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-package java.util.jar;
-
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipException;
-import java.util.zip.ZipFile;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.InputStream;
-import java.io.IOException;
-import java.util.Enumeration;
-
-/**
- * Representation of a jar file.
- * <p>
- * Note that this class is not a subclass of java.io.File but a subclass of
- * java.util.zip.ZipFile and you can only read JarFiles with it (although
- * there are constructors that take a File object).
- * <p>
- * XXX - verification of Manifest signatures is not yet implemented.
- *
- * @since 1.2
- * @author Mark Wielaard (mark@klomp.org)
- */
-public class JarFile extends ZipFile
-{
-  // Fields
-
-  /** The name of the manifest entry: META-INF/MANIFEST.MF */
-  public static final String MANIFEST_NAME = "META-INF/MANIFEST.MF";
-
-  /**
-   * The manifest of this file, if any, otherwise null.
-   * Read by the constructor.
-   */
-  private final Manifest manifest;
-
-  /** Wether to verify the manifest and all entries */
-  private boolean verify;
-
-  // Constructors
-
-  /**
-   * Creates a new JarFile, tries to read the manifest and if the manifest
-   * exists verifies it.
-   *
-   * @param fileName the name of the file to open
-   * @exception FileNotFoundException if the fileName cannot be found
-   * @exception IOException if another IO exception occurs while reading
-   */
-  public JarFile(String fileName) throws FileNotFoundException, IOException
-  {
-    this(fileName, true);
-  }
-
-  /**
-   * Creates a new JarFile, tries to read the manifest and if the manifest
-   * exists and verify is true verfies it.
-   *
-   * @param fileName the name of the file to open
-   * @param verify checks manifest and entries when true and a manifest
-   * exists, when false no checks are made
-   * @exception FileNotFoundException if the fileName cannot be found
-   * @exception IOException if another IO exception occurs while reading
-   */
-  public JarFile(String fileName, boolean verify) throws
-    FileNotFoundException, IOException
-  {
-    super(fileName);
-    manifest = readManifest();
-    if (verify)
-      verify();
-  }
-
-  /**
-   * Creates a new JarFile, tries to read the manifest and if the manifest
-   * exists verifies it.
-   *
-   * @param file the file to open as a jar file
-   * @exception FileNotFoundException if the file does not exits
-   * @exception IOException if another IO exception occurs while reading
-   */
-  public JarFile(File file) throws FileNotFoundException, IOException
-  {
-    this(file, true);
-  }
-
-  /**
-   * Creates a new JarFile, tries to read the manifest and if the manifest
-   * exists and verify is true verfies it.
-   *
-   * @param file the file to open to open as a jar file
-   * @param verify checks manifest and entries when true and a manifest
-   * exists, when false no checks are made
-   * @exception FileNotFoundException if file does not exist
-   * @exception IOException if another IO exception occurs while reading
-   */
-  public JarFile(File file, boolean verify) throws FileNotFoundException,
-    IOException
-  {
-    super(file);
-    manifest = readManifest();
-    if (verify)
-      verify();
-  }
-
-  /**
-   * Creates a new JarFile with the indicated mode, tries to read the
-   * manifest and if the manifest exists and verify is true verfies it.
-   *
-   * @param file the file to open to open as a jar file
-   * @param verify checks manifest and entries when true and a manifest
-   * exists, when false no checks are made
-   * @param mode either ZipFile.OPEN_READ or
-   *             (ZipFile.OPEN_READ | ZipFile.OPEN_DELETE)
-   * @exception FileNotFoundException if the file does not exist
-   * @exception IOException if another IO exception occurs while reading
-   * @exception IllegalArgumentException when given an illegal mode
-   * 
-   * @since 1.3
-   */
-  public JarFile(File file, boolean verify, int mode) throws
-    FileNotFoundException, IOException, IllegalArgumentException
-  {
-    super(file, mode);
-    manifest = readManifest();
-    if (verify)
-      verify();
-  }
-
-  // Methods
-
-  /**
-   * XXX - should verify the manifest file
-   */
-  private void verify()
-  {
-    // only check if manifest is not null
-    if (manifest == null)
-      {
-       verify = false;
-       return;
-      }
-
-    verify = true;
-    // XXX - verify manifest
-  }
-
-  /**
-   * Parses and returns the manifest if it exists, otherwise returns null.
-   */
-  private Manifest readManifest()
-  {
-    try
-      {
-       ZipEntry manEntry = super.getEntry(MANIFEST_NAME);
-       if (manEntry != null)
-         {
-           InputStream in = super.getInputStream(manEntry);
-           return new Manifest(in);
-         }
-       else
-         {
-           return null;
-         }
-      }
-    catch (IOException ioe)
-      {
-       return null;
-      }
-  }
-
-  /**
-   * Returns a enumeration of all the entries in the JarFile.
-   * Note that also the Jar META-INF entries are returned.
-   *
-   * @exception IllegalStateException when the JarFile is already closed
-   */
-  public Enumeration entries() throws IllegalStateException
-  {
-    return new JarEnumeration(super.entries());
-  }
-
-  /**
-   * Wraps a given Zip Entries Enumeration. For every zip entry a
-   * JarEntry is created and the corresponding Attributes are looked up.
-   * XXX - Should also look up the certificates.
-   */
-  private class JarEnumeration implements Enumeration
-  {
-
-    private final Enumeration entries;
-
-    JarEnumeration(Enumeration e)
-    {
-      entries = e;
-    }
-
-    public boolean hasMoreElements()
-    {
-      return entries.hasMoreElements();
-    }
-
-    public Object nextElement()
-    {
-      ZipEntry zip = (ZipEntry) entries.nextElement();
-      JarEntry jar = new JarEntry(zip);
-      if (manifest != null)
-       {
-         jar.attr = manifest.getAttributes(jar.getName());
-       }
-      // XXX jar.certs
-      return jar;
-    }
-  }
-
-  /**
-   * XXX
-   * It actually returns a JarEntry not a zipEntry
-   * @param name XXX
-   */
-  public ZipEntry getEntry(String name)
-  {
-    ZipEntry entry = super.getEntry(name);
-    if (entry != null)
-      {
-       JarEntry jarEntry = new JarEntry(entry);
-       if (manifest != null)
-         {
-           jarEntry.attr = manifest.getAttributes(name);
-           // XXX jarEntry.certs
-         }
-       return jarEntry;
-      }
-    return null;
-  }
-
-  /**
-   * XXX should verify the inputstream
-   * @param entry XXX
-   * @exception ZipException XXX
-   * @exception IOException XXX
-   */
-  public synchronized InputStream getInputStream(ZipEntry entry) throws
-    ZipException, IOException
-  {
-    return super.getInputStream(entry);        // XXX verify
-  }
-
-  /**
-   * Returns the JarEntry that belongs to the name if such an entry
-   * exists in the JarFile. Returns null otherwise
-   * Convenience method that just casts the result from <code>getEntry</code>
-   * to a JarEntry.
-   *
-   * @param name the jar entry name to look up
-   * @return the JarEntry if it exists, null otherwise
-   */
-  public JarEntry getJarEntry(String name)
-  {
-    return (JarEntry) getEntry(name);
-  }
-
-  /**
-   * Returns the manifest for this JarFile or null when the JarFile does not
-   * contain a manifest file.
-   */
-  public Manifest getManifest()
-  {
-    return manifest;
-  }
-}