Interface AbstractExecutableComponentDescription

All Superinterfaces:
PluginDataContainer, UserAttributeContainer
All Known Subinterfaces:
ExecutableComponentDescription, StorageExecutableComponentDescription

public interface AbstractExecutableComponentDescription extends UserAttributeContainer, PluginDataContainer
This interface unifies the methods of an ExecutableComponentDescription used with inheritance (in the GUI) as well as for storage.

This interface is not for public usage! It is only public due to a bug in the javadoc-generation. Never cast one of the sub-interfaces (ExecutableComponentDescription and StorageExecutableComponentDescription) to this interface!

Author:
Ulrich Kreher
  • Method Details

    • getName

      String getName()
      Gets the system-wide unique name of this ExecutableComponentDescription. This name identifies also child entities and configuration entries in the global configuration and configurations for the runtime manager.

      This name also carries information on the version of the executable component. As long as major versions have the same configuration this name can remain static. It needs to be changed as soon as configurations become incompatible. Since the name cannot be changed except for the initial revision IN_DEVELOPMENT one needs to create a new ExecutableComponentDescription.

      Returns:
      The system-wide unique name of this ExecutableComponentDescription that identifies the branch of activity model entities as well as the configurations that apply at runtime for these entities.
    • getDeveloperDescription

      String getDeveloperDescription()
      Gets a description for the developer of the component and the administrator of the activity model. This description is not propagated to the process and is only part of the activity model.
      Returns:
      A description for the developer of the component and the administrator of the activity model. This description is not propagated to the process and is only part of the activity model.
    • getRevision

      long getRevision()
      Gets the (base) revision of this executable component description which allows to track changes. To modify an executable component description it needs to be in a development branch. As soon as it is changed, its state is set to IN_DEVELOPMENT but the revision remains until the branch is released.

      Only an executable component description having no released revision yet may change its name.

      Returns:
      The revision of this executable component description or the revision which it is based upon.
    • getState

      State getState()
      Gets the current deployment state of this executable component description, that is whether it is currently modified, it can be used or it may not be used any more. This state also applies to all child entities. An outdated ExecutableComponentDescription implicitly also sets all of its child entities to outdated. However, the state is not directly propagated to child entities. Rather before using an entity all of its parent entities have to be checked for their state.
      Returns:
      The current deployment state of this component description that implicitly also applies to all child entities.
    • getImplementationClass

      String getImplementationClass()
      Gets the name of the class implementing ExecutableComponent for the physical counterpart of this component description. This class is instantiated and called at runtime and therefore has to be available at the corresponding runtime manager. It is a valid class name, the class should be part of the classpath.
      An implementation class is not required for with the runtime service, therefore for such ECDs null may be exceptionally returned.
      Returns:
      The name of the class implementing ExecutableComponent for the physical counterpart of this component description which is instantiated and called at runtime. This may exceptionally be null for ECDs that are only to be executed with the runtime service.
    • getClassPath

      List<String> getClassPath()
      Gets the classpath to be used when instantiating the implementation class for this executable component as well as all classes needed to execute all of its methods.
      The classpath is ordered, prior entries are searched before subsequent entries. The usual classpaths (directories, jar-files, URLs) as well as references to the code manager are supported.
      Returns:
      A list of entries for the classpath to search for classes used at runtime. The order is important: Prior entries are used first.
    • getClassLoaderUsage

      ClassLoaderUsage getClassLoaderUsage()
      Gets what classloader to use for the executable component of this operation. This may be a specific classloader for each execution, a shared classloader for all executions of the very same executable component on the same runtime manager and the classloader of the AristaFlow platform.
      When using the AristaFlow platform classloader getClassPath() will be ignored. That is, the activity may not have additional classpaths; all classes need to be available in the platform classloader.
      Returns:
      What classloader to use for executable component of this operation; one for each execution, shared for all executions of the same activity or the classloader of the AristaFlow platform.
    • getSystemComponent

      byte[] getSystemComponent()
      Gets the signature in case this executable component is a privileged component and may access system services. Such an executable component receives a registry in the constructor and may use this to retrieve the needed services.
      The system component signature allows to verify the component. Null indicates a non-system component
      Returns:
      A signature to verify the component to prevent harmful components from system access or null for non-system components..
    • getGUIContextID

      String getGUIContextID()
      Gets the ID of the GUI context the executable component needs, for instance, an SWT or an AWT context. This is provided at runtime and allows the component to render its graphical user interface to.
      Returns:
      The ID of the GUI context the executable component needs to render its graphical user interface to. This may be the empty string.
      See Also:
    • getExecutionControlProperties

      ExecutionControlProperties getExecutionControlProperties()
      Gets the interactions that the executable component supports for controlling its execution, that is whether the component responds to signals from the outside to suspend, reset or close the component.
      Returns:
      The interactions that the executable component supports for controlling its execution, that is whether the component responds to signals from the outside to suspend, reset or close the component.
    • getIconID

      UUID getIconID()
      Gets the ID of the icon to use for process steps and worklist items of the underlying executable component. With the ID the corresponding item can be requested from an icon providing service in various sizes and formats.
      Returns:
      The ID of the icon to use for process steps and worklist items; the corresponding icon may be retrieved in various sizes and formats. This may be null if no icon is specified.
    • getLicenceInformation

      String getLicenceInformation()
      Gets the licence information for this executable component. This may specify legal stuff for using the component.
      Returns:
      The licence information for this executable component or an empty string.
    • setName

      void setName(String name)
      Sets the system-wide unique name of this executable component description. Since this name also carries information on the version of the executable component, choose it with care. It cannot be changed after at least one revision of this executable component description has been released. Therefore if a new version of the physical component has an incompatible configuration, a new executable component description will have to be created instead of just a new revision.

      Note that changing the name for an executable component description having no released revision yet propagates the change to all existing child entities since they reference this component description via its name.

      Parameters:
      name - The name of this system-wide unique name of this executable component description that identifies the branch of activity model entities as well as the configurations that apply at runtime for these entities.
    • setDeveloperDescription

      void setDeveloperDescription(String developerDescription)
      Sets a description for the developer of the component and the administrator of the activity model. This description is not propagated to the process and is only part of the activity model.
      Parameters:
      developerDescription - A description for the developer of the component and the administrator of the activity model. This description is not propagated to the process and is only part of the activity model. Use the empty string to unset the developer description.
    • setImplementationClass

      void setImplementationClass(String implementationClass)
      Sets the name of the class implementing ExecutableComponent for the physical counterpart of this component description. This class is instantiated and called at runtime and therefore has to be available at the corresponding runtime manager. It has to be a valid class name, the class should be part of the classpath.
      Parameters:
      implementationClass - The name of the class implementing ExecutableComponent for the physical counterpart of this component description which is instantiated and called at runtime.
    • setClassPath

      void setClassPath(List<String> classPath)
      Sets the classpath to be used when instantiating and executing the implementation class for this executable component.
      The classpath is ordered, prior entries are searched before subsequent entries. The usual classpaths (directories, jar-files, URLs) as well as references to the code manager are supported.
      Parameters:
      classPath - A list of entries for the classpath to search for classes used at runtime. The order is important: Prior entries are used first.
    • setClassLoaderUsage

      void setClassLoaderUsage(ClassLoaderUsage classLoaderUsage)
      Sets what classloader to use for the executable component of this operation. This may be a specific classloader for each execution, a shared classloader for all executions of the very same executable component on the same runtime manager and the classloader of the AristaFlow platform.
      When using the AristaFlow platform classloader getClassPath() will be ignored. That is, the activity may not have additional classpaths; all classes need to be available in the platform classloader.
      Parameters:
      classLoaderUsage - What classloader to use for executable component of this operation; one for each execution, shared for all executions of the same activity or the classloader of the AristaFlow platform.
    • setSystemComponent

      void setSystemComponent(byte[] signature)
      Sets the signature for the executable component which allows privileged access to system services.
      The signature has to be appropriate for the component or null.
      Parameters:
      signature - A signature to verify the component to prevent harmful components from system access. Use null for a non-system component. An empty array is not allowed.
    • setGUIContextID

      void setGUIContextID(String guiContextID)
      Sets the ID of the GUI context the executable component needs, for instance, an SWT or an AWT context; or GUIConstants.NULL_CONTEXT if no GUI context is required. This is provided at runtime and allows the component to render its graphical user interface to.
      Parameters:
      guiContextID - The ID of the GUI context the executable component needs to render its graphical user interface to or GUIConstants.NULL_CONTEXT if no GUI context is required.
      See Also:
    • setExecutionControlProperties

      void setExecutionControlProperties(ExecutionControlProperties ecp)
      Sets the interactions that the executable component supports for controlling its execution, that is whether the component responds to signals from the outside to suspend, reset or close the component.
      This must not be null.
      Parameters:
      ecp - The interactions that the executable component supports for controlling its execution, that is whether the component responds to signals from the outside to suspend, reset or close the component.
    • setIconID

      void setIconID(UUID iconID)
      Sets the ID of the icon to use for process steps and worklist items of the underlying executable component. With the ID the corresponding item can be requested from an icon providing service in various sizes and formats.
      Parameters:
      iconID - The ID of the icon to use for process steps and worklist items; the corresponding icon may be retrieved in various sizes and formats. Use null for no icon.
    • setLicenceInformation

      void setLicenceInformation(String licenceInformation)
      Sets the licence information for this executable component. The designated string may be arbitrary.
      Parameters:
      licenceInformation - The licence information for this executable component as arbitrary string or the empty string.