oracle.toplink.essentials.ejb.cmp3.persistence.Archive Maven / Gradle / Ivy
/*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the "License"). You may not use this file except
* in compliance with the License.
*
* You can obtain a copy of the license at
* glassfish/bootstrap/legal/CDDLv1.0.txt or
* https://glassfish.dev.java.net/public/CDDLv1.0.html.
* See the License for the specific language governing
* permissions and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* HEADER in each file and include the License file at
* glassfish/bootstrap/legal/CDDLv1.0.txt. If applicable,
* add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your
* own identifying information: Portions Copyright [yyyy]
* [name of copyright owner]
*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
*/
package oracle.toplink.essentials.ejb.cmp3.persistence;
import java.util.Iterator;
import java.io.InputStream;
import java.io.IOException;
import java.net.URL;
/**
* Provides an abstraction to deal with various kinds of URLs that can
* be returned by
* {@link javax.persistence.spi.PersistenceUnitInfo#getPersistenceUnitRootUrl()}
*
* @see ArchiveFactoryImpl
* @author [email protected]
*/
public interface Archive {
/*
* Implementation Note: This class does not have any dependency on TopLink
* or GlassFish implementation classes. Please retain this searation.
*/
/**
* Returns an {@link java.util.Iterator} of the file entries. Each String represents
* a file name relative to the root of the module.
*/
Iterator getEntries();
/**
* Returns the InputStream for the given entry name. Returns null if no such
* entry exists. The entry name must be relative to the root of the module.
*
* @param entryPath the file name relative to the root of the module.
* @return the InputStream for the given entry name or null if not found.
*/
InputStream getEntry(String entryPath) throws IOException;
/**
* Returns the URL for the given entry name. Returns null if no such
* entry exists. The entry name must be relative to the root of the module.
*
* @param entryPath the file name relative to the root of the module.
* @return the URL for the given entry name or null if not found.
*/
URL getEntryAsURL(String entryPath) throws IOException;
/**
* @return the URL that this archive represents.
*/
URL getRootURL();
}