StringDataModel (クラス)
public abstract StringDataModel {inherits Observable}
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.GUI.CONTROL-LOGICAL.
直接継承しているサブクラス: SpanBufDataModel, SimpleStringDataModel, RichTextStringDataModel

StringInterface をデータ モデルとして表現します。

説明

データ モデルは Observable なので、そのコンテンツに対する変更は Observer のサブクラスで StringRemoveMessageStringSpliceMessage メッセージを操作するために handle-observer-message をオーバーライドするクライアント オブジェクトによって追跡されます。

オーバーライド

サブクラスは、データ モデル コンテンツのストレージを提供し、抽象データ アクセス メソッドを実装し、各メソッドのドキュメンテーションに記述されているように Observable 通知要求に応答しなければなりません。
効率を考えると、可能であればいつでも to-String メソッドはキャッシュされた値を返すことを強く推奨します。

コンストラクタ
default:新しい StringDataModel を作成します。
ファクトリ public {StringDataModel.default string:StringInterface}:StringDataModel

プロパティ
empty?:データ モデルに内容がある場合は true、ない場合は false です。
アクセサ public StringDataModel.empty?:bool
size:データ モデル内の char の数。
アクセサ public abstract StringDataModel.size:int
プロパティ 継承 Observable: has-observers?, notify-observers?

メソッド
clear:データ モデルのすべての内容を削除します。
public abstract {StringDataModel.clear}:void
get:self 内の指定された文字を返します。
public {StringDataModel.get index:int}:char
remove:指定された文字を self から削除します。
public abstract {StringDataModel.remove
index:int,
length:int = 1,
error-if-missing?:bool = true
}:void
set-contents:このデータ モデルの内容を設定します。
public abstract {StringDataModel.set-contents}:void
splice:StringInterfaceself に挿入します。
public abstract {StringDataModel.splice
str:StringInterface,
index:int
}:void
substr:データ モデルの指定された部分文字列を返します。
public abstract {StringDataModel.substr start:int, length:int}:String
to-String:このデータ モデルの内容を取得します。
public abstract {StringDataModel.to-String}:String
メソッド 継承 Observable: add-observer, notify-observers, remove-observer
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (ファクトリ)
public {StringDataModel.default string:StringInterface}:StringDataModel

新しい StringDataModel を作成します。

string: データ モデルの初期の内容。

説明

StringDataModel は抽象なので、これは実際には実装サブクラスを作成します。



プロパティ詳細
empty? (アクセサ)
アクセサ public StringDataModel.empty?:bool

データ モデルに内容がある場合は true、ない場合は false です。



size (アクセサ)
アクセサ public abstract StringDataModel.size:int

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






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

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

説明

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

注意事項

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

オーバーライド

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


get (メソッド)
public {StringDataModel.get index:int}:char

self 内の指定された文字を返します。

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

例外のスロー

index が範囲外の場合は ArrayBoundsException をスローします。

オーバーライド

既定の実装では to-String を使用し、効率化のためにオーバーライドされなればなりません。


remove (メソッド)
public abstract {StringDataModel.remove
index:int,
length:int = 1,
error-if-missing?:bool = true
}: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 abstract {StringDataModel.set-contents}:void

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

value: 新しい内容を表す StringInterface

説明

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

オーバーライド

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


splice (メソッド)
public abstract {StringDataModel.splice
str:StringInterface,
index:int
}:void

StringInterfaceself に挿入します。

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

説明

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

注意事項

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

オーバーライド

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


substr (メソッド)
public abstract {StringDataModel.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 abstract {StringDataModel.to-String}:String

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

戻り値

String としての内容。