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

package org.eclipse.handly.model.impl.support
Provides basic facilities for implementing handle-based models supporting the API defined in `org.eclipse.handly.model`.

See Also:
  - Handly Core Framework Overview

- Related Packages
  Package
  Description
  org.eclipse.handly.model.impl
  Defines the implementation-side API for models that want to support the API provided in `org.eclipse.handly.model`.
- Class
  Description
  BaseSourceFile
  Provides a skeletal implementation of `ISourceFileImplExtension` for source files that can have an underlying file in the workspace or outside the workspace.
  Body
  Holds cached structure and properties for an `IElement`.
  Element
  Provides a skeletal implementation of `IElementImplExtension` to minimize the effort required to implement that interface.
  ElementCache
  A bounded LRU cache of element handle/body relationships that is intended to be used in advanced implementations of `IBodyCache`.
  ElementChangeEvent
  Default implementation of `IElementChangeEvent`.
  ElementChangeListenerList
  A thread safe list of element change listeners.
  ElementChangeListenerList.Entry
  An entry of the element change listener list.
  ElementChangeRecorder
  Records changes in the state of an element tree between two discrete points in time and produces a delta tree representing the changes.
  ElementDelta
  A complete implementation of `IElementDeltaImpl`.
  ElementDelta.Builder
  Builds a tree of `ElementDelta` objects based on elementary changes.
  ElementDelta.Factory
  Represents a factory for creating instances of `ElementDelta`.
  ElementManager
  Manages element handle/body relationships for a Handly-based model.
  FsSourceFile
  Provides a skeletal implementation of `ISourceFileImplExtension` for source files that have an underlying `IFileStore`.
  IBodyCache
  Represents a cache of element handle/body relationships.
  IElementDeltaBuilder
  Builds an `IElementDelta` tree based on elementary changes.
  IElementImplSupport
  A "trait-like" interface providing a skeletal implementation of `IElementImplExtension` to minimize the effort required to implement that interface.
  IModelManager
  The central point for an element to access information and services related to the model as a whole.
  IModelManager.Provider
  Provides access to the model manager.
  INotificationManager
  Notifies registered listeners about an element change event.
  ISourceConstructImplSupport
  A "trait-like" interface providing a skeletal implementation of `ISourceConstructImplExtension` to minimize the effort required to implement that interface.
  ISourceElementImplSupport
  A "trait-like" interface providing a skeletal implementation of `ISourceElementImpl` to minimize the effort required to implement that interface.
  ISourceFileImplSupport
  A "trait-like" interface providing a skeletal implementation of `ISourceFileImplExtension` to minimize the effort required to implement that interface.
  ISourceFileImplSupport.NotifyingReconcileOperation
  Reconciles a working copy and sends out a delta notification indicating the nature of the change of the working copy since the last time it was reconciled.
  ISourceFileImplSupport.ReconcileOperation
  Reconciles a working copy.
  NotificationManager
  Default implementation of `INotificationManager`.
  SourceConstruct
  Provides a skeletal implementation of `ISourceConstructImplExtension` to minimize the effort required to implement that interface.
  SourceElementBody
  Holds cached structure and properties for a source element.
  SourceFile
  Provides a skeletal implementation of `ISourceFileImplExtension` to minimize the effort required to implement that interface.
  StructureHelper
  A helper class that is typically used when building the inner structure of a source file.
  WorkspaceSourceFile
  Provides a skeletal implementation of `ISourceFileImplExtension` for source files residing in the workspace.