4.4.3. Delete Rule

[Tip]Description

The delete rule removes a model element or a relationship from the model.

[Important]Syntax
DeleteRuleAST ::= delete ( ArithmeticTermAST DeleteSemanticsOptAST ) ;
                | delete ( DeleteRelationshipAST ) ;
	
DeleteSemanticsOptAST ::= $empty | , DeleteSemanticsAST
DeleteSemanticsAST ::= delete_content | move_content	                    

DeleteRelationshipAST ::= supertypeOf TwoParametersAST
                        | subtypeOf TwoParametersAST
                        | typeOf TwoParametersAST
	                      | instanceOf TwoParametersAST
	                        
TwoParametersAST ::= ( ArithmeticTermAST , ArithmeticTermAST )

The parameter of a delete rule is either a term that evaluates to a model element or a relationship.

[Note]Semantics

If a model element is to be deleted then all relations that have this element either as source or as target are deleted implicitly, too.

If an entity is to be deleted then optionally the delete semantics can be defined:

  • delete_content means that both the referenced element and its contained elements - if any - are deleted from the model. This behavior corresponds to the view when the model is interpreted along its containment hierarchy: in each deletion operation the node with its whole subtree is deleted with the corresponding edges. This is the default behavior.

  • move_content means that only the referenced element is deleted and the contained elements - if any - remain in the model; the new container for these is the container of the deleted element. This behavior corresponds to the view when the model is interpreted as a graph: in each deletion operation only a single node is deleted with corresponding edges.

The interpreter ignores multiple deleting and continue. Multiple deleting occurs for instance in the following example

delete(A, delete_content); 
delete(B, delete_content); 

if B is contained by A. In this case the second delete rule is ignored.

During debugging, the interpreter informs the user about the ignored rule execution. The interpreter will issue no further information in normal execution mode.

Defined In:  model manipulation rule