Interface ISourceProvider

All Known Implementing Classes:
AbstractSourceProvider

public interface ISourceProvider

A provider of notifications for when a change has occurred to a particular type of source. These providers can be given to the appropriate service, and this service will then re-evaluate the appropriate pieces of its internal state in response to these changes.

It is recommended that clients subclass AbstractSourceProvider instead, as this provides some common support for listeners.

Since:
3.1
See Also:
  • Method Details

    • addSourceProviderListener

      void addSourceProviderListener(ISourceProviderListener listener)
      Adds a listener to this source provider. This listener will be notified whenever the corresponding source changes.
      Parameters:
      listener - The listener to add; must not be null.
    • dispose

      void dispose()
      Allows the source provider an opportunity to clean up resources (e.g., listeners) before being released. This method should be called by the creator after the source provider has been removed from all the services with which it was registered.
    • getCurrentState

      Map getCurrentState()
      Returns the current state of the sources tracked by this provider. This is used to provide a view of the world if the event loop is busy and things are some state has already changed.

      For use with core expressions, this map should contain IEvaluationContext#UNDEFINED_VARIABLE for properties which are only sometimes available.

      Returns:
      A map of variable names (String) to variable values (Object). This may be empty, and may be null.
    • getProvidedSourceNames

      String[] getProvidedSourceNames()
      Returns the names of those sources provided by this class. This is used by clients of source providers to determine which source providers they actually need.
      Returns:
      An array of source names. This value should never be null or empty.
    • removeSourceProviderListener

      void removeSourceProviderListener(ISourceProviderListener listener)
      Removes a listener from this source provider. This listener will be notified whenever the corresponding source changes.
      Parameters:
      listener - The listener to remove; must not be null.