Java generator

The Java 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 Java 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 Java code generator plug-out may be called on :

When the Java 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 Java definition of a artifact is set through the Java 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 Java 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 Java code generator are :

Class

The Java definition of a class is set through the Uml, Parametrized, Instantiate and Java tabs of the class dialog.

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

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

In the special case where the class is declared external, its Java type declaration must contains a line indicating how the name of the class is generated, by default ${name} meaning that the name is produced unchanged, the only allowed keywords are ${name}, ${Name} and ${NAME}.

Operation

The Java definition of an operation is set through the Uml and Java 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 Java code generator are :

Notes :

Attribute

The Java definition of an attribute is set through the Uml and Java 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.

An attribute may be a standard attribute or the item of an enumeration defined through a class.

standard attribute

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

enumeration item

The macros known by the Java code generator are :

Relation

The Java definition of a relation is set through the Uml and Java 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 BOUML the generated code is obtained by the substitution of macros in a text, the macros known by the Java code generator are :

Inheritance

The class inheritance are managed at the class level.

Extra member

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

No macros.


Previous : C generator

Next : Java reverse