UML から C++ への変換のシステム引数の設定

eclipse.ini ファイルで UML から C++ への変換のシステム引数を指定することができます。 これにより、変換構成ファイルに含まれていない変換の振る舞いを指定できます。 例えば、代替のファイル名拡張子を指定し、生成される属性および操作について、可視性を基にした 表示順序を変更することができます。
このタスクについて

UML から C++ への変換のシステム引数を指定するには、以下のようにします。

  1. テキスト・エディターで eclipse.ini ファイルを開きます。eclipse.ini ファイルは、製品のインストール時にインストール・ルートとして指定したディレクトリーにあります。
  2. ファイルの終わりに、変換の振る舞いについての設定を追加します。 ファイル内の他の既存のワークベンチ引数の後に、固有の行としてそれぞれの設定を指定します。 次の表に、構成できる振る舞いと、 eclipse.ini ファイルに追加する必要のある引数をリストします。
    アクション システム引数 デフォルトの変換の振る舞い
    次の順序で属性および操作を表示: Public, Protected, Private -DVISIBILITY_ORDER=true このシステム引数を指定しないと、生成されたコードでは、属性と操作が次の順序でリストされます: Private, Protected, Public。
    #include ディレクティブの相対パス情報を除外 -DEXCLUDE_PATH_FOR_INCLUDES=true このシステム引数を指定しないと、変換により、相対パス情報を指定する #include ディレクティブが生成されます。
    クラス・テンプレートを型パラメーターを使用して宣言するときに typename キーワードを生成 (例えば、template <typename identifier> class_declaration) -DTYPENAME_TEMPLATES=true このシステム引数を指定しないと、タイプがクラスであるテンプレート・パラメーターを使用して、テンプレート・クラスが含まれるモデルを変換すると、生成される宣言に class キーワードが含まれます。

    次の例を考えてみましょう:

    このイメージは、TemplateClass1 というテンプレート・クラスを示しており、このクラスには、タイプがクラスである T1 というテンプレート・パラメーターがあります。

    デフォルトでは、 この変換により次の宣言が TemplateClass1.h に生成されます。
    template <class Parameter1>
    class Class1
    {
    
        //Class1 のセクションの開始
        //TODO: 保持する属性を追加します
        //Class1 のセクションの終了
        public:
    
    
            //@uml.annotationsderived_abstraction="platform:/resource/Miscellaneous%20Models/source.emx#_hFn-0GaLEdyC-b6mj80KQA"
            //@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
            int Operation1()
            {
                //TODO 自動生成されたメソッド・スタブ
                return 0;
            }
    
    };  //クラス Class1 の終了
    </class>
    -DTYPENAME_TEMPLATES=true を指定した場合、変換により次の宣言が TemplateClass1.h に生成されます。
    template <typename Parameter1>
    class Class1
    {
    
        //Class1 のセクションの開始
        //TODO: 保持する属性を追加します
        //Class1 のセクションの終了
        public:
    
    
            //@uml.annotationsderived_abstraction="platform:/resource/Miscellaneous%20Models/source.emx#_hFn-0GaLEdyC-b6mj80KQA"
            //@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
            int Operation1()
            {
                //TODO 自動生成されたメソッド・スタブ
                return 0;
            }
    
    };  //end class Class1</typename>
    ヘッダー・ファイルにインライン関数コードを生成 -DINLINE_HEADER=true このシステム引数を指定しないと、変換では、C++ ボディ・ファイルにインライン関数のコードが生成されます。
    C++ ボディ・ファイルに代替のファイル名拡張子を指定 -DBODY_FILE_EXTENSION=.<file name extension>
    例えば、ファイル名拡張子として .cc を付けた C++ ボディ・ファイルを生成するには、 -DBODY_FILE_EXTENSION=.cc と指定します。
    注: ソース・モデル要素に «cpp_properties» ステレオタイプを適用すると、bodyFileExtension プロパティーの値によって、eclipse.ini ファイルに指定した値が上書きされます。
    このシステム引数を指定しないと、変換では、ファイル名拡張子として .cpp を付けた C++ ボディ・ファイルが生成されます。
  3. 「ファイル」 > 「保存」をクリックします。
  4. Eclipse を再起動し、-clean オプションを指定します。

フィードバック