Interface ExtensionService


  • public interface ExtensionService
    Interface for registering DataExtensions.

    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.

    • Method Detail

      • getInstance

        static ExtensionService getInstance()
        Obtain instance of ExtensionService.
        Returns:
        ExtensionService implementation.
        Throws:
        java.lang.NoClassDefFoundError - If Plan is not installed and this class can not be found or if older Plan version is installed.
        java.lang.IllegalStateException - If Plan is installed, but not enabled.
      • register

        java.util.Optional<Caller> register​(DataExtension extension)
        Register your DataExtension implementation.

        You can use ExtensionExtractor.validateAnnotations() in your Unit Tests to prevent IllegalArgumentExceptions here at runtime.

        Parameters:
        extension - Your DataExtension implementation, see DataExtension 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:
        java.lang.IllegalArgumentException - If an implementation violation is found.
      • unregister

        void unregister​(DataExtension extension)
        Unregister your DataExtension 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.