| /******************************************************************************* |
| * Copyright (c) 2000, 2009 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| *******************************************************************************/ |
| package org.eclipse.dltk.core; |
| |
| import java.io.IOException; |
| import java.io.InputStream; |
| import java.util.Enumeration; |
| |
| /** |
| * @since 2.0 |
| */ |
| public interface IArchive { |
| |
| /** |
| * Returns an enumeration of the archive file entries. |
| * |
| * @return an enumeration of the archive file entries |
| * @throws IllegalStateException |
| * if the archive file has been closed |
| */ |
| public Enumeration<? extends IArchiveEntry> getArchiveEntries(); |
| |
| /** |
| * Returns the path name of the archive file. |
| * |
| * @return the path name of the archive file |
| */ |
| public String getName(); |
| |
| /** |
| * Closes the archive file. |
| * <p> |
| * Closing this archive file will close all of the input streams previously |
| * returned by invocations of the {@link #getInputStream getInputStream} |
| * method. |
| * |
| * @throws IOException |
| * if an I/O error has occurred |
| */ |
| public void close() throws IOException; |
| |
| /** |
| * Returns the archive file entry for the specified name, or |
| * <code>null</code> if not found. |
| * |
| * @param name |
| * @return |
| */ |
| public IArchiveEntry getArchiveEntry(String name); |
| |
| /** |
| * Returns an input stream for reading the contents of the specified archive |
| * file entry. |
| * |
| * <p> |
| * Closing this archive file will, in turn, close all input streams that |
| * have been returned by invocations of this method. |
| * |
| * @param entry |
| * the archive file entry |
| * @return the input stream for reading the contents of the specified |
| * archive file entry. |
| * @throws IOException |
| * if an I/O error has occurred |
| * @throws IllegalStateException |
| * if the archive file has been closed |
| */ |
| public InputStream getInputStream(IArchiveEntry entry) throws IOException; |
| } |