You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, a routine in the response language defines an execution block within its effect to define anything that cannot be expressed with statements of the external response DSL.
During runtime, the execute block is executed at a specific point-of-time between the external statements to avoid failures. This is confusing to developers as they do not know which of the statements were already executed before the execute block and which were not.
Furthermore, the execute block is necessary to perform model modification to restore consistency, which are create, update and delete operations on model elements. Since create, retrieve and delete statements are already defined as external statements, only their initialization or update has to be defined in the execute block. Therefore, we can attach a code block to each create statements for the initialization of the element and defined update blocks for the retrieved elements to have to logic attached to the element they belong to.
An example for the difference in the routine definition looks as follows (relying on the modified syntax with curly braces and call blocks from #9, #11 and #12):
Although the old version is more concise, it is unclear when the correspondence is created (you could assume it is created before the execute block, but it is not) and the update logic for different models elements is mixed up in the execute block.
The text was updated successfully, but these errors were encountered:
Currently, a routine in the response language defines an execution block within its effect to define anything that cannot be expressed with statements of the external response DSL.
During runtime, the execute block is executed at a specific point-of-time between the external statements to avoid failures. This is confusing to developers as they do not know which of the statements were already executed before the execute block and which were not.
Furthermore, the execute block is necessary to perform model modification to restore consistency, which are create, update and delete operations on model elements. Since create, retrieve and delete statements are already defined as external statements, only their initialization or update has to be defined in the execute block. Therefore, we can attach a code block to each create statements for the initialization of the element and defined update blocks for the retrieved elements to have to logic attached to the element they belong to.
An example for the difference in the routine definition looks as follows (relying on the modified syntax with curly braces and call blocks from #9, #11 and #12):
Old:
New:
Although the old version is more concise, it is unclear when the correspondence is created (you could assume it is created before the execute block, but it is not) and the update logic for different models elements is mixed up in the execute block.
The text was updated successfully, but these errors were encountered: