13.07.2015 Views

Bouml reference manual - Fedora Project Packages GIT repositories

Bouml reference manual - Fedora Project Packages GIT repositories

Bouml reference manual - Fedora Project Packages GIT repositories

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

file:///C:/uml/BOUML/bouml_3.0/doc/TOUT.html312 of 378 07/10/2007 15:55@{xyz} is replaced by the user property value in case xyz is the key of this property. The property if searched first for the operation,if not found for the class containing the operation etc ...A template operation is defined with an empty declaration (allowing <strong>Bouml</strong> to detect this case) and placing the actuals between${class} and :: in the declaration part.If the toggle preserve operations's body is set through the Languages menu, the generators do not modify the body of the operationsprotected by dedicated delimiters. This means that for them the body definition set through BOUML is not used. The first time yougenerate the code with the toggle set, because the delimiters are not yet present in the generated code, the operation's body will beupdated depending on their definition under BOUML. After, while the toggle is set and the delimiters present, the bodies will not callowing you to modify them out of BOUML.Notes :In case the file containing a body definition is not consistent with the artifact under BOUML, the body will be regenerated by thcode generation, using its definition under the model. Of course an operations becoming inline or stopping to be inline is not aproblem.When you import a project, the body of the imported operations must be the right one in the imported model. The preserved bodiesof the imported operations will not be find because the identifier of an operation used to mark its body changes during the import.The bodies under the model are not updated by the code generation (a new plug-out must be made for that).Only the operations using the keyword ${body} may have a preserved body.The only modification you can do in the lines containing the delimiters is the indent.The toggle is saved in the file associated to the project, be sure the save is done when you change this toggle !AttributeThe C++ definition of an attribute is set through the Uml and C++ tabs of the attribute dialog.The indentation of the first line of the definition give the indentation added to the visibility specification in the class definition for all theattribute definition (except for the pre-processor commands beginning by # whose are placed at the beginning of the line).An attribute may be a standard attribute or the item of an enumeration.standard attributeIn BOUML the generated code is obtained by the substitution of macros in a text, the macros known by the C++ code generator are :${comment} is replaced by the description of the attribute adding //${description} is replaced by the attribute description without adding //${static} produce static when the attribute is a class attribute (see the UML tab)${mutable} produce mutable when the attribute is mutable${volatile} produce volatile when the attribute is volatile${const} produce const when the attribute is const (see the UML tab)${type} is replaced by the type of the attribute (see the UML tab)${stereotype} is replaced by the translation in C++ of the relation's stereotype (see the UML tab)${multiplicity}is replaced by the multiplicity of the relation (see the UML tab), must be used in case the multiplicity is a vector or arradimensioning ([ and ] are added when they are not present).${name} is replaced by the attribute's name (see the UML tab)${value} is replaced by the initial value of the static attribute in the definition part generated in the source file (see the UML tab),

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!