Interface AbstractOperation

All Superinterfaces:
PluginDataContainer, UserAttributeContainer
All Known Subinterfaces:
Operation, StorageOperation

public interface AbstractOperation extends UserAttributeContainer, PluginDataContainer
This interface unifies the methods of an Operation 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 (Operation and StorageOperation) to this interface!

Author:
Ulrich Kreher
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Gets whether this operation inherits the execution control properties from its executable component description.
    Gets what classloader to use for the executable component of this operation.
    Gets a description for this operation for usage in the process model.
    Gets a description for the developer of the operation and the administrator of the activity model.
    Gets the interactions that the executable component of this operation supports for controlling its execution, that is whether the component responds to signals from the outside to suspend, reset or close the component.
    Gets the ID of the GUI context the executable component of this operation needs, for instance, an SWT or an AWT context.
    Gets the ID of the icon to use for process steps and worklist items for this operation.
    Gets the name of the class implementing ExecutableComponent for the physical counterpart of the component description of this operation.
    Gets the licence information for this operation.
    Gets the name of this operation (unique with respect to the ExecutableComponentDescription).
    Gets the parameter change policy for this operation, that is the supported interface changes for this operation (add, change and/or remove parameters).
    long
    Gets the (base) revision of this operation which allows to track changes.
    Gets the staff assignment rule that is proposed by the developer of the operation or the administrator of the activity model.
    Gets the current deployment state of this operation, that is whether it is currently modified, it can be used or it may not be used any more.
    byte[]
    Gets the signature in case the executable component of this operation is a privileged component and may access system services.
    boolean
    Gets whether this operation inherits the classloader usage from its executable component description.
    boolean
    Gets whether this operation inherits the developer description from its executable component description.
    boolean
    Gets whether this operation inherits the GUI context ID from its executable component description.
    boolean
    Gets whether this operation inherits the icon from its executable component description.
    boolean
    Gets whether this operation inherits the implementation class from its executable component description.
    boolean
    Gets whether this operation inherits the licence information from its executable component description.
    boolean
    Gets whether this operation inherits the system component signature from its executable component description.
    void
    Removes the classloader usage of this operation and inherits the value from the corresponding executable component description again.
    void
    Removes the developer description of this operation and inherits the value from the corresponding executable component description again.
    void
    Removes the execution control properties of this operation and inherits them from the corresponding executable component description again.
    void
    Removes the GUI context ID of this operation and inherits the value from the corresponding executable component description again.
    void
    Removes the icon of this operation and inherits the value from the corresponding executable component description again.
    void
    Removes the implementation class of this operation and inherits the value from the corresponding executable component description again.
    void
    Removes the licence information of this operation and inherits the value from the corresponding executable component description again.
    void
    Removes the system component signature of this operation and inherits the value from the corresponding executable component description again.
    void
    Sets what classloader to use for the executable component of this operation.
    void
    setDescription(String description)
    Sets a description for this operation for usage in the process model.
    void
    setDeveloperDescription(String developerDescription)
    Sets a description for the developer of the operation and the administrator of the activity model.
    void
    Sets the interactions that this operation supports for controlling its execution, that is whether the corresponding component responds to signals from the outside to suspend, reset or close the component.
    void
    setGUIContextID(String guiContextID)
    Sets the ID of the GUI context the executable component of this operation needs, for instance, an SWT or an AWT context; or GUIConstants.NULL_CONTEXT if no GUI context is required.
    void
    setIconID(UUID iconID)
    Sets the ID of the icon to use for process steps and worklist items for this operation.
    void
    setImplementationClass(String implementationClass)
    Sets the name of the class implementing ExecutableComponent for the physical counterpart of the component description of this operation.
    void
    setLicenceInformation(String licenceInformation)
    Sets the licence information for this operation.
    void
    Sets the name of this operation.
    void
    Sets the parameter change policy for this operation, that is the supported interface changes for this operation (add, change and/or remove parameters).
    void
    setStaffAssignmentRule(String staffAssignmentRule)
    Sets the staff assignment rule that is proposed by the developer of the operation or the administrator of the activity model.
    void
    setSupportsTestExecutionOnly(boolean supportsTestExecution)
    Sets whether this operation supports a test execution.
    void
    setSupportsViewOnly(boolean supportsViewOnly)
    Sets whether this operation supports a view only mode.
    void
    setSystemComponent(byte[] signature)
    Sets the signature for the executable component of this operation which allows privileged access to system services.
    boolean
    Gets whether this operation supports a test execution.
    boolean
    Gets whether this operation supports a view only mode.

    Methods inherited from interface de.aristaflow.adept2.model.common.PluginDataContainer

    getPluginData, getPluginDatas, getSupportedPlugins

    Methods inherited from interface de.aristaflow.adept2.model.common.UserAttributeContainer

    getUserAttributes, getUserAttributeValue, removeUserAttributeValue, setUserAttributeValue
  • Method Details

    • getName

      String getName()
      Gets the name of this operation (unique with respect to the ExecutableComponentDescription). This name is used in configurations that apply at runtime for operation-specific configurations. Therefore one may have configuration values for executable components as well as operations.
      Returns:
      The name of this operation (unique with respect to the ExecutableComponentDescription).
    • getDescription

      String getDescription()
      Gets a description for this operation for usage in the process model. This describes the operation and may be displayed in the worklist of the end-user.
      Returns:
      A description for this operation for usage in the process model that may be displayed in worklists.
    • getDeveloperDescription

      String getDeveloperDescription()
      Gets a description for the developer of the operation and the administrator of the activity model.

      This attribute overrides the corresponding parent attribute.

      Returns:
      A description for the developer of the operation 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 operation which allows to track changes. To modify an operation 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 operation having no released revision yet may change its name.

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

      State getState()
      Gets the current deployment state of this operation, 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 Operation 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 operation that implicitly also applies to all child entities.
    • getImplementationClass

      String getImplementationClass()
      Gets the name of the class implementing ExecutableComponent for the physical counterpart of the component description of this operation.
      An implementation class is not required for with the runtime service, therefore for such operations null may be exceptionally returned.

      This attribute overrides the corresponding parent attribute.

      Returns:
      The name of the class implementing ExecutableComponent for the physical counterpart of the component description of this operation which is instantiated and called at runtime. This may exceptionally be null for operations that are only to be executed with the runtime service.
    • 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.

      This attribute overrides the corresponding parent attribute.

      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 the executable component of this operation 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

      This attribute overrides the corresponding parent attribute.

      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 of this operation 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.

      This attribute overrides the corresponding parent attribute.

      Returns:
      The ID of the GUI context the executable component of this operation needs to render its graphical user interface to. This will be GUIConstants.NULL_CONTEXT if no GUI context is required.
    • getExecutionControlProperties

      ExecutionControlProperties getExecutionControlProperties()
      Gets the interactions that the executable component of this operation supports for controlling its execution, that is whether the component responds to signals from the outside to suspend, reset or close the component.

      This attribute overrides the corresponding parent attribute.

      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. If this is null, this operation inherits the execution control properties from its executable component description.
    • supportsViewOnly

      boolean supportsViewOnly()
      Gets whether this operation supports a view only mode. In this mode the operation is executed normally but all of its output parameters are provided very similar to input parameters. The operation should then just display its input and output values. This allows to reproduce the execution of an operation later and thus improves traceability of a process. Since the operation must not write output, this mode has to be explicitly supported.
      Returns:
      Whether this operation supports a view only mode to re-execute the operation only for displaying input data as well as the formerly written output data.
      See Also:
    • supportsTestExecution

      boolean supportsTestExecution()
      Gets whether this operation supports a test execution. If so, the operation will be able to run in a special test environment with a test configuration which does not have any critical side effects. The operation is provided a flag at runtime whether it is in test mode.
      Returns:
      Whether this operation supports a test mode without any critical side effects.
      See Also:
    • getIconID

      UUID getIconID()
      Gets the ID of the icon to use for process steps and worklist items for this operation. With the ID the corresponding item can be requested from an icon providing service in various sizes and formats.

      This attribute overrides the corresponding parent attribute.

      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 operation. This may specify legal stuff for using the corresponding component.

      This attribute overrides the corresponding parent attribute.

      Returns:
      The licence information for this operation or an empty string.
    • getParameterChangePolicy

      ParameterChangePolicy getParameterChangePolicy()
      Gets the parameter change policy for this operation, that is the supported interface changes for this operation (add, change and/or remove parameters). This change policy applies to all child entities of this operation. It also influences the parameter templates of this operation.
      Returns:
      The parameter change policy for this operation that specifies the supported interface changes for this operation.
    • getStaffAssignmentRule

      String getStaffAssignmentRule()
      Gets the staff assignment rule that is proposed by the developer of the operation or the administrator of the activity model. This simplifies usage of the operation in a process. However, the process modeler can deviate from this.
      An empty string will be returned if this is undefined.
      Returns:
      The staff assignment rule that is proposed by the developer of the operation or the administrator of the activity model or an empty string.
    • setName

      void setName(String name)
      Sets the name of this operation. This has to be unique with respect to the corresponding ExecutableComponentDescription. The name is used in configurations that apply at runtime for operation-specific configurations. Therefore one may have configuration values for executable components as well as operations.
      Due to its usage as identification for configurations, the name may only be changed for an operation that does not have a released revision yet. Changing this name propagates the change to all existing child entities (including configuration sets) since they reference this operation via its name.

      This must neither be null nor the empty string. The designated name must not exist for the executable component description.

      Parameters:
      name - The name of this operation (unique with respect to the ExecutableComponentDescription). This must neither be null nor the empty string.
    • setDescription

      void setDescription(String description)
      Sets a description for this operation for usage in the process model. This describes the operation and may be displayed in the worklist of the end-user.
      Parameters:
      description - A description for this operation for usage in the process model that may be displayed in worklists. Use the empty string to unset the description.
    • setDeveloperDescription

      void setDeveloperDescription(String developerDescription)
      Sets a description for the developer of the operation and the administrator of the activity model.

      This attribute overrides the corresponding parent attribute.

      Parameters:
      developerDescription - A description for the developer of the operation 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 (i.e. prevent it from being inherited) for this entity.
    • setImplementationClass

      void setImplementationClass(String implementationClass)
      Sets the name of the class implementing ExecutableComponent for the physical counterpart of the component description of this operation.

      This attribute overrides the corresponding parent attribute.

      Parameters:
      implementationClass - The name of the class implementing ExecutableComponent for the physical counterpart of the component description of this operation which is instantiated and called at runtime.
    • 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.

      This attribute overrides the corresponding parent attribute.

      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 of this operation which allows privileged access to system services.

      This attribute overrides the corresponding parent attribute. This is only allowed in case this operation provides an own implementation.

      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 of this operation needs, for instance, an SWT or an AWT context; or GUIConstants.NULL_CONTEXT if no GUI context is required.

      This attribute overrides the corresponding parent attribute. This is only allowed in case this operation provides an own implementation.

      Parameters:
      guiContextID - The ID of the GUI context the executable component of this operation needs to render its graphical user interface to. Use GUIConstants.NULL_CONTEXT in case no GUI context is needed.
    • setExecutionControlProperties

      void setExecutionControlProperties(ExecutionControlProperties ecp)
      Sets the interactions that this operation supports for controlling its execution, that is whether the corresponding component responds to signals from the outside to suspend, reset or close the component.

      This attribute overrides the corresponding parent attribute. Overriding will only be allowed to more restrictive properties, that is, suspending, reseting or closing may be prevented by overriding but not enabled if this operation does not specify an own implementation.

      Parameters:
      ecp - The interactions that the operation supports for controlling its execution, that is whether the component responds to signals from the outside to suspend, reset or close the component. Only more restrictive properties are allowed when overriding in case of an inherited implementation. Call removeOwnExecutionControlProperties() to inherit the properties from the parent entity.
    • setSupportsViewOnly

      void setSupportsViewOnly(boolean supportsViewOnly)
      Sets whether this operation supports a view only mode. In this mode the operation is executed normally but all of its output parameters are provided very similar to input parameters. The operation should then just display its input and output values. This allows to reproduce the execution of an operation later and thus improves traceability of a process. Since the operation must not write output, this mode has to be explicitly supported.
      Parameters:
      supportsViewOnly - Whether this operation supports a view only mode to re-execute the operation only for displaying input data as well as the formerly written output data.
      See Also:
    • setSupportsTestExecutionOnly

      void setSupportsTestExecutionOnly(boolean supportsTestExecution)
      Sets whether this operation supports a test execution. If so, the operation will be able to run in a special test environment with a test configuration which does not have any critical side effects. The operation is provided a flag at runtime whether it is in test mode.
      Parameters:
      supportsTestExecution - Whether this operation supports a test mode without any critical side effects.
      See Also:
    • setIconID

      void setIconID(UUID iconID)
      Sets the ID of the icon to use for process steps and worklist items for this operation. With the ID the corresponding item can be requested from an icon providing service in various sizes and formats.

      This attribute overrides the corresponding parent attribute.

      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. This must not be null since it is not allowed to remove the icon of the parent entity.
    • setLicenceInformation

      void setLicenceInformation(String licenceInformation)
      Sets the licence information for this operation.

      This attribute overrides the corresponding parent attribute.

      Parameters:
      licenceInformation - The licence information for this operation as arbitrary string or the empty string.
    • setParameterChangePolicy

      void setParameterChangePolicy(ParameterChangePolicy pcp)
      Sets the parameter change policy for this operation, that is the supported interface changes for this operation (add, change and/or remove parameters). However, the parameters of this operation may always be changed independent from this policy, that is the policy applies to the child entities. But it does apply to the parameter templates! If you cannot add templates in a child entity you will not need to define parameter templates at the corresponding parent entity.
      When setting the parameter change policy to a more restricted one, parameter templates may be removed (and inherited again). This depends on the implementation.

      The designated parameter change policy must not be null.

      Parameters:
      pcp - The parameter change policy for this operation that specifies the supported interface changes for this operation. This must not be null.
      The parameter change policy applies to the parameters of the child entities and the parameter templates of this operation.
    • setStaffAssignmentRule

      void setStaffAssignmentRule(String staffAssignmentRule)
      Sets the staff assignment rule that is proposed by the developer of the operation or the administrator of the activity model. This simplifies usage of the operation in a process. However, the process modeler can deviate from this.
      Use the empty string if this is undefined.
      Parameters:
      staffAssignmentRule - The staff assignment rule that is proposed by the developer of the operation or the administrator of the activity model or an empty string.
    • isDeveloperDescriptionInherited

      boolean isDeveloperDescriptionInherited()
      Gets whether this operation inherits the developer description from its executable component description. If it does not, it will override it with an own value.
      Returns:
      Whether this operation inherits the developer description from the corresponding executable component description or whether it overrides it with the value provided by getDeveloperDescription().
    • removeOwnDeveloperDescription

      void removeOwnDeveloperDescription()
      Removes the developer description of this operation and inherits the value from the corresponding executable component description again.
      Calling this method will have no effects if the developer description is already inherited.
    • isImplementationClassInherited

      boolean isImplementationClassInherited()
      Gets whether this operation inherits the implementation class from its executable component description. If it does not, it will override it with an own value.
      Returns:
      Whether this operation inherits the implementation class from the corresponding executable component description or whether it overrides it with the value provided by getImplementationClass().
    • removeOwnImplementationClass

      void removeOwnImplementationClass()
      Removes the implementation class of this operation and inherits the value from the corresponding executable component description again.
      Calling this method will have no effects if the implementation class is already inherited.
    • isClassLoaderUsageInherited

      boolean isClassLoaderUsageInherited()
      Gets whether this operation inherits the classloader usage from its executable component description. If it does not, it will override it with an own value.
      Returns:
      Whether this operation inherits the classloader usage from the corresponding executable component description or whether it overrides it with the value provided by getClassLoaderUsage().
    • removeOwnClassLoaderUsage

      void removeOwnClassLoaderUsage()
      Removes the classloader usage of this operation and inherits the value from the corresponding executable component description again.
      Calling this method will have no effects if the classloader usage is already inherited.
    • isSystemComponentInherited

      boolean isSystemComponentInherited()
      Gets whether this operation inherits the system component signature from its executable component description. If it does not, it will override it with an own value.
      Returns:
      Whether this operation inherits the system component signature from the corresponding executable component description or whether it overrides it with the value provided by getSystemComponent().
    • removeOwnSystemComponent

      void removeOwnSystemComponent()
      Removes the system component signature of this operation and inherits the value from the corresponding executable component description again.
      Calling this method will have no effects if the system component signature is already inherited.
    • isGUIContextIDInherited

      boolean isGUIContextIDInherited()
      Gets whether this operation inherits the GUI context ID from its executable component description. If it does not, it will override it with an own value.
      Returns:
      Whether this operation inherits the GUI context ID from the corresponding executable component description or whether it overrides it with the value provided by getGUIContextID().
    • removeOwnGUIContextID

      void removeOwnGUIContextID()
      Removes the GUI context ID of this operation and inherits the value from the corresponding executable component description again.
      Calling this method will have no effects if the GUI context ID is already inherited.
    • areExecutionControlPropertiesInterhited

      boolean areExecutionControlPropertiesInterhited()
      Gets whether this operation inherits the execution control properties from its executable component description. If it does not, it will override them with own values but only more restrictive ones.
      Returns:
      Whether this operation inherits the GUI context ID from the corresponding executable component description or whether it overrides it with the value provided by getGUIContextID().
    • removeOwnExecutionControlProperties

      void removeOwnExecutionControlProperties()
      Removes the execution control properties of this operation and inherits them from the corresponding executable component description again.
      Calling this method will have no effects if the execution control properties are already inherited.

      The execution control properties will also be removed from this operation.

    • isIconIDInherited

      boolean isIconIDInherited()
      Gets whether this operation inherits the icon from its executable component description. If it does not, it will override it with an own value.
      Returns:
      Whether this operation inherits the icon from the corresponding executable component description or whether it overrides it with the value provided by getIconID().
    • removeOwnIconID

      void removeOwnIconID()
      Removes the icon of this operation and inherits the value from the corresponding executable component description again.
      Calling this method will have no effects if the icon is already inherited.
    • isLicenceInformationInherited

      boolean isLicenceInformationInherited()
      Gets whether this operation inherits the licence information from its executable component description. If it does not, it will override it with an own value.
      Returns:
      Whether this operation inherits the licence information from the corresponding executable component description or whether it overrides it with the value provided by getLicenceInformation().
    • removeOwnLicenceInformation

      void removeOwnLicenceInformation()
      Removes the licence information of this operation and inherits the value from the corresponding executable component description again.
      Calling this method will have no effects if the licence information is already inherited.