T - ラップされたObjectの型public abstract class ObjectBinding<T> extends ObjectExpression<T> implements Binding<T>
ObjectのBindingを実装するために必要なほとんどの機能を提供するベース・クラス。
ObjectBindingは、簡単な無効性スキームを提供します。 拡張クラスは、bind(Observable...)を呼び出して依存性を登録できます。 登録された依存性のいずれかが無効になる場合、このObjectBindingは無効とマークされます。 unbind(Observable...)を使用すると、依存性のリスニングを停止できます。
このクラスの具体的な実装を提供するには、依存性の現在の状態に基づいてこのバインディングの値を計算するためにメソッドcomputeValue()を実装する必要があります。 get()が無効なバインディングに対して呼び出される場合に呼び出されます。
このベース・クラスの拡張方法の例は、DoubleBindingを参照してください。
Binding、ObjectExpression| コンストラクタと説明 |
|---|
ObjectBinding() |
| 修飾子と型 | メソッドと説明 |
|---|---|
void |
addListener(ChangeListener<? super T> listener)
ObservableValueの値が変更されるたびに通知されるChangeListenerを追加します。 |
void |
addListener(InvalidationListener listener)
Observableが無効になるたびに通知されるInvalidationListenerを追加します。 |
protected void |
bind(Observable... dependencies)
変更の依存性の監視を開始します。
|
protected abstract T |
computeValue()
このバインディングの現在の値を計算します。
|
void |
dispose()
空である
dispose()のデフォルトの実装。 |
T |
get()
computeValue()の結果を返します。 |
ObservableList<?> |
getDependencies()
空の
ObservableListを返すgetDependencies()のデフォルトの実装。 |
void |
invalidate()
バインディングを無効とマークします。
|
boolean |
isValid()
バインディングが有効かどうかを確認します。
|
protected void |
onInvalidating()
このバインディングが無効になる場合、反応するクラスを拡張して、メソッドonInvalidating()をオーバーライドできます。
|
void |
removeListener(ChangeListener<? super T> listener)
ObservableValueの値が変更されるたびに通知されるリスナーのリストから指定されたリスナーを削除します。 |
void |
removeListener(InvalidationListener listener)
Observableの値が無効になるたびに通知されるリスナーのリストから指定されたリスナーを削除します。 |
String |
toString()
この
ObjectBindingオブジェクトの文字列表現を返します。 |
protected void |
unbind(Observable... dependencies)
変更の依存性の監視を停止します。
|
asString, asString, asString, getValue, isEqualTo, isEqualTo, isNotEqualTo, isNotEqualTo, isNotNull, isNull, objectExpressionclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetValuepublic void addListener(InvalidationListener listener)
ObservableObservableが無効になるたびに通知されるInvalidationListenerを追加します。 同じリスナーが複数回追加される場合、複数回通知されます。 つまり、一意性を確認するためにチェックが実行されません。
実際の同じInvalidationListenerインスタンスが異なるObservablesに対して安全に登録される場合があるので注意してください。
Observableは、リスナーの強参照を格納するため、リスナーはガベージ・コレクションされず、メモリー・リークが発生する可能性があります。 使用後にremoveListenerを呼び出してリスナーを登録解除するか、WeakInvalidationListenerのインスタンスを使用してこの状況を回避することをお薦めします。
ObservableのaddListenerlistener - 登録するリスナーObservable.removeListener(InvalidationListener)public void removeListener(InvalidationListener listener)
ObservableObservableの値が無効になるたびに通知されるリスナーのリストから指定されたリスナーを削除します。
指定されたリスナーが以前に登録されていない場合(つまり、一度も追加されていなかった場合)、このメソッドの呼出しはno-opです。 以前に追加されたことがある場合は削除されます。 複数回追加された場合、最初の発生のみ削除されます。
ObservableのremoveListenerlistener - 削除するリスナーObservable.addListener(InvalidationListener)public void addListener(ChangeListener<? super T> listener)
ObservableValueObservableValueの値が変更されるたびに通知されるChangeListenerを追加します。 同じリスナーが複数回追加される場合、複数回通知されます。 つまり、一意性を確認するためにチェックが実行されません。
実際の同じChangeListenerインスタンスが異なるObservableValuesに対して安全に登録される場合があるので注意してください。
ObservableValueは、リスナーの強参照を格納するため、リスナーはガベージ・コレクションされず、メモリー・リークが発生する可能性があります。 使用後にremoveListenerを呼び出してリスナーを登録解除するか、WeakChangeListenerのインスタンスを使用してこの状況を回避することをお薦めします。
ObservableValue<T>のaddListenerlistener - 登録するリスナーObservableValue.removeListener(ChangeListener)public void removeListener(ChangeListener<? super T> listener)
ObservableValueObservableValueの値が変更されるたびに通知されるリスナーのリストから指定されたリスナーを削除します。
指定されたリスナーが以前に登録されていない場合(つまり、一度も追加されていなかった場合)、このメソッドの呼出しはno-opです。 以前に追加されたことがある場合は削除されます。 複数回追加された場合、最初の発生のみ削除されます。
ObservableValue<T>のremoveListenerlistener - 削除するリスナーObservableValue.addListener(ChangeListener)protected final void bind(Observable... dependencies)
dependencies - 監視する依存性protected final void unbind(Observable... dependencies)
dependencies - 監視を停止する依存性public ObservableList<?> getDependencies()
ObservableListを返すgetDependencies()のデフォルトの実装。Binding<T>のgetDependenciesObservableListpublic final T get()
computeValue()の結果を返します。 バインディングが無効である場合、メソッドcomputeValue()のみ呼び出されます。 get()の最後の呼出しからバインディングが無効でなくなった場合、結果がキャッシュされて返されます。 ObservableObjectValue<T>のgetprotected void onInvalidating()
public final void invalidate()
BindingBindingの値が強制的に再計算されます。 Binding<T>のinvalidatepublic final boolean isValid()
Bindingprotected abstract T computeValue()
ObjectBindingを拡張するクラスは、computeValueの実装を提供する必要があります。
Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.