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

## okuyama.imdst.util
クラス KeyManagerValueMap

    java.lang.Object
      java.util.AbstractMap
          okuyama.imdst.util.CoreValueMap
              okuyama.imdst.util.KeyManagerValueMap

すべての実装されたインタフェース:
  java.io.Serializable, java.lang.Cloneable, java.util.Map

    public class KeyManagerValueMap

extends CoreValueMap
implements java.lang.Cloneable, java.io.Serializable

KeyとValueを管理する独自Mapクラス.
メモリモードとファイルモードで動きが異なる.
メモリモード:KeyとValueを親クラスであるHashMapで管理する.
ファイルモード:Keyは親クラスのMapに、Valueはファイルに記録する
KeyとValueが格納させている行数を記録している.
行数から、ファイル内からValueを取り出す.

作成者:
  T.Okuyama
関連項目:
  直列化された形式

入れ子のクラスの概要

クラス java.util.AbstractMap から継承された入れ子のクラス/インタフェース
`java.util.AbstractMap.SimpleEntry<K,V>, java.util.AbstractMap.SimpleImmutableEntry<K,V>`

インタフェース java.util.Map から継承された入れ子のクラス/インタフェース
`java.util.Map.Entry<K,V>`

コンストラクタの概要
`KeyManagerValueMap(int size, boolean memoryMode, java.lang.String[] virtualStoreDirs)`
`KeyManagerValueMap(java.lang.String[] dirs, int numberOfDataSize)`

メソッドの概要
`void` | `close()`
`boolean` | `containsKey(java.lang.Object key)` containsKeyをオーバーライド.
`void` | `deleteMapDataFile()` Diskモード時にデータストリームを閉じて、データファイルを削除する.
`java.lang.Object` | `get(java.lang.Object key)` getをオーバーライド.
`int` | `getAllDataCount()` getAllDataCount.
`java.lang.String[]` | `getAllDataUseSize()`
`long` | `getDataUseSize(java.lang.String unique)`
`int` | `getKeySize()` getKeySize.
`long` | `getKLastDataChangeTime()` データを変更した最終時間を取得する.
`java.lang.Object` | `getNoCnv(java.lang.Object key)` データを無加工で取り出す.
`void` | `initNoMemoryModeSetting(java.lang.String lineFile)` 本メソッドは使用前に必ず呼び出す Objectに書き出した後でも必須
`java.lang.Object` | `put(java.lang.Object key, java.lang.Object value)` putをオーバーライド.
`java.lang.Object` | `remove(java.lang.Object key)` removeをオーバーライド.
`void` | `setKLastDataChangeTime(long time)` データを変更した最終時間を記録する.
`boolean` | `vacuumData()` データファイルの不要領域を掃除して新たなファイルを作りなおす.

クラス okuyama.imdst.util.CoreValueMap から継承されたメソッド
`clear, entrySet, size`

クラス java.util.AbstractMap から継承されたメソッド
`clone, containsValue, equals, hashCode, isEmpty, keySet, putAll, toString, values`

クラス java.lang.Object から継承されたメソッド
`finalize, getClass, notify, notifyAll, wait, wait, wait`

コンストラクタの詳細

### KeyManagerValueMap

    public KeyManagerValueMap(int size,
                              boolean memoryMode,
                              java.lang.String[] virtualStoreDirs)

### KeyManagerValueMap

    public KeyManagerValueMap(java.lang.String[] dirs,
                              int numberOfDataSize)

メソッドの詳細

### initNoMemoryModeSetting

    public void initNoMemoryModeSetting(java.lang.String lineFile)

  本メソッドは使用前に必ず呼び出す
  Objectに書き出した後でも必須

### getNoCnv

    public java.lang.Object getNoCnv(java.lang.Object key)

  データを無加工で取り出す.
  無加工とは、valueをファイルで保持する場合はpadding文字列をが付加されているが、それを削除せずに返す.

  パラメータ:
    `key` -
  戻り値:
    Object

### get

    public java.lang.Object get(java.lang.Object key)

  getをオーバーライド.
  MemoryモードとFileモードで取得方法が異なる.

  定義:
    インタフェース `java.util.Map` 内の `get`
  オーバーライド:
    クラス `CoreValueMap` 内の `get`
  パラメータ:
    `key` - 登録kye値(全てStringとなる)
  戻り値:
    Object 返却値(全てStringとなる)

### put

    public java.lang.Object put(java.lang.Object key,
                                java.lang.Object value)

  putをオーバーライド.
  MemoryモードとFileモードで保存方法が異なる.

  定義:
    インタフェース `java.util.Map` 内の `put`
  オーバーライド:
    クラス `CoreValueMap` 内の `put`
  パラメータ:
    `key` - 登録kye値(全てStringとなる)
    `value` - 登録value値(全てStringとなる)
  戻り値:
    Object 返却値(Fileモード時は返却値は常にnull)

### remove

    public java.lang.Object remove(java.lang.Object key)

  removeをオーバーライド.
  MemoryモードとFileモード両方で同じ動きをする.

  定義:
    インタフェース `java.util.Map` 内の `remove`
  オーバーライド:
    クラス `CoreValueMap` 内の `remove`
  パラメータ:
    `key` - 削除kye値(全てStringとなる)
  戻り値:
    Object 返却値

### containsKey

    public boolean containsKey(java.lang.Object key)

  containsKeyをオーバーライド.
  MemoryモードとFileモード両方で同じ動きをする.

  定義:
    インタフェース `java.util.Map` 内の `containsKey`
  オーバーライド:
    クラス `CoreValueMap` 内の `containsKey`
  パラメータ:
    `key` - 登録kye値(全てStringとなる)
  戻り値:
    boolean 返却値

### getDataUseSize

    public long getDataUseSize(java.lang.String unique)

### getAllDataUseSize

    public java.lang.String[] getAllDataUseSize()

### vacuumData

    public boolean vacuumData()

  データファイルの不要領域を掃除して新たなファイルを作りなおす.
  方法はMapを一時Mapをつくり出して、現在のsuperクラスのMapから全てのKeyを取り出し、
  そのキー値を使用してvalueを自身から取得し、新しいDataファイルに書き出すと同時に、
  一時MapにKeyと書き込んだファイル内の行数をputする.
  全てのKeyの取得が終わったタイミングで新しいファイルには、フラグメントはないので、
  次に、同期を実施し同期中に、superのMapをクリアし、一時Mapの内容をsuperのMapにputする.
  これでsuperのMapはフラグメントの存在しない新しいファイルの行数を保持できているので、 あとは元のデータファイルを削除し、新しく作成したフラグメントのないファイルをデータファイル名に リネームすれば、Vacuum完了.

### close

    public void close()

### deleteMapDataFile

    public void deleteMapDataFile()
                           throws java.lang.Exception

  Diskモード時にデータストリームを閉じて、データファイルを削除する.

  例外:
    `java.lang.Exception`

### getKeySize

    public int getKeySize()

  getKeySize.

  パラメータ:
    `` -
  戻り値:
    int
  例外:
    ``

### getAllDataCount

    public int getAllDataCount()

  getAllDataCount.

  パラメータ:
    `` -
  戻り値:
    int
  例外:
    ``

### setKLastDataChangeTime

    public void setKLastDataChangeTime(long time)

  データを変更した最終時間を記録する.

  パラメータ:
    `time` - 変更時間

### getKLastDataChangeTime

    public long getKLastDataChangeTime()

  データを変更した最終時間を取得する.

  戻り値:
    long 変更時間

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