Package org.apache.groovy.plugin
Class GroovyRunnerRegistry
java.lang.Object
org.apache.groovy.plugin.GroovyRunnerRegistry
- All Implemented Interfaces:
Iterable<GroovyRunner>,Map<String,GroovyRunner>
public class GroovyRunnerRegistry
extends Object
implements Map<String,GroovyRunner>, Iterable<GroovyRunner>
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
-
Nested Class Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoidclear()Clears all registered runners from the registry and resets the registry so that it contains only the default set of runners.booleancontainsKey(Object key) Returnstrueif a runner was registered with the specified key.booleancontainsValue(Object runner) Returnstrueif registry contains the given runner instance.entrySet()Returns a set of entries for registered runners.Returns the registered runner for the specified key.static GroovyRunnerRegistryReturns a reference to the one and only registry instance.booleanisEmpty()Returnstrueif the registry contains no runners, elsefalse.iterator()Returns an iterator for all runners that are registered.keySet()Set of all keys associated with registered runners.voidload(ClassLoader classLoader) LoadsGroovyRunnerinstances using theServiceLoaderfacility.put(String key, GroovyRunner runner) Registers a runner with the specified key.voidputAll(Map<? extends String, ? extends GroovyRunner> m) Adds all entries from the given Map to the registry.Removes a registered runner from the registry.intsize()Returns the number of registered runners.toString()values()Returns a collection of all registered runners.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliteratorMethods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
-
Method Details
-
getInstance
Returns a reference to the one and only registry instance.- Returns:
- registry instance
-
load
LoadsGroovyRunnerinstances using theServiceLoaderfacility.- Parameters:
classLoader- used to locate provider-configuration files and classes
-
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.- Specified by:
iteratorin interfaceIterable<GroovyRunner>- Returns:
- iterator for all registered runners
-
size
public int size()Returns the number of registered runners.- Specified by:
sizein interfaceMap<String,GroovyRunner> - Returns:
- number of registered runners
-
isEmpty
public boolean isEmpty()Returnstrueif the registry contains no runners, elsefalse.- Specified by:
isEmptyin interfaceMap<String,GroovyRunner> - Returns:
trueif no runners are registered
-
containsKey
Returnstrueif a runner was registered with the specified key.- Specified by:
containsKeyin interfaceMap<String,GroovyRunner> - Parameters:
key- for the registered runner- Returns:
trueif a runner was registered with given key
-
containsValue
Returnstrueif registry contains the given runner instance.- Specified by:
containsValuein interfaceMap<String,GroovyRunner> - Parameters:
runner- instance of a GroovyRunner- Returns:
trueif the given runner is registered
-
get
Returns the registered runner for the specified key.- Specified by:
getin interfaceMap<String,GroovyRunner> - Parameters:
key- used to look up the runner- Returns:
- the runner registered with the given key
-
put
Registers a runner with the specified key.- Specified by:
putin interfaceMap<String,GroovyRunner> - Parameters:
key- to associate with the runnerrunner- the runner to register- Returns:
- the previously registered runner for the given key,
if no runner was previously registered for the key
then
null
-
remove
Removes a registered runner from the registry.- Specified by:
removein interfaceMap<String,GroovyRunner> - Parameters:
key- of the runner to remove- Returns:
- the runner instance that was removed, if no runner
instance was removed then
null
-
putAll
Adds all entries from the given Map to the registry. Any entries in the provided Map that contain anullkey or value will be ignored.- Specified by:
putAllin interfaceMap<String,GroovyRunner> - Parameters:
m- entries to add to the registry- Throws:
NullPointerException- if the given Map isnull
-
clear
public void clear()Clears all registered runners from the registry and resets the registry so that it contains only the default set of runners.- Specified by:
clearin interfaceMap<String,GroovyRunner>
-
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.- Specified by:
keySetin interfaceMap<String,GroovyRunner> - Returns:
- an unmodifiable set of keys for registered runners
-
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.- Specified by:
valuesin interfaceMap<String,GroovyRunner> - Returns:
- an unmodifiable collection of registered runner instances
-
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.- Specified by:
entrySetin interfaceMap<String,GroovyRunner> - Returns:
- an unmodifiable set of registered runner entries
-
toString
-