<installSteps> 要素は <installList> 要素の子であり、当該コンポーネントをインストールするために実行される一連の手順を示します。 <install> 手順によって当該コンポーネントがインストールされる場合、ここに挙げる手順が順に実行されます。 一般に、参照先コンポーネントをインストールするために、単純コンポーネントのインストール手順には <deployResource> 手順が含まれ、複合コンポーネントのインストール手順には 1 つ以上の <install> 手順が含まれます。
名前 |
型 |
必須 |
構成可能 |
説明 |
---|---|---|---|---|
access |
accessEnum |
いいえ |
不可 |
インストールブロックのアクセスモード (詳細は下記)。 デフォルトは PUBLIC |
modifier |
ModifierEnum |
いいえ |
不可 |
インストールブロックの修飾子 (詳細は下記) |
name |
entityName |
はい |
不可 |
インストールブロックの名前。 この名前は、包含している <installList> 内のすべてのインストールブロックの中で一意である必要がある |
description |
文字列 |
いいえ |
不可 |
インストールブロックの説明。 ドキュメント化に便利 |
<installSteps> 要素の「access」属性は、インストールブロックのアクセス可能性を指定します。
PUBLIC の場合、アクセスはまったく制限されません。
PROTECTED の場合、アクセスは同じパス内の派生コンポーネントとエンティティに制限されます。
PATH の場合、アクセスは同じパス内のエンティティに制限されます。
PRIVATE の場合、アクセスは当該コンポーネントに制限されます。
直接実行できるのは PUBLIC ブロックだけです。
<installSteps> 要素の「modifier」属性は、インストールブロックの優先指定要件を指定します。
ABSTRACT の場合、ブロックに本体を含めることはできません。 本体は、非抽象派生コンポーネントによって指定する必要があります。 インストールブロックを抽象と宣言できるのは、コンポーネントも抽象と宣言されている場合だけです。 抽象ブロックは専用にはできません。 非抽象ブロックの場合、本体を宣言する必要があります。
FINAL の場合、インストールブロックを派生コンポーネントによって無効にすることはできません。
指定しない場合、派生コンポーネントはブロックを無効にするかどうかを選択できます。
<installSteps> 要素の子は、オプションの <paramList> 要素とそれに続く本体から構成されます。この本体は、オプションの local <varList> 要素とそれに続くゼロ個以上の「共通」手順または「コンポーネントのインストール専用」手順から構成されます。 インストールブロックが抽象と宣言されている場合、本体は含められません。
デフォルトでは、派生コンポーネントはそのベースコンポーネントの、アクセス可能なすべてのインストールブロックを継承します。
派生コンポーネントは、ベースコンポーネントから継承されたインストールブロックに含まれない名前を使用して別のインストールブロックを定義できます。 派生コンポーネントは、同じ名前を使用してブロックを宣言し直すことにより、継承された非最終インストールブロックを無効にできます。 ブロックの無効は名前を使用してしか行えず、パラメタに基づいてオーバーロード (多重定義) することはできません。 ブロックを無効にする場合は、ブロックの全コンテンツ (アクセスモード、修飾子、パラメタ、および本体) を宣言し直す必要があります。 本体を指定できるのは、優先するブロックが非抽象の場合だけです。 アクセスモードは、ベースコンポーネントよりも厳しくすることはできません。
派生コンポーネント内のブロックを優先するシグニチャーは、ベースコンポーネントのシグニチャーと互換性がなければなりません。 互換性があるということは、ベースブロックが使用できる引数はすべて派生ブロックでも使用できることを意味します。
派生ブロックは、次の条件が満たされる場合にベースブロックと互換性があります。
必須パラメタを新たに宣言していない
親ブロックで省略可能なパラメタを必須パラメタとして再定義していない
以下のシグニチャー変更は互換性があると見なされます。
パラメタ (必須パラメタまたは省略可能パラメタ) の削除
必須パラメタを省略可能に変更する
省略可能パラメタの追加
ブロックを無効にすると、ベースコンポーネント内の参照も含め、そのブロックに対する参照はすべて無効にされた値に評価されます。
派生コンポーネントを非抽象と宣言する場合は、ベースコンポーネントによって宣言されているすべての抽象ブロックを派生コンポーネントによって無効にする必要があります。
派生コンポーネント内のブロックは、<superComponent> ターゲッターを使用してブロックを無効にする場合でも、ベースコンポーネントによって定義されているブロックを明示的に呼び出すことができます。