Package: org.apache.groovy.plugin

## [Java] Class GroovyRunnerRegistry

- org.apache.groovy.plugin.GroovyRunnerRegistry

- All Implemented Interfaces and Traits:
    Map, Iterable

      public class GroovyRunnerRegistry
      extends Object

  Registry of services that implement the GroovyRunner interface.

  This registry makes use of the ServiceLoader facility. The preferred method for registering new GroovyRunner providers is to place them in a provider-configuration file in the resource directory `META-INF/services`. The preferred method for accessing the registered runners is by making use of the `Iterable` interface using an enhanced for-loop.

  For compatibility with previous versions, this registry implements the Map interface. All `null` keys and values will be ignored and no exception thrown, except where noted.

  By default the registry contains runners that are capable of running `JUnit 3` and `JUnit 4` test classes if those libraries are available to the class loader.

  Since:
    2.5.0

- - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `void` | `clear()` Clears all registered runners from the registry and resets the registry so that it contains only the default set of runners.
    `` | `boolean` | `containsKey(Object key)` Returns `true` if a runner was registered with the specified key.
    `` | `boolean` | `containsValue(Object runner)` Returns `true` if registry contains the given runner instance.
    `` | `Set<Entry<String, GroovyRunner>>` | `entrySet()` Returns a set of entries for registered runners.
    `` | `GroovyRunner` | `get(Object key)` Returns the registered runner for the specified key.
    `` | `static GroovyRunnerRegistry` | `getInstance()` Returns a reference to the one and only registry instance.
    `` | `boolean` | `isEmpty()` Returns `true` if the registry contains no runners, else `false`.
    `` | `Iterator<GroovyRunner>` | `iterator()` Returns an iterator for all runners that are registered.
    `` | `Set<String>` | `keySet()` Set of all keys associated with registered runners.
    `` | `void` | `load(ClassLoader classLoader)` Loads GroovyRunner instances using the ServiceLoader facility.
    `` | `GroovyRunner` | `put(String key, GroovyRunner runner)` Registers a runner with the specified key.
    `` | `void` | `putAll(Map<? extends String, ? extends GroovyRunner> m)` Adds all entries from the given Map to the registry.
    `` | `GroovyRunner` | `remove(Object key)` Removes a registered runner from the registry.
    `` | `int` | `size()` Returns the number of registered runners.
    `` | `String` | `toString()`
    `` | `Collection<GroovyRunner>` | `values()` Returns a collection of all registered runners.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### Method Detail

    - #### @Override public void clear()

      Clears all registered runners from the registry and resets the registry so that it contains only the default set of runners.

    - #### @Override public boolean containsKey(Object key)

      Returns `true` if a runner was registered with the specified key.

      Parameters:
        `key` - for the registered runner
      Returns:
        `true` if a runner was registered with given key

    - #### @Override public boolean containsValue(Object runner)

      Returns `true` if registry contains the given runner instance.

      Parameters:
        `runner` - instance of a GroovyRunner
      Returns:
        `true` if the given runner is registered

    - #### @Override public Set<Entry<String, GroovyRunner>> entrySet()

      Returns a set of entries for registered runners. This is a snapshot of the registry and any subsequent registry changes will not be reflected in the set.

      Returns:
        an unmodifiable set of registered runner entries

    - #### @Override public GroovyRunner get(Object key)

      Returns the registered runner for the specified key.

      Parameters:
        `key` - used to lookup the runner
      Returns:
        the runner registered with the given key

    - #### public static GroovyRunnerRegistry getInstance()

      Returns a reference to the one and only registry instance.

      Returns:
        registry instance

    - #### @Override public boolean isEmpty()

      Returns `true` if the registry contains no runners, else `false`.

      Returns:
        `true` if no runners are registered

    - #### @Override public Iterator<GroovyRunner> iterator()

      Returns an iterator for all runners that are registered. The returned iterator is a snapshot of the registry at the time the iterator is created. This iterator does not support removal.

      Returns:
        iterator for all registered runners

    - #### @Override public Set<String> keySet()

      Set of all keys associated with registered runners. This is a snapshot of the registry and any subsequent registry changes will not be reflected in the set.

      Returns:
        an unmodifiable set of keys for registered runners

    - #### public void load(ClassLoader classLoader)

      Loads GroovyRunner instances using the ServiceLoader facility.

      Parameters:
        `classLoader` - used to locate provider-configuration files and classes

    - #### @Override public GroovyRunner put(String key, GroovyRunner runner)

      Registers a runner with the specified key.

      Parameters:
        `key` - to associate with the runner
        `runner` - the runner to register
      Returns:
        the previously registered runner for the given key, if no runner was previously registered for the key then `null`

    - #### @Override public void putAll(Map<? extends String, ? extends GroovyRunner> m)

      Adds all entries from the given Map to the registry. Any entries in the provided Map that contain a `null` key or value will be ignored.

      throws:
        NullPointerException if the given Map is `null`
      Parameters:
        `m` - entries to add to the registry

    - #### @Override public GroovyRunner remove(Object key)

      Removes a registered runner from the registry.

      Parameters:
        `key` - of the runner to remove
      Returns:
        the runner instance that was removed, if no runner instance was removed then `null`

    - #### @Override public int size()

      Returns the number of registered runners.

      Returns:
        number of registered runners

    - #### @Override public String toString()

    - #### @Override public Collection<GroovyRunner> values()

      Returns a collection of all registered runners. This is a snapshot of the registry and any subsequent registry changes will not be reflected in the collection.

      Returns:
        an unmodifiable collection of registered runner instances