Interface AbstractExecutableComponentDescription

    • Method Detail

      • 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:
        GUIConstants
      • 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:
        GUIConstants
      • 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.