public abstract class AbstractExtendable<T> extends Object implements Extendable<T>
Constructor and Description |
---|
AbstractExtendable() |
Modifier and Type | Method and Description |
---|---|
<E extends Extension<T>> |
addExtension(Class<? super E> type,
E extension)
Add en extension to this extendable object.
|
<E extends Extension<T>> |
getExtension(Class<? super E> type)
Get an extension based on its class type.
|
<E extends Extension<T>> |
getExtensionByName(String name)
Get an extension based on its name.
|
Collection<Extension<T>> |
getExtensions()
Get all extensions associated with this extendable object..
|
<E extends Extension<T>,B extends ExtensionAdder<T,E>> |
newExtension(Class<B> type)
Returns an extensionAdder to build and add an extension for this extendable.
|
<E extends Extension<T>> |
removeExtension(Class<E> type)
Remove an extension based on its class type.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getImplementationName
public <E extends Extension<T>> void addExtension(Class<? super E> type, E extension)
Extendable
addExtension
in interface Extendable<T>
E
- the extension typetype
- the extension class typeextension
- the extensionpublic <E extends Extension<T>> E getExtension(Class<? super E> type)
Extendable
getExtension
in interface Extendable<T>
E
- the extension typetype
- the extension class typepublic <E extends Extension<T>> E getExtensionByName(String name)
Extendable
getExtensionByName
in interface Extendable<T>
name
- the extension namepublic <E extends Extension<T>> boolean removeExtension(Class<E> type)
Extendable
removeExtension
in interface Extendable<T>
E
- the extension typetype
- the extension class typepublic Collection<Extension<T>> getExtensions()
Extendable
getExtensions
in interface Extendable<T>
public <E extends Extension<T>,B extends ExtensionAdder<T,E>> B newExtension(Class<B> type)
Extendable
Extendable.getImplementationName()
of this extendable to the
ExtensionAdderProvider.getImplementationName()
of a provider.
Implementations are loaded with java's ServiceLoader
using
the ExtensionAdderProvider interface.newExtension
in interface Extendable<T>
type
- The interface of the ExtensionAdderCopyright © 2020. All rights reserved.