Class AbstractClientModuleHook

java.lang.Object
com.inductiveautomation.vision.api.client.AbstractClientModuleHook
All Implemented Interfaces:
ClientModuleHook
Direct Known Subclasses:
AbstractClientModuleHook, ModuleHook, ReportingClientHook, SFCClientHook

public abstract class AbstractClientModuleHook extends Object implements ClientModuleHook
Base class for all client module hook implementations. All methods are given empty implementations. It is expected that subclasses will override any methods that they wish to give real implementations.

Best practice is to subclass this class rather than implement ClientModuleHook directly, so that when new methods get added to the interface, your module automatically inherits an empty implementation of the new method rather than breaking with a NoSuchMethodError.

  • Constructor Details

    • AbstractClientModuleHook

      public AbstractClientModuleHook()
  • Method Details

    • startup

      public void startup(ClientContext context, LicenseState activationState) throws Exception
      Description copied from interface: ClientModuleHook
      The main entrypoint for the module hook. This will only be called once for a given project. If another project is ever opened, ClientModuleHook.shutdown() will be called and a new hook will be instantiated
      Specified by:
      startup in interface ClientModuleHook
      Parameters:
      context - The client context for the module.
      activationState - The current license state for the module.
      Throws:
      Exception - if the module was not able to be initialized for the given project.
    • shutdown

      public void shutdown()
      Description copied from interface: ClientModuleHook
      Called when the module is shut down.
      Specified by:
      shutdown in interface ClientModuleHook
    • configureDeserializer

      public void configureDeserializer(XMLDeserializer deserializer)
      Description copied from interface: ClientModuleHook
      Called when an XMLDeserializer is created. Gives the module a chance to add custom deserialization delegates to the deserializer.
      Specified by:
      configureDeserializer in interface ClientModuleHook
      Parameters:
      deserializer - The XML deserializer to configure.
    • notifyActivationStateChanged

      public void notifyActivationStateChanged(LicenseState licenseState)
      Description copied from interface: ClientModuleHook
      Notifies this client module that its license state has changed. Note that if the trial mode expires, the entire client will automatically time out, so client modules don't typically need to worry about trial mode.
      Specified by:
      notifyActivationStateChanged in interface ClientModuleHook
      Parameters:
      licenseState - The new license state.
    • initializeScriptManager

      public void initializeScriptManager(ScriptManager manager)
      Description copied from interface: ClientModuleHook
      Initialize a newly-instantiated script manager. This will be called exactly once for any given ScriptManager instance. Usually this will involve calling ScriptManager.addScriptModule(String, Object), which reflectively loads the public (instance and static) java functions from the given object into the scripting environment, at the provided path.
      Specified by:
      initializeScriptManager in interface ClientModuleHook
      Parameters:
      manager - The script manager to initialize.
    • configureFunctionFactory

      public void configureFunctionFactory(ExpressionFunctionManager factory)
      Description copied from interface: ClientModuleHook
      Provides the module with an opportunity to define its own expression functions
      Specified by:
      configureFunctionFactory in interface ClientModuleHook
      Parameters:
      factory - The expression function manager to configure.
    • createPermissionKeys

      public Map<String,String> createPermissionKeys()
      Description copied from interface: ClientModuleHook
      Allows a module to create one or more id-bundlekey pairs that the module will use for role-based client security.
      Specified by:
      createPermissionKeys in interface ClientModuleHook
      Returns:
      Map of id-bundlekey entries. May be null or empty.