org.eclipse.viatra.query.runtime.registry

## Interface IQuerySpecificationRegistry

- All Known Implementing Classes:
    QuerySpecificationRegistry

      public interface IQuerySpecificationRegistry

  The query specification registry is used to manage query specifications provided by multiple connectors which can dynamically add and remove specifications. Users can read the contents of the registry through views that are also dynamically updated when the registry is changed by the connectors.
  Since:
    1.3

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `addSource(IRegistrySourceConnector connector)` Cannot register connectors with the same identifier twice.
    `IRegistryView` | `createView()` Creates a view which contains query specification entries that indicate their inclusion in default views.
    `IRegistryView` | `createView(IRegistryViewFactory factory)` Creates a view which is instantiated by the factory and is connected to the registry.
    `IRegistryView` | `createView(IRegistryViewFilter filter)` Creates a view which contains registered query specifications that are considered relevant by the passed filter.
    `IDefaultRegistryView` | `getDefaultView()` Returns a default view instance that contains query specification entries that indicate their inclusion in default views.
    `boolean` | `removeSource(IRegistrySourceConnector connector)` Removes the connector if it was registered.

- - ### Method Detail

    - #### addSource

          boolean addSource(IRegistrySourceConnector connector)

      Cannot register connectors with the same identifier twice. No change occurs if the identifier is already used.
      Parameters:
        `connector` - cannot be null
      Returns:
        false if a connector with the given identifier has already been added, true otherwise

    - #### removeSource

          boolean removeSource(IRegistrySourceConnector connector)

      Removes the connector if it was registered. No change occurs if the identifier of the connector was not used before.
      Parameters:
        `connector` - cannot be null
      Returns:
        false if a registered connector with the given identifier was not found, true if it was successfully removed

    - #### getDefaultView

          IDefaultRegistryView getDefaultView()

      Returns a default view instance that contains query specification entries that indicate their inclusion in default views. If there are entries with the same FQN, only the last added will be included in the view to avoid duplicate FQNs.
      Returns:
        the default view instance

    - #### createView

          IRegistryView createView()

      Creates a view which contains query specification entries that indicate their inclusion in default views. This view will also be incrementally updated on registry changes and accepts listeners to notify on changes.
      Returns:
        a new view instance

    - #### createView

          IRegistryView createView(IRegistryViewFilter filter)

      Creates a view which contains registered query specifications that are considered relevant by the passed filter. This view will also be incrementally updated on registry changes and accepts listeners to notify on changes.
      Returns:
        a new filtered view instance

    - #### createView

          IRegistryView createView(IRegistryViewFactory factory)

      Creates a view which is instantiated by the factory and is connected to the registry. This view will also be incrementally updated on registry changes and accepts listeners to notify on changes.
      Returns:
        a new view instance