概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## 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)

  このインデックスのキーだけについて、条件に該当するレコードのコレクションを 取得する。
  該当するレコードが１つもなかった場合は空のコレクションを返す。

  パラメータ:
    `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()

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

概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

Copyright (C) SATOH Takayuki All Rights Reserved.