## The CommaSuite Generation Tasks

The CommaSuite framework performs various generation tasks on CommaSuite models. The desired generation tasks are defined in a CommaSuite workflow project, a model with extension .prj. Tasks are grouped per kind and all the tasks of a given kind are given in a single block.

The following is an example workflow project for a simple photo camera. Comments in the code explain the meaning of the constructs. The workflow defines a single generation task: generation of interface documentation.

    //Import the models used in generation tasks
    import "Camera.interface"
    //Alternatively use namespace imports only:
    // import projects.camera.*

    Project Camera {
        //Block for all documentation generation tasks
        Generate Documentations {
            //task with name docGenTask that generates documentation for ICamera interface
            docGenTask for interface  ICamera {
                template = "Template.docx" //Give the name of the documentation template
                targetFile = "result.docx" //Give the name of the generated file
                author = "John Smith" //Give the name
                role = "R&D: SW Designer" //Give the role
            }
        }
    }

CommaSuite workflow

In order to create a CommaSuite workflow project and to execute the defined generation tasks, follow the steps:

1. In the Eclipse project that contains your models, create a new file with extension .prj.

2. In the created project file, import the required models.

3. Define the desired generation blocks and tasks. Consult the relevant help pages on the details of the supported generation tasks.

4. Once the generation tasks are defined, they can be executed. Right mouse click on the .prj file shows a context menu. Select Run As → Run generators. Alternatively, use the shortcut "ALT+B".

5. Once the generation is finished, the generated files are placed in the sub-folder src-gen. If errors are encountered, a message is conveyed with the location of the error report file.