Package

<< 目次を表示 >>

ページ位置:  API・アドイン・スクリプト > API > リファレンス > リポジトリ >

Package

パッケージオブジェクトは、EAのモデルブラウザのパッケージ(モデルルートも含みます)に対応したオブジェクトです。RepositoryのModelsコレクションかPackageのPackagesコレクションを通して取得することができます。

 

PackageはElementオブジェクトを属性として持っていることに注意してください。多くのプロパティを設定するためには、このElementオブジェクトを参照・編集する必要があります。なお、Package.PackageGUIDとそのElementのElement.ElementGUIDは同一になります。

 

パッケージに対して要素と同じ情報を設定する場合には、Elementに対して設定してください。また、パッケージを要素としてダイアグラムに配置する場合には、対応するElementを配置してください。要素間をつなぐ接続(Connector)の両端の指定はElementIDになりますので、パッケージに対して接続を設定する場合には、Package.Elementで取得できるElement要素のElementIDを指定します。

 

モデルルートには、Package.Elementはありません。対応するElementIDもありませんので、モデルルートをダイアグラムに配置したり、モデルルートを接続の対象とすることはできません。

 

 

プロジェクト内の関係するテーブル

t_package

 

 

属性

属性

R/W

説明

Alias

string

R

別名です。

BatchLoad

int

RW

XMI入力時に一括処理の対象であるかどうかを示します。

現在使われていません。

BatchSave

int

RW

XML出力時に一括処理の対象であるかどうかを示します。

CodePath

string

RW

現在使われていません。

Connectors

Collection

(Connector)

R

関係する接続の一覧です。

Created

DateTime

RW

パッケージの作成日です。

Diagrams

Collection

(Diagram)

R

このパッケージに含まれているダイアグラムのコレクションです。

Element

Object

R

このパッケージに関連するElementオブジェクトです。Stereotype, Complexity, Alias, Author, Constraints, Scenariosなどの情報をパッケージに設定する場合には、このオブジェクトに設定します。

Elements

Collection

(Element)

R

このパッケージに含まれている要素のコレクションです。

Flags

string

RW

このパッケージの追加情報です。

IsControlled

bool

RW

パッケージがコントロールパッケージとして設定されているかどうかを示します。

IsModel

bool

R

このパッケージかモデルルートであるかどうかを示します。

IsNamespace

bool

RW

このパッケージが名前空間のルートであるかどうかを示します。

IsProtected

bool

RW

現在は利用されていません。

IsVersionControlled

bool

R

バージョン管理の対象になっているかどうかを示します。

LastLoadDate

DateTime

RW

このパッケージに対応するXMLファイルの最終読み込み日です。

LastSaveDate

DateTime

RW

このパッケージに対応するXMLファイルの最終出力日です。

LogXML

bool

RW

XML出力時にログを出力するかどうかを指定します。

Modified

DateTime

RW

パッケージの最終変更日です。

Name

string

RW

パッケージの名前です。

Notes

string

RW

このパッケージのノートです。

ObjectType

ObjectType

R

要素を区別するために利用する属性です。

Owner

string

RW

コントロールパッケージを利用している場合の所有者です。

PackageGUID

object

R

パッケージのGUIDです。プロジェクトを超えて利用することができます。

PackageID

int

R

パッケージのID番号です。このプロジェクト内でのみ有効です。

Packages

Collection

(Package)

R

このパッケージの中にある子パッケージのコレクションです。

ParentID

int

RW

パッケージの親となるパッケージのIDです。

この値が 0 の場合には、親パッケージはありません。

StereotypeEx

string

RW

パッケージのステレオタイプです。複数のステレオタイプがある場合にはカンマで区切られます。

(ビルド1500以降で利用可能)

TreePos

int

RW

モデルブラウザ内の相対的な位置を示しています。

モデルブラウザ内の上下位置がユーザーによって変更されていない場合には、0 になっています。

TypeInfoProperties

TypeInfoProperties

R

TypeInfoPropertiesを参照する場合に利用します。

(ビルド1500以降で利用可能)

UMLVersion

string

RW

XML出力時のバージョンを示しています。

UseDTD

bool

RW

XML出力時にDTDを利用するかどうかを指定します。

Version

string

RW

パッケージのバージョンです。

XMLPath

string

RW

XMLファイルを出力する位置です。

 

 

操作

操作

戻り値の型

説明

ApplyGroupLock

(string aGroupName)

bool

このパッケージに対して、グループを指定してグループロックを設定します。

ロックの設定に成功した場合には、true が、失敗した場合には false が戻ります。GetLastErrorで失敗原因を確認できます。

 

引数:

  • グループ名: string - ロックの対象となるグループの名前を指定します。

ApplyGroupLockRecursive

(string aGroupName,

bool IncludeElements,

bool IncludeDiagrams,

bool IncludeSubPackages)

bool

このパッケージおよびすべての子パッケージに対して、グループを指定してグループロックを設定します。

 

ロックの設定に成功した場合には、trueが、失敗した場合にはfalseが戻ります。GetLastErrorで失敗原因を確認できます。

 

引数:

  • aGroupName: string - ロックの対象となるグループの名前を指定します。
  • IncludeElements: bool - 要素を対象にするかどうかを指定します。
  • IncludeDiagrams: bool - ダイアグラムを対象にするかどうかを指定します。
  • IncludeSubPackages: bool - 子パッケージを対象にするかどうかを指定します。

ApplyUserLock()

bool

このパッケージに対して、現在のユーザーで排他ロックを設定します。

ロックの設定に成功した場合には、trueが、失敗した場合にはfalseが戻ります。GetLastErrorで失敗原因を確認できます。

ApplyUserLockRecursive

(bool IncludeElements,

bool IncludeDiagrams,

bool IncludeSubPackages)

bool

このパッケージおよびすべての子パッケージに対して、現在のユーザーで排他ロックを設定します。

 

ロックの設定に成功した場合には、trueが、失敗した場合にはfalseが戻ります。GetLastErrorで失敗原因を確認できます。

 

引数:

  • IncludeElements: bool - 要素を対象にするかどうかを指定します。
  • IncludeDiagrams: bool - ダイアグラムを対象にするかどうかを指定します。
  • IncludeSubPackages: bool - 子パッケージを対象にするかどうかを指定します。

Clone()

object

このパッケージと同じ内容のパッケージ(GUIDは異なります)を、同じ親パッケージの下に複製します。

戻り値は新しく作成されたパッケージです。

FindObject

(string DottedID)

object

指定されたパッケージや要素・属性・操作などを返します。

指定された項目が見つからない場合にはエラーが発生します。

 

引数:

  • DottedID: string - 対象の要素を指定します。対象の指定方法は、object1.object2.object3のような形で指定します。例えば、Package1の中にPackage2があり、その中の要素AAAを取得する場合には、Package1.FindObject("Package2.AAA")となります。

GetLastError()

string

最後に発生したエラーの詳細情報です。エラーが発生したときには例外が発生しますので、この操作を利用することはほとんどありません。

ReleaseUserLock()

bool

このパッケージに設定された排他ロックやグループロックを解除します。

ロックの解除に成功した場合には、trueが、失敗した場合にはfalseが戻ります。

 

GetLastErrorで失敗原因を確認できます。

ReleaseUserLockRecursive

(bool IncludeElements,

bool IncludeDiagrams,

bool IncludeSubPackages)

bool

指定された条件で、排他ロックやグループロックを解除します。

ロックの解除に成功した場合には、trueが、失敗した場合にはfalseが戻ります。GetLastErrorで失敗原因を確認できます。

 

引数:

  • IncludeElements: bool - 子要素を対象にするかを指定します。
  • IncludeDiagrams: bool - 子ダイアグラムを対象にするかを指定します。
  • IncludeSubPackages: bool - 子パッケージを対象にするかを指定します。

SetReadOnly

(bool ReadOnly,

bool IncludeSubPkgs)

なし

パッケージの内容を読み込み専用(編集不可)に設定、あるいは解除します。

もし、セキュリティ(アクセス権)機能が有効になっている場合には、パッケージの管理のアクセス権が必要です。

必要なアクセス権を持っていない場合には、例外がスローされます。 GetLastError( )でエラーの内容を確認できます。

 

引数:

  • ReadOnly: bool - パッケージを読み込み専用にするかどうかを指定します。
  • false: パッケージの読み込み専用を解除します。
  • true: パッケージの内容を読み込み専用(編集不可)に設定します。
  • IncludeSubPkgs: bool - 設定した内容を子パッケージにも反映させるかを指定します。
  • false: 対象のパッケージのみを対象にします。
  • true: 対象のパッケージと、そのパッケージに含まれる全ての子パッケージも対象にします。

 

バージョン管理機能を利用している場合、この操作はチェックアウト状態に関わらず利用可能です。セキュリティ(アクセス権)機能が有効になっている場合でパッケージに対する編集権限がない場合には、この操作も利用できません。

Update()

bool

既存の要素を変更した場合や新しい要素を追加した場合に更新するメソッドです。falseが返された場合にはGetLastErrorメソッドで詳細な情報を取得することができます。

パッケージ要素にはElement属性が指す要素も常に考慮する必要があります。このパッケージオブジェクトには階層構造や中身の情報が含まれています。

Element属性が指す要素には、ステレオタイプや制約などの情報が含まれています。

VersionControlAdd

(string ConfigGuid,

string XMLFile,

string Comment,

bool KeepCheckedOut)

なし

対象のパッケージをバージョン管理の対象として追加します。バージョン管理の設定とXMIファイルの名前を指定する必要があります。

処理に失敗した場合には例外が発生しますので、GetLastError( )を利用して詳細情報を取得してください。

パッケージの内容を編集した場合には、VersionControlAdd()を呼ぶ前にUpdate()を実行してください。編集内容が破棄される場合があります。

 

引数:

  • ConfigGuid: string - 利用するバージョン管理の設定識別IDです。
  • XMLFile: string - このパッケージで利用するXMLファイルの名前です。作業ディレクトリからの相対パスになります。
  • Comment: string - バージョン管理の履歴として保存するコメントを指定します。
  • KeepCheckedOut: bool - チェックアウトされたままにするかどうかの指定です。パッケージをバージョン管理の対象にします。

VersionControlCheckin

(string Comment)

なし

パッケージをコミットします。次のVersionCntrolCheckinExもご覧ください。

コミットに失敗した場合には、例外がスローされます。GetLastError( )でエラーに関する情報を取得できます。

 

引数:

  • Comment: string - コミット時にバージョン管理ツールに記録されるコメントです。

VersionControlCheckinEx

(string Comment,

bool PreserveCrossPkgRefs)

なし

バージョン管理されているパッケージのコミットを実行します。

コミットに失敗した場合には、例外がスローされます。GetLastError( )でエラーに関する情報を取得できます。

 

引数:

  • Comment: string - コミット時にバージョン管理ツールに記録されるコメントです。
  • PreserveCrossPkgRefs: bool - コミット時に、対象のモデル内に参照しない要素に関する情報を削除するかどうかを指定します。この値は、オプションダイアログの設定の内容より優先されます。

VersionControlCheckout

(string Comment)

なし

パッケージをチェックアウトします。

チェックアウトに失敗した場合には、例外がスローされます。GetLastError( )でエラーに関する情報を取得できます。

 

引数:

  • Comment: string - チェックアウト時にバージョン管理ツールに記録されるコメントです。

 

複数のプロジェクトとバージョン管理機能を利用して分散設計を行っている場合で、バージョン管理されているパッケージにまたがって要素や接続を利用している場合には、定期的にRepository.ScanXMIAndReconcile( )を実行して整合性を確保することをお勧めします。

また、Package.VersionControlGetLatest( )を実行した後にも、 ScanXMIAndReconcileの実行をお勧めします。

VersionControlGetLatest

(bool ForceImport)

なし

対象のパッケージの内容をバージョン管理ツールから取得し、内容を更新します。

 

引数:

  • ForceImport: bool - パッケージ情報が最新であると判定された場合の挙動を指定します。
  • False を指定すると、特に何も処理を行いません。
  • True を指定すると、必ずパッケージ情報をバージョン管理ツールから取得し、読み込んで内容を更新します。

 

バージョン管理機能の最新情報の取得のページもご覧ください。

 

複数のプロジェクトとバージョン管理機能を利用して分散設計を行っている場合で、バージョン管理されているパッケージにまたがって要素や接続を利用している場合には、定期的にRepository.ScanXMIAndReconcile( )を実行して整合性を確保することをお勧めします。

また、Package.VersionControlGetLatest( )を実行した後にも、 ScanXMIAndReconcileの実行をお勧めします。

VersionControlGetStatus()

int

バージョン管理ツールから現在の状態を取得します。

処理に失敗した場合には、例外がスローされます。GetLastError( )でエラーに関する情報を取得できます。

戻り値は次の列挙型になります。

 

enum EnumCheckOutStatus

{

    csUncontrolled = 0,

    csCheckedIn,

    csCheckedOutToThisUser,

    csReadOnlyVersion,

    csCheckedOutToAnotherUser,

    csOfflineCheckedIn,

    csCheckedOutOfflineByUser,

    csCheckedOutOfflineByOther,

    csDeleted,

};

 

  • csUncontrolled - バージョン管理ツールと通信できないか、あるいは指定されたファイルがバージョン管理ツールで管理されていない場合です
  • csCheckedIn - 現在、誰にもチェックアウトされていないパッケージです。
  • csCheckedOutToThisUser - 実行したユーザーがチェックアウトしているパッケージです。
  • csReadOnlyVersion パッケージは変更不可(読み込み専用)になっています。最新版より古いバージョンが取得されている場合です。
  • csCheckedOutToAnotherUser - 現在実行したユーザーとは異なるユーザーがチェックアウトしているパッケージです。
  • csOfflineCheckedIn - 現在、誰にもチェックアウトされていないパッケージですが、バージョン管理サーバに接続されていない(オフラインの)状態です。
  • csCheckedOutOfflineByUser -実行したユーザーがチェックアウトしているパッケージですが、バージョン管理サーバに接続されていない(オフラインの)状態です。
  • csCheckedOutOfflineByOther - 現在実行したユーザーとは異なるユーザーがチェックアウトしているパッケージですが、バージョン管理サーバに接続されていない(オフラインの)状態です。
  • csDeleted - バージョン管理ツールから対象のファイルが削除されている場合です。

VersionControlPutLatest

(string CheckInComment)

なし

コミットを実行し、状態を引き続きチェックアウトのままにします。

 

処理に失敗した場合には例外が発生します。

GetLastError( ) で詳細情報を取得できます。

パッケージがオフラインチェックアウトに設定されている場合で、この処理が成功した場合には、オフラインチェックアウトの状態は解除されます。

 

引数:

  • Comment: string - コミットの際のコメントを指定します。

VersionControlRemove()

なし

パッケージをバージョン管理の対象から外します。

処理に失敗した場合には、例外がスローされます。GetLastError( )でエラーに関する情報を取得できます。

VersionControlResynchPkgStatus

(bool ClearSettings)

なし

バージョン管理の状態をバージョン管理ツールから取得し、最新の状態に更新します。

 

引数:

  • ClearSettings: bool - バージョン管理ツールから、パッケージに対応するファイルが管理されていないという回答があった場合の処理を指定します。
  • Trueを指定すると、バージョン管理の設定を削除します。
  • Falseを指定すると、バージョン管理の設定情報はそのまま残します。

 

 

参照: