Interface AbstractExecutableComponentDescription
-
- All Superinterfaces:
PluginDataContainer
,UserAttributeContainer
- All Known Subinterfaces:
ExecutableComponentDescription
,StorageExecutableComponentDescription
public interface AbstractExecutableComponentDescription extends UserAttributeContainer, PluginDataContainer
This interface unifies the methods of anExecutableComponentDescription
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
andStorageExecutableComponentDescription
) to this interface!- Author:
- Ulrich Kreher
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description ClassLoaderUsage
getClassLoaderUsage()
Gets what classloader to use for the executable component of this operation.List<String>
getClassPath()
Gets the classpath to be used when instantiating theimplementation class
for this executable component as well as all classes needed to execute all of its methods.String
getDeveloperDescription()
Gets a description for the developer of the component and the administrator of the activity model.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.String
getGUIContextID()
Gets the ID of the GUI context the executable component needs, for instance, an SWT or an AWT context.UUID
getIconID()
Gets the ID of the icon to use for process steps and worklist items of the underlying executable component.String
getImplementationClass()
Gets the name of the class implementingExecutableComponent
for the physical counterpart of this component description.String
getLicenceInformation()
Gets the licence information for this executable component.String
getName()
Gets the system-wide unique name of thisExecutableComponentDescription
.long
getRevision()
Gets the (base) revision of this executable component description which allows to track changes.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.byte[]
getSystemComponent()
Gets the signature in case this executable component is a privileged component and may access system services.void
setClassLoaderUsage(ClassLoaderUsage classLoaderUsage)
Sets what classloader to use for the executable component of this operation.void
setClassPath(List<String> classPath)
Sets the classpath to be used when instantiating and executing theimplementation class
for this executable component.void
setDeveloperDescription(String developerDescription)
Sets a description for the developer of the component and the administrator of the activity model.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.void
setGUIContextID(String guiContextID)
Sets the ID of the GUI context the executable component needs, for instance, an SWT or an AWT context; orGUIConstants.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 of the underlying executable component.void
setImplementationClass(String implementationClass)
Sets the name of the class implementingExecutableComponent
for the physical counterpart of this component description.void
setLicenceInformation(String licenceInformation)
Sets the licence information for this executable component.void
setName(String name)
Sets the system-wide unique name of this executable component description.void
setSystemComponent(byte[] signature)
Sets the signature for the executable component which allows privileged access to system services.-
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 Detail
-
getName
String getName()
Gets the system-wide unique name of thisExecutableComponentDescription
. 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 newExecutableComponentDescription
.- 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, itsstate
is set toIN_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 outdatedExecutableComponentDescription
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 implementingExecutableComponent
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 theclasspath
.
An implementation class is not required for with the runtime service, therefore for such ECDsnull
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 benull
for ECDs that are only to be executed with the runtime service.
-
getClassPath
List<String> getClassPath()
Gets the classpath to be used when instantiating theimplementation 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 thecode 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 classloadergetClassPath()
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 implementingExecutableComponent
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 theclasspath
.- Parameters:
implementationClass
- The name of the class implementingExecutableComponent
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 theimplementation 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 thecode 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 classloadergetClassPath()
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 ornull
.- Parameters:
signature
- A signature to verify the component to prevent harmful components from system access. Usenull
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; orGUIConstants.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 orGUIConstants.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. Usenull
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.
-
-