変換は、UML 操作をそのクラスのメソッドとして生成し、以下の UML プロパティーを使用します。
プロパティー |
C++ |
Name |
メソッドの名前 (名前の検証を適用) |
Visibility |
メソッドの可視性を決定する |
IsAbstract |
純粋な仮想メソッドとしてメソッドを生成する |
IsQuery |
const としてメソッドを生成する ("const" を操作のサフィックスに追加する) |
IsStatic |
インスタンス範囲の代わりにクラスを使用してメソッドを生成する (静的キーワードを操作のプレフィックスに追加する) |
UML 操作の戻り値パラメーターのタイプは、生成される C++ メソッドのタイプになります。戻り値パラメーターが存在しない場合、メソッドの戻り値タイプは void であると仮定されます (標準操作を除く)。戻り値パラメーターが存在しない場合、あるいは複数の戻り値パラメーターが存在する場合には、操作に対して警告が表示されます。
cpp_operation ステレオタイプを UML 操作に適用することによって、以下の C++ 固有のプロパティーを指定することができます。
· isInline: 変換は、操作をインラインとして生成します (操作本体をヘッダーに追加する)。
· isVirtual: 操作を仮想機能として宣言します。
· isFriend: フレンド操作を生成します。
C++ では、静的限定子を仮想またはフレンド限定子のいずれかに結合することはできません。 コード生成が目的である場合には、変換は静的限定子を優先します。
変換は、UML パラメーターを C++ 操作の引数に変換します。変換は、「戻り」タイプがあるパラメーターを生成しませんが、操作の戻りタイプのインディケーターとしてそのパラメーターを使用します。 変換は、パラメーターのタイプを引数のタイプに変換します。
変換は、「出力」あるいは「入出力」方向を持つパラメーターを参照に変換します (つまり、「&」限定子をタイプ仕様に追加します)。
変換は、パラメーターのデフォルト値を使用して、C++ 操作の引数のデフォルト値を指定します。
オプションで、cpp_type ステレオタイプを UML パラメーターに適用することができます。 このステレオタイプには、生成されたタイプの限定子として文字列を入力するのに使用できる限定子属性が含まれます。
以下の例は、特定の条件が結果コードにどのように影響するかを示しています。
· 操作タイプ (たとえば、Class1) を指定し、限定子を指定しないかまたはステレオタイプを適用しないと、属性の生成コードは "Class1 <ArgumentName>" になります。
· 操作タイプを指定せずに、cpp_type ステレオタイプを適用して限定子文字列を "int " に設定すると、生成コードは "int <ArgumentName>" になります。
· 操作タイプを指定し (Class1)、cpp_type ステレオタイプを適用して限定子文字列を "* const" に設定すると、生成コードは "Class1 * const <ArgumentName>" になります。
変換は、パラメーターが使用する UML クラスを組み込みリストに追加します。
変換は、モデル・サーバーが指定する順序でパラメーターを生成します。