Idl generator

The Idl code generator is a plug-out directly written in C++.

The generated sources follows the definition made in BOUML at the artifact / class / operation / relation / attribute / extra member levels.

When the code generation is applied on a artifact associated to several classes, the code generation is made for all these classes. Nevertheless the the Idl code generator produce first the code in memory and update the appropriate files only when it is necessary, to not change the last write date of the files for nothing. Depending on the toggle verbose code generation of the global menu Languages the code generator is verbose or not.

The Idl code generator plug-out may be called on :

When the Idl code generator is ask through the Tools menu, it is applied on the project, then on all the artifacts.

The name of the generated files depend on the artifact name, the extension depend on the language and is fixed for each by the generations settings (see below), the directory where the files are generated may be set in each package containing directly or indirectly the artifact (see generation directory).

artifact

The Idl definition of a artifact is set through the Idl source tabs of the artifact dialog.

The code generation depend on the stereotype of the artifact :

The generated file name is the artifact's name with the extension specified in the first Idl tab of the generations settings :

In BOUML the generated code is obtained by the substitution of macros in a text, the macros known by the Idl code generator are :

Class

The Idl definition of a class is set through the Uml and Idl tabs of the class dialog.

A Idl type definition may be a valuetype, an interface, a struct, an union, an enum, an exception or a typedef defined through a class, depending on the stereotype and its translation in Idl (see generation settings).

In BOUML the generated code is obtained by the substitution of macros in a text, the macros known by the Idl code generator are :

Operation

The Idl definition of an operation is set through the Uml and Idl tabs of the operation dialog.

The indentation of the first line of the declaration/definition give the indentation added to the class definition for all the operation definition.

In BOUML the generated code is obtained by the substitution of macros in a text, the macros known by the Idl code generator are :

Attribute

The Idl definition of an attribute is set through the Uml and Idl tabs of the attribute dialog.

The indentation of the first line of the definition give the indentation added to the class definition for all the attribute definition.

The definition of an attribute depend on the stereotype of its class.

interface's attribute

In BOUML the generated code is obtained by the substitution of macros in a text, the macros known by the Idl code generator are :

valuetype's attribute

The macros known by the Idl code generator are :

union's attribute

The macros known by the Idl code generator are :

enumeration item

The macros known by the Idl code generator are :

constant

The macros known by the Idl code generator are :

Relation

The Idl definition of a relation is set through the Uml and Idl tabs of the relation dialog.

The indentation of the first line of the definition give the indentation added to the class definition for all the relation definition.

Relation equivalent to an attribute in an interface

In BOUML the generated code is obtained by the substitution of macros in a text, the macros known by the Idl code generator are :

Relation equivalent to an attribute in a valuetype

In BOUML the generated code is obtained by the substitution of macros in a text, the macros known by the Idl code generator are :

Relation equivalent to an attribute in an union

In BOUML the generated code is obtained by the substitution of macros in a text, the macros known by the Idl code generator are :

Inheritance

The class inheritance are managed at the class level.

Extra member

The Idl definition of an extra member is set through the Idl tabs of the extra member dialog.

No macros.


Previous : Python reverse

Next : MySQL generator