diff options
author | Anthony Green <green@redhat.com> | 2000-08-19 18:19:42 +0000 |
---|---|---|
committer | Anthony Green <green@gcc.gnu.org> | 2000-08-19 18:19:42 +0000 |
commit | a729a4e9aba7afb312ee0f15a70979ae75d1a9fe (patch) | |
tree | 2dff323eee68e61f9225ea0c6c7f15f7c6bcd624 /libjava/java/util/jar/JarEntry.java | |
parent | e76d9acbe9055e6f0ec35f4e5d0893ca10baf643 (diff) | |
download | gcc-a729a4e9aba7afb312ee0f15a70979ae75d1a9fe.zip gcc-a729a4e9aba7afb312ee0f15a70979ae75d1a9fe.tar.gz gcc-a729a4e9aba7afb312ee0f15a70979ae75d1a9fe.tar.bz2 |
Attributes.java, [...]: Imported from Classpath.
Sat Aug 19 11:00:53 2000 Anthony Green <green@redhat.com>
* java/util/jar/Attributes.java, java/util/jar/JarEntry.java,
java/util/jar/JarException.java, java/util/jar/JarFile.java,
java/util/jar/JarInputStream.java,
java/util/jar/JarOutputStream.java, java/util/jar/Manifest.java,
java/util/Set.java, java/util/Map.java, java/util/Bucket.java,
java/util/AbstractSet.java, java/util/BasicMapEntry.java,
java/security/cert/CRL.java, java/security/cert/CRLException.java,
java/security/cert/Certificate.java,
java/security/cert/CertificateEncodingException.java,
java/security/cert/CertificateException.java,
java/security/cert/CertificateExpiredException.java,
java/security/cert/CertificateFactory.java,
java/security/cert/CertificateFactorySpi.java,
java/security/cert/CertificateNotYetValidException.java,
java/security/cert/CertificateParsingException.java,
java/security/cert/X509CRL.java,
java/security/cert/X509CRLEntry.java,
java/security/cert/X509Certificate.java,
java/security/cert/X509Extension.java: Imported from Classpath.
* java/util/Hashtable.java: Imported from Classpath.
* java/util/zip/ZipInputStream.java: Create stub for
createZipEntry.
* gcj/javaprims.h: Updated class list.
* Makefile.in, gcj/Makefile.in: Rebuilt.
* Makefile.am (ordinary_java_source_files): Add these new classes.
From-SVN: r35809
Diffstat (limited to 'libjava/java/util/jar/JarEntry.java')
-rw-r--r-- | libjava/java/util/jar/JarEntry.java | 148 |
1 files changed, 124 insertions, 24 deletions
diff --git a/libjava/java/util/jar/JarEntry.java b/libjava/java/util/jar/JarEntry.java index eaebd1a..e15f1a4 100644 --- a/libjava/java/util/jar/JarEntry.java +++ b/libjava/java/util/jar/JarEntry.java @@ -1,39 +1,139 @@ -/* Copyright (C) 1999 Free Software Foundation +/* JarEntry.java - Represents an entry in a jar file + Copyright (C) 2000 Free Software Foundation, Inc. - This file is part of libgcj. +This file is part of GNU Classpath. -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ +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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. */ package java.util.jar; -import java.util.zip.*; +import java.io.IOException; +import java.security.cert.Certificate; +import java.util.zip.ZipEntry; /** - * Does not implement the security and manifest methods. + * Extension to a ZipEntry that contains manifest attributes and certificates. + * Both the Atrributes and the Certificates can be null when not set. + * Note that the <code>getCertificates()</code> method only returns a + * valid value after all of the data of the entry has been read. + * <p> + * There are no public methods to set the attributes or certificate of an + * Entru. Only JarEntries created by the classes in <code>java.util.jar</code> + * will have these properties set. * - * @author Kresten Krab Thorup <krab@gnu.org> - * @date August 10, 1999. + * @since 1.2 + * @author Mark Wielaard (mark@klomp.org) */ + +public class JarEntry extends ZipEntry { + + // (Packge local) fields + + Attributes attr; + Certificate certs[]; + + // Constructors + + /** + * Creates a new JarEntry with the specified name and no attributes or + * or certificates. Calls <code>super(name)</code> so all other (zip)entry + * fields are null or -1. + * + * @param name the name of the new jar entry + * @exception NullPointerException when the supplied name is null + * @exception IllegalArgumentException when the supplied name is longer + * than 65535 bytes + */ + public JarEntry(String name) throws NullPointerException, + IllegalArgumentException { + super(name); + attr = null; + certs = null; + } -public class JarEntry extends ZipEntry -{ - ZipEntry zip; + /** + * Creates a new JarEntry with the specified ZipEntry as template for + * all properties of the entry. Both attributes and certificates will be + * null. + * + * @param entry the ZipEntry whose fields should be copied + */ + public JarEntry(ZipEntry entry) { + super(entry); + attr = null; + certs = null; + } - public JarEntry (ZipEntry ent) - { - super (ent); - } + /** + * Creates a new JarEntry with the specified JarEntry as template for + * all properties of the entry. + * + * @param entry the jarEntry whose fields should be copied + */ + public JarEntry(JarEntry entry) { + super(entry); + try { + attr = entry.getAttributes(); + } catch(IOException _) {} + certs = entry.getCertificates(); + } - public JarEntry (JarEntry ent) - { - super (ent); - } + // Methods - public JarEntry (String name) - { - super (name); - } + /** + * Returns a copy of the Attributes set for this entry. + * When no Attributes are set in the manifest null is returned. + * + * @return a copy of the Attributes set for this entry + * @exception IOException This will never be thrown. It is here for + * binary compatibility. + */ + public Attributes getAttributes() throws IOException { + if (attr != null) { + return (Attributes) attr.clone(); + } else { + return null; + } + } + /** + * Returns a copy of the certificates set for this entry. + * When no certificates are set or when not all data of this entry has + * been read null is returned. + * <p> + * To make sure that this call returns a valid value you must read all + * data from the JarInputStream for this entry. + * When you don't need the data for an entry but want to know the + * certificates that are set for the entry then you can skip all data by + * calling <code>skip(entry.getSize())</code> on the JarInputStream for + * the entry. + * + * @return a copy of the certificates set for this entry + */ + public Certificate[] getCertificates() { + if (certs != null) { + return (Certificate []) certs.clone(); + } else { + return null; + } + } } |