Package org.eclipse.handly.model


package org.eclipse.handly.model
Provides a common API for handle-based models.

An IModel serves as the common owner of any number of IElements. IElements are exposed to clients as handles to the actual underlying element. The model may hand out any number of handles for each element. Handles are value objects; handles that refer to the same element are guaranteed to be equal, but not necessarily identical. An IElementDelta describes changes to an IElement between two discrete points in time.

IModel, IElement, and IElementDelta are just marker interfaces. Use static methods in classes Models, Elements, and ElementDeltas for generic access to IModels, IElements, and IElementDeltas.

This package also provides marker interfaces for code-centric elements such as ISourceFile and ISourceConstruct. Those can also be manipulated via static methods in Elements.

Finally, there are IXXXExtension interfaces (e.g., IElementExtension), which model implementors may opt to extend. The extension interfaces extend the corresponding marker interfaces and introduce a number of generally useful default methods, effectively acting like mix-ins.

See Also:
  • Class
    Description
    Provides static methods for generic access to IElementDeltas.
    Provides static methods for generic access to IElements.
    A marker interface for all elements of a Handly-based model.
    Describes a change to the structure or contents of one or more trees of elements of a Handly-based model.
    An element change listener is notified of changes to elements of a Handly-based model.
    A marker interface for delta objects which describe changes in an IElement between two discrete points in time.
    Provides constants which define element delta kinds and describe element changes.
    Model implementors may opt to extend this interface, which extends IElementDelta with a number of default methods.
    Model implementors may opt to extend this interface, which extends IElement with a number of default methods.
    Provides a generic way to create IElement handles.
    A marker interface for Handly-based models.
    Model implementors may opt to extend this interface, which extends IModel with a number of default methods.
    A marker interface for elements in a source file or, more generally, elements inside a "resource" that may have associated source (an example of such "resource" might be a class file in a jar).
    A marker interface for elements that may have associated source code.
    Model implementors may opt to extend this interface, which extends ISourceElement with a number of default methods.
    Holds cached structure and properties for an ISourceElement.
    A marker interface for elements that represent a source file.
    Model implementors may opt to extend this interface, which extends ISourceFile with a number of default methods.
    Provides static methods for generic access to IModels.