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:
Handly Core Framework Overview