blob: 9324d64c5256db947ae2ec54b04ed48822319b85 [file] [log] [blame]
package org.eclipse.jdt.internal.core.builder;
/*
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
import org.eclipse.jdt.core.*;
/**
* The <code>IImageContext</code> represents a subset of
* a Java image. ImageContext objects are used in queries, such as
* getSubclasses(), which require more context than just the local
* definition of a class. This is to allow the Image to contain
* a very large (conceptually infinite) number of packages, without
* forcing them all to be considered when performing such non-local
* queries.
*
* <p>For now, an ImageContext is defined as a set of non-state-specific packages.
* The ImageContext itself is conceptually non-state-specific.
*
* @see IImage#createImageContext
* @see IImage#getPackages
* @see IImage#getAllClasses
* @see IType#getSubclasses
*/
public interface IImageContext
{
/**
* Returns the DevelopmentContext for which the ImageContext was created.
*/
IDevelopmentContext getDevelopmentContext();
/**
* Returns the Packages of which this ImageContext consists.
* The resulting Packages are in no particular order.
*
* @return an array of non-state-specific Package handles.
*/
IPackage[] getPackages();
/**
* Return a string of the form:
* image context with packages:
* this.data.package[0]
* this.data.package[1]
* ...
* this.data.package[n-1]
*
* The string returned is only for debugging purposes,
* and the contents of the string may change in the future.
* @return java.lang.String
*/
public String toString();
}