Package org.eclipse.handly.model.impl.support

# Interface IElementDeltaBuilder

All Known Implementing Classes:
  `ElementDelta.Builder`

public interface IElementDeltaBuilder
Builds an `IElementDelta` tree based on elementary changes.

Note that, despite having a dependency on `IResourceDelta` and `IMarkerDelta`, this interface can 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.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default IElementDeltaBuilder`
  `added(IElement element)`
  Has the same effect as `added(element, 0)`.
  `IElementDeltaBuilder`
  `added(IElement element, long flags)`
  Informs this builder that an element has been added.
  `IElementDeltaBuilder`
  `addResourceDelta(IElement element, org.eclipse.core.resources.IResourceDelta resourceDelta)`
  Informs this builder about changes to children of the given element's corresponding resource that cannot be described in terms of element deltas.
  `IElementDeltaBuilder`
  `changed(IElement element, long flags)`
  Informs this builder that an element has been changed.
  `IElementDelta`
  `getDelta()`
  Returns the root of the built delta tree.
  `IElementDeltaBuilder`
  `markersChanged(IElement element, org.eclipse.core.resources.IMarkerDelta[] markerDeltas)`
  Informs this builder about changes to markers on the given element's corresponding resource.
  `IElementDeltaBuilder`
  `movedFrom(IElement movedFromElement, IElement movedToElement)`
  Informs this builder that an element has been removed as it has moved to a new location.
  `IElementDeltaBuilder`
  `movedTo(IElement movedToElement, IElement movedFromElement)`
  Informs this builder that an element has been added as it has moved from an old location.
  `default IElementDeltaBuilder`
  `removed(IElement element)`
  Has the same effect as `removed(element, 0)`.
  `IElementDeltaBuilder`
  `removed(IElement element, long flags)`
  Informs this builder that an element has been removed.

- ## Method Details

  - ### added

    default IElementDeltaBuilder added(IElement element)
    Has the same effect as `added(element, 0)`.
    Parameters:
      `element` - the added element (not `null`)
    Returns:
      this builder
    See Also:
      - `added(IElement, long)`

  - ### added

    IElementDeltaBuilder added(IElement element, long flags)
    Informs this builder that an element has been added.
    Parameters:
      `element` - the added element (not `null`)
      `flags` - delta flags
    Returns:
      this builder

  - ### removed

    default IElementDeltaBuilder removed(IElement element)
    Has the same effect as `removed(element, 0)`.
    Parameters:
      `element` - the removed element (not `null`)
    Returns:
      this builder
    See Also:
      - `removed(IElement, long)`

  - ### removed

    IElementDeltaBuilder removed(IElement element, long flags)
    Informs this builder that an element has been removed.
    Parameters:
      `element` - the removed element (not `null`)
      `flags` - delta flags
    Returns:
      this builder

  - ### changed

    IElementDeltaBuilder changed(IElement element, long flags)
    Informs this builder that an element has been changed.
    Parameters:
      `element` - the changed element (not `null`)
      `flags` - delta flags
    Returns:
      this builder

  - ### movedFrom

    IElementDeltaBuilder movedFrom(IElement movedFromElement, IElement movedToElement)
    Informs this builder that an element has been removed as it has moved to a new location.
    Parameters:
      `movedFromElement` - the element before it was moved to its current location (not `null`)
      `movedToElement` - the element in its new location (not `null`)
    Returns:
      this builder

  - ### movedTo

    IElementDeltaBuilder movedTo(IElement movedToElement, IElement movedFromElement)
    Informs this builder that an element has been added as it has moved from an old location.
    Parameters:
      `movedToElement` - the element in its new location (not `null`)
      `movedFromElement` - the element before it was moved to its current location (not `null`)
    Returns:
      this builder

  - ### markersChanged

    IElementDeltaBuilder markersChanged(IElement element, org.eclipse.core.resources.IMarkerDelta[] markerDeltas)
    Informs this builder about changes to markers on the given element's corresponding resource.
    Parameters:
      `element` - the element with changed markers (not `null`)
      `markerDeltas` - the marker deltas for the element (not `null`, not empty)
    Returns:
      this builder

  - ### addResourceDelta

    IElementDeltaBuilder addResourceDelta(IElement element, org.eclipse.core.resources.IResourceDelta resourceDelta)
    Informs this builder about changes to children of the given element's corresponding resource that cannot be described in terms of element deltas.
    Parameters:
      `element` - the element with a resource change (not `null`)
      `resourceDelta` - the resource delta for the element (not `null`)
    Returns:
      this builder

  - ### getDelta

    IElementDelta getDelta()
    Returns the root of the built delta tree. The delta tree describes the net result of all changes reported to this builder up to now. There is no requirement for the returned delta object to reflect subsequent changes reported to this builder; a new instance may be returned each time this method is invoked.
    Returns:
      the root of the built delta tree, or `null` if none