パッケージ org.piax.common.attribs
クラス Attribute
java.lang.Object
org.piax.common.attribs.Attribute
public class Attribute extends Object
テーブルcolumnに相当する属性(attribute)を管理するクラス。
Attributeは次の情報を管理する。
- 型情報
- テーブルrowへのindex
- bindしているOverlay
- Overlayへの未登録keyのリスト
- 参照カウンタ
- 最も最近の参照時刻
- 型とindexは同時にセットされる。片方だけがセットされることはない。
- 型がセットされる前に登録された属性値は型チェックを受けない。また、index化もされない。 つまりMapへの登録はない。
- 型とindexは一回セットされると変更および取り消しはできない。
- Overlayがbindされる場合は型がセットされている必要がある。 型がセットされていない場合は、setType(KeyType)が実行され自動的に型が確定する。 ここで、KeyTypeはそのOverlayが扱うkeyの型である。
- Overlayのbindは変更ができる。但し最初に設定された型情報は変更されないため、 型の互換性を持ったOverlayに限られる。
- unbindが呼ばれたOverlayはremoveKeyが呼ばれるが、他のOverlay のbindによって、実質的にbindが切れたOverlayについてはremoveKeyは呼ばれない。
- 属性値の登録は、Attributeの持つindexに登録する場合(index化) と、参照するだけでindex化 しない場合の2つのケースがある。参照するだけの場合は、Attributeの持つ型の制約を受けない。
- 属性値のindex化は型がセットされていないAttributeではエラーになる。
- 属性値のindex化の際、bindされているOverlayがあればaddKeyが行われる。 Overlayがinactiveな状態であったり、addKeyがI/Oエラー等で実行されなかった場合は、 未登録keyのリストに属性値が保存される。
- 参照カウンタが0、つまり参照のなくなったAttributeは有効期限が過ぎた後にAttribTableによって 初期化(clear)または破棄される。 (例外的にAttribTableによって強制的に初期化されることもある) 初期化後は、型、indexのセットが可能になる。
-
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 StringnameAttributeTabletable -
メソッドの概要
修飾子とタイプ メソッド 説明 voidbindOverlay(TransportIdPath suffix)指定されたTransportIdPathをsuffixとして持ち、型の互換性のあるOverlayをbindさせる。Overlay<Destination,Key>getBindOverlay()Set<RowData>getMatchedRows(Object value)Class<?>getType()booleanisAssignable(Object value)booleanisIndexable()voidsetType(Class<?> type)StringtoString()voidunbindOverlay()
-
フィールド詳細
-
メソッドの詳細
-
setType
-
getType
-
isIndexable
public boolean isIndexable() -
isAssignable
-
bindOverlay
public void bindOverlay(TransportIdPath suffix) throws NoSuchOverlayException, IncompatibleTypeException指定されたTransportIdPathをsuffixとして持ち、型の互換性のあるOverlayをbindさせる。- パラメータ:
suffix- suffixとして指定されたTransportIdPath- 例外:
NoSuchOverlayException- 該当するOverlayが存在しない場合IncompatibleTypeException- 型の互換性が原因で候補が得られない場合
-
unbindOverlay
-
getBindOverlay
-
getMatchedRows
-
toString
-