The different code-generation and roundtripping behavior
in code-centric mode is the result of new properties defined in the
code-centric settings or the inclusion of property values that differ
from the default values used in model-centric mode. These properties
or property overrides come from the code-centric (.sbs)
profile file.
- <lang>_ReverseEngineering::ImplementationTrait::VisualizationUpdate -
exists only in code-centric settings, set to True, responsible for
code-centric behavior of reverse engineering / roundtripping
- <lang>_Roundtrip::Update::AcceptChanges -
in code-centric mode, the code changes that roundtrip imports are
broader than in model-centric mode. In code-centric mode, the value
of AcceptChanges is All, meaning any additions, changes,
or deletions will be reflected in the model. In model-centric, IBM® Rational® Rhapsody® does
not roundtrip the deletion of classes or deletions that result in
parser errors.
- <lang>_Roundtrip::Update::MergePolicy -
this property determines the merge policy the product uses during
roundtripping when comparing the model based on the latest code to
the saved model. In the code-centric settings, this property is set
to CodeDriven. This value means that Rational Rhapsody imports
certain types of code elements that it does not import when working
in model-centric mode. This property differs from the AcceptChanges property
in that AcceptChanges deals with changes to model
elements (adding, deleting, modifying) while MergePolicy is
used to indicate to the product that the code, rather than the model,
is to be given precedence when it comes to merging changes.
- <lang>_CG::Configuration::CodeUpdate -
exists only in code-centric settings, set to True, responsible for
the selective code generation used in code-centric mode
- <lang>_CG::ModelElement::SimplifyAnnotations -
value is set to CodeUpdateAnnotations in order to
minimize the Rational Rhapsody annotations
generated in code, limiting them to special cases such as animation.
In addition, a number of code generation property
values are overridden to prevent generation of auto-generated code.
These include:
- for classes - properties such as CreateImplicitDependencies, GenerateImplicitConstructors, ImplementStatechart, ImplicitDependencyToPackage, GenerateDestructor
- for relations - properties such as AddComponentHelpersGenerate, AddGenerate, ClearGenerate, CreateComponentGenerate, DeleteComponentGenerate, GetEndGenerate, GetGenerate, RemoveComponentHelpersGenerate, RemoveGenerate, RemoveHelpersGenerate, SetComponentHelpersGenerate, SetGenerate, SetHelpersGenerate
- for attributes - properties such as AccessorGenerate and MutatorGenerate
- for events - Generate
- for ports - Generate
- MainGenerationScheme, which controls
initialization code
- properties that control generation of headers and
footers
- properties used for the inclusion of framework
header files (such as IncludeHeaderFile), for example, oxf.h