blob: d23f125941f434135d19a71fa17769a76847ac47 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2007 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
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.jee.archive;
import java.util.List;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
/**
* This interface is not intended to be implemented by clients.
*
* @author jasholl
*/
public interface IArchive extends IArchiveResource {
IPath EMPTY_MODEL_PATH = new Path("/"); //$NON-NLS-1$
public boolean isOpen();
public boolean containsArchiveResource(IPath archiveRelativePath);
/**
* Returns the {@link IArchiveResource} specified by the archive relative
* path. Throws a {@link RuntimeException} if the specified path is not
* relative.
*
* @param archiveRelativePath
* @return
* @throws java.io.FileNotFoundException
*/
public IArchiveResource getArchiveResource(IPath archiveRelativePath) throws java.io.FileNotFoundException;
/**
* Returns an {@link IArchive} for the specified archiveResource. If the
* {@link IArchive} is successfully returned, it will be added to the list
* returned by {@link #getNestedArchives()}. Also, the original
* {@link IArchiveResource} will be removed from this {@link IArchive}'s
* list of {@link IArchiveResource}s returned by
* {@link #getArchiveResources()} and replaced with the returned
* {@link IArchive}.
*
* @param archiveResource
* @return
* @throws ArchiveOpenFailureException
*/
public IArchive getNestedArchive(IArchiveResource archiveResource) throws ArchiveOpenFailureException;
public List<IArchive> getNestedArchives();
/**
* Returns a list of all {@link IArchiveResource}s in the archive.
*
* @return
*/
public List<IArchiveResource> getArchiveResources();
public boolean containsModelObject();
public boolean containsModelObject(IPath modelObjectPath);
public Object getModelObject() throws ArchiveModelLoadException;
public Object getModelObject(IPath modelObjectPath) throws ArchiveModelLoadException;
public ArchiveOptions getArchiveOptions();
public IArchiveLoadAdapter getLoadAdapter();
}