ts.util.table
クラス Index<C,V>

java.lang.Object
  上位を拡張 ts.util.table.Index<C,V>
すべての実装されたインタフェース:
MapAppender<C,V>, Table<C,V>
直系の既知のサブクラス:
AbstractTable.AbstractTableIndex

public abstract class Index<C,V>
extends java.lang.Object
implements Table<C,V>

インデックス・クラス。
指定されたカラムの値を使ってレコードのインデックスを作成し、レコードの検索の 高速化を図る。
インデックスに使用するカラムは複数指定することができる。

このクラスは、Tableをインプリメントしており、 テーブル・オブジェクトと同様にレコードの追加・検索・削除・更新の操作を行う ことができる。
このインデックスに対してレコードの追加・削除・更新を行うと、作成元のテーブル にもその変更が反映される。 反対に、作成元のテーブルに対してレコードの追加・削除・更新を行ったときも、 このインデックスにその変更が反映される。

バージョン:
$Revision: 1.1.1.1 $, $Date: 2010-10-16 00:03:51 $
作成者:
佐藤隆之.

入れ子のクラスの概要
protected  class Index.IndexNodeMap
          インデックス・ツリーを構成するマップ・クラス。
protected  class Index.RecordSet
          レコードを格納するセット・クラス。
 
コンストラクタの概要
protected Index(C[] indexKeys)
          インデックス・キーとなるカラムの配列を引数にとるコンストラクタ。
 
メソッドの概要
 void addTrigger(Trigger<C,V> trigger)
          作成元のテーブルにトリガを追加する。
 java.util.Map<C,V> appendNew()
          新しいレコードを作成して、作成元のテーブルに追加する。
 java.util.Map<C,V> appendNew(int initColCapacity)
          新しいレコードを作成して、作成元のテーブルに追加する。
protected  java.util.Collection<Record<C,V>> collectRecords(java.util.Map<C,V> condition)
          このインデックスのキーだけについて、条件に該当するレコードのコレクションを 取得する。
 int columnCount()
          作成元のテーブルに格納されているカラムの数を取得する。
 java.util.Enumeration<C> columns()
          作成元のテーブルを構成するカラム・キーを列挙する。
 void deleteAll()
          全てのレコードを削除する。
protected  void deleteAllRecordsFromIndex()
          このインデックスから全てのレコードを削除する。
 boolean exists(C column, V value)
          指定されたカラムの値が指定された値と一致するレコードが存在するかどうかを 確認する。
protected abstract  Table<C,V> getBaseTable()
          このインデックスの作成元であるテーブル・オブジェクトを取得する。
 Index<C,V> getIndex(C... indexKeys)
          指定された配列の要素をインデックス・キーとするインデックスを取得する。
protected  java.util.Collection<Record<C,V>> getIndexedCollection(Record<C,V> record)
          指定されたレコードを格納する、インデックス・ツリーの末端に設定されている コレクション・オブジェクトを取得する。
protected  java.util.Collection<Record<C,V>> getIndexedCollectionByForce(Record<C,V> record)
          指定されたレコードを格納する、インデックス・ツリーの末端に設定されている コレクション・オブジェクトを取得する。
protected  int indexKeyCount()
          インデックス・キーの数を取得する。
protected  java.util.Enumeration<C> indexKeys()
          インデックス・キーを列挙する。
 int recordCount()
          作成元のテーブルに格納されているレコードの数を取得する。
 java.util.Map<C,V> recordFirst()
          作成元のテーブルに最初に格納されているレコードを取得する。
 MapIterator<C,V> records()
          作成元のテーブルに格納されているレコードを順に取り出すためのイテレータを 取得する。
 MapIterator<C,V> records(MapComparator<C,V> comparator)
          作成元のテーブルに格納されているレコードをソートして、順に取り出すための イテレータを取得する。
 java.util.List<java.util.Map<C,V>> select(C column, V value)
          指定されたカラムの値が指定された値と一致するレコードを格納したリストを を取得する。
 java.util.Map<C,V> selectFirst(C column, V value)
          指定されたカラムの値が指定された値と最初に一致したレコードを返す。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース ts.util.table.Table から継承されたメソッド
delete, exists, select, selectFirst, update
 

コンストラクタの詳細

Index

protected Index(C[] indexKeys)
インデックス・キーとなるカラムの配列を引数にとるコンストラクタ。

パラメータ:
indexKeys - インデックス・キーの配列。
例外:
java.lang.IllegalArgumentException - 引数の配列のサイズがゼロの場合。
java.lang.AssertionError - 引数がヌルの場合。
メソッドの詳細

getBaseTable

protected abstract Table<C,V> getBaseTable()
このインデックスの作成元であるテーブル・オブジェクトを取得する。

戻り値:
作成元のテーブル・オブジェクト。

columnCount

public int columnCount()
作成元のテーブルに格納されているカラムの数を取得する。

定義:
インタフェース Table<C,V> 内の columnCount
戻り値:
カラム数。

recordCount

public int recordCount()
作成元のテーブルに格納されているレコードの数を取得する。

定義:
インタフェース Table<C,V> 内の recordCount
戻り値:
レコード数。

indexKeyCount

protected int indexKeyCount()
インデックス・キーの数を取得する。

戻り値:
インデックス・キーの数。

columns

public java.util.Enumeration<C> columns()
作成元のテーブルを構成するカラム・キーを列挙する。

定義:
インタフェース Table<C,V> 内の columns
戻り値:
カラム・キーの列挙オブジェクト。

records

public MapIterator<C,V> records()
作成元のテーブルに格納されているレコードを順に取り出すためのイテレータを 取得する。

定義:
インタフェース Table<C,V> 内の records
戻り値:
レコードのイテレータ。

records

public MapIterator<C,V> records(MapComparator<C,V> comparator)
作成元のテーブルに格納されているレコードをソートして、順に取り出すための イテレータを取得する。

定義:
インタフェース Table<C,V> 内の records
パラメータ:
comparator - ソートに使用するレコード比較オブジェクト。
戻り値:
レコードのイテレータ。
例外:
java.lang.AssertionError - 引数がヌルの場合(デバッグ・モードのみ)。

recordFirst

public java.util.Map<C,V> recordFirst()
作成元のテーブルに最初に格納されているレコードを取得する。

定義:
インタフェース Table<C,V> 内の recordFirst
戻り値:
作成元のテーブルに最初に格納されているレコード。

indexKeys

protected java.util.Enumeration<C> indexKeys()
インデックス・キーを列挙する。

戻り値:
インデックス・キーの列挙オブジェクト。

getIndex

public Index<C,V> getIndex(C... indexKeys)
指定された配列の要素をインデックス・キーとするインデックスを取得する。
該当するインデックスが存在しない場合は、インデックスを作成して返す。

定義:
インタフェース Table<C,V> 内の getIndex
パラメータ:
indexKeys - インデックス・キーの配列。
戻り値:
このテーブルのインデックス・オブジェクト。

addTrigger

public void addTrigger(Trigger<C,V> trigger)
作成元のテーブルにトリガを追加する。

定義:
インタフェース Table<C,V> 内の addTrigger
パラメータ:
trigger - トリガ・オブジェクト。
例外:
java.lang.AssertionError - 引数がヌルの場合(デバッグ・モードのみ)。

deleteAll

public void deleteAll()
全てのレコードを削除する。

定義:
インタフェース Table<C,V> 内の deleteAll

appendNew

public java.util.Map<C,V> appendNew()
新しいレコードを作成して、作成元のテーブルに追加する。
追加されたレコードは、マップ・オブジェクトの戻り値として返される。

定義:
インタフェース MapAppender<C,V> 内の appendNew
戻り値:
追加されたレコードを表すマップ・オブジェクト。

appendNew

public java.util.Map<C,V> appendNew(int initColCapacity)
新しいレコードを作成して、作成元のテーブルに追加する。
追加されたレコードは、マップ・オブジェクトの戻り値として返される。

定義:
インタフェース MapAppender<C,V> 内の appendNew
パラメータ:
initColCapacity - レコードの初期カラム容量。
戻り値:
追加されたレコードを表すマップ・オブジェクト。
例外:
java.lang.AssertionError - 引数が負の値の場合(デバッグ・モードのみ)。

exists

public boolean exists(C column,
                      V value)
指定されたカラムの値が指定された値と一致するレコードが存在するかどうかを 確認する。

定義:
インタフェース Table<C,V> 内の exists
パラメータ:
column - 条件とするカラム・キー。
value - 条件とするカラムの値。
戻り値:
該当するレコードが存在する場合はtrueを返す。

selectFirst

public java.util.Map<C,V> selectFirst(C column,
                                      V value)
指定されたカラムの値が指定された値と最初に一致したレコードを返す。

定義:
インタフェース Table<C,V> 内の selectFirst
パラメータ:
column - 条件とするカラム・キー。
value - 条件とするカラムの値。
戻り値:
指定されたカラムの値と最初に一致したレコード。

select

public java.util.List<java.util.Map<C,V>> select(C column,
                                                 V value)
指定されたカラムの値が指定された値と一致するレコードを格納したリストを を取得する。

定義:
インタフェース Table<C,V> 内の select
パラメータ:
column - 条件とするカラム・キー。
value - 条件とするカラムの値。
戻り値:
指定されたカラムの値と一致するレコードを格納したリスト。

collectRecords

protected java.util.Collection<Record<C,V>> collectRecords(java.util.Map<C,V> condition)
このインデックスのキーだけについて、条件に該当するレコードのコレクションを 取得する。
該当するレコードが1つもなかった場合は空のコレクションを返す。

パラメータ:
condition - 条件のカラムとその値を格納したマップ。
戻り値:
このインデックスのキーについて条件に該当するレコードの コレクション。
例外:
java.lang.AssertionError - 引数がヌルの場合(デバッグ・モードのみ)。

getIndexedCollection

protected java.util.Collection<Record<C,V>> getIndexedCollection(Record<C,V> record)
指定されたレコードを格納する、インデックス・ツリーの末端に設定されている コレクション・オブジェクトを取得する。
指定されたレコードを格納するコレクション・オブジェクトが存在しない場合は、 空のコレクション・オブジェクトを返す。

パラメータ:
record - レコード・オブジェクト。
戻り値:
引数のレコード・オブジェクトを格納するコレクション・オブジェクト。
例外:
java.lang.AssertionError - 引数がヌルの場合(デバッグ・モードのみ)。

getIndexedCollectionByForce

protected java.util.Collection<Record<C,V>> getIndexedCollectionByForce(Record<C,V> record)
指定されたレコードを格納する、インデックス・ツリーの末端に設定されている コレクション・オブジェクトを取得する。
指定されたレコードを格納するコレクション・オブジェクトが存在しない場合は、 そのコレクション・オブジェクトを作成して返す。

パラメータ:
record - レコード・オブジェクト。
戻り値:
引数のレコード・オブジェクトを格納するコレクション・オブジェクト。
例外:
java.lang.AssertionError - 引数がヌルの場合(デバッグ・モードのみ)。

deleteAllRecordsFromIndex

protected void deleteAllRecordsFromIndex()
このインデックスから全てのレコードを削除する。



Copyright (C) SATOH Takayuki All Rights Reserved.