X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/IJavaElementDelta.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/IJavaElementDelta.java index 9fe7eb5..c506cd8 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/IJavaElementDelta.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/IJavaElementDelta.java @@ -14,89 +14,107 @@ import org.eclipse.core.resources.IResourceDelta; /** * A Java element delta describes changes in Java element between two discrete - * points in time. Given a delta, clients can access the element that has + * points in time. Given a delta, clients can access the element that has * changed, and any children that have changed. *
- * Deltas have a different status depending on the kind of change they represent.
- * The list below summarizes each status (as returned by getKind
)
- * and its meaning (see individual constants for a more detailled description):
+ * Deltas have a different status depending on the kind of change they
+ * represent. The list below summarizes each status (as returned by
+ * getKind
) and its meaning (see individual constants for a more
+ * detailled description):
*
ADDED
- The element described by the delta has been added.REMOVED
- The element described by the delta has been removed.CHANGED
- The element described by the delta has been changed in some way.
- * Specification of the type of change is provided by getFlags
which returns the following values:
+ * ADDED
- The element described by the delta has been
+ * added.REMOVED
- The element described by the delta has been
+ * removed.CHANGED
- The element described by the delta has been
+ * changed in some way. Specification of the type of change is provided by
+ * getFlags
which returns the following values:
* F_ADDED_TO_CLASSPATH
- A classpath entry corresponding to the element
- * has been added to the project's classpath. This flag is only valid if the element is an
- * IPackageFragmentRoot
.F_ADDED_TO_CLASSPATH
- A classpath entry corresponding to
+ * the element has been added to the project's classpath. This flag is only
+ * valid if the element is an IPackageFragmentRoot
.F_ARCHIVE_CONTENT_CHANGED
- The contents of an archive
- * has changed in some way. This flag is only valid if the element is an IPackageFragmentRoot
- * which is an archive.F_CHILDREN
- A child of the element has changed in some way. This flag
- * is only valid if the element is an IParent
.F_CLASSPATH_REORDER
- A classpath entry corresponding to the element
- * has changed position in the project's classpath. This flag is only valid if the element is an
- * IPackageFragmentRoot
.F_CLOSED
- The underlying IProject
- * has been closed. This flag is only valid if the element is an IJavaProject
.F_CONTENT
- The contents of the element have been altered. This flag
- * is only valid for elements which correspond to files.F_FINE_GRAINED
- The delta is a fine-grained delta, that is, an analysis down
- * to the members level was done to determine if there were structural changes to members of the element.F_MODIFIERS
- The modifiers on the element have changed in some way.
- * This flag is only valid if the element is an IMember
.F_OPENED
- The underlying IProject
- * has been opened. This flag is only valid if the element is an IJavaProject
.F_REMOVED_FROM_CLASSPATH
- A classpath entry corresponding to the element
- * has been removed from the project's classpath. This flag is only valid if the element is an
+ * has changed in some way. This flag is only valid if the element is an
+ * IPackageFragmentRoot
which is an archive.F_CHILDREN
- A child of the element has changed in some
+ * way. This flag is only valid if the element is an IParent
.F_CLASSPATH_REORDER
- A classpath entry corresponding to
+ * the element has changed position in the project's classpath. This flag is
+ * only valid if the element is an IPackageFragmentRoot
.F_CLOSED
- The underlying IProject
has
+ * been closed. This flag is only valid if the element is an
+ * IJavaProject
.F_CONTENT
- The contents of the element have been
+ * altered. This flag is only valid for elements which correspond to files.F_FINE_GRAINED
- The delta is a fine-grained delta, that
+ * is, an analysis down to the members level was done to determine if there were
+ * structural changes to members of the element.F_MODIFIERS
- The modifiers on the element have changed
+ * in some way. This flag is only valid if the element is an
+ * IMember
.F_OPENED
- The underlying IProject
has
+ * been opened. This flag is only valid if the element is an
+ * IJavaProject
.F_REMOVED_FROM_CLASSPATH
- A classpath entry
+ * corresponding to the element has been removed from the project's classpath.
+ * This flag is only valid if the element is an
* IPackageFragmentRoot
.F_SOURCEATTACHED
- The source attachment path or the source attachment root path
- * of a classpath entry corresponding to the element was added. This flag is only valid if the element is an
+ * F_SOURCEATTACHED
- The source attachment path or the
+ * source attachment root path of a classpath entry corresponding to the element
+ * was added. This flag is only valid if the element is an
* IPackageFragmentRoot
.F_SOURCEDETACHED
- The source attachment path or the source attachment root path
- * of a classpath entry corresponding to the element was removed. This flag is only valid if the element is an
+ * F_SOURCEDETACHED
- The source attachment path or the
+ * source attachment root path of a classpath entry corresponding to the element
+ * was removed. This flag is only valid if the element is an
* IPackageFragmentRoot
.F_SUPER_TYPES
- One of the supertypes of an IType
has changedF_SUPER_TYPES
- One of the supertypes of an
+ * IType
has changed
- * Move operations are indicated by other change flags, layered on top
- * of the change flags described above. If element A is moved to become B,
- * the delta for the change in A will have status REMOVED
,
- * with change flag F_MOVED_TO
. In this case,
- * getMovedToElement
on delta A will return the handle for B.
- * The delta for B will have status ADDED
, with change flag
- * F_MOVED_FROM
, and getMovedFromElement
on delta
- * B will return the handle for A. (Note, the handle to A in this case represents
- * an element that no longer exists).
+ * Move operations are indicated by other change flags, layered on top of the
+ * change flags described above. If element A is moved to become B, the delta
+ * for the change in A will have status REMOVED
, with change
+ * flag F_MOVED_TO
. In this case, getMovedToElement
+ * on delta A will return the handle for B. The delta for B will have status
+ * ADDED
, with change flag F_MOVED_FROM
, and
+ * getMovedFromElement
on delta B will return the handle for A.
+ * (Note, the handle to A in this case represents an element that no longer
+ * exists).
*
- * Note that the move change flags only describe the changes to a single element, they - * do not imply anything about the parent or children of the element. + * Note that the move change flags only describe the changes to a single + * element, they do not imply anything about the parent or children of the + * element. *
*
- * The F_ADDED_TO_CLASSPATH
, F_REMOVED_FROM_CLASSPATH
and
- * F_CLASSPATH_REORDER
flags are triggered by changes to a project's classpath. They do not mean that
- * the underlying resource was added, removed or changed. For example, if a project P already contains a folder src, then
- * adding a classpath entry with the 'P/src' path to the project's classpath will result in an IJavaElementDelta
- * with the F_ADDED_TO_CLASSPATH
flag for the IPackageFragmentRoot
P/src.
- * On the contrary, if a resource is physically added, removed or changed and this resource corresponds to a classpath
- * entry of the project, then an IJavaElementDelta
with the ADDED
,
+ * The F_ADDED_TO_CLASSPATH
,
+ * F_REMOVED_FROM_CLASSPATH
and F_CLASSPATH_REORDER
+ * flags are triggered by changes to a project's classpath. They do not mean
+ * that the underlying resource was added, removed or changed. For example, if a
+ * project P already contains a folder src, then adding a classpath entry with
+ * the 'P/src' path to the project's classpath will result in an
+ * IJavaElementDelta
with the F_ADDED_TO_CLASSPATH
+ * flag for the IPackageFragmentRoot
P/src. On the contrary, if a
+ * resource is physically added, removed or changed and this resource
+ * corresponds to a classpath entry of the project, then an
+ * IJavaElementDelta
with the ADDED
,
* REMOVED
, or CHANGED
kind will be fired.
*
- * Note that when a source attachment path or a source attachment root path is changed, then the flags of the delta contain
- * both F_SOURCEATTACHED
and F_SOURCEDETTACHED
.
+ * Note that when a source attachment path or a source attachment root path is
+ * changed, then the flags of the delta contain both
+ * F_SOURCEATTACHED
and F_SOURCEDETTACHED
.
*
- * No assumptions should be made on whether the java element delta tree is rooted at the IJavaModel
- * level or not.
+ * No assumptions should be made on whether the java element delta tree is
+ * rooted at the IJavaModel
level or not.
*
- * IJavaElementDelta
object are not valid outside the dynamic scope
- * of the notification.
+ * IJavaElementDelta
object are not valid outside the dynamic
+ * scope of the notification.
*
* This interface is not intended to be implemented by clients.
@@ -105,210 +123,251 @@ import org.eclipse.core.resources.IResourceDelta;
public interface IJavaElementDelta {
/**
- * Status constant indicating that the element has been added.
- * Note that an added java element delta has no children, as they are all implicitely added.
+ * Status constant indicating that the element has been added. Note that an
+ * added java element delta has no children, as they are all implicitely
+ * added.
*/
public int ADDED = 1;
/**
- * Status constant indicating that the element has been removed.
- * Note that a removed java element delta has no children, as they are all implicitely removed.
+ * Status constant indicating that the element has been removed. Note that a
+ * removed java element delta has no children, as they are all implicitely
+ * removed.
*/
public int REMOVED = 2;
/**
- * Status constant indicating that the element has been changed,
- * as described by the change flags.
+ * Status constant indicating that the element has been changed, as
+ * described by the change flags.
*
* @see #getFlags
*/
public int CHANGED = 4;
/**
- * Change flag indicating that the content of the element has changed.
- * This flag is only valid for elements which correspond to files.
+ * Change flag indicating that the content of the element has changed. This
+ * flag is only valid for elements which correspond to files.
*/
public int F_CONTENT = 0x0001;
/**
* Change flag indicating that the modifiers of the element have changed.
- * This flag is only valid if the element is an IMember
.
+ * This flag is only valid if the element is an IMember
.
*/
public int F_MODIFIERS = 0x0002;
/**
- * Change flag indicating that there are changes to the children of the element.
- * This flag is only valid if the element is an IParent
.
+ * Change flag indicating that there are changes to the children of the
+ * element. This flag is only valid if the element is an
+ * IParent
.
*/
public int F_CHILDREN = 0x0008;
/**
* Change flag indicating that the element was moved from another location.
- * The location of the old element can be retrieved using getMovedFromElement
.
+ * The location of the old element can be retrieved using
+ * getMovedFromElement
.
*/
public int F_MOVED_FROM = 0x0010;
/**
* Change flag indicating that the element was moved to another location.
- * The location of the new element can be retrieved using getMovedToElement
.
+ * The location of the new element can be retrieved using
+ * getMovedToElement
.
*/
public int F_MOVED_TO = 0x0020;
/**
- * Change flag indicating that a classpath entry corresponding to the element has been added to the project's classpath.
- * This flag is only valid if the element is an IPackageFragmentRoot
.
+ * Change flag indicating that a classpath entry corresponding to the
+ * element has been added to the project's classpath. This flag is only
+ * valid if the element is an IPackageFragmentRoot
.
*/
public int F_ADDED_TO_CLASSPATH = 0x0040;
/**
- * Change flag indicating that a classpath entry corresponding to the element has been removed from the project's
- * classpath. This flag is only valid if the element is an IPackageFragmentRoot
.
+ * Change flag indicating that a classpath entry corresponding to the
+ * element has been removed from the project's classpath. This flag is only
+ * valid if the element is an IPackageFragmentRoot
.
*/
public int F_REMOVED_FROM_CLASSPATH = 0x0080;
/**
- * Change flag indicating that a classpath entry corresponding to the element has changed position in the project's
- * classpath. This flag is only valid if the element is an IPackageFragmentRoot
.
+ * Change flag indicating that a classpath entry corresponding to the
+ * element has changed position in the project's classpath. This flag is
+ * only valid if the element is an IPackageFragmentRoot
.
+ *
* @deprecated Use F_REORDER instead.
*/
public int F_CLASSPATH_REORDER = 0x0100;
+
/**
- * Change flag indicating that the element has changed position relatively to its siblings.
- * If the element is an IPackageFragmentRoot
, a classpath entry corresponding
- * to the element has changed position in the project's classpath.
+ * Change flag indicating that the element has changed position relatively
+ * to its siblings. If the element is an IPackageFragmentRoot
,
+ * a classpath entry corresponding to the element has changed position in
+ * the project's classpath.
*
* @since 2.1
*/
public int F_REORDER = 0x0100;
/**
- * Change flag indicating that the underlying IProject
has been
- * opened. This flag is only valid if the element is an IJavaProject
.
+ * Change flag indicating that the underlying IProject
has
+ * been opened. This flag is only valid if the element is an
+ * IJavaProject
.
*/
public int F_OPENED = 0x0200;
/**
- * Change flag indicating that the underlying IProject
has been
- * closed. This flag is only valid if the element is an IJavaProject
.
+ * Change flag indicating that the underlying IProject
has
+ * been closed. This flag is only valid if the element is an
+ * IJavaProject
.
*/
public int F_CLOSED = 0x0400;
/**
- * Change flag indicating that one of the supertypes of an IType
- * has changed.
+ * Change flag indicating that one of the supertypes of an
+ * IType
has changed.
*/
public int F_SUPER_TYPES = 0x0800;
/**
- * Change flag indicating that the source attachment path or the source attachment root path of a classpath entry
- * corresponding to the element was added. This flag is only valid if the element is an
+ * Change flag indicating that the source attachment path or the source
+ * attachment root path of a classpath entry corresponding to the element
+ * was added. This flag is only valid if the element is an
* IPackageFragmentRoot
.
*/
- public int F_SOURCEATTACHED = 0x1000;
+ public int F_SOURCEATTACHED = 0x1000;
/**
- * Change flag indicating that the source attachment path or the source attachment root path of a classpath entry
- * corresponding to the element was removed. This flag is only valid if the element is an
+ * Change flag indicating that the source attachment path or the source
+ * attachment root path of a classpath entry corresponding to the element
+ * was removed. This flag is only valid if the element is an
* IPackageFragmentRoot
.
*/
- public int F_SOURCEDETACHED = 0x2000;
-
+ public int F_SOURCEDETACHED = 0x2000;
+
/**
- * Change flag indicating that this is a fine-grained delta, that is, an analysis down
- * to the members level was done to determine if there were structural changes to
- * members.
+ * Change flag indicating that this is a fine-grained delta, that is, an
+ * analysis down to the members level was done to determine if there were
+ * structural changes to members.
*
- * Clients can use this flag to find out if a compilation unit
- * that have a F_CONTENT
change should assume that there are
- * no finer grained changes (F_FINE_GRAINED
is set) or if
- * finer grained changes were not considered (F_FINE_GRAINED
- * is not set).
- *
- * @since 2.0
+ * Clients can use this flag to find out if a compilation unit that have a
+ * F_CONTENT
change should assume that there are no finer
+ * grained changes (F_FINE_GRAINED
is set) or if finer
+ * grained changes were not considered (F_FINE_GRAINED
is
+ * not set).
+ *
+ * @since 2.0
*/
public int F_FINE_GRAINED = 0x4000;
/**
- * Change flag indicating that the element's archive content on the classpath has changed.
- * This flag is only valid if the element is an IPackageFragmentRoot
- * which is an archive.
+ * Change flag indicating that the element's archive content on the
+ * classpath has changed. This flag is only valid if the element is an
+ * IPackageFragmentRoot
which is an archive.
*
* @see IPackageFragmentRoot#isArchive
* @since 2.0
*/
public int F_ARCHIVE_CONTENT_CHANGED = 0x8000;
+
/**
- * Change flag indicating that a compilation unit has become a primary working copy, or that a
- * primary working copy has reverted to a compilation unit.
- * This flag is only valid if the element is an ICompilationUnit
.
+ * Change flag indicating that a compilation unit has become a primary
+ * working copy, or that a primary working copy has reverted to a
+ * compilation unit. This flag is only valid if the element is an
+ * ICompilationUnit
.
*
* @since 3.0
*/
public int F_PRIMARY_WORKING_COPY = 0x10000;
+
+ /**
+ * Change flag indicating that the raw classpath (or the output folder) of a
+ * project has changed. This flag is only valid if the element is an
+ * IJavaProject
.
+ *
+ * @since 3.0
+ */
+ public int F_CLASSPATH_CHANGED = 0x20000;
+
+ /**
+ * Change flag indicating that the resource of a primary compilation unit
+ * has changed. This flag is only valid if the element is a primary
+ * ICompilationUnit
.
+ *
+ * @since 3.0
+ */
+ public int F_PRIMARY_RESOURCE = 0x40000;
+
/**
* Returns deltas for the children that have been added.
+ *
* @return deltas for the children that have been added
*/
public IJavaElementDelta[] getAddedChildren();
/**
* Returns deltas for the affected (added, removed, or changed) children.
+ *
* @return deltas for the affected (added, removed, or changed) children
*/
public IJavaElementDelta[] getAffectedChildren();
/**
* Returns deltas for the children which have changed.
+ *
* @return deltas for the children which have changed
*/
public IJavaElementDelta[] getChangedChildren();
/**
* Returns the element that this delta describes a change to.
+ *
* @return the element that this delta describes a change to
*/
public IJavaElement getElement();
/**
- * Returns flags that describe how an element has changed.
- * Such flags should be tested using the &
operand. For example:
+ * Returns flags that describe how an element has changed. Such flags should
+ * be tested using the &
operand. For example:
+ *
*
- * if ((delta.getFlags() & IJavaElementDelta.F_CONTENT) != 0) { + * if ((delta.getFlags() & IJavaElementDelta.F_CONTENT) != 0) { * // the delta indicates a content change * } *- * + * * @return flags that describe how an element has changed */ public int getFlags(); /** - * Returns the kind of this delta - one of
ADDED
, REMOVED
,
- * or CHANGED
.
+ * Returns the kind of this delta - one of ADDED
,
+ * REMOVED
, or CHANGED
.
*
* @return the kind of this delta
*/
public int getKind();
/**
- * Returns an element describing this element before it was moved
- * to its current location, or null
if the
- * F_MOVED_FROM
change flag is not set.
+ * Returns an element describing this element before it was moved to its
+ * current location, or null
if the F_MOVED_FROM
+ * change flag is not set.
*
- * @return an element describing this element before it was moved
- * to its current location, or null
if the
- * F_MOVED_FROM
change flag is not set
+ * @return an element describing this element before it was moved to its
+ * current location, or null
if the
+ * F_MOVED_FROM
change flag is not set
*/
public IJavaElement getMovedFromElement();
/**
- * Returns an element describing this element in its new location,
- * or null
if the F_MOVED_TO
change
- * flag is not set.
+ * Returns an element describing this element in its new location, or
+ * null
if the F_MOVED_TO
change flag is not
+ * set.
*
- * @return an element describing this element in its new location,
- * or null
if the F_MOVED_TO
change
- * flag is not set
+ * @return an element describing this element in its new location, or
+ * null
if the F_MOVED_TO
change flag
+ * is not set
*/
public IJavaElement getMovedToElement();
@@ -322,11 +381,11 @@ public interface IJavaElementDelta {
/**
* Returns the collection of resource deltas.
* - * Note that resource deltas, like Java element deltas, are generally only valid - * for the dynamic scope of an event notification. Clients must not hang on to - * these objects. + * Note that resource deltas, like Java element deltas, are generally only + * valid for the dynamic scope of an event notification. Clients must not + * hang on to these objects. *
- * + * * @return the underlying resource deltas, ornull
if none
*/
public IResourceDelta[] getResourceDeltas();