blob: ffe56bceb1c440c4592c5db3377f2a761b7f48ff [file] [log] [blame]
package org.eclipse.jdt.internal.core.builder;
/*
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
import org.eclipse.jdt.core.*;
/**
* An ImageBuilder represents the process of building
* a state. It can be queried for the State being built.
* If the state is being built incrementally as a change to
* a previous state, this object can be queried for the
* image delta between the old state and the new state.
*/
public interface IImageBuilder
{
/**
* If the new state is being built incrementally, returns an object
* describing the differences between the old state and the new state,
* otherwise returns null. The delta is restricted to the given
* ImageContext.
* This image delta will include entries for all program elements that are
* present in:
* <pre>
* (oldState UNION newState) INTERSECT imageContext
*</pre>
* That is, it will include each program element that is present in one or the other
* state and also in the given image context.
* Any delta objects navigated to from the result are restricted
* to the same ImageContext.
* Note that there is no necessary relationship between the image context
* supplied and the build contexts of the old and new states.
*/
IDelta getImageDelta(IImageContext imageContext);
/**
* Returns the state being built.
*/
IState getNewState();
/**
* If the new state is being built incrementally, returns the old state,
* otherwise returns null.
*/
IState getOldState();
/**
* Return a string of the form:
* batch image builder for:
* new state: this.data.newstate
* OR
* incremental image builder for:
* new state: this.data.newstate
* old state: this.data.oldstate
* Obviously, which string gets returned depends
* on the type of image builder.
* 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();
}