public static class ExtensionPoint.ClassMap<T> extends ExtensionPoint
ExtensionPoint.ClassMap<T>, ExtensionPoint.ClassSet<T>, ExtensionPoint.InstanceMap<K,V>, ExtensionPoint.SelectedType<T>| Modifier and Type | Field and Description |
|---|---|
protected java.lang.Class<T> |
extensionClass |
protected java.util.Map<java.lang.String,java.lang.Class<? extends T>> |
extensions |
name, singletons| Constructor and Description |
|---|
ClassMap(java.lang.String name,
java.lang.Class<T> extensionClass,
java.util.Set<java.lang.String> reservedKeys,
java.lang.Class<?>... singletons)
Creates a new
ExtensionPoint.ClassMap |
| Modifier and Type | Method and Description |
|---|---|
protected void |
bindExtensions(Binder binder)
Subclasses can bind their type, map or set extensions here.
|
java.lang.Class<? extends T> |
getExtension(java.lang.String type)
Returns the extension for the given key or
null |
void |
registerExtension(java.lang.String key,
java.lang.Class<? extends T> extension)
Registers an extension class for a given key.
|
bindprotected final java.lang.Class<T> extensionClass
protected final java.util.Map<java.lang.String,java.lang.Class<? extends T>> extensions
public ClassMap(java.lang.String name,
java.lang.Class<T> extensionClass,
java.util.Set<java.lang.String> reservedKeys,
java.lang.Class<?>... singletons)
ExtensionPoint.ClassMapname - the human readable underscore case name of the extension point. This is used in error messages etc.extensionClass - the base class that should be extendedsingletons - a list of singletons to bind with this extension point - these are bound in ExtensionPoint.bind(Binder)reservedKeys - a set of reserved keys by internal implementationspublic java.lang.Class<? extends T> getExtension(java.lang.String type)
nullpublic final void registerExtension(java.lang.String key,
java.lang.Class<? extends T> extension)
key - the extensions keyextension - the extensionjava.lang.IllegalArgumentException - iff the key is already registered or if the key is a reserved key for an internal implementationprotected final void bindExtensions(Binder binder)
ExtensionPointbindExtensions in class ExtensionPoint