PrivilegedUrl (クラス)
public sealed PrivilegedUrl {inherits Url}
パッケージ: CURL.IO.FILE

PrivilegedUrl は安全なファイル ハンドルで、非特権アプレットはこれを使ってファイルの I/O 操作を要求できます。
PrivilegedUrl は、エンドユーザーがアプレット使用のために選択した元の Url と、エンドユーザーがそのアプレットに与えたアクセス権を表します。
PrivilegedUrl は、非特権アプレットが元の Url とアクセス権のどちらも変更できないので「安全」といえます。

説明

非特権アプレットは、choose-file などの「ファイルを開く」ダイアログのルーチンを呼び出すだけで PrivilegedUrl を取得します。ユーザーがファイル ダイアログでファイルを参照して承認した後、非特権アプレットは次の 2 つの方法で PrivilegedUrl を使用できます。

注意事項

PrivilegedUrl がシリアル化される際に実際にダンプ アウトされるオブジェクトは元の url です。これは 2 つの明らかな効果をもたらします。まず、このオブジェクトにはソース オブジェクトが持っていた特権がありません。さらに、このオブジェクトがリード バックされても、PrivilegedUrl 型の変数に代入することができません。
Curl® セキュリティ モデルの詳細については、「セキュリティ」も参照してください。

プロパティ
anchor:
self の一部である anchor は、常に空であるか、'#' 文字から始まります。
たとえば、selfhttp://www.curl.com/foo/bar.curl?query#anchor の場合、self.anchorString "#anchor" になります。
アクセサ public PrivilegedUrl.anchor:String
has-execute-permission?:非特権アプレットが underlying-url を開いて実行できるかどうかを指定します。
フィールド public constant PrivilegedUrl.has-execute-permission?:bool
has-read-permission?:非特権アプレットが underlying-url を開いて読み取れるかどうかを指定します。
フィールド public constant PrivilegedUrl.has-read-permission?:bool
has-write-permission?:非特権アプレットが underlying-url を開いて書き込めるかどうかを指定します。
フィールド public constant PrivilegedUrl.has-write-permission?:bool
leaf:self の相対パスの部分。self.stem との関連で解釈されます。

たとえば、selfhttp://www.curl.com/foo/bar.curl?query#anchor の場合、self.leafString "foo/bar.curl" になります。
アクセサ public PrivilegedUrl.leaf:#String
name:self の印字表現。

たとえば、selfhttp://www.curl.com/foo/bar.curl?query#anchor の場合、self.nameString "http://www.curl.com/foo/bar.curl?query#anchor" になります。
アクセサ public PrivilegedUrl.name:String
query:
self の一部である query は、常に空であるか、'?' 文字から始まります。
たとえば、selfhttp://www.curl.com/foo/bar.curl?query#anchor の場合、self.queryString "?query" になります。
アクセサ public PrivilegedUrl.query:String
stem:selfDirectory 部分。

たとえば、selfhttp://www.curl.com/foo/bar.curl?query#anchor の場合、self.stemDirectory http://www.curl.com になります。
アクセサ public PrivilegedUrl.stem:Directory
underlying-url:基になる Url
フィールド 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

メソッド
object-describe-for-debugging:オブジェクトについて細部を記述します。これは主にデバッグ目的での使用が想定されています。
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?
メソッド 継承 Object: object-describe, object-serialize




プロパティ詳細
anchor (アクセサ)
アクセサ public PrivilegedUrl.anchor:String

self の一部である anchor は、常に空であるか、'#' 文字から始まります。
たとえば、selfhttp://www.curl.com/foo/bar.curl?query#anchor の場合、self.anchorString "#anchor" になります。

注意事項

self.anchor は絶対に null になりません。self にアンカーがない場合、self.anchor は空の文字列 ("") になります。


has-execute-permission? (フィールド)
public constant PrivilegedUrl.has-execute-permission?:bool

非特権アプレットが underlying-url を開いて実行できるかどうかを指定します。



has-read-permission? (フィールド)
public constant PrivilegedUrl.has-read-permission?:bool

非特権アプレットが underlying-url を開いて読み取れるかどうかを指定します。



has-write-permission? (フィールド)
public constant PrivilegedUrl.has-write-permission?:bool

非特権アプレットが underlying-url を開いて書き込めるかどうかを指定します。



leaf (アクセサ)
アクセサ public PrivilegedUrl.leaf:#String

self の相対パスの部分。self.stem との関連で解釈されます。

たとえば、selfhttp://www.curl.com/foo/bar.curl?query#anchor の場合、self.leafString "foo/bar.curl" になります。

注意事項

self.leafnull にすることができます。


name (アクセサ)
アクセサ public PrivilegedUrl.name:String

self の印字表現。

たとえば、selfhttp://www.curl.com/foo/bar.curl?query#anchor の場合、self.nameString "http://www.curl.com/foo/bar.curl?query#anchor" になります。



query (アクセサ)
アクセサ public PrivilegedUrl.query:String

self の一部である query は、常に空であるか、'?' 文字から始まります。
たとえば、selfhttp://www.curl.com/foo/bar.curl?query#anchor の場合、self.queryString "?query" になります。

注意事項

self.query は絶対に null になりません。self にクエリ文字列がない場合、self.query は空の文字列 ("") になります。


stem (アクセサ)
アクセサ public PrivilegedUrl.stem:Directory

selfDirectory 部分。

たとえば、selfhttp://www.curl.com/foo/bar.curl?query#anchor の場合、self.stemDirectory http://www.curl.com になります。



underlying-url (フィールド)
public constant PrivilegedUrl.underlying-url:Url

基になる Url






メソッド詳細
object-describe-for-debugging (メソッド)
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 を参照してください)。
これが FormatFailedException を取得する場合、通常ユーザー定義のクラスのように、このメソッドは object-describe メソッドの呼び出しに戻ります。