パッケージ 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のセットが可能になる。