SpanBufDataModel (クラス)
public SpanBufDataModel {inherits StringDataModel, TextOutputStream}
パッケージ: CURL.IDE.CPA.BASE

StringDataModel based on a SpanBuf.

説明

A StringDataModel implementation using a SpanBuf as its underlying representation.

This will notify-observers with a StringSpliceMessage whenever text is inserted and a StringRemoveMessage whenver text is removed. Operations that replace text will result in both types of messages.

For convenience, this class is also a TextOutputStream.

コンストラクタ
default:Construct model for given buffer.
コンストラクタ public {SpanBufDataModel.default spanbuf:SpanBuf}

プロパティ
open?:Indicates whether stream is open.
アクセサ public final SpanBufDataModel.open?:bool
origin-url:Url associated with the content.
アクセサ public SpanBufDataModel.origin-url:#Url
size:データ モデル内の char の数。
アクセサ public final SpanBufDataModel.size:int
spanbuf:The underlying buffer for the model.
アクセサ public SpanBufDataModel.spanbuf:SpanBuf
write-buffer-data-size:バッファ内のフラッシュされていないデータ量を示します。
アクセサ public SpanBufDataModel.write-buffer-data-size:int
プロパティ 継承 StringDataModel: empty?
プロパティ 継承 TextOutputStream: character-encoding
プロパティ 継承 Observable: has-observers?, notify-observers?
プロパティ 継承 BufferedOutputStream-of: write-buffer-full?, write-buffer-size
プロパティ 継承 Stream-of: non-blocking-supported?

メソッド
clear:データ モデルのすべての内容を削除します。
public {SpanBufDataModel.clear}:void
flush:self が収集した、バッファされた出力をフラッシュします。
public {SpanBufDataModel.flush
non-blocking?:bool = false,
allow-short-write?:bool = false
}:void
remove:指定された文字を self から削除します。
public {SpanBufDataModel.remove
offset:int,
length:int = 1,
error-if-missing?:bool = false
}:void
set-contents:このデータ モデルの内容を設定します。
public {SpanBufDataModel.set-contents str:StringInterface}:void
splice:StringInterfaceself に挿入します。
public {SpanBufDataModel.splice str:StringInterface, offset:int}:void
substr:データ モデルの指定された部分文字列を返します。
public {SpanBufDataModel.substr start:int, length:int}:String
to-String:このデータ モデルの内容を取得します。
public final {SpanBufDataModel.to-String}:String
write-one:アイテムを OutputStream-of に書き込みます。
public {SpanBufDataModel.write-one c:char}:void
write-one-string:文字列を書き込みます。
public {SpanBufDataModel.write-one-string
str:StringInterface,
start:int = 0,
length:int = str.size
}:int
メソッド 継承 StringDataModel: get
メソッド 継承 Observable: add-observer, notify-observers, remove-observer
メソッド 継承 OutputStream-of: async-write, close, write
メソッド 継承 Stream-of: verify-open
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (コンストラクタ)
public {SpanBufDataModel.default spanbuf:SpanBuf}

Construct model for given buffer.




プロパティ詳細
open? (アクセサ)
アクセサ public final SpanBufDataModel.open?:bool

Indicates whether stream is open.

説明

This is always true for this class.


origin-url (アクセサ)
アクセサ public SpanBufDataModel.origin-url:#Url

Url associated with the content.

説明

This returns the url of spanbuf.


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

データ モデル内の char の数。



spanbuf (アクセサ)
アクセサ public SpanBufDataModel.spanbuf:SpanBuf

The underlying buffer for the model.



write-buffer-data-size (アクセサ)
アクセサ public SpanBufDataModel.write-buffer-data-size:int

バッファ内のフラッシュされていないデータ量を示します。






メソッド詳細
clear (メソッド)
public {SpanBufDataModel.clear}:void

データ モデルのすべての内容を削除します。

説明

削除すると StringRemoveMessage は任意のオブザーバに送られます。

注意事項

詳細については WritableString.clear を参照してください。

オーバーライド

このメソッドの実装を提供するサブクラスは、コンテンツをクリアした後に StringRemoveMessage を送ることでオブザーバーに通知しなければなりません。このメッセージは remove によって送信されるので、このメソッドを使用する実装は自動的にこの要求に応答します。


flush (メソッド)
public {SpanBufDataModel.flush
non-blocking?:bool = false,
allow-short-write?:bool = false
}:void

self が収集した、バッファされた出力をフラッシュします。

オーバーライド

非抽象サブクラスにより提供される必要があります。実装では次のようなコードを含める必要があリます。
{if not self.open? then
    {throw {new IOException, {format "%s not open", self}}}
}
このメソッドの実装の上部に記述します。

例外のスロー

IOException — ディスクの容量不足などの理由でデータを書き込めない場合。


remove (メソッド)
public {SpanBufDataModel.remove
offset:int,
length:int = 1,
error-if-missing?:bool = false
}:void

指定された文字を self から削除します。

index: 文字の削除を開始する位置。最左端の文字の位置は 0 です。最右端の文字の位置は (self.size - 1) です。有効値は 0self.size の範囲です (0self.size を含む)。
length: 削除する文字数。length の既定値は 1 です。length はキーワード引数です。length を指定するには、メソッド呼び出しのキーワードに対して適切な値を設定します (例:length = 6)。
error-if-missing?:
存在しない文字を削除しようとしたときにこのメソッドがエラーを生成するかどうかを示す、ブール値のフラグ。位置 0 と self.size の間の文字を削除できます。
error-if-missing?true に設定した場合、存在しない文字を削除しようとするとエラーがスローされます。エラーが発生するとプログラムの実行が停止し、エラー メッセージが表示されます。既定では、error-if-missing?true です。error-if-missing?false に設定した場合、エラーは生成されません。また、有効な範囲内にある文字は削除されますが、有効な範囲内にない文字は削除されず、削除後の文字列が返されます。
error-if-missing? はキーワード引数です。error-if-missing? を指定するには、メソッド呼び出しのキーワードに対して適切な値を設定します (例:error-if-missing? = false)。

説明

self から length 個の文字を削除します。削除開始位置は index です。

削除するとStringRemoveMessage は任意のオブザーバに送られます。

注意事項

詳細については WritableString.remove を参照してください。

オーバーライド

このメソッドの実装を提供するサブクラスは、指定された文字を削除した後に StringRemoveMessage を送ることでオブザーバーに通知しなければなりません。


set-contents (メソッド)
public {SpanBufDataModel.set-contents str:StringInterface}:void

このデータ モデルの内容を設定します。

value: 新しい内容を表す StringInterface

説明

詳細については StringBuf.set-contents を参照してください。

オーバーライド

このメソッドの実装を提供するサブクラスは、新しいコンテンツを挿入し、古いコンテンツや StringSpliceMessage を削除した後に StringRemoveMessage を送ることでオブザーバーに通知しなければなりません。これらのメッセージは removesplice によって送信されるので、これらのメッセージを使用する実装は自動的にこの要求に応答します。


splice (メソッド)
public {SpanBufDataModel.splice str:StringInterface, offset:int}:void

StringInterfaceself に挿入します。

str: 挿入する StringInterface
index: StringInterface を挿入する位置。最左端の文字の位置は 0 です。最右端の文字の位置は (self.size - 1) です。有効値は 0self.size の範囲です (0self.size を含む)。

説明

連結が起こると StringSpliceMessage は任意のオブザーバに送られます。

注意事項

詳細については WritableString.splice を参照してください。

オーバーライド

このメソッドの実装を提供するサブクラスは、スプライスした後に StringSpliceMessage を送ることでオブザーバーに通知しなければなりません。


substr (メソッド)
public {SpanBufDataModel.substr start:int, length:int}:String

データ モデルの指定された部分文字列を返します。

start: self 内における部分文字列の開始位置。最左端の文字の位置は 0 です。最右端の文字の位置は (self.size - 1) です。有効値は 0 ~ (self.size - 1) の範囲です (0 と (self.size - 1) を含む)。
length: 部分文字列の長さ。つまり、部分文字列内の文字数です。

戻り値

データ モデル内容の部分文字列を格納する Stringstart の位置から始まる length 個の連続した文字が格納されます。

注意事項

詳細については StringInterface.substr を参照してください。


to-String (メソッド)
public final {SpanBufDataModel.to-String}:String

このデータ モデルの内容を取得します。

戻り値

String としての内容。


write-one (メソッド)
public {SpanBufDataModel.write-one c:char}:void

アイテムを OutputStream-of に書き込みます。

注意事項

ストリームが開いていない時にこのメソッドを呼び出すとエラーが発生します。サブクラスにこのメソッドを実装する必要があります。

オーバーライド

非抽象サブクラスにより提供される必要があります。実装では次のようなコードを含める必要があリます。
{if not self.open? then
    {throw {new IOException, {format "%s not open", self}}}
}
このメソッドの実装の上部に記述します。


write-one-string (メソッド)
public {SpanBufDataModel.write-one-string
str:StringInterface,
start:int = 0,
length:int = str.size
}:int

文字列を書き込みます。

str: 書き込まれる文字列。
start: 書き込みを開始する str のインデックス。
n: 書き込む文字の数。

戻り値

書き込まれた文字数を返します。

説明

str から selfn 文字を書き込みます。start で指定される位置から開始します。