<snapshot> 要素は <snapshotList> 要素の子で、当該コンポーネントのインストール状態をキャプチャするために実行される一連の手順を定義します。 <createSnapshot> または <addSnapshot> 手順がこのスナップショットブロックを指定する場合、<prepare> ブロック内の手順が順に実行され、続いて <capture> ブロックで指定されたファイルが対象マシンのキャプチャ領域で キャプチャされ、最後に <cleanup> ブロック内の手順が順に実行されます。
スナップショットブロックは、コンポーネントの現在の状態をそのインストール時の状態と比較するためにも使用されます。 具体的には、対象マシンで <prepare> 手順が再実行され、続いてインストール時にキャプチャされたファイルが現在のファイル状態と比較され、<cleanup> 手順が再実行されます。
名前 |
型 |
必須 |
構成可能 |
説明 |
---|---|---|---|---|
name |
entityName |
はい |
不可 |
スナップショットブロックの名前。 この名前は、包含している <snapshotList> 内のすべてのスナップショットブロックの中で一意である必要がある |
description |
文字列 |
いいえ |
不可 |
スナップショットブロックの説明。 ドキュメント化に便利 |
<snapshot> 要素の「access」属性は、スナップショットブロックのアクセス可能性を指定します。
PUBLIC の場合、アクセスはまったく制限されません。
PROTECTED の場合、アクセスは同じパス内の派生コンポーネントとエンティティに制限されます。
PATH の場合、アクセスは同じパス内のエンティティに制限されます。
PRIVATE の場合、アクセスは当該コンポーネントに制限されます。
<snapshot> 要素 の「modifier」属性 は、スナップショットブロックの優先指定要件を指定します。
ABSTRACT の場合、ブロックに本体を含めることはできません。 本体は、非抽象派生コンポーネントによって指定する必要があります。 スナップショットブロックを抽象と宣言できるのは、コンポーネントも抽象と宣言されている場合だけです。 抽象ブロックは専用にはできません。 非抽象ブロックの場合、本体を宣言する必要があります。
FINAL の場合、スナップショットブロックを派生コンポーネントによって無効にすることはできません。
指定しない場合、派生コンポーネントはブロックを無効にするかどうかを選択できます。
名前 |
数 |
説明 |
---|---|---|
paramList |
0 または 1 |
当該スナップショットの prepare、capture、および cleanup の各ブロック内で使用するためのパラメタの一覧 |
varList |
0 または 1 |
当該スナップショットの prepare、capture、および cleanup の各ブロック内で使用するためのローカル変数の一覧 |
prepare |
0 または 1 |
ファイルのキャプチャまたは比較に備えて実行される手順を含む |
capture |
0 または 1 |
当該スナップショットの一部としてキャプチャされるファイルおよびディレクトリの一覧を含む |
cleanup |
0 または 1 |
キャプチャまたは比較の完了後に実行される手順を含む |
当該スナップショットが <createSnapshot> 手順から呼び出される場合は、必要なパラメタをその <paramList> 要素で宣言することはできません。
varList、prepare、capture、および cleanup 要素は、集合的にスナップショットの本体を定義します。 スナップショットブロックが抽象と宣言される場合、本体は含められません。
デフォルトでは、派生コンポーネントはそのベースコンポーネントの、アクセス可能なすべてのスナップショットブロックを継承します。 スナップショットブロックを優先する意味論は、インストールブロックを優先する意味論と同じです。
派生コンポーネントスナップショットブロックの prepare ブロックからベースコンポーネントスナップショットブロックの prepare ブロックを呼び出す方法はありません。 同じことが cleanup についても言えます。 このためには、ベースコンポーネントはその prepare/cleanup 手順を派生コンポーネントによって呼び出される可能性のある制御ブロックに含める必要があります。