Interface StorageOperation

  • All Superinterfaces:
    AbstractOperation, PluginDataContainer, UserAttributeContainer

    public interface StorageOperation
    extends AbstractOperation
    This interface provides the means to store an Operation which is supported by not inheriting any attributes from a parent parameter (in contrast to the interface Operation. Only the information on whether an attribute is to be inherited is available but not the value itself since this is not needed for storing. This applies to all methods of this interface, irrespective of the documentation of the methods.
    Author:
    Ulrich Kreher
    See Also:
    Operation
    • Method Detail

      • getExecutableComponentName

        String getExecutableComponentName()
        Gets the ExecutableComponentDescription this operation belongs to.
        Returns:
        The ExecutableComponentDescription this operation belongs to.
      • getClassPath

        List<String> getClassPath()
        Gets the part of the classpath that is added by this operation to the one of the parent attribute. In case this operation does not supplement the classpath this will be an empty list.
        Returns:
        The part of the classpath that is contributed by this operation. This is appended to the classpath of the parent entity and thus forms the complete classpath.
      • getConfigurationDescription

        StorageConfigurationDescription getConfigurationDescription()
        Gets the configuration description for this operation. This may change the configuration description of the corresponding executable component description or add new entries. Note that removal of an inherited entry is not possible and has to be simulated by providing a null value as configuration value.

        This attribute overrides and merges with the corresponding parent attribute. That is, the attribute contains only entries that are changed with respect to the ones of the parent attribute whereas the entries are identified by their name.

        Returns:
        The description for all configuration values of this operation, that is, the name of the configuration entries, their type and whether they are mandatory.
      • getConfiguration

        StorageActivityConfiguration getConfiguration()
        Gets the configuration of this operation that corresponds to the (merged) configuration description of this operation. These configuration values are provided as defaults for this operation. They may be overridden in child entities (unless fixed) and not all configuration values need to be provided yet. Configuration values may also be provided via an input parameter (which has to exist for this operation then) or from a process configuration (which is needed when modelling).
        Returns:
        The configuration values set for this operation based on the configuration description. This does not necessarily contain all values since they can still be set when modelling. It may also contain more in case it provides values for the configuration description of a parent entity.
      • getTestConfiguration

        StorageActivityConfiguration getTestConfiguration()
        Gets the test configuration of this operation that corresponds to the configuration description of this operation. These configuration values only apply when the operation is executed in test mode, that is the operation is provided this configuration instead of the normal configuration.

        This test configuration overrides and merges with the normal configuration (at runtime). That is, the attribute contains only entries that are changed with respect to the normal configuration as well as the configurations (test and normal) of the parent entities whereas the entries are identified by their name. Note that the test configuration allows to override fixed values of the normal configuration.

        Returns:
        The additional and modified configuration values set for the test mode of this operation based on the configuration description.
      • getParameters

        Map<String,​StorageActivityModelParameter> getParameters​(ActivityConstants.AccessType accessType)
        Gets the parameters of the designated access type of this operation. These make up the interface of the operation. The returned map allows for easy storage of the parameters; it maps from parameter name to the corresponding object.
        Parameters are identified by the access type, for instance input or output parameter, and their name.

        The parameters need not be based on parameter templates of this operation or the corresponding executable component description.

        Parameters:
        accessType - The access type of the parameters to be retrieved (only values in ActivityConstants.AccessType.activityRelatedValues() are allowed).
        Returns:
        The parameters of this operation for the designated access type (mapped from parameter name to the corresponding parameter). If this operation does not have parameters of the designated type or they are not defined yet (since they may be added later), an empty map will be returned.
      • getParameterTemplates

        Map<String,​StorageParameterTemplate> getParameterTemplates()
        Gets parameter templates that are defined for this operation and its child entities or that are changed with respect to the ones of the parent entity.

        This attribute overrides and merges with the corresponding parent attribute.

        Returns:
        Templates for parameters (mapped from parameter template name to the corresponding parameter template) that may be added to child entities of this operation.
      • setClassPath

        void setClassPath​(List<String> classPath)
        Sets the part of the classpath that is added by this operation to the one of the parent attribute. Use null in case this operation does not supplement the classpath of the parent entity.
        Parameters:
        classPath - The part of the classpath that is contributed by this operation. This is appended to the classpath of the parent entity and thus forms the complete classpath.
      • setConfigurationDescription

        void setConfigurationDescription​(StorageConfigurationDescription description)
        Sets the configuration description for this operation. This may change the configuration description of the corresponding executable component description or add new entries. Only these need to be provided in the designated configuration description. Note that removal of an inherited entry is not possible and has to be simulated by providing a null value as configuration value.

        The configuration description has to be set as a whole; to add or modify single entries, retrieve the complete description from this operation, add or modify the entry and provide the complete description again to this method. Use null to remove the configuration description from this operation and inherit the configuration description of the parent entity without any changes.

        When changing the configuration description one has to check for conflicts that may occur in the configuration description of the configuration sets this operation is part of.

        This attribute overrides and merges with the corresponding parent attribute. That is, the attribute contains only entries that are changed with respect to the ones of the parent attribute whereas the entries are identified by their name.

        Parameters:
        description - The description for all configuration values of this operation, that is, the name of the configuration entries, their type and whether they are mandatory. Use null to remove the configuration description from this operation, that is, it will be inherited from the parent entity again.
      • setConfiguration

        void setConfiguration​(StorageActivityConfiguration configuration)
        Sets the configuration of this operation to the designated one. The provided configuration has to correspond to the (merged) configuration description of this operation and its executable component description, that is the values have to have appropriate configuration entries. Not all configuration entries need to have a value yet except the fixed ones. The values may also be retrieved from process parameters or the process configuration (determined when modelling).

        The configuration has to be set as a whole; to add or modify single values, retrieve the complete configuration, add or modify the value and provide the complete configuration again to this method. Use null to remove the configuration from this operation, that is, it will be inherited from the parent entity again.

        This attribute overrides and merges with the corresponding parent attribute. That is, the attribute contains only new entries and entries that are changed with respect to the ones of the parent attribute whereas the entries are identified by their name.

        Parameters:
        configuration - The configuration values set for this operation based on the configuration description. This does not necessarily contain all values since they can still be set when modelling. It may also contain more in case it provides values for the configuration description of a parent entity. Use null to remove the configuration from this operation, that is, it will be inherited from the parent entity again.
      • setTestConfiguration

        void setTestConfiguration​(StorageActivityConfiguration testConfiguration)
        Sets the test configuration of this operation to the designated one. The provided configuration has to correspond to the (merged) configuration description of this operation and its executable component description, that is the values have to have appropriate configuration entries.
        These configuration values only apply when the operation is executed in test mode, that is the operation is provided this configuration instead of the normal configuration. This test configuration is merged with the normal configuration. Therefore it only contains new entries and entries that are changed with respect to the normal configuration (and the test and the normal configuration of the parent entity). Note that the test configuration allows to override fixed values of the normal configuration. Clearly in case of an empty test configuration the normal configuration will be used in test mode. The values may also be retrieved from process parameters or the process configuration (determined when modelling).

        The configuration has to be set as a whole; to add or modify single values, retrieve the complete configuration, add or modify the value and provide the complete configuration again to this method. Use null to remove the test configuration from this operation, that is, it will be inherited from the parent entity again.

        Parameters:
        testConfiguration - The configuration values set for the test mode of this operation based on the configuration description. This does not necessarily contain all values since they can still be set when modelling or taken from the normal configuration. Use null to remove the test configuration from this operation, that is, it will be inherited from the parent entity again.
      • setParameters

        void setParameters​(ActivityConstants.AccessType accessType,
                           Collection<StorageActivityModelParameter> parameters)
        Sets all the parameters of the designated access type of this operation. These make up the interface of the operation.
        Parameters are identified by the access type, for instance input or output parameter, and their name.

        The parameters need not be based on parameter templates of this operation or the corresponding executable component description.

        Parameters:
        accessType - The access type of the parameters to be retrieved (only values in ActivityConstants.AccessType.activityRelatedValues() are allowed).
        parameters - The parameters of this operation for the designated access type. If this operation does not have parameters of the designated access type provide null.
      • setParameterTemplates

        void setParameterTemplates​(Map<String,​StorageParameterTemplate> parameterTemplates)
        Sets parameter templates that are defined for this operation and its child entities. This may change the parameter templates of the corresponding executable component description or add new parameter templates; removal is not allowed. If you need removal, add a new template and override the description of the one to be removed stating that it should not be used.

        When setting the parameter templates the whole collection has to be set; to add or modify single parameter templates retrieve the complete templates from this operation, add or modify the template and provide the collection of templates again to this method. Use null for removing all parameter templates of this operation, that is, the parameter templates will be inherited from the parent entity again.
        It will not be allowed to set parameter templates for this operation if the parameter change policy of this operation does not allow to add or change real parameters (ParameterChangePolicy.ADD_VIRTUAL or ParameterChangePolicy.FIXED); only null will be accepted. It will not make sense to set parameter templates if the child entities are not allowed to add or change parameters.

        This attribute overrides and merges with the corresponding parent attribute. That is, the collection contains only new parameter templates and parameter templates that are changed with respect to the ones of the parent attribute whereas they entries are identified by their template name.

        Parameters:
        parameterTemplates - A collection containing all parameter templates that are defined for this operation.