org.sonar.api
Class ExtensionProvider
java.lang.Object
org.sonar.api.ExtensionProvider
- All Implemented Interfaces:
- Extension
public abstract class ExtensionProvider
- extends Object
- implements Extension
Factory of extensions. It allows to dynamically create extensions depending upon runtime context. A use-case is
to create one rule repository by language.
Notes :
- the provider is declared in Plugin.getExtensions()
- the provider must also implement ServerExtension and/or BatchExtension
- the provider can accept dependencies (parameters) in its constructors.
- the method provide() is executed once by sonar
- the method provide() must return an object, a class or an Iterable of objects. Arrays are excluded.
Example:
public class RuleRepositoryProvider extends ExtensionProvider implements ServerExtension {
private Language[] languages;
public RuleRepositoryProvider(Language[] languages) {
this.languages = languages;
}
public List provide() {
List result = new ArrayList();
for(Language language: languages) {
result.add(new RuleRepository(..., language, ...));
}
return result;
}
}
- Since:
- 2.3
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ExtensionProvider
public ExtensionProvider()
provide
public abstract Object provide()
Copyright © 2009-2012 SonarSource. All Rights Reserved.