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

## woolpack.utils
クラス Utils

    java.lang.Object
      woolpack.utils.Utils

    public final class Utils

extends Object

コレクションに関するユーティリティです。

フィールドの概要
`static Set<Class<?>>` | `ATOM_SET` 値の個数に関して原子的であるクラスの一覧のデフォルト値です。

メソッドの概要
`static List<Object>` | `arrayToList(Object value)` 配列を変換した`List`のビューを返します。
`static
`<K,V> ConcurrentMap<K,V>`
` | `concurrentMap(Map<K,V> map, Object lock)` `ConcurrentMap`で定義しているメソッドのみを lock で同期化する`ConcurrentMap`のビューを返します。
`static
`<K,V> Map<K,V>`
` | `injectiveMap(Map<K,V> map)` 単射であることを維持する`Map`のビューを返します。
`static
`<K,V> Map<V,K>`
` | `inverseMap(Map<K,V> before)` 逆写像の`Map`のビューを返します。
`static
`<V> Map<String,V>`
` | `keyNotEmptyMap(Map<String,V> map)` キーの文字数がゼロであることを禁止する`Map`のビューを返します。
`static
`<K,V> BuildableLinkedHashMap<K,V>`
` | `linkedMap(K key, V value)` Javaの汎用型の推論を使用して`LinkedHashMap`を簡易に生成するための開始位置です。
`static
`<K,V> BuildableLinkedHashMap<K,V>`
` | `linkedMap(Map<? extends K,? extends V> t)` Javaの汎用型の推論を使用して`LinkedHashMap`を簡易に生成するための開始位置です。
`static
`<V> BuildableArrayList<V>`
` | `list(Collection<? extends V> c)` Javaの汎用型の推論を使用して`List`を簡易に生成するための開始位置です。
`static
`<V> BuildableArrayList<V>`
` | `list(V v)` Javaの汎用型の推論を使用して`List`を簡易に生成するための開始位置です。
`static
`<K,V> BuildableHashMap<K,V>`
` | `map(K key, V value)` Javaの汎用型の推論を使用して`Map`を簡易に生成するための開始位置です。
`static
`<K,V> BuildableHashMap<K,V>`
` | `map(Map<? extends K,? extends V> t)` Javaの汎用型の推論を使用して`Map`を簡易に生成するための開始位置です。
`static
`<K,V> Map<K,V>`
` | `notNullMap(Map<K,V> map)` キー・値が null 値をとることを禁止する`Map`のビューを返します。
`static
`<V> Map<String,V>`
` | `similarKeyMap(Map<String,V> map)` 類似の名前を同一とみなす`Map`のビューを返します。
`static
`<V> Map<String,V>`
` | `similarKeyMap(Map<String,V> map, Fn<String,Iterable<String>,RuntimeException> fn)` 類似の名前を同一とみなす`Map`のビューを返します。
`static Collection<?>` | `toCollection(Object value)` オブジェクトを`Collection`に変換します。
`static Iterable<?>` | `toIterable(Object value)` オブジェクトを`Iterable`に変換します。
`static List<?>` | `toList(Object value)` オブジェクトを`List`に変換します。
`static List<String>` | `toMessageList(Throwable throwable)` `Throwable.getCause()`をたどって `Throwable.getLocalizedMessage()`の一覧に変換します。
`static
`<E> Iterable<E>`
` | `unmodifiableIterable(Iterable<E> iterable)` 変更禁止の`Iterable`のビューを返します。
`static
`<K,V> Map<K,V>`
` | `unoverwritableMap(Map<K,V> map)` キーに関して上書き禁止した`Map`のビューを返します。

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

フィールドの詳細

### ATOM_SET

    public static final Set<Class<?>> ATOM_SET

  値の個数に関して原子的であるクラスの一覧のデフォルト値です。処理の原子性とは無関係です。

メソッドの詳細

### inverseMap

    public static <K,V> Map<V,K> inverseMap(Map<K,V> before)

  逆写像の`Map`のビューを返します。 引数が単射でなくなるキーと値の組を設定した場合は `IllegalStateException`を投げます。
  適用しているデザインパターン：`Map`のAdapter。

  型パラメータ:
    `K` - キー。
    `V` - 値。
  パラメータ:
    `before` - 逆写像の作成元。本メソッドはこの引数の状態を変化させません。
  戻り値:
    逆写像の`Map`。返却値の状態変化と引数の状態変化は相互に伝播します。
  例外:
    `IllegalStateException` - 引数が単射でない場合。

### injectiveMap

    public static <K,V> Map<K,V> injectiveMap(Map<K,V> map)

  単射であることを維持する`Map`のビューを返します。 単射とは「map#keySet()に含まれるすべての k0 と k1 について k0 != k1 ならば map#get(k0) != map#get(k1)」 であることを意味します。 または対偶をとって 「map#keySet()に含まれるすべての k0 と k1 について map#get(k0) == map#get(k1) ならば k0 == k1」 であることを意味します。 登録済の値を異なるキーで設定した場合は `IllegalStateException`を投げます。
  適用しているデザインパターン：`Map`のAdapter。

  型パラメータ:
    `K` - キー。
    `V` - 値。
  パラメータ:
    `map` - 単射であることを維持する対象の`Map`。本メソッドはこの引数の状態を変化させません。
  戻り値:
    単射であることを維持された`Map`。返却値の状態変化と引数の状態変化は相互に伝播します。

### unoverwritableMap

    public static <K,V> Map<K,V> unoverwritableMap(Map<K,V> map)

  キーに関して上書き禁止した`Map`のビューを返します。 登録済のキーを設定した場合は`IllegalStateException`を投げます。
  適用しているデザインパターン：`Map`のAdapter。

  型パラメータ:
    `K` - キー。
    `V` - 値。
  パラメータ:
    `map` - キーに関して上書き禁止する対象の`Map`。本メソッドはこの引数の状態を変化させません。
  戻り値:
    キーに関して上書き禁止された`Map`。返却値の状態変化と引数の状態変化は相互に伝播します。

### notNullMap

    public static <K,V> Map<K,V> notNullMap(Map<K,V> map)

  キー・値が null 値をとることを禁止する`Map`のビューを返します。 キーまたは値が null 値である組を設定した場合は`NullPointerException`を投げます。
  適用しているデザインパターン：`Map`のAdapter。

  型パラメータ:
    `K` - キー。
    `V` - 値。
  パラメータ:
    `map` - キー・値がnull値をとることを禁止する対象の`Map`。本メソッドはこの引数の状態を変化させません。
  戻り値:
    キー・値がnull値をとることを禁止された`Map`。返却値の状態変化と引数の状態変化は相互に伝播します。

### keyNotEmptyMap

    public static <V> Map<String,V> keyNotEmptyMap(Map<String,V> map)

  キーの文字数がゼロであることを禁止する`Map`のビューを返します。 文字数がゼロのキーを設定した場合は `StringIndexOutOfBoundsException`を投げます。
  適用しているデザインパターン：`Map`のAdapter。

  型パラメータ:
    `V` - 値。
  パラメータ:
    `map` - キーの文字数がゼロであることを禁止する対象の`Map`。本メソッドはこの引数の状態を変化させます。
  戻り値:
    キーの文字数がゼロであることを禁止された`Map`。返却値の状態変化と引数の状態変化は相互に伝播します。

### similarKeyMap

    public static <V> Map<String,V> similarKeyMap(Map<String,V> map)

  類似の名前を同一とみなす`Map`のビューを返します。 類似の名前とは、大文字区切り(先頭文字の大文字と小文字の区別なし)と アンダーバー区切り(大文字と小文字の区別なし)の相互変換の範囲とします。
  適用しているデザインパターン：`Map`のAdapter。

  型パラメータ:
    `V` - 値。
  パラメータ:
    `map` - 類似の名前を同一とみなす対象の`Map`。本メソッドはこの引数の状態を変化させません。
  戻り値:
    類似の名前を同一とみなす`Map`。返却値の状態変化と引数の状態変化は相互に伝播します。
  関連項目:
    `similarKeyMap(Map, Fn)`

### similarKeyMap

    public static <V> Map<String,V> similarKeyMap(Map<String,V> map,
                                                  Fn<String,Iterable<String>,RuntimeException> fn)

  類似の名前を同一とみなす`Map`のビューを返します。 類似の名前とは、大文字区切り(先頭文字の大文字と小文字の区別なし)と アンダーバー区切り(大文字と小文字の区別なし)の相互変換の範囲とします。
  適用しているデザインパターン：`Map`のAdapter。

  型パラメータ:
    `V` - 値。
  パラメータ:
    `map` - 類似の名前を同一とみなす対象の`Map`。本メソッドはこの引数の状態を変化させません。
    `fn` - 属性名パターンの候補を順に返す`Iterable`のファクトリ。
  戻り値:
    類似の名前を同一とみなす`Map`。返却値の状態変化と引数の状態変化は相互に伝播します。

### concurrentMap

    public static <K,V> ConcurrentMap<K,V> concurrentMap(Map<K,V> map,
                                                         Object lock)

  `ConcurrentMap`で定義しているメソッドのみを lock で同期化する`ConcurrentMap`のビューを返します。 DCLP(Double checked locking)パターンを使用しているためインスタンスが複数生成されることを抑止することはできませんが、 ひとつのインスタンスのみが複数のスレッドから参照されることを保証することができます。 `Map`で定義されているメソッドは同期化しないので引数の map が同期化されている必要があります。
  適用しているデザインパターン：`Map`のAdapter。

  型パラメータ:
    `K` - キー。
    `V` - 値。
  パラメータ:
    `map` - 対象の`Map`。本メソッドはこの引数の状態を変化させません。
    `lock` - ロックオブジェクト。
  戻り値:
    ロックオブジェクトで原子化した`ConcurrentMap`。返却値の状態変化と引数の状態変化は相互に伝播します。

### unmodifiableIterable

    public static <E> Iterable<E> unmodifiableIterable(Iterable<E> iterable)

  変更禁止の`Iterable`のビューを返します。
  適用しているデザインパターン：`Iterable`のAdapter。

  型パラメータ:
    `E` - 汎用型。
  パラメータ:
    `iterable` - 変更禁止対象の`Iterable`。本メソッドはこの引数の状態を変化させません。
  戻り値:
    変更禁止された`Iterable`。引数の状態変化はこの返却値に伝播します。

### arrayToList

    public static List<Object> arrayToList(Object value)

  配列を変換した`List`のビューを返します。

  パラメータ:
    `value` - 配列。プリミティブ型の配列にも対応しています。
  戻り値:
    配列を変換した`List`のビュー。返却値の状態変化と引数の状態変化は相互に伝播します。

### toIterable

    public static Iterable<?> toIterable(Object value)

  オブジェクトを`Iterable`に変換します。 変換元が配列なら`Iterable`に変換します。 変換元が`Iterable`ならそのまま返します。 上記以外ならその値ひとつの`Iterable`を返します。 このクラスは LSP(The Liskov Substitution Principle) を満たしません。

  パラメータ:
    `value` - 変換元。
  戻り値:
    変換された`Iterable`。 変換元が配列または`Iterable` の場合は返却値の状態変化と引数の状態変化は相互に伝播します。

### toCollection

    public static Collection<?> toCollection(Object value)

  オブジェクトを`Collection`に変換します。 変換元が配列なら`Collection`に変換します。 変換元が`Collection`ならそのまま返します。 上記以外ならその値ひとつの`Collection`を返します。 このクラスは LSP(The Liskov Substitution Principle) を満たしません。

  パラメータ:
    `value` - 変換元。
  戻り値:
    変換された`Collection`。 変換元が配列または`Collection` の場合は返却値の状態変化と引数の状態変化は相互に伝播します。

### toList

    public static List<?> toList(Object value)

  オブジェクトを`List`に変換します。 変換元が配列なら`List`に変換します。 変換元が`List`ならそのまま返します。 上記以外ならその値ひとつの`List`を返します。 このクラスは LSP(The Liskov Substitution Principle) を満たしません。

  パラメータ:
    `value` - 変換元。
  戻り値:
    変換された`List`。変換元が配列または `List`の場合は返却値の状態変化と引数の状態変化は相互に伝播します。

### toMessageList

    public static List<String> toMessageList(Throwable throwable)

  `Throwable.getCause()`をたどって `Throwable.getLocalizedMessage()`の一覧に変換します。 中間の`Throwable`の場合、 メッセージが null でないかつメッセージが原因の `Throwable.toString()`と同一でない場合にメッセージとして追加します。 終端の`Throwable`の場合、 メッセージが null の場合は`Throwable.toString()`をメッセージとして追加し、 メッセージが null でない場合はそれをメッセージとして追加します。

  パラメータ:
    `throwable` - 基点。
  戻り値:
    メッセージの一覧。

### list

    public static <V> BuildableArrayList<V> list(V v)

  Javaの汎用型の推論を使用して`List`を簡易に生成するための開始位置です。

  型パラメータ:
    `V` -
  パラメータ:
    `v` - 追加する値。
  戻り値:
    `BuildableArrayList`のインスタンス。

### list

    public static <V> BuildableArrayList<V> list(Collection<? extends V> c)

  Javaの汎用型の推論を使用して`List`を簡易に生成するための開始位置です。

  型パラメータ:
    `V` -
  パラメータ:
    `c` - コピー元。
  戻り値:
    `BuildableArrayList`のインスタンス。

### map

    public static <K,V> BuildableHashMap<K,V> map(K key,
                                                  V value)

  Javaの汎用型の推論を使用して`Map`を簡易に生成するための開始位置です。

  型パラメータ:
    `K` -
    `V` -
  パラメータ:
    `key` - 追加するキー。
    `value` - 追加するキーに対応する値。
  戻り値:
    `BuildableHashMap`のインスタンス。

### map

    public static <K,V> BuildableHashMap<K,V> map(Map<? extends K,? extends V> t)

  Javaの汎用型の推論を使用して`Map`を簡易に生成するための開始位置です。

  型パラメータ:
    `K` -
    `V` -
  パラメータ:
    `t` - コピー元。
  戻り値:
    `BuildableHashMap`のインスタンス。

### linkedMap

    public static <K,V> BuildableLinkedHashMap<K,V> linkedMap(K key,
                                                              V value)

  Javaの汎用型の推論を使用して`LinkedHashMap`を簡易に生成するための開始位置です。

  型パラメータ:
    `K` -
    `V` -
  パラメータ:
    `key` - 追加するキー。
    `value` - 追加するキーに対応する値。
  戻り値:
    `BuildableLinkedHashMap`のインスタンス。

### linkedMap

    public static <K,V> BuildableLinkedHashMap<K,V> linkedMap(Map<? extends K,? extends V> t)

  Javaの汎用型の推論を使用して`LinkedHashMap`を簡易に生成するための開始位置です。

  型パラメータ:
    `K` -
    `V` -
  パラメータ:
    `t` - コピー元。
  戻り値:
    `BuildableLinkedHashMap`のインスタンス。

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

Copyright (C) 2006-2007 Takahiro Nakamura. All rights reserved.