(クラス)
public sealed PrivilegedUrl
{inherits
Url}
PrivilegedUrl は安全なファイル ハンドルで、非特権アプレットはこれを使ってファイルの I/O 操作を要求できます。
PrivilegedUrl は、エンドユーザーがアプレット使用のために選択した元の
Url と、エンドユーザーがそのアプレットに与えたアクセス権を表します。
PrivilegedUrl は、非特権アプレットが元の
Url とアクセス権のどちらも変更できないので「安全」といえます。
説明
非特権アプレットは、
choose-file などの「ファイルを開く」ダイアログのルーチンを呼び出すだけで
PrivilegedUrl を取得します。ユーザーがファイル ダイアログでファイルを参照して承認した後、非特権アプレットは次の 2 つの方法で
PrivilegedUrl を使用できます。
- read-open、write-to などの I/O 呼び出しで使用する (最も一般的な方法)。
- 別の「ファイルを開く」ダイアログの呼び出しで、既定の場所として使用する (choose-file の例を参照)。
注意事項
PrivilegedUrl がシリアル化される際に実際にダンプ アウトされるオブジェクトは元の url です。これは 2 つの明らかな効果をもたらします。まず、このオブジェクトにはソース オブジェクトが持っていた特権がありません。さらに、このオブジェクトがリード バックされても、PrivilegedUrl 型の変数に代入することができません。
Curl® セキュリティ モデルの詳細については、「
セキュリティ」も参照してください。
anchor: | self の一部である anchor は、常に空であるか、'#' 文字から始まります。 たとえば、 self が http://www.curl.com/foo/bar.curl?query#anchor の場合、 self.anchor は String "#anchor" になります。 |
アクセサ public PrivilegedUrl.anchor:
String
フィールド public constant PrivilegedUrl.has-execute-permission?:
bool
フィールド public constant PrivilegedUrl.has-read-permission?:
bool
フィールド public constant PrivilegedUrl.has-write-permission?:
bool
leaf: | self の相対パスの部分。self.stem との関連で解釈されます。
たとえば、self が http://www.curl.com/foo/bar.curl?query#anchor の場合、self.leaf は String "foo/bar.curl" になります。 |
アクセサ public PrivilegedUrl.leaf:#
String
name: | self の印字表現。
たとえば、self が http://www.curl.com/foo/bar.curl?query#anchor の場合、self.name は String "http://www.curl.com/foo/bar.curl?query#anchor" になります。 |
アクセサ public PrivilegedUrl.name:
String
query: | self の一部である query は、常に空であるか、'?' 文字から始まります。 たとえば、 self が http://www.curl.com/foo/bar.curl?query#anchor の場合、 self.query は String "?query" になります。 |
アクセサ public PrivilegedUrl.query:
String
stem: | self の Directory 部分。
たとえば、self が http://www.curl.com/foo/bar.curl?query#anchor の場合、self.stem は Directory http://www.curl.com になります。 |
フィールド public constant PrivilegedUrl.underlying-url:
Url プロパティ 継承 Url:
basename, display-name, extension, filename, full-filename, local-filename, parent, parent-dir, parent-dir-name, pathname, pathname-tail, separator
public | {PrivilegedUrl.object-describe-for-debugging}:void |
メソッド 継承 Url:
canonicalize, concat, instantiate-Directory, instantiate-File, merge, name-relative-to-url, resolve, set-anchor, set-basename, set-extension, set-filename, set-leaf, set-query, underneath?, valid-separator?
(アクセサ)
アクセサ public PrivilegedUrl.anchor:
String self の一部である anchor は、常に空であるか、'#' 文字から始まります。
たとえば、
self が
http://www.curl.com/foo/bar.curl?query#anchor の場合、
self.anchor は
String "#anchor" になります。
注意事項
self.anchor は絶対に null になりません。self にアンカーがない場合、self.anchor は空の文字列 ("") になります。
(フィールド)
public constant PrivilegedUrl.has-execute-permission?:
bool 非特権アプレットが underlying-url を開いて実行できるかどうかを指定します。
(フィールド)
public constant PrivilegedUrl.has-read-permission?:
bool 非特権アプレットが underlying-url を開いて読み取れるかどうかを指定します。
(フィールド)
public constant PrivilegedUrl.has-write-permission?:
bool 非特権アプレットが underlying-url を開いて書き込めるかどうかを指定します。
(アクセサ)
アクセサ public PrivilegedUrl.leaf:#
String self の相対パスの部分。self.stem との関連で解釈されます。
たとえば、self が http://www.curl.com/foo/bar.curl?query#anchor の場合、self.leaf は String "foo/bar.curl" になります。
注意事項
self.leaf を null にすることができます。
(アクセサ)
アクセサ public PrivilegedUrl.name:
String self の印字表現。
たとえば、self が http://www.curl.com/foo/bar.curl?query#anchor の場合、self.name は String "http://www.curl.com/foo/bar.curl?query#anchor" になります。
(アクセサ)
アクセサ public PrivilegedUrl.query:
String self の一部である query は、常に空であるか、'?' 文字から始まります。
たとえば、
self が
http://www.curl.com/foo/bar.curl?query#anchor の場合、
self.query は
String "?query" になります。
注意事項
self.query は絶対に null になりません。self にクエリ文字列がない場合、self.query は空の文字列 ("") になります。
(アクセサ)
self の Directory 部分。
たとえば、self が http://www.curl.com/foo/bar.curl?query#anchor の場合、self.stem は Directory http://www.curl.com になります。
(フィールド)
public constant PrivilegedUrl.underlying-url:
Url
(メソッド)
public | {PrivilegedUrl.object-describe-for-debugging}:void |
オブジェクトについて細部を記述します。これは主にデバッグ目的での使用が想定されています。
out: 文字が送られるストリーム。
locale:
self の表示方法をコントロールする
Locale。
説明
このメソッドは、一般に、"%y" フォーマット キーを使用して間接的に起動されます。"%y" フォーマット キーは、このメソッドによって生成された結果を、次のような何らかの型またはアドレス情報でラップします。
{do
let buf:StringBuf = {StringBuf}
{self.object-describe-for-debugging buf, {get-syntax-locale}}
{format out = out, "[<type> @<addr> %s]", buf}
}
このメソッドの既定の実装では
{format out = out, "%w", self} を呼び出します。
(「%w」フォーマット キーの詳細については、
format を参照してください)。