<< 目次を表示 >> ページ位置: Enterprise Architectの拡張 > コード読み込みの独自定義 > 読み込みの文法 > モデルとの対応付け |
文法を定義する場合に、その文法定義の中にEnterprise Architectのモデルの情報との対応付けを含めることで、ソースコードからモデルを生成(同期)することができるようになります。この対応付けのグループと属性を説明します。未定義のグループ・属性がある場合には、すべて無視されます。
このグループは最上位のグループであり、ソースファイル全体を示します。このグループには属性は存在しませんが、他のグループを保持しています。
多重度 |
グループ名 / 属性 |
説明 |
0..* |
PACKAGE |
PACKAGE グループ をご覧下さい。 |
0..* |
CLASS |
CLASS/INTERFACE グループ をご覧ください。 |
0..* |
IMPORT |
読み込まれる名前空間あるいはパッケージ名を示します。ノードのNAME属性が、名前空間あるいはパッケージの名前になります。 |
0..* |
COMMENT |
無視ルール内で利用し、コメントである事を示します。 位置により、関係する項目のノートになります。 |
0..1 |
INSERT_POSITION |
新規にクラス・パッケージ・操作(メソッド)を追加する場合の位置を指定します。この指定が存在しない場合には、同種の項目の直下に新しい項目を追加します。 |
PACKAGEグループは名前空間(および類似の概念)に対応します。名前空間を持つ言語のソースファイルを読み込んだ場合には、Enterprise Architectは自動的にパッケージを追加し、新規に追加するクラスはそのパッケージの中に追加します。名前空間の定義がない場合には、クラスを探索します。
言語により、名前空間を有効にする設定になっている場合には、適切なパッケージにクラス要素が含まれていないと、同じクラス要素という判定になりません。
親となるグループ: FILE
多重度 |
グループ名 / 属性 |
説明 |
1 |
NAME |
NAME グループ をご覧下さい。 |
0..* |
CLASS |
CLASS/INTERFACE グループ をご覧下さい。 |
0..* |
PACKAGE |
子パッケージのノードです。 |
0..1 |
OPEN_POSITION |
このグループの内容が始まる部分を指定します。INSERT_POSITION属性がない場合には、新規にクラス・パッケージを追加する位置の指定にもなります。 |
0..1 |
INSERT_POSITION |
新規にクラス・パッケージを追加する場合の位置を指定します。この指定が存在しない場合には、同種の項目の直下に新しい項目を追加します。 |
0..1 |
SUPPRESS |
追加することで、インデントすることを防ぎます。 |
CLASS と INTERFACE グループはコード読み込みにおいて中心となるグループです。クラス要素やインターフェース要素として表現されます。
後述する Class DECLARATION と Class BODY もご覧下さい。
親となるグループ: FILE, PACKAGE, Class BODY
親となるグループ: CLASS/INTERFACE
多重度 |
グループ名 / 属性 |
説明 |
1 |
NAME |
NAME グループ をご覧下さい。 |
0..* |
PARENT |
CLASS/INTERFACE グループ をご覧下さい。 |
0..* |
TAG |
TAG グループ をご覧下さい。 |
0..1 |
DESCRIPTION |
DESCRIPTION グループ をご覧下さい。 |
1 |
NAME |
クラスの名前です。グループとしてのNAMEが存在する場合には、グループの定義の方が優先されます。 |
0..1 |
SCOPE |
クラスの可視性です。 Public, Private, Protected, Package のいずれかです。 |
0..1 |
ABSTRACT |
この属性に対応する内容が存在する場合には、クラスは抽象クラスとして扱われます。 |
0..1 |
VERSION |
クラスのバージョンです。 |
0..1 |
STEREOTYPE |
クラスに設定されるステレオタイプです。複数のステレオタイプには対応していません。 |
0..1 |
ISLEAF |
存在する場合には、他のクラスから継承できないleaf/final/sealed等のクラスになります。 |
0..1 |
MULTIPLICITY |
存在する場合には、クラスの多重度を示します。 |
0..1 |
LANGUAGE |
クラスの言語の設定です。通常は自動的に設定されるため、設定する必要はありません。 |
0..1 |
NOTE |
クラスのノートです。通常はコメントの内容が自動的にノートに設定されるため、この属性を利用する必要はありません。 |
0..1 |
ALIAS |
存在する場合には、別名に対応します。 |
0..* |
MACRO |
ラウンドトリップを実現するために、タグ付き値に格納する文字列(マクロ)の情報である事を示します。 |
親となるグループ: CLASS および INTERFACE
多重度 |
グループ名 / 属性 |
説明 |
0..* |
METHOD |
METHODC グループ をご覧下さい。 |
0..* |
ATTRIBUTE |
CLASS/INTERFACE グループ をご覧下さい。 |
0..* |
FIELD |
FIELD グループ をご覧下さい。 |
0..* |
CLASS |
CLASS/INTERFACE グループ をご覧下さい。 |
0..* |
SCOPE |
SCOPE グループ をご覧下さい。 |
0..* |
PROPERTY |
クラス本体内のプロパティに対応します。 |
0..* |
TAG |
TAG グループ をご覧下さい。 |
0..* |
PARENT |
PARENT グループ をご覧下さい。 |
0..1 |
OPEN_POSITION |
このグループの内容が始まる部分を指定します。INSERT_POSITION属性がない場合には、新規にクラスを追加する位置の指定にもなります。 |
0..1 |
INSERT_POSITION |
新規にクラスの属性や操作(メソッド)を追加する場合の位置を指定します。この指定が存在しない場合には、同種の項目の直下に新しい項目を追加します。 |
このグループは必須ではなく、C++言語のようにある範囲について可視性を指定できるような言語で利用されます。ブロック内のすべての項目について、指定された可視性が適用されます。下記の表以外の属性は、Class BODY グループと同じ内容が利用できます。
親となるグループ: Class BODY
多重度 |
グループ名 / 属性 |
説明 |
1 |
NAME |
対象の範囲内に含まれる項目の可視性を指定します。 |
親となるグループ: Class BODY あるいは SCOPE
多重度 |
グループ名 / 属性 |
説明 |
1 |
Method DECLARATION |
Method DECLARATION グループ をご覧下さい。 |
親となるグループ: METHOD
多重度 |
グループ名 / 属性 |
説明 |
0..1 |
TYPE |
TYPE グループ をご覧下さい。 |
0..* |
PARAMETER |
PARAMETER グループ をご覧下さい。 |
0..* |
TAG |
TAG グループ をご覧下さい。 |
0..1 |
DESCRIPTION |
DESCRIPTION グループ をご覧下さい。 |
0..1 |
MULTI PARAMETER |
Delphiのパラメータリスト型の宣言に対応するための属性です。FIELDグループと同じです。 |
1 |
NAME |
操作の名前です。 |
0..1 |
TYPE |
操作の戻り値です。 |
0..1 |
SCOPE |
操作の可視性です。Public, Private, Protected, Packageのいずれかです。 |
0..1 |
ABSTRACT |
操作が抽象操作であるかどうかを示します。 |
0..1 |
STEREOTYPE |
操作のステレオタイプです。複数のステレオタイプには対応しません。 |
0..1 |
STATIC |
操作がstaticであるかどうかを示します。 |
0..1 |
CONST CONSTANT |
操作がconstであるかどうかを示します。 |
0..1 |
PURE |
操作が純粋仮想関数であるかどうかを示します。 |
0..1 |
ISQUERY |
操作がクエリ(read only)であるかどうかを示します。 |
0..1 |
ARRAY |
操作の戻り値が配列であることを示します。 |
0..1 |
SYNCHRONIZED |
操作が同期処理であるかどうかを示します。 |
0..* |
MACRO |
操作の宣言がマクロであるかどうかを示します。 |
0..1 |
CSHARPIMPLEMENTS |
C#固有の振る舞いを指定するための属性です。 |
0..1 |
BEHAVIOR |
Aspect Jに対応するための属性です。 |
0..1 |
SHOWBEHAVIOR |
Aspect Jに対応するための属性です。ダイアグラム内に表示される振る舞いの内容です。 |
親となるグループ: Class BODY , SCOPE
多重度 |
グループ名 / 属性 |
説明 |
1 |
TYPE |
TYPE グループ をご覧下さい。 |
0..* |
TAG |
TAG グループ をご覧下さい。 |
0..1 |
DESCRIPTION |
DESCRIPTION グループ をご覧下さい。 |
1 |
NAME |
属性の名前です。 |
0..1 |
TYPE |
属性の型です。 |
0..1 |
SCOPE |
属性の可視性です。Public, Private, Protected, Packageのいずれかです。 |
0..1 |
DEFAULT |
属性の既定値です。 |
0..1 |
CONTAINER ARRAY |
属性が配列(コンテナ)であることを示します。 |
0..1 |
CONTAINMENT |
属性の保持形式です。Reference あるいは Value になります。 |
0..1 |
STEREOTYPE |
属性のステレオタイプです。複数のステレオタイプには対応しません。 |
0..1 |
STATIC |
属性がstaticであるかどうかを示します。 |
0..1 |
CONST CONSTANT |
属性がconstであるかどうかを示します。 |
0..1 |
ORDERED |
属性がorderedであるかどうかを示します。 |
0..1 |
LOWBOUND |
属性の多重度の下限値です。 |
0..1 |
HIGHBOUND |
属性の多重度の上限値です。 |
0..1 |
TRANSIENT VOLATILE |
属性がtransient/volatileであるかどうかを示します。 |
フィールドとは、複数の属性の宣言がまとめられたものです。ATTRIBUTEグループで利用できる属性は、このグループでも利用できます。DECLARATORが存在しない場合、ATTRIBUTEグループと同じになります。
親となるグループ: Class BODY , SCOPE
多重度 |
グループ名 / 属性 |
説明 |
0..* |
DECLARATOR |
ATTRIBUTE グループ をご覧下さい。 |
親となるグループ: Method DECLARATION, TEMPLATE
多重度 |
グループ名 / 属性 |
説明 |
1 |
TYPE |
TYPE グループ をご覧下さい。 |
0..* |
TAG |
TAG グループ をご覧下さい。 |
0..1 |
DESCRIPTION |
DESCRIPTION グループ をご覧下さい。 |
0..1 |
NAME |
引数の名前です。 |
0..1 |
TYPE |
引数の型です。 |
0..1 |
KIND |
in, inout, out, return のいずれかの値です。 |
0..1 |
DEFAULT |
引数の既定値です。 |
0..1 |
FIXED |
引数がfixedであるかどうかを示します。 |
0..1 |
ARRAY |
引数が配列であるかどうかを示します。 |
親となるグループ: PACKAGE, Class DECLARATION
多重度 |
グループ名 / 属性 |
説明 |
1 |
NAME |
名前です。 |
0..* |
QUALIFIER |
修飾子です。 |
0..* |
NAMEPART |
NAME と QUALIFIER の代用として利用します。文字列の値を設定し、最後の単語以外がQUALIFIERとしての扱いになり、最後の単語が名前ととしての扱いになります。 |
親となるグループ: Method DECLARATION, ATTRIBUTE, PARAMETER
多重度 |
グループ名 / 属性 |
説明 |
0..1 |
TEMPLATE |
指定された文字列全体が、型の名前として扱われます。 NAMEの属性が未定義の場合のみ有効です。 TEMPLATEグループ をご覧下さい。 |
1 |
NAME |
名前です。 |
0..* |
QUALIFIER |
修飾子です。 |
0..* |
NAMEPART |
NAME と QUALIFIER の代用として利用します。文字列の値を設定し、最後の単語以外がQUALIFIERとしての扱いになり、最後の単語が.名前ととしての扱いになります。 |
親となるグループ: TYPE
多重度 |
グループ名 / 属性 |
説明 |
0..* |
PARAMETER |
PARAMETER グループ をご覧下さい。 |
1 |
NAME |
名前です。 |
親となるグループ: Class DECLARATION
多重度 |
グループ名 / 属性 |
説明 |
0..1 |
TYPE |
Parent, Implements, VirtualP のいずれかになります。 |
1 |
NAME |
名前です。 |
0..* |
QUALIFIER |
修飾子です。 |
0..* |
NAMEPART |
NAME と QUALIFIER の代用として利用します。文字列の値を設定し、最後の単語以外がQUALIFIERとしての扱いになり、最後の単語が.名前ととしての扱いになります。 |
0..1 |
INSTANTIATION |
|
親となるグループ: Class DECLARATION, Method DECLARATION, ATTRIBUTE, PARAMETER
多重度 |
グループ名 / 属性 |
説明 |
1 |
NAME |
タグ付き値と関連付ける場合の、タグ付き値の名前です。 |
0..* |
VALUE |
タグ付き値の値です。 |
0..1 |
MEMO |
タグ付き値がメモ型であることを示します。 |
0..1 |
NOMEMO |
タグ付き値がメモ型ではないことを示します。 |
0..1 |
GROUP |
タグ付き値のグループを指定します。 |
親となるグループ: Class DECLARATION, Method DECLARATION, ATTRIBUTE
多重度 |
グループ名 / 属性 |
説明 |
0..* |
VALUE |
ノートとして保持する内容です。 |
参照: