(クラス)
public sealed serializable ComponentMetaData
{inherits
Serializable}
コンストラクタ public | {ComponentMetaData.default} |
アクセサ public sealed ComponentMetaData.author:#
String セッター public sealed ComponentMetaData.author:#
String
アクセサ public sealed ComponentMetaData.cache-duration:
Time セッター public sealed ComponentMetaData.cache-duration:
Time
アクセサ public sealed inline ComponentMetaData.compilation-time:#
DateTimeData セッター public sealed ComponentMetaData.compilation-time:#
DateTimeData
アクセサ public sealed inline ComponentMetaData.component-type:#
String セッター public sealed ComponentMetaData.component-type:#
String
アクセサ public sealed inline ComponentMetaData.content-id:#
ComponentID セッター public sealed ComponentMetaData.content-id:#
ComponentID
アクセサ public sealed inline ComponentMetaData.content-size:
int セッター public sealed ComponentMetaData.content-size:
int
アクセサ public sealed ComponentMetaData.copyright:#
String セッター public sealed ComponentMetaData.copyright:#
String
アクセサ public sealed inline ComponentMetaData.curl-api-version:#
VersionNumber セッター public sealed ComponentMetaData.curl-api-version:#
VersionNumber
アクセサ public sealed ComponentMetaData.curl-versions:#{
ReadOnlyArray-of VersionNumber}
セッター public sealed ComponentMetaData.curl-versions:#{
ReadOnlyArray-of VersionNumber}
アクセサ public sealed inline ComponentMetaData.debuggable?:
bool セッター public sealed ComponentMetaData.debuggable?:
bool
アクセサ public sealed ComponentMetaData.default-locale:#
String セッター public sealed ComponentMetaData.default-locale:#
String
アクセサ public sealed ComponentMetaData.file:#
String セッター public sealed ComponentMetaData.file:#
String
アクセサ public sealed inline ComponentMetaData.file-format:#
String セッター public sealed ComponentMetaData.file-format:#
String
files: | コンポーネントに含まれるファイル名のリスト。 |
frozen?: | オブジェクトが "フリーズ" されているかどうかを示します。 |
フィールド public-get hidden-set ComponentMetaData.frozen?:
bool
アクセサ public sealed inline ComponentMetaData.id:#
ComponentID
アクセサ public sealed inline ComponentMetaData.jit-compilable?:
bool セッター public sealed ComponentMetaData.jit-compilable?:
bool
アクセサ public sealed inline ComponentMetaData.jit-compiled?:
bool セッター public sealed ComponentMetaData.jit-compiled?:
bool
アクセサ public sealed ComponentMetaData.license:#
String セッター public sealed ComponentMetaData.license:#
String
アクセサ public sealed ComponentMetaData.locale:#
String セッター public sealed ComponentMetaData.locale:#
String
アクセサ public sealed ComponentMetaData.manifest:#
String セッター public sealed ComponentMetaData.manifest:#
String
アクセサ public sealed inline ComponentMetaData.name:#
String セッター public sealed ComponentMetaData.name:#
String
アクセサ public sealed ComponentMetaData.package-caching-style:#
String セッター public sealed ComponentMetaData.package-caching-style:#
String
アクセサ public sealed ComponentMetaData.release-notes:#
String セッター public sealed ComponentMetaData.release-notes:#
String
アクセサ public sealed ComponentMetaData.release-timestamp:#
DateTimeData セッター public sealed ComponentMetaData.release-timestamp:#
DateTimeData
アクセサ public final ComponentMetaData.requires-privilege?:
bool セッター public final ComponentMetaData.requires-privilege?:
bool
アクセサ public sealed ComponentMetaData.resource-directory:#
String セッター public sealed ComponentMetaData.resource-directory:#
String
アクセサ public sealed ComponentMetaData.resync-adjust?:
bool セッター public sealed ComponentMetaData.resync-adjust?:
bool
アクセサ public sealed ComponentMetaData.resync-as-of:#
DateTimeData セッター public sealed ComponentMetaData.resync-as-of:#
DateTimeData
アクセサ public sealed ComponentMetaData.resync-file:#
String セッター public sealed ComponentMetaData.resync-file:#
String
アクセサ public sealed ComponentMetaData.SHA-1-digest:#
SHA-1-Digest セッター public sealed ComponentMetaData.SHA-1-digest:#
SHA-1-Digest
アクセサ public final ComponentMetaData.source-url:#
Url
アクセサ public sealed ComponentMetaData.source-url-name:#
String セッター public sealed ComponentMetaData.source-url-name:#
String
アクセサ public sealed inline ComponentMetaData.transitive-id:#
ComponentID セッター public sealed ComponentMetaData.transitive-id:#
ComponentID
アクセサ public sealed ComponentMetaData.translations-file:#
String セッター public sealed ComponentMetaData.translations-file:#
String
アクセサ public sealed inline ComponentMetaData.version:#
VersionNumber
public | {ComponentMetaData.supported-value-type? type:Type}:bool |
public sealed | {ComponentMetaData.assert-match component:Component}:void |
protected final | {ComponentMetaData.assert-not-frozen}:void |
freeze: | メタデータが変更できないようにこれをフリーズします。 |
public sealed inline | {ComponentMetaData.freeze}:void |
get: | 指定した key に対するメタデータの値を取得します。 |
public sealed | {ComponentMetaData.get key:String}:any |
public sealed | {ComponentMetaData.get-if-exists}:(value:any, found?:bool) |
public sealed inline | {ComponentMetaData.keys-to-Iterator }:{Iterator-of String} |
matches?: | other が現在のオブジェクトの属性に一致するかどうかを示します。 |
public sealed | {ComponentMetaData.matches?}:(match?:bool, first-non-match:#String) |
protected sealed | {ComponentMetaData.set-meta-data ...}:void |
set?: | key の値が設定されているかどうかを示します。 |
public sealed | {ComponentMetaData.set? key:String}:bool |
unset: | key の既存の値の設定を解除します。 |
public sealed inline | {ComponentMetaData.unset key:String}:void |
(コンストラクタ)
public | {ComponentMetaData.default} |
メタデータを初期化します。
component: 指定された場合、メタデータはコンポーネントから抽出されます。他に引数を指定する必要はありません。
現時点では、コンポーネントの id は url-name と同じですがこれは最終的には変更されることになっています。
from-string:
Curl のソース フォーム内の文字列から、カンマ区切りのキーワード/値のペアを解析します。次に例を示します。
{ComponentMetaData
from-string = |"name = "A", version = "1.0""|
}
copy-from: null でない場合、指定したオブジェクトからメタデータがコピーされます。
...: キーワードと値のペア。これらを指定するには、キーワード引数を使用するかまたは文字列の後に値を続けて指定します。メタデータ名が単純な識別子でない場合は後者を指定する必要があります。次に例を示します。
{new ComponentMetaData,
version="1.2",
"my.private-info", 42
}
(アクセサ)
アクセサ public sealed ComponentMetaData.author:#
String セッター public sealed ComponentMetaData.author:#
String
(アクセサ)
アクセサ public sealed ComponentMetaData.cache-duration:
Time セッター public sealed ComponentMetaData.cache-duration:
Time 期限切れチェックを実行せずにコンポーネントをキャッシュできる期間。
説明
コンポーネントが基礎となるソースからみて期限切れかどうかのチェックなしに、メモリ内またはディスク上にコンポーネントがキャッシュされる期間を示します。現在、この属性は Curl パッケージとマニフェストのみで有効です。
負の数の場合は無視されます。これは期間が未設定であることを示すのに使います。
(アクセサ)
アクセサ public sealed inline ComponentMetaData.compilation-time:#
DateTimeData セッター public sealed ComponentMetaData.compilation-time:#
DateTimeData コンポーネントのコンパイル開始を識別するタイムスタンプ。
説明
(アクセサ)
アクセサ public sealed inline ComponentMetaData.component-type:#
String セッター public sealed ComponentMetaData.component-type:#
String
(アクセサ)
アクセサ public sealed inline ComponentMetaData.content-id:#
ComponentID セッター public sealed ComponentMetaData.content-id:#
ComponentID コンポーネントに対する一意かつ確実なコンテンツ識別子。
説明
Package については、コンテンツに基づいてシステムで自動的に生成されます。
(アクセサ)
アクセサ public sealed inline ComponentMetaData.content-size:
int セッター public sealed ComponentMetaData.content-size:
int コンポーネントのサイズ。
説明
これは、Curl パッケージ、アプレット、スクリプトについてシステムで自動的に計算されます。単位は次の
file-format に応じて決まります。
- "source" :文字数
- "pcurl" :バイト数
- "dll" 、"ocurl" および "exe" :元のソース内の文字数。
注意 : Curl パッケージまたはスクリプトソース内の文字数には、トップレベル (すなわち任意の Curl ブラケットの外側) の空白またはコメントが含まれていません。したがって、次の 2 つのパッケージは同じ
content-size を生成することになります。
{curl 8.0 package}
{package FOO}
|| This will be ignored
{define-proc public {foo}:void}
{curl 8.0 package}
{package FOO}
{define-proc public {foo}:void}
(アクセサ)
アクセサ public sealed ComponentMetaData.copyright:#
String セッター public sealed ComponentMetaData.copyright:#
String
(アクセサ)
アクセサ public sealed inline ComponentMetaData.curl-api-version:#
VersionNumber セッター public sealed ComponentMetaData.curl-api-version:#
VersionNumber コンパイル コンポーネントに対して使用される Curl ヘラルドの API バージョン。
説明
これは自動的に
curl ヘラルドから計算され、コードのコンパイルに使用される Curl API バージョンと一致する
curl-versions のバージョンになります。
{if-non-null my-version = meta-data.curl-api-version then
{for installed-version in {get-installed-api-versions} do
{if {my-version.partial-match? installed-version} then
let my-installed-version:VersionNumber =
installed-version
...
{break}
}
}
}
または、単純に 2 つのコンポーネントにバージョン番号を切り捨てます。
{if-non-null my-version = meta-data.curl-api-version then
let my-installed-version:VersionNumber =
{my-version.n-clone n = 2}
...
}
(アクセサ)
このコンポーネントの curl-file-sinatures の内容。
説明
アプレット、パッケージ、マニフェストおよびスクリプトに対して自動的に計算され、コンポーネントに表示されるそれぞれの
curl-file-signature の内容が含まれます。内容に含まれるすべての空白は削除されます。
(アクセサ)
アクセサ public sealed ComponentMetaData.curl-versions:#{
ReadOnlyArray-of VersionNumber}
セッター public sealed ComponentMetaData.curl-versions:#{
ReadOnlyArray-of VersionNumber}
コンポーネントに対応する Curl バージョンのリスト。
説明
これは、ソース ファイルでコンポーネントに使用される
curl 式から自動的に取得されます。
(アクセサ)
アクセサ public sealed inline ComponentMetaData.debuggable?:
bool セッター public sealed ComponentMetaData.debuggable?:
bool コンポーネントがデバック可能であるかどうかを示します。既定は false です。
説明
(アクセサ)
アクセサ public sealed ComponentMetaData.default-locale:#
String セッター public sealed ComponentMetaData.default-locale:#
String コンポーネントの既定のロケールです。
説明
導入:
バージョン 6.0
(アクセサ)
アクセサ public sealed ComponentMetaData.file:#
String セッター public sealed ComponentMetaData.file:#
String リソースの抽象的なファイル名です。
説明
導入:
バージョン 6.0
(アクセサ)
アクセサ public sealed inline ComponentMetaData.file-format:#
String セッター public sealed ComponentMetaData.file-format:#
String コンポーネントのファイル形式。
説明
これは Curl のコンポーネント用に自動的に生成されます。可能な値:
- "source": Curl 言語ソースコード
- "pcurl": Curl パッケージに使われる圧縮されてさらにプリプロセスされた形式。
- "ocurl": ディスクから速くロードするためのバイナリ形式のパッケージ。パーシスタント キャッシュのパッケージで使われます。 ComponentMetaData.package-caching-style を参照してください。
- "dll": Curl Dynamic Link Library (DLL) 内にコンポーネントがバイナリ形式で保存されていることを示します。
- "exe": コンポーネントが実行可能なプログラムのバイナリ形式で保存されていることを示します。
(アクセサ)
(フィールド)
public-get hidden-set ComponentMetaData.frozen?:
bool オブジェクトが "フリーズ" されているかどうかを示します。
説明
メタデータ オブジェクトがフリーズしているときにメタデータの値を変更しようとするとエラーになります。
(アクセサ)
アクセサ public sealed inline ComponentMetaData.id:#
ComponentID コンポーネントの一意の識別子。
説明
Package については、ソース コードの内容に基づいてコンパイラで自動的に生成されます。
(アクセサ)
アクセサ public sealed inline ComponentMetaData.jit-compilable?:
bool セッター public sealed ComponentMetaData.jit-compilable?:
bool コンポーネントが JIT コンパイルを許容するかどうかを示します。既定は true です。
(アクセサ)
アクセサ public sealed inline ComponentMetaData.jit-compiled?:
bool セッター public sealed ComponentMetaData.jit-compiled?:
bool コンポーネントが JIT でコンパイルされたかどうかどうかを示します。既定は true です。
説明
これはコンパイラによって自動的に設定されます。
(アクセサ)
アクセサ public sealed ComponentMetaData.license:#
String セッター public sealed ComponentMetaData.license:#
String
この項目はサポートされていません。内部使用限定となっています。
(アクセサ)
アクセサ public sealed ComponentMetaData.locale:#
String セッター public sealed ComponentMetaData.locale:#
String コンポーネントのロケールを識別します。
説明
アプレットまたはスクリプトなどの実行可能コンポーネントでは、プログラムの初期の有効なロケールを決定するのにこれを使います。
set-working-locale を参照してください。
パッケージやマニフェストなどのその他の種類のコンポーネントでは、この属性を指定しても有効なロケールには反映されませんが、コンポーネントに使用するロケールを指定するためにこれを使うことができます。
(アクセサ)
アクセサ public sealed ComponentMetaData.manifest:#
String セッター public sealed ComponentMetaData.manifest:#
String このコンポーネントに関連つけられたマニフェストの場所。
説明
このコンポーネントに関連付けられたマニフェストが存在すればその場所。絶対 URL 文字列でなければなりません。
パッケージの場合、明示的な場所の指定とともにパッケージがインポートされていて、インポート側のコードが使用するマニフェストではこのパッケージのエントリを見つけられない場合に、既定のマニフェストを探す目的のみでこれを使います。
注意 : コンポーネント宣言で対応するキーワード (
applet など) を設定した結果としてこの値が得られた場合、文字列の値はメインファイルを基準とする相対パスの可能性があると解釈されます。
{curl 8.0 applet}
{applet
manifest = "my-manifest.mcurl"
}
{assert {abs-url? {non-null {this-package}.meta-data.manifest}}}
例
次の例では、アプレットはマニフェストを使用せず、B の場所を明示的に指定してこれをインポートしていますが、パッケージ B のマニフェスト宣言により、このマニフェストを使ってパッケージ A を見つけることができます。B のエントリを含む別のマニフェストをこのアプレットが宣言した場合は、B のマニフェスト宣言は無視されます。
|| manifest.mcurl
{curl 8.0 manifest}
{component package A, location = "a.scurl"}
{component package B, location = "b.scurl"}
|| a.scurl
{curl 8.0 package}
{package A, manifest = "manifest.mcurl"}
...
|| b.scurl
{curl 8.0 package}
{package B, manifest = "manifest.mcurl"}
{import A} || no explicit location given
...
|| applet.curl
{curl 8.0 applet}
{import B, location = "b.scurl"}
...
(アクセサ)
アクセサ public sealed inline ComponentMetaData.name:#
String セッター public sealed ComponentMetaData.name:#
String コンポーネントの名前。
説明
これは、コンポーネントが定義されたときに使用された名前です。
(アクセサ)
このコンポーネントのソースの可能性がある URL のリスト。
説明
コンポーネントがロードされた実際の
source-url-name が含まれますが、同一のコンポーネントがロードされたその他の場所もリストに含まれている可能性があります。
フリーズされたメタデータ オブジェクトのこの属性にアクセスできるのは特権プロセスに限られています。それ以外の場合は null が返されます。
パッケージの場合、これはコンパイル時に自動的に設定されます。
(アクセサ)
アクセサ public sealed ComponentMetaData.package-caching-style:#
String セッター public sealed ComponentMetaData.package-caching-style:#
String このコンポーネントのパッケージのキャッシング スタイル。
説明
この属性はアプレットやスクリプトのような、実行可能なコンポーネントのみに適用します。 これは、パーシスタントパッケージキャッシングがプログラムでどのように利用されるかを指定します。
パーシスタント パッケージ キャッシング (Curl API バージョン 3.0 で導入) は、パッケージを持続的にディスクにキャッシュして、後に続くセッションで敏速にロードできるようにします。
キャッシングは Curl コントロールパネルの一般タブで無効にすることができます。既定では有効になっています。
有効な値:
- "lazy" (既定)
- 新しいキャッシュが遅れてバックグラウンドで保存されている間、以前に保存されたキャッシュを使用することができます。これは、ほとんどのアプレットで最も良いキャッシングの方法であり、アプリケーションが終了するまでに全てのパッケージをキャッシュすることができます。
- "on-import"
- パッケージは常に使用する直前に追加されます。結果として、パッケージがまだキャッシュされていない場合は、初期の起動に時間がかかることになります。
- "read-only"
- 以前に保存したキャッシュを使用することはできますが、新しいキャッシュを追加することはできません。
- "none"
- パーシスタントパッケージ キャッシュの使用を無効にします。
既定値以外の設定をする場合は、
applet (または
script) 宣言で設定します。
例:
{curl 8.0 applet}
{applet
|| Disable persistent package caching.
package-caching-style = "none"
}
プログラミング注意事項
- 個々の import の記述に対して package-caching-style を設定するのは不可能です。アプレット全体のみに属性を設定することができます。
パッケージのインスタンスがキャッシュからロードされたかどうかは、
file-format メタデータの属性を以下のようにプログラムで検証します。例:
let p:Package = MY-PACKAGE
let from-cache?:bool =
p.meta-data.file-format == "ocurl"
- たとえパッケージが持続的にキャッシュされ、package-caching-style が "lazy" または "read-only" である場合でも、使用可能なインスタンスがメモリに既にロードされていると、キャッシュされたバージョンはロードされません。
- Curl コントロールパネルの一般タブにあるキャッシュ設定ダイアログからキャッシュにあるパッケージに関する情報を検証することができます。
(アクセサ)
アクセサ public sealed ComponentMetaData.release-notes:#
String セッター public sealed ComponentMetaData.release-notes:#
String
(アクセサ)
アクセサ public sealed ComponentMetaData.release-timestamp:#
DateTimeData セッター public sealed ComponentMetaData.release-timestamp:#
DateTimeData
(アクセサ)
アクセサ public final ComponentMetaData.requires-privilege?:
bool セッター public final ComponentMetaData.requires-privilege?:
bool コンポーネントを使用するために特権が必要かどうか。
説明
package 宣言が true に設定される場合、これは現在のプロセス (たとえば、アプレットまたはスクリプトなど) に特権が与えられていないときにパッケージがインポートされることを防ぎます。間接的で特権がないインポートも許可されません。
(アクセサ)
アクセサ public sealed ComponentMetaData.resource-directory:#
String セッター public sealed ComponentMetaData.resource-directory:#
String コンポーネントのリソースがあるルート ディレクトリを指定します。
説明
導入:
バージョン 6.0
(アクセサ)
アクセサ public sealed ComponentMetaData.resync-adjust?:
bool セッター public sealed ComponentMetaData.resync-adjust?:
bool resync-file から同期する日時を調節するかどうか。
説明
導入:
バージョン 7.0
(アクセサ)
アクセサ public sealed ComponentMetaData.resync-as-of:#
DateTimeData セッター public sealed ComponentMetaData.resync-as-of:#
DateTimeData コンポーネントの再同期の時刻。
説明
アプレット、スクリプトまたはマニフェストのメタデータで指定する場合、この属性を
process-resync-as-of 値の設定に使うことができます。このプロシージャは、アプレットまたはスクリプトによってロードされたファイルやコンポーネントを指定時刻に強制的に同期するものです。
{applet
resync-as-of = {utc-date-time "2003-10-11"}
}
(アクセサ)
アクセサ public sealed ComponentMetaData.resync-file:#
String セッター public sealed ComponentMetaData.resync-file:#
String 指定したファイルからコンポーネントの再同期する時間を設定します。
説明
このセッターを使って値を設定する時、値は絶対 URL でなければなりません。そうでない場合例外がスローされます。
applet や
script 宣言の中で設定する時、相対パスが使用でき、空文字はメインアプレットやスクリプトのロードファイルを省略した形です。
導入:
バージョン 7.0
(アクセサ)
アクセサ public sealed ComponentMetaData.SHA-1-digest:#
SHA-1-Digest セッター public sealed ComponentMetaData.SHA-1-digest:#
SHA-1-Digest
(アクセサ)
アクセサ public final ComponentMetaData.source-url:#
Url
(アクセサ)
アクセサ public sealed ComponentMetaData.source-url-name:#
String セッター public sealed ComponentMetaData.source-url-name:#
String コンポーネントのコンパイル元であるソースの絶対 URL を含む文字列。
説明
これはコンパイル時に自動的に設定されます。
(アクセサ)
アクセサ public sealed inline ComponentMetaData.transitive-id:#
ComponentID セッター public sealed ComponentMetaData.transitive-id:#
ComponentID 依存関係を含むコンポーネントの一意の id。
説明
(アクセサ)
アクセサ public sealed ComponentMetaData.translations-file:#
String セッター public sealed ComponentMetaData.translations-file:#
String コンポーネントの翻訳ファイルの名前を指定します。
説明
導入:
バージョン 6.0
(アクセサ)
アクセサ public sealed inline ComponentMetaData.version:#
VersionNumber
(クラスプロシージャ)
public | {ComponentMetaData.supported-value-type? type:Type}:bool |
type をメタデータの値として使用できるかどうかを示します。
説明
(メソッド)
public sealed | {ComponentMetaData.assert-match component:Component}:void |
(メソッド)
protected final | {ComponentMetaData.assert-not-frozen}:void |
コンポーネントがフリーズしていないことを示します。
説明
オブジェクト上で任意の変更操作を開始する前にこれを呼び出す必要があります。
(メソッド)
オブジェクトのコピーを返します。
説明
コピーはフリーズされません。
(メソッド)
public sealed inline | {ComponentMetaData.freeze}:void |
メタデータが変更できないようにこれをフリーズします。
説明
(メソッド)
public sealed | {ComponentMetaData.get key:String}:any |
指定した key に対するメタデータの値を取得します。
key: メタデータ アイテムの名前。値を設定する目的で以前に使用されたキーと一致する必要があります。
戻り値
(メソッド)
public sealed | {ComponentMetaData.get-if-exists}:(value:any, found?:bool) |
指定した key に対するメタデータの値を取得します。
key: メタデータ アイテムの名前、および要求するアイテムが見つかったかどうかを示すフラグ。値を設定する目的で以前に使用されたキーと一致する必要があります。
戻り値
key または default に関連付けられている値を返します。
また、要素が見つかったかどうかを示すブール値を返します。
(メソッド)
public sealed inline | {ComponentMetaData.keys-to-Iterator }:{Iterator-of String} |
メタデータ内のキーの反復子を返します。
説明
値が設定されているキーのみ返します。
これにより、次に示すようにメタデータ オブジェクトをキー付きの
for ループで使用できるようになります。
{for value:any key keyword:String in meta-data do
...
}
(メソッド)
public sealed | {ComponentMetaData.matches?}:(match?:bool, first-non-match:#String) |
other が現在のオブジェクトの属性に一致するかどうかを示します。
戻り値
一致したかどうかを示す
bool、および一致しない最初のメタデータの値の名前。
説明
現在のオブジェクトで設定されている各メタデータの値について、other 内の対応する要素が同じ値を持つ場合、other は一致しているとみなされます。
"locale" 属性の場合も別の特例になります。完全一致のほかに、
other オブジェクトのロケール属性が、存在しないか、null、値 "default"、あるいはロケール文字列で最初の('.')、('-')、 または ('@') までの部分と同じであれば、ロケール文字列は一致したとみなされます。 たとえばロケール文字列 "en-US.UTF-8" は、"en-US.UTF-8"、"en-US.UTF"、"en-US"、"en"、"default" または値なしと一致することになります。ロケールが一致の優先順位に与える影響については、
ComponentSelector.compare も参照してください。
(メソッド)
(メソッド)
protected sealed | {ComponentMetaData.set-meta-data ...}:void |
(メソッド)
public sealed | {ComponentMetaData.set? key:String}:bool |
(メソッド)
public sealed inline | {ComponentMetaData.unset key:String}:void |