The <control> element defines a control block that is available for this component. A control block is a sequence of steps that can be performed after the component has been installed. For example, a component for a database application might include control blocks to start or shut down the database. A <call> step can invoke a control block by name, which causes the control block steps to be executed in order.
The <control> element children consist of an optional <paramList> element followed by a body, which consists of an optional local <varList> element followed by zero or more “shared” steps. See Shared Steps. The body is not included if the control block is declared abstract.
By default, a derived component inherits all accessible control blocks of its base component. Semantics for overriding a control block are the same as those for overriding an install block.
The <control> element has the following attributes:
access – An optional attribute of type accessEnum, which specifies the accessibility of the control block. These are the possible values:
PUBLIC – Access is unrestricted, which is the default value.
PROTECTED – Access is limited to derived components and entities that are in the same path.
PATH – Access is limited to entities that are in the same path.
PRIVATE – Access is limited to this component.
Only PUBLIC blocks can be run directly from the component.
modifier – An optional attribute of type modifierEnum, which specifies the override requirements for the control block. These are the possible values:
ABSTRACT – The block cannot include a body. Instead, the body must be specified by nonabstract derived components. A control block can only be declared abstract if the component is also declared abstract. An abstract block cannot be private. Nonabstract blocks must declare a body.
FINAL – The control block cannot be overridden by derived components.
If this attribute is omitted, derived components can choose whether to override the block.
name – A required attribute of type entityName, which is the name of the control block. This is referenced from a <call> step to execute the control.
description – An optional attribute that is a string that describes the control block.