Package com.djrapitops.plan.extension
Interface ExtensionService
- All Known Implementing Classes:
ExtensionSvc
public interface ExtensionService
Interface for registering
DataExtension
s.
Obtaining instance:
- Obtain instance with getInstance()
.
- Make sure to catch a possible NoClassDefFoundError in case Plan is not installed
- Catch IllegalStateException in case ExtensionService is not enabled
Registering DataExtension
:
- Register your DataExtension
with register(DataExtension)
- Catch a possible IllegalArgumentException in case the DataExtension implementation is invalid.
-
Nested Class Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic ExtensionService
Obtain instance of ExtensionService.newExtensionDataBuilder
(DataExtension extension) Obtain a newExtensionDataBuilder
, it is recommended to useDataExtension.newExtensionDataBuilder()
.register
(DataExtension extension) Register yourDataExtension
implementation.void
unregister
(DataExtension extension) Unregister yourDataExtension
implementation.
-
Method Details
-
getInstance
Obtain instance of ExtensionService.- Returns:
- ExtensionService implementation.
- Throws:
NoClassDefFoundError
- If Plan is not installed and this class can not be found or if older Plan version is installed.IllegalStateException
- If Plan is installed, but not enabled.
-
register
Register yourDataExtension
implementation.You can use
ExtensionExtractor.validateAnnotations()
in your Unit Tests to prevent IllegalArgumentExceptions here at runtime.- Parameters:
extension
- Your DataExtension implementation, seeDataExtension
for requirements.- Returns:
- Optional
Caller
that can be used to call for data update in Plan database manually - If the Optional is not present the user has disabled the extension in Plan config. - Throws:
IllegalArgumentException
- If an implementation violation is found.
-
newExtensionDataBuilder
Obtain a newExtensionDataBuilder
, it is recommended to useDataExtension.newExtensionDataBuilder()
.Requires Capability DATA_EXTENSION_BUILDER_API
- Parameters:
extension
- Extension for which this builder is.- Returns:
- a new builder.
-
unregister
Unregister yourDataExtension
implementation.This method should be used if calling methods on the DataExtension suddenly becomes unavailable, due to plugin disable for example.
- Parameters:
extension
- Your DataExtension implementation that was registered before.
-