org.eclipse.handly.model

## Interface ISourceElementInfo

- All Known Implementing Classes:
    SourceElementBody

      public interface ISourceElementInfo

  Holds cached structure and properties for an `ISourceElement`. Those structure and properties correlate with a source snapshot.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `<T> T` | `get(Property<T> property)` Returns the cached value for the given property, or `null` if no value is set.
    `ISourceConstruct[]` | `getChildren()` Returns the cached immediate children of the source element.
    `TextRange` | `getFullRange()` Returns the text range of the whole element, or `null` if none.
    `TextRange` | `getIdentifyingRange()` Returns the text range of the element's identifier, or `null` if none.
    `ISnapshot` | `getSnapshot()` Returns the source snapshot on which this object is based, or `null` if the element has no associated source code or if the snapshot is unknown.

- - ### Method Detail

    - #### getSnapshot

          ISnapshot getSnapshot()

      Returns the source snapshot on which this object is based, or `null` if the element has no associated source code or if the snapshot is unknown.
      Returns:
        the source snapshot on which this object is based, or `null` if the element has no associated source code or if the snapshot is unknown

    - #### get

          <T> T get(Property<T> property)

      Returns the cached value for the given property, or `null` if no value is set.

      To find the value to which the given property object is mapped, implementations of this method may use an identity-based lookup, name-based lookup, or anything in-between. Clients need to use unique property instances with unique names for unambiguous identification of a mapping.

      Note that the result correlates to a source `snapshot` (if there is one) and may be inconsistent with the current source contents.

      Parameters:
        `property` - a source element's property (not `null`)
      Returns:
        the cached value for the given property, or `null` if no value is set. Clients must not modify the returned value even if mutation is technically possible (e.g., for a non-empty array).

    - #### getChildren

          ISourceConstruct[] getChildren()

      Returns the cached immediate children of the source element. The children appear in declaration order.

      Note that the result correlates to a source `snapshot` (if there is one) and may be inconsistent with the current source contents.

      Returns:
        the cached immediate children of the source element (never `null`). Clients must not modify the returned array.

    - #### getFullRange

          TextRange getFullRange()

      Returns the text range of the whole element, or `null` if none.

      Note that the result correlates to a source `snapshot` (if there is one) and may be inconsistent with the current source contents.

      Returns:
        the text range associated with the whole element, or `null` if none

    - #### getIdentifyingRange

          TextRange getIdentifyingRange()

      Returns the text range of the element's identifier, or `null` if none.

      Note that the result correlates to a source `snapshot` (if there is one) and may be inconsistent with the current source contents.

      Returns:
        the text range associated with the element's identifier, or `null` if none

Copyright (c) 2014, 2020 1C-Soft LLC and others. Made available under the Eclipse Public License 2.0