public class ElementDeltas
extends java.lang.Object
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.
Modifier and Type | Field and Description |
---|---|
static IElementDelta[] |
EMPTY_ARRAY
A zero-length array of the runtime type
IElementDelta[] . |
Modifier and Type | Method and Description |
---|---|
static IElementDelta |
findDelta(IElementDelta delta,
IElement element)
Finds and returns the delta for the given element in a delta subtree
(subtree root included), or
null 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, or
null if the F_MOVED_FROM change flag is not set. |
static IElement |
getMovedToElement(IElementDelta delta)
Returns an element describing the delta's element in its new location,
or
null if the F_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 is
null 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 java.lang.String |
toString(IElementDelta delta,
IContext context)
Returns a string representation of the element delta in a form suitable
for debugging purposes.
|
public static final IElementDelta[] EMPTY_ARRAY
IElementDelta[]
.public static IElement getElement(IElementDelta delta)
delta
- not null
null
)public static boolean isEmpty(IElementDelta delta)
delta
- not null
true
if the element delta is empty,
and false
otherwisepublic static boolean isNullOrEmpty(IElementDelta delta)
null
or empty.
Convenience method.delta
- may be null
true
if the element delta is null
or empty, and false
otherwisepublic static int getKind(IElementDelta delta)
ADDED
,
REMOVED
,
or CHANGED
.
Returns NO_CHANGE
if, and only if, the delta is empty.delta
- not null
public static long getFlags(IElementDelta delta)
&
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 from 1L << 32
and includes the upper 32 bits of the
long
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 flag F_MOVED_TO
, and getMovedToElement
on A will return
the handle for B. B will have kind ADDED
, with flag
F_MOVED_FROM
, and getMovedFromElement
on B will return the handle for A. (Note that the
handle for A in this case represents an element that no longer exists.)
delta
- not null
public static boolean isStructuralChange(IElementDelta delta)
delta
- may be null
true
if the element delta designates
a structural change, and false
otherwisepublic static IElementDelta findDelta(IElementDelta delta, IElement element)
null
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.
delta
- the delta at which to start the search (not null
)element
- the element of the desired delta (may be null
,
in which case null
will be returned)null
if no such
delta can be foundpublic static IElementDelta[] getAffectedChildren(IElementDelta delta)
delta
- not null
null
). Clients must not modify
the returned array.public static IElementDelta[] getAddedChildren(IElementDelta delta)
delta
- not null
null
). Clients must not modify
the returned array.public static IElementDelta[] getRemovedChildren(IElementDelta delta)
delta
- not null
null
). Clients must not modify
the returned array.public static IElementDelta[] getChangedChildren(IElementDelta delta)
delta
- not null
null
). Clients must not modify
the returned array.public static IElement getMovedFromElement(IElementDelta delta)
null
if the F_MOVED_FROM
change flag is not set.delta
- not null
null
if the F_MOVED_FROM
change flag is not setgetMovedToElement(IElementDelta)
,
getFlags(IElementDelta)
public static IElement getMovedToElement(IElementDelta delta)
null
if the F_MOVED_TO
change flag is not set.delta
- not null
null
if the F_MOVED_TO
change flag is not setgetMovedFromElement(IElementDelta)
,
getFlags(IElementDelta)
public static org.eclipse.core.resources.IMarkerDelta[] getMarkerDeltas(IElementDelta delta)
Returns null
if no markers changed. Note that this is
an exception to the general convention of returning an empty array
rather than null
. This makes the method safe to call
even when org.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.
delta
- not null
null
if none.
Clients must not modify the returned array.public static org.eclipse.core.resources.IResourceDelta[] getResourceDeltas(IElementDelta delta)
Returns null
if there were no such changes. Note that this
is an exception to the general convention of returning an empty array
rather than null
. This makes the method safe to call even
when org.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.
delta
- not null
null
if none.
Clients must not modify the returned array.public static java.lang.String toString(IElementDelta delta, IContext context)
Model implementations are encouraged to support common options defined in
ToStringOptions
and
interpret the FORMAT_STYLE
as follows:
delta
- not null
context
- not null
null
)Copyright (c) 2014, 2018 1C-Soft LLC and others. Made available under the Eclipse Public License 2.0