Class ElementDeltas
IElementDelta
s.
Given a delta, clients can access the element that has changed, and any
children that have changed.
Note that, despite having a dependency on IResourceDelta
and IMarkerDelta
, this class can safely be used even when
org.eclipse.core.resources
bundle is not available.
This is based on the "outward impression" of late resolution of
symbolic references a JVM must provide according to the JVMS.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final IElementDelta[]
A zero-length array of the runtime typeIElementDelta[]
. -
Method Summary
Modifier and TypeMethodDescriptionstatic IElementDelta
findDelta
(IElementDelta delta, IElement element) Finds and returns the delta for the given element in a delta subtree (subtree root included), ornull
if no such delta can be found.static IElementDelta[]
getAddedChildren
(IElementDelta delta) Returns element deltas for the immediate children that have been added.static IElementDelta[]
getAffectedChildren
(IElementDelta delta) Returns element deltas for all affected (added, removed, or changed) immediate children.static IElementDelta[]
getChangedChildren
(IElementDelta delta) Returns element deltas for the immediate children that have been changed.static IElement
getElement
(IElementDelta delta) Returns the element that the delta describes a change to.static long
getFlags
(IElementDelta delta) Returns flags which describe in more detail how an element has changed.static int
getKind
(IElementDelta delta) Returns the kind of the element delta.static org.eclipse.core.resources.IMarkerDelta[]
getMarkerDeltas
(IElementDelta delta) Returns the changes to markers on the corresponding resource of the delta's element.static IElement
getMovedFromElement
(IElementDelta delta) Returns an element describing the delta's element before it was moved to its current location, ornull
if theF_MOVED_FROM
change flag is not set.static IElement
getMovedToElement
(IElementDelta delta) Returns an element describing the delta's element in its new location, ornull
if theF_MOVED_TO
change flag is not set.static IElementDelta[]
getRemovedChildren
(IElementDelta delta) Returns element deltas for the immediate children that have been removed.static org.eclipse.core.resources.IResourceDelta[]
getResourceDeltas
(IElementDelta delta) Returns the changes to children of the delta element's corresponding resource that cannot be described in terms of element deltas.static boolean
isEmpty
(IElementDelta delta) Returns whether the element delta is empty, i.e., represents an unchanged element.static boolean
isNullOrEmpty
(IElementDelta delta) Returns whether the element delta isnull
or empty.static boolean
isStructuralChange
(IElementDelta delta) Returns whether the element delta designates a structural change, i.e., a change that affects or might affect the element tree as opposed to only the element itself.static String
toString
(IElementDelta delta, IContext context) Returns a string representation of the element delta in a form suitable for debugging purposes.
-
Field Details
-
EMPTY_ARRAY
A zero-length array of the runtime typeIElementDelta[]
.
-
-
Method Details
-
getElement
Returns the element that the delta describes a change to.- Parameters:
delta
- notnull
- Returns:
- the element that the delta describes a change to
(never
null
)
-
isEmpty
Returns whether the element delta is empty, i.e., represents an unchanged element.- Parameters:
delta
- notnull
- Returns:
true
if the element delta is empty, andfalse
otherwise
-
isNullOrEmpty
Returns whether the element delta isnull
or empty. Convenience method.- Parameters:
delta
- may benull
- Returns:
true
if the element delta isnull
or empty, andfalse
otherwise
-
getKind
Returns the kind of the element delta. Normally, one ofADDED
,REMOVED
, orCHANGED
. ReturnsNO_CHANGE
if, and only if, the delta is empty.- Parameters:
delta
- notnull
- Returns:
- the kind of the element delta
-
getFlags
Returns flags which describe in more detail how an element has changed. Such flags should be tested using the&
operator. For example:if ((flags & F_CONTENT) != 0) // a content change
Some change flags make sense for most models and are predefined in
IElementDeltaConstants
, while others are model-specific and are defined by the model implementor. The range for model-specific change flags starts from1L << 32
and includes the upper 32 bits of thelong
value. The lower 32 bits are reserved for predefined generic change flags.Move operations are indicated by special change flags. If an element is moved from A to B (with no other changes to A or B), then A will have kind
REMOVED
, with flagF_MOVED_TO
, andgetMovedToElement
on A will return the handle for B. B will have kindADDED
, with flagF_MOVED_FROM
, andgetMovedFromElement
on B will return the handle for A. (Note that the handle for A in this case represents an element that no longer exists.)- Parameters:
delta
- notnull
- Returns:
- flags that describe how an element has changed
-
isStructuralChange
Returns whether the element delta designates a structural change, i.e., a change that affects or might affect the element tree as opposed to only the element itself.- Parameters:
delta
- may benull
- Returns:
true
if the element delta designates a structural change, andfalse
otherwise
-
findDelta
Finds and returns the delta for the given element in a delta subtree (subtree root included), ornull
if no such delta can be found.This is a convenience method to avoid manual traversal of the delta tree in cases where the listener is only interested in changes to particular elements. Calling this method will generally be faster than manually traversing the delta to a particular descendant.
- Parameters:
delta
- the delta at which to start the search (notnull
)element
- the element of the desired delta (may benull
, in which casenull
will be returned)- Returns:
- the delta for the given element, or
null
if no such delta can be found
-
getAffectedChildren
Returns element deltas for all affected (added, removed, or changed) immediate children.- Parameters:
delta
- notnull
- Returns:
- element deltas for all affected immediate children
(never
null
). Clients must not modify the returned array.
-
getAddedChildren
Returns element deltas for the immediate children that have been added.- Parameters:
delta
- notnull
- Returns:
- element deltas for the immediate children that have been added
(never
null
). Clients must not modify the returned array.
-
getRemovedChildren
Returns element deltas for the immediate children that have been removed.- Parameters:
delta
- notnull
- Returns:
- element deltas for the immediate children that have been removed
(never
null
). Clients must not modify the returned array.
-
getChangedChildren
Returns element deltas for the immediate children that have been changed.- Parameters:
delta
- notnull
- Returns:
- element deltas for the immediate children that have been changed
(never
null
). Clients must not modify the returned array.
-
getMovedFromElement
Returns an element describing the delta's element before it was moved to its current location, ornull
if theF_MOVED_FROM
change flag is not set.- Parameters:
delta
- notnull
- Returns:
- an element describing the delta's element before it was moved
to its current location, or
null
if theF_MOVED_FROM
change flag is not set - See Also:
-
getMovedToElement
Returns an element describing the delta's element in its new location, ornull
if theF_MOVED_TO
change flag is not set.- Parameters:
delta
- notnull
- Returns:
- an element describing the delta's element in its new location,
or
null
if theF_MOVED_TO
change flag is not set - See Also:
-
getMarkerDeltas
Returns the changes to markers on the corresponding resource of the delta's element.Returns
null
if no markers changed. Note that this is an exception to the general convention of returning an empty array rather thannull
. This makes the method safe to call even whenorg.eclipse.core.resources
bundle is not available.Note that marker deltas, like element deltas, are generally only valid for the dynamic scope of change notification. Clients must not hang on to these objects.
- Parameters:
delta
- notnull
- Returns:
- the marker deltas, or
null
if none. Clients must not modify the returned array.
-
getResourceDeltas
Returns the changes to children of the delta element's corresponding resource that cannot be described in terms of element deltas.Returns
null
if there were no such changes. Note that this is an exception to the general convention of returning an empty array rather thannull
. This makes the method safe to call even whenorg.eclipse.core.resources
bundle is not available.Note that resource deltas, like element deltas, are generally only valid for the dynamic scope of change notification. Clients must not hang on to these objects.
- Parameters:
delta
- notnull
- Returns:
- the resource deltas, or
null
if none. Clients must not modify the returned array.
-
toString
Returns a string representation of the element delta in a form suitable for debugging purposes. Clients can influence the result with format options specified in the given context; unrecognized options are ignored and an empty context is permitted.Model implementations are encouraged to support common options defined in
ToStringOptions
and interpret theFORMAT_STYLE
as follows:- Parameters:
delta
- notnull
context
- notnull
- Returns:
- a string representation of the element delta
(never
null
)
-