ComponentManifest (クラス)
public final ComponentManifest {inherits Component, SharedProcessResource}
パッケージ: CURL.LANGUAGE.COMPONENT

コンポーネント情報のマニフェスト。

説明

コンポーネントの位置を示す任意の数の ComponentSelector が格納されます。

Selector は component-typename のソート順、および挿入時の順序で管理されます。

『Curl 開発者ガイド』の「マニフェスト」も参照してください。

コンストラクタ
default:新規のマニフェスト オブジェクトを作成します。
ファクトリ public {ComponentManifest.default
meta-data:ComponentMetaData = {ComponentMetaData},
frozen?:bool = false,
...:ComponentSelector
}:ComponentManifest

プロパティ
all-delegates:このマニフェストのすべてのデリゲートを順番に並べたリスト。
フィールド public-get private-set ComponentManifest.all-delegates:{ReadOnlyArray-of ComponentManifest }
direct-delegate-selectors:このマニフェストに対する直接デリゲートセレクターの順序付けられたリスト。
アクセサ public final inline ComponentManifest.direct-delegate-selectors:{ReadOnlyArray-of ComponentSelector }
direct-delegates:このマニフェストの直接のデリゲートを順番に並べたリスト。
アクセサ public final inline ComponentManifest.direct-delegates:{ReadOnlyArray-of ComponentManifest}
セッター deprecated public final ComponentManifest.direct-delegates:{ReadOnlyArray-of ComponentManifest }
for-loop-count:マニフェスト内のセレクタの数。
アクセサ public final inline ComponentManifest.for-loop-count:int
from-cache?:マニフェストが共有キャッシュに存在するかどうか示します。
アクセサ public final ComponentManifest.from-cache?:bool
imported?:import-manifest によってマニフェストがロードされたかどうかを示します。
フィールド public constant ComponentManifest.imported?:bool =false
root:このマニフェストでインポートされるルートマニフェスト。
アクセサ public ComponentManifest.root:#ComponentManifest
root-delegate-selectors:デリゲートセレクターはルートマニフェストが必要です。
アクセサ public inline ComponentManifest.root-delegate-selectors:{ReadOnlyArray-of ComponentSelector }
root-url:このマニフェストをインポートして使用されたルートマニフェストの URL。
アクセサ public ComponentManifest.root-url:#Url
root?:マニフェストがそれ自身のルートであるかどうか示します。
アクセサ public ComponentManifest.root?:bool
size:マニフェスト内のセレクタの数。
アクセサ public final inline ComponentManifest.size:int
プロパティ 継承 Component: error-name, frozen?, id, meta-data, name, source-url, source-url-name, transitive-id

クラス プロシージャ
select:selectors からセレクタを選択します。
public {ComponentManifest.select
selectors:{Array-of ComponentSelector},
comparison-proc:{proc-type {s1:ComponentSelector, s2:ComponentSelector}:bool} = ComponentSelector.prefer-first?
}:#ComponentSelector

メソッド
add:selector をマニフェストに追加します。
public final {ComponentManifest.add selector:ComponentSelector}:void
compatible-with-root?:指定されたマニフェストがルートから読み込まれたかどうかを示します。
public {ComponentManifest.compatible-with-root?}:bool
freeze:変更できないようにマニフェストをフリーズします。
public final {ComponentManifest.freeze}:void
get:マニフェスト内の n 番目のセレクタを返します。
public final inline {ComponentManifest.get n:int}:ComponentSelector
lookup:マニフェスト内で meta-data に一致するセレクタを検索します。
public final {ComponentManifest.lookup
meta-data:ComponentMetaData,
out:{Array-of ComponentSelector} = {new {Array-of ComponentSelector}},
look-in-delegates?:bool = true,
match-location?:bool = false,
default-manifest:ComponentManifest = self
}:(results:{Array-of ComponentSelector}, manifest:ComponentManifest)
lookup-and-select:meta-data に一致するセレクタを検索して優先されるものを選択します。
public final {ComponentManifest.lookup-and-select
meta-data:ComponentMetaData,
comparison-proc:{proc-type {s1:ComponentSelector, s2:ComponentSelector}:bool} = ComponentSelector.prefer-first?,
look-in-delegates?:bool = true,
match-location?:bool = false,
default-manifest:ComponentManifest = self
}:(#ComponentSelector,ComponentManifest)
remove:マニフェストから n 番目のセレクタを削除します。
public final {ComponentManifest.remove n:int}:void
select-url:meta-data に一致する優先される位置を検索して選択します。
public {ComponentManifest.select-url
meta-data:ComponentMetaData,
comparison-proc:{proc-type {s1:ComponentSelector, s2:ComponentSelector}:bool} = ComponentSelector.prefer-first?
}:Url
set-direct-delegates:このマニフェストのダイレクトデリゲートを設定します。
public {ComponentManifest.set-direct-delegates}:void
SHA-1-digest-for-location:位置に対する SHA-1-digest 値を検索し返します。
public {ComponentManifest.SHA-1-digest-for-location
location:Url
}:#SHA-1-Digest
validate-for-add:selectoradd に渡されるための条件を満たしているかどうか調べます。
public final {ComponentManifest.validate-for-add}:void
メソッド 継承 Component: assert-not-frozen
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (ファクトリ)
public {ComponentManifest.default
meta-data:ComponentMetaData = {ComponentMetaData},
frozen?:bool = false,
...:ComponentSelector
}:ComponentManifest

新規のマニフェスト オブジェクトを作成します。

meta-data: マニフェストのメタデータを指定します。
frozen?: true の場合、フリーズされたマニフェストが生成されます。

ComponentManifest.freeze を参照してください。
...: マニフェストに追加される、ゼロ以上のセレクタです。各セレクタは validate-for-add で有効性を確認されますが、これがエラーを返す場合もあります。

後で add を使用してセレクタを追加することができます。

注意事項

ComponentManifest は、import-manifest を使用してソース ファイルからロードすることもできます。
導入: バージョン 7.0



プロパティ詳細
all-delegates (フィールド)
public-get private-set ComponentManifest.all-delegates:{ReadOnlyArray-of ComponentManifest }

このマニフェストのすべてのデリゲートを順番に並べたリスト。

説明

リストには、このマニフェストと、この直接/間接デリゲートがすべて (重複するものは削除されて) 含まれます。リストの作成は self から始まり、次に direct-delegates の各メンバについて、その all-delegates リストのメンバが追加され、リストで先に挙げられている項目と重複するものは削除されます。
このリストは、direct-delegates が設定されると自動的に更新されます。

たとえば、以下のマニフェストを用意します。
|| root.mcurl
{manifest ROOT}
{delegate-to A1, location = "a1.mcurl"}
{delegate-to A2, location = "a2.mcurl"}
...
|| a1.mcurl
{manifest A1}
{delegate-to B1, location = "b1.mcurl"}
{delegate-to B2, location = "b2.mcurl"}
...
|| a2.mcurl
{manifest A2}
{delegate-to B2, location = "b2.mcurl"}
{delegate-to B3, location = "b3.mcurl"}
...
|| b1.mcurl
{manifest B1}
...
|| b2.mcurl
{manifest B2}
...
|| b3.mcurl
{manifest B3}
...
この場合マニフェスト ROOT には、A1A2direct-delegates、および ROOTA1B1B2A2B3all-delegates があります。


direct-delegate-selectors (アクセサ)
アクセサ public final inline ComponentManifest.direct-delegate-selectors:{ReadOnlyArray-of ComponentSelector }

このマニフェストに対する直接デリゲートセレクターの順序付けられたリスト。

導入: バージョン 7.0

説明

直接デリゲートマニフェストのロケーションとメタデータで指定されている ComponentSelector オブジェクトの一覧は direct-delegates の配列と同じです。
これはデリゲートマニフェストのロケーションの delegate-to 宣言の中の情報と同じです。


direct-delegates (アクセサ)
アクセサ public final inline ComponentManifest.direct-delegates:{ReadOnlyArray-of ComponentManifest}
セッター deprecated public final ComponentManifest.direct-delegates:{ReadOnlyArray-of ComponentManifest }

このマニフェストの直接のデリゲートを順番に並べたリスト。

説明

このマニフェスト内で一致するものが見つからない場合に、lookup が使用する二次的なマニフェストのリスト。
空の ComponentManifest オブジェクトが現在の Curl API で実際にインポートできないマニフェストを表すかもしれません。(例えば、1.1 API で動作中の 1.1、1.2 マニフェストによってデリゲートされている 1.2 のマニフェスト。).

改訂

Curl 7.0 では set-direct-delegates メソッドの使用が推奨され、このセッターの使用は推奨されていません。 セッターは delegates から生成された ComponentManifestDelegate オブジェクトで set-direct-delegates を呼び出すことと同等です。


for-loop-count (アクセサ)
アクセサ public final inline ComponentManifest.for-loop-count:int

マニフェスト内のセレクタの数。

説明

これによりオブジェクトをコンテナ内でループに使用できるようになりますが、これ自体は直接使用できません。代わりに size を使用します。


from-cache? (アクセサ)
アクセサ public final ComponentManifest.from-cache?:bool

マニフェストが共有キャッシュに存在するかどうか示します。

説明

マニフェストが use-cache? が true で import-manifest を使用して直接間接に関わらず (delegate-to の結果などで) ロードされた場合 true になります。これは、appletscriptpackage 宣言で manifest キーワードの結果としてマニフェストがロードされた場合も含みます。


imported? (フィールド)
public constant ComponentManifest.imported?:bool =false

import-manifest によってマニフェストがロードされたかどうかを示します。

説明

この意味については import-manifest を参照してください。


root (アクセサ)
アクセサ public ComponentManifest.root:#ComponentManifest

このマニフェストでインポートされるルートマニフェスト。

説明

このプロセスでこのマニフェストインスタンスをインポートする時に使用されたルートマニフェストを返します。
このマニフェストがデリゲートしているマニフェストをロードするルートマニフェストを使用しない場合、それがロードされた時、ルートマニフェストが指定されていたとしても、これは null になります。
注意 : 別のルートマニフェストを使用してロードするために同じマニフェストを使用することは可能です。この URL はこの特定のインスタンスをインポートした時に使用されたルートマニフェスト。マニフェストはキャッシュされるので、import-manifestimport-manifest-with-selector に渡されたルートマニフェストと異なる可能性があります。


root-delegate-selectors (アクセサ)
アクセサ public inline ComponentManifest.root-delegate-selectors:{ReadOnlyArray-of ComponentSelector }

デリゲートセレクターはルートマニフェストが必要です。

説明

これは ComponentSelector を返します。この ComponentSelector はこのマニフェストをロードするためにルートマニフェストの中にある必要があります。
このマニフェストがデリゲートを持たないか、明確なロケーションを使用してデリゲートしている場合、このリストは空です。
導入: バージョン 7.0


root-url (アクセサ)
アクセサ public ComponentManifest.root-url:#Url

このマニフェストをインポートして使用されたルートマニフェストの URL。

説明

このマニフェストのインスタンスをインポートした時に使用されたルートマニフェストの URL を存在すれば明示します。
これは rootsource-url を返します。
導入: バージョン 7.0


root? (アクセサ)
アクセサ public ComponentManifest.root?:bool

マニフェストがそれ自身のルートであるかどうか示します。

説明

これはデリゲートマニフェストとルートマニフェストが別の場所に配置されることなくソース URL からロードできたかどうかを示します。
以下のうちどれかが true になるなら、これは true になります。
  • マニフェストが他のマニフェストにデリゲートしていない。
  • マニフェストは場所を明確にしている他の全てのマニフェストにデリゲートしている。
  • マニフェスト自身が直接・非直接的にデリゲートしているマニフェストに対して component エントリーを含んでいる。
導入: バージョン 7.0


size (アクセサ)
アクセサ public final inline ComponentManifest.size:int

マニフェスト内のセレクタの数。





クラス プロシージャ詳細
select (クラスプロシージャ)
public {ComponentManifest.select
selectors:{Array-of ComponentSelector},
comparison-proc:{proc-type {s1:ComponentSelector, s2:ComponentSelector}:bool} = ComponentSelector.prefer-first?
}:#ComponentSelector

selectors からセレクタを選択します。

説明

既定が ComponentSelector.prefer-first?comparison-proc を使用し、selectors から優先されるセレクタを選択します。

selectors が空の場合は null を返します。



メソッド詳細
add (メソッド)
public final {ComponentManifest.add selector:ComponentSelector}:void

selector をマニフェストに追加します。

説明

selectorvalidate-for-add で検証され、component-type、name および最低 1 つの location が含まれているかどうか確認されます。

マニフェストがフリーズしている場合はエラーをスローします。


compatible-with-root? (メソッド)
public {ComponentManifest.compatible-with-root?}:bool

指定されたマニフェストがルートから読み込まれたかどうかを示します。

説明

このマニフェストが指定されたルートマニフェストからロードしているかを示します。root-delegate-selectors の全てのエントリーは root のエントリーとマッチします。注意 : これが true であるためには、root がこのマニフェスト自身に対するエントリーを含む必要はありません。
導入: バージョン 7.0


freeze (メソッド)
public final {ComponentManifest.freeze}:void

変更できないようにマニフェストをフリーズします。

説明

frozen? 属性を true に設定して変更メソッドが使用できないようにします。また。マニフェストの meta-data およびマニフェスト内のすべてのセレクタをフリーズします。

マニフェストがすでにフリーズしている場合は何も行なわれません。


get (メソッド)
public final inline {ComponentManifest.get n:int}:ComponentSelector

マニフェスト内の n 番目のセレクタを返します。

説明

セレクタは、component-typename、および挿入された順でソートされ管理されています。したがって、セレクタの added または removed に応じて、指定されたセレクタの位置がマニフェスト内で変わる可能性があります。マニフェストが frozen? が true になると、その順序は変わらなくなります。

n がゼロより小さいか、マニフェストのサイズ以上の場合はエラーをスローします。


lookup (メソッド)
public final {ComponentManifest.lookup
meta-data:ComponentMetaData,
out:{Array-of ComponentSelector} = {new {Array-of ComponentSelector}},
look-in-delegates?:bool = true,
match-location?:bool = false,
default-manifest:ComponentManifest = self
}:(results:{Array-of ComponentSelector}, manifest:ComponentManifest)

マニフェスト内で meta-data に一致するセレクタを検索します。

out: 結果を追加する配列を指定します。
look-in-delegates?: このマニフェスト内で一致が見つからない場合に、デリゲート マニフェストを検索するかどうかを決定します。
match-location?: これが true で meta-dataComponentSelector の場合、そのセレクタの location-hints のうち少なくとも 1 つが、一致するセレクタの location-hints と同じであることが必要です。
default-manifest: 一致が見つからない場合に返す既定のマニフェストです。

戻り値

一致するすべての結果を追加した results と、取得された結果からのマニフェストを返します。追加する結果がない場合、default-manifest を返します。

説明

このマニフェスト内で、指定された meta-data に一致するセレクタを見つけて返します。このマニフェスト内で一致がなく、look-in-delegates? が true の場合、一致が見つかるまで direct-delegates リストの各デリゲート マニフェストで検索が順次実行されます。
結果はすべて、常に 1 つのマニフェストから収集される点に注意してください。マニフェストとそのデリゲート全部から一致を集める場合は、all-delegates リスト内の個々のマニフェストを直接検索し、結果を共通配列に書き込みます。
let results:{Array-of ComponentSelector} =
    {new {Array-of ComponentSelector}}
{for delegate in manifest.all-delegates do
    {delegate.lookup 
        meta-data, out = results, look-in-delegates? = false
    }
}


lookup-and-select (メソッド)
public final {ComponentManifest.lookup-and-select
meta-data:ComponentMetaData,
comparison-proc:{proc-type {s1:ComponentSelector, s2:ComponentSelector}:bool} = ComponentSelector.prefer-first?,
look-in-delegates?:bool = true,
match-location?:bool = false,
default-manifest:ComponentManifest = self
}:(#ComponentSelector,ComponentManifest)

meta-data に一致するセレクタを検索して優先されるものを選択します。

説明

ComponentManifest.select を使い、look-in-delegates? フラッグの指定に従って検索された ComponentManifest.lookup の戻り値の中から選択します。見つかったセレクタを含むマニフェストも返します。一致が見つからない場合、null とこのマニフェストを返します。


remove (メソッド)
public final {ComponentManifest.remove n:int}:void

マニフェストから n 番目のセレクタを削除します。

説明

マニフェストがフリーズしている場合、または n がゼロあるいはマニフェストのサイズ以上の場合はエラーをスローします。


select-url (メソッド)
public {ComponentManifest.select-url
meta-data:ComponentMetaData,
comparison-proc:{proc-type {s1:ComponentSelector, s2:ComponentSelector}:bool} = ComponentSelector.prefer-first?
}:Url

meta-data に一致する優先される位置を検索して選択します。

説明

ComponentManifest.lookup-and-select を使用して、指定した meta-data に一致する、優先される ComponentSelector の位置をこのマニフェスト内で検索し、その location-hints の最初のアイテムを返します。

一致するセレクタが見つからなかった場合は ComponentLocationException をスローします。


set-direct-delegates (メソッド)
public {ComponentManifest.set-direct-delegates}:void

このマニフェストのダイレクトデリゲートを設定します。

delegates: マニフェストの新しい直接的なデリゲートを指定します。
導入: バージョン 7.0

説明

これは、指定された delegates オブジェクトの基になっている direct-delegatesdirect-delegate-selectors の両方のリストを置き換え、適宜 all-delegates リストを更新します。
このマニフェストは frozen? が true の場合、エラーがスローされます。


SHA-1-digest-for-location (メソッド)
public {ComponentManifest.SHA-1-digest-for-location
location:Url
}:#SHA-1-Digest

位置に対する SHA-1-digest 値を検索し返します。

説明

マニフェストと指定された location のエントリに対するデリゲート マニフェストを検索し、それらから見つかった最初の SHA-1-digest 値を返します。


validate-for-add (メソッド)
public final {ComponentManifest.validate-for-add}:void

selectoradd に渡されるための条件を満たしているかどうか調べます。

説明

以下の 1 つが true でない場合、Error をスローします。



これは add メソッドによって呼び出されます。