applet (マクロ)
パッケージ: CURL.LANGUAGE.COMPILER

アプレットの宣言。

シグネチャ

{applet [ APPLET-NAME ]
[, manifest = "path" ]
[, curl-root = "path" ]
[, locale = "name" ]
[, package-caching-style = "style" ]
[, resync-as-of = {utc-date-time "date"} ]
[, resync-file = "path" ]
[, resync-adjust? = true ]
[, name = value [, ...] ]
[, {compiler-directives directives} ] }
APPLET-NAME: はアプレットのオプションの名前です。この名前は、ドット ('.') で区切られた 1個または複数の有効な Curl 識別子で構成されていることが必要です。パッケージ名で推奨されているのと同じ命名規則を使用することをお勧めします。package ステートメントのドキュメントを参照してください。

説明

この式を指定する場合は、任意の Curl アプレットソースファイルの最初で curl 式の後に配置する必要があります。以下を指定できます。
マニフェスト指定
アプレットでは既定のコンポーネントマニフェストの場所を指定して、コンパイルおよび実行中にパッケージや他のコンポーネント、またはリソースを見つけるためにこれを使用することができます。宣言のフォーマットは次のとおりです。
manifest = "path"
ここで、path は現在のアプレットの絶対 URL か相対パスです。
マニフェストを指定した場合は applet 宣言処理の直後にロードされ、マニフェストへのアクセスが不可能な場合やマニフェストが正しくない場合にはエラーが発生します。
注意 : アプレットが別のアプレットにインクルードされている場合、そのマニフェスト宣言は無視されます。
結果として、マニフェストには get-default-manifest を使ってアクセスできます。
『開発者ガイド』の 「マニフェスト」 も参照して下さい。
curl-root
アプレットの curl-root を指定します。
詳細は process-get-curl-root を参照して下さい。
ロケール
アプレットで使用する作業ロケールの名前を指定します。ここで指定しない場合、作業ロケールは既定によりホストのロケールになります。
詳細は get-working-locale を参照して下さい。
package-caching-style
アプレットで使用するパッケージキャッシングの方法を指定します。
詳細は package-caching-style を参照して下さい。
resync-as-of
アプレットの同期を行なう日時を指定します。これにより、ローカルにキャッシュされた全てのファイルやパッケージが指定日時に強制的に同期されます。
例えば、次の宣言により 2003 年 10 月 11 日より前にキャッシュされたファイルは必ず再同期されます。
{applet
    resync-as-of = {utc-date-time "2003-10-11"}
}
詳細は process-resync-as-of を参照して下さい。
resync-file
アプレットの同期を行なう日時を設定するために使用するファイルの場所を指定します。path は絶対 URL か現在のアプレットからの相対パスです。また、アプレット自身の場所を指定するのに空文字を使用することができます。
同期する日時は指定されたファイルの when-last-modified 属性によって調節され決められます。調節については ドキュメント resync-adjust? 宣言のセクションに記述されています。この日時は、指定されたファイルの更新日時の方が後だった場合にのみ resync-as-of 宣言で指定された日時を上書きします。
詳細は process-resync-as-of を参照して下さい。
resync-adjust?
アプレットが HTTP で始まるアドレスのファイルを resync-file で指定し、resync-adjust? フラグが明示的に false と設定されていない場合、同期する日時は HTTP サーバの時刻の日時とローカルマシンの日時のずれを調節します。
既定では true であるため、明示的に true と指定する理由は特にありません。
コンパイラディレクティブ
宣言では、{compiler-directives ...} 句を使ってパッケージ内でコンパイル属性をグローバルに設定できます。内部構文は with-compiler-directives と同じです。
メタデータ
次のフォーマットを使って、任意のメタデータを指定できます。
name = value
manifestlocaleresync-as-of はメタデータの特別なケースです。
アプレットのメタデータは、アプレットのトップレベルのパッケージ (get-current-package によって返される) の meta-data フィールドを介してアクセスできます。
『開発者ガイド』に メタデータ の詳細があります。
追加のソースファイルのリスト
宣言で {files ...} 句を使って宣言の直後にインクルードする 1 つまたは複数のファイルを指定できます。各ファイルは、その相対または絶対パスを含む文字リテラルとして指定します。これは、include ステートメントを指定してリストに各ファイルを含めるのと同じになります。実際には {files ...} 句の使用は推奨されておらず、代わりに include の使用が推奨されています。


アプレットに他のアプレットがインクルードされる場合があるため、重複する宣言が見つかる可能性があります。これは以下の条件付で許可されます。
  1. 宣言内で定義されているメタデータ値は、アプレット宣言でまだ定義されていないか、既に定義されている値と同じ値を指定すること。
  2. compiler-directives が、既に定義された compiler-directives と同じであること。
  3. 宣言でアプレット名を指定する場合、既に定義された名前に一致させること。
files 句が存在する場合、重複するアプレットの宣言でそれぞれ異なる可能性がありますが、この場合は通常の方法で処理されます。

|| A typical applet declaration specifying a manifest and
|| synchronizing based on the applet's last modification time:
{applet
    manifest = "manifest.mcurl",
    resync-file = ""
}

...
|| A more comprehensive declaration:
{applet COM.YOUR-COMPANY.YOUR-PRODUCT.YOUR-APPLET,
    version = "1.2.3",
    author = "Joe Soap",
    manifest = "manifest.mcurl",
    resync-file = "",
    {compiler-directives
        stringent? = true
    }
}

改訂

resync-fileresync-adjust? の制御が Curl 7.0 で初めて実装されました。

ライセンス

Curl/Pro サーバー・ライセンスのライセンスがサーバーにインストールされていないと、アプレットの一部の機能は無効になります。ローカルなファイル システムからロードされるアプレットには、この制限はありません。

Curl/Pro サーバー・ライセンスのみで利用可能な機能については、「Curl/Personal IDEおよび Curl/Pro IDE」 をご覧ください。