OptionItem (クラス)
public OptionItem
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.UTIL.OPTION.

バインディング オプションを表します。

説明

OptionListInterfaceOptionListInterface.options フィールドに格納されたバインディング オプションは、OptionItem のリンク リストです。したがって、ユーザー コードは OptionItem のチェインをトラバースまたは変更する権限はありませんが、ユーザー コードで特定の OptionItem を参照したり、最終的にオブジェクトのバインディング オプション リストにインストールされる新しい OptionItem を作成できるインターフェイスがあります。これらのインターフェイスの中で最も注目に値するのは OptionListInterface.clone-options に指定できる copy プロシージャです。

OptionItem には、それぞれキーがあります。キーは、コンパイラにより生成されたデータ構造を参照する OptionItem で、この OptionItemKey により値がバインドされているオプションを識別します。値は、このオプションのバインド先となる値です。これらのプロパティは OptionItem の作成時に設定し、OptionItem.key および OptionItem.value アクセッサで読み取ることができます。これらのアクセッサのほか、OptionItem.clone-option メソッドのみが一般のユーザー コードでの使用に適した OptionItem のメンバになります。

追加処理とオプション操作の関連付けが必要となる高度な使用法では、OptionItem のサブクラスを定義し、 OptionListInterface.new-option-item をオーバーライドしてサブクラスのインスタンスを作成できます。現在 Curl 言語でこれが必要になるのは、Table クラスに関連して Table にオプション検索のルールを実装する場合のみです。

コンストラクタ
default:OptionItem を作成します。
コンストラクタ public {OptionItem.default key:OptionItemKey, value:any}

プロパティ
key:バインディング オプションに関連付けられているオプション キー。
フィールド public constant OptionItem.key:OptionItemKey
value:バインディング オプションに関連付けられている値。
フィールド public-get private-set OptionItem.value:any

メソッド
add:OptionItem のリストにバインディング オプションを追加します。
public {OptionItem.add
key:OptionItemKey,
value:any
}:(new-option-binding-list:OptionItem, new-item:OptionItem, new?:bool)
clone-option:OptionItem をコピーします。
public {OptionItem.clone-option
key:OptionItemKey = self.key,
value:any = self.value
}:OptionItem
lookup:OptionItem のリストでバインディングオプションを検索します。
public {OptionItem.lookup key:OptionItemKey}:#OptionItem
new-option-item:新しい OptionItem をインスタンス化します。
protected {OptionItem.new-option-item
key:OptionItemKey,
value:any
}:OptionItem
remove:OptionItem のリストからバインディングオプションを削除します。
public {OptionItem.remove}:(new-option-binding-list:#OptionItem, removed-item:#OptionItem)
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (コンストラクタ)
public {OptionItem.default key:OptionItemKey, value:any}

OptionItem を作成します。

key: OptionItem.key プロパティの初期値。
value: OptionItem.value プロパティの初期値。



プロパティ詳細
key (フィールド)
public constant OptionItem.key:OptionItemKey

バインディング オプションに関連付けられているオプション キー。



value (フィールド)
public-get private-set OptionItem.value:any

バインディング オプションに関連付けられている値。






メソッド詳細
add (メソッド)
public {OptionItem.add
key:OptionItemKey,
value:any
}:(new-option-binding-list:OptionItem, new-item:OptionItem, new?:bool)

OptionItem のリストにバインディング オプションを追加します。

key: 新しいバインドの OptionItem.key プロパティの初期値。
value: 新しいバインドの OptionItem.value プロパティの初期値。

戻り値

2 つの OptionItem およびブール値が返されます。
  1. 特定のバインディング オプションを追加した後の、新しいバインディング オプション リストです。この値は、self に等しくなります。
  2. 新しいバインディング オプション リストに現れる OptionItem で、keyvalue のバインドを格納します。
  3. key に対して渡された value が、最初に一致する OptionItem で対応する value と異なる場合は true、それ以外の場合は false。

説明

self で始まる OptionItem のリストは、リスト内のkeyvalue のバインドを表す OptionItem が、渡された value と異なる場合は変更されます。この場合、リストの順序は変更されず、最初に一致する OptionItemvalue が渡された値に変更されます。一致する OptionItem がない場合、渡された keyvalue のバインドを表す OptionItem が新たに作成され、OptionItem のリストに追加されます。

オーバーライド

追加処理を OptionItem.add 操作に関連付けるには、このメソッドをオーバーライドします。


clone-option (メソッド)
public {OptionItem.clone-option
key:OptionItemKey = self.key,
value:any = self.value
}:OptionItem

OptionItem をコピーします。

key: OptionItem.key プロパティの新しい OptionItem の値。既定では、これは self.key に等しくなります。
value: OptionItem.value プロパティの新しい OptionItem の値。既定では、これは self.value に等しくなります。

戻り値

新しくインスタンス化された OptionItem

説明

このメソッドは、主に OptionListInterface.clone-options に渡される copy プロシージャから呼び出されるユーティリティ メソッドとして提供されています。

オーバーライド

通常はオーバーライドされません。


lookup (メソッド)
public {OptionItem.lookup key:OptionItemKey}:#OptionItem

OptionItem のリストでバインディングオプションを検索します。

key: 検索対象バインドのキー。

戻り値

リスト内でキーが key に一致する OptionItem。そのような OptionItem が見つからない場合は null

オーバーライド

このメソッドは、通常オーバーライドする必要がありません。これには、self で始まる OptionItem のリンク リストを繰り返し処理を行うループが含まれています。したがって、OptionItem でこのメソッドをオーバーライドしても、その OptionItemOptionItem のチェインの先頭にない限り効果がありません。


new-option-item (メソッド)
protected {OptionItem.new-option-item
key:OptionItemKey,
value:any
}:OptionItem

新しい OptionItem をインスタンス化します。

key: OptionItem.key プロパティの初期値。
value: OptionItem.value プロパティの初期値。

戻り値

新しくインスタンス化された OptionItem

説明

このメソッドは、タイプが OptionItem のサブクラスであるオブジェクトで呼び出された場合、そのサブクラスの新しいインスタンスを返すことが必要です。

オーバーライド

既定の実装 OptionItem.new-option-item では、OptionItem 自身の新しいインスタンスが作成されます。このメソッドは OptionItem の任意のサブクラスでオーバーライドして、サブクラスが代わりにインスタンス化されるようにします。


remove (メソッド)
public {OptionItem.remove}:(new-option-binding-list:#OptionItem, removed-item:#OptionItem)

OptionItem のリストからバインディングオプションを削除します。

key: 削除するバインドのキー。

戻り値

2 つの OptionItem を返します。

  1. キーとして key を持つ最初のオプションの後の、新しいバインディング オプション リスト。この値は、remove 操作がリスト内の最初の OptionItem を削除した場合を除き、self に等しくなります。
  2. 削除された最初の OptionItem。リスト内の OptionItem が オプションのキーとして key を持たず、したがってバインディング オプションが削除されなかった場合は null になります。

説明

self で始まる OptionItem のリストは、key に一致するキーを持つ最初の OptionItem が存在する場合にこれが削除され、変更されます。一致する OptionItem がもう 1 つ存在する場合は、エラーが発生します。最初に一致した OptionItem を除き、リスト内のバインドの順序は変わりません。

オーバーライド

通常はオーバーライドされません。