jetbrains.buildServer
Interface ExtensionHolder

All Superinterfaces:
ServiceLocator
All Known Subinterfaces:
SBuildServer, ServerExtensionHolder

public interface ExtensionHolder
extends ServiceLocator


Nested Class Summary
static interface ExtensionHolder.ExtensionAction<T extends TeamCityExtension>
           
 
Method Summary
<T extends TeamCityExtension>
void
foreachExtension(java.lang.Class<T> agentExtensionClass, ExtensionHolder.ExtensionAction<T> action)
          Iterates over extensions of some class and executes some action on them.
<T extends TeamCityExtension>
T
getExtension(java.lang.Class<T> extensionClass, java.lang.String sourceId)
          Retrieves extension registered with specified type and id
<T extends TeamCityExtension>
java.util.Collection<T>
getExtensions(java.lang.Class<T> extensionClass)
          Get list of extensions for some extension point
<T extends TeamCityExtension>
java.util.Collection<java.lang.String>
getExtensionSources(java.lang.Class<T> extensionClass)
          Returns identifiers of the extensions of specified type
<T extends TeamCityExtension>
void
registerExtension(java.lang.Class<T> extensionClass, java.lang.String sourceId, T extension)
          Register an extension for some extension point.
<T extends TeamCityExtension>
void
unregisterExtension(java.lang.Class<T> extensionClass, java.lang.String sourceId)
          Register an extension with given parameters registered for some extension point.
 
Methods inherited from interface jetbrains.buildServer.ServiceLocator
findSingletonService, getServices, getSingletonService
 

Method Detail

registerExtension

<T extends TeamCityExtension> void registerExtension(@NotNull
                                                     java.lang.Class<T> extensionClass,
                                                     @NonNls@NotNull
                                                     java.lang.String sourceId,
                                                     @NotNull
                                                     T extension)
Register an extension for some extension point.

Parameters:
extensionClass - class of the extension, which defines the extension point type
sourceId - a unique Id for the given extension for given extension point
extension - extension itself, implementation of the interface 'extensionClass'

unregisterExtension

<T extends TeamCityExtension> void unregisterExtension(@NotNull
                                                       java.lang.Class<T> extensionClass,
                                                       @NonNls@NotNull
                                                       java.lang.String sourceId)
Register an extension with given parameters registered for some extension point.

Parameters:
extensionClass - class of the extension, which defines the extension point type
sourceId - a unique Id for the given extension for given extension point

getExtensions

<T extends TeamCityExtension> java.util.Collection<T> getExtensions(@NotNull
                                                                    java.lang.Class<T> extensionClass)
Get list of extensions for some extension point

Parameters:
extensionClass - class of the extension, which defines the extension point type
Returns:
list of extensions for specified extension point
See Also:
registerExtension(java.lang.Class, java.lang.String, T)

getExtensionSources

<T extends TeamCityExtension> java.util.Collection<java.lang.String> getExtensionSources(@NotNull
                                                                                         java.lang.Class<T> extensionClass)
Returns identifiers of the extensions of specified type

Parameters:
extensionClass - type of the extension
Returns:
identifiers

getExtension

@Nullable
<T extends TeamCityExtension> T getExtension(@NotNull
                                                      java.lang.Class<T> extensionClass,
                                                      @NotNull
                                                      java.lang.String sourceId)
Retrieves extension registered with specified type and id

Parameters:
extensionClass - extension type
sourceId - id
Returns:
extension or null

foreachExtension

<T extends TeamCityExtension> void foreachExtension(@NotNull
                                                    java.lang.Class<T> agentExtensionClass,
                                                    @NotNull
                                                    ExtensionHolder.ExtensionAction<T> action)
Iterates over extensions of some class and executes some action on them.

Parameters:
agentExtensionClass - extension class
action - action to execute