Woolpack API

woolpack.utils
クラス Utils

java.lang.Object
  上位を拡張 woolpack.utils.Utils

public final class Utils
extends java.lang.Object

コレクションに関するユーティリティです。 型推論で表記を簡略するためのスタティックメソッドを含みます。

作成者:
nakamura

フィールドの概要
static java.util.Set<java.lang.Class<?>> ATOM_SET
          値の個数に関して原子的であるクラスの一覧のデフォルト値です。
 
メソッドの概要
static java.util.List<java.lang.Object> arrayToList(java.lang.Object value)
          配列を変換したListのビューを返します。
static
<K,V> java.util.concurrent.ConcurrentMap<K,V>
concurrentMap(java.util.Map<K,V> map, java.lang.Object lock)
          ConcurrentMapで定義しているメソッドのみを lock で同期化するConcurrentMapのビューを返します。
static
<K,V> java.util.Map<K,V>
injectiveMap(java.util.Map<K,V> map)
          単射であることを維持するMapのビューを返します。
static
<K,V> java.util.Map<V,K>
inverseMap(java.util.Map<K,V> before)
          逆写像のMapのビューを返します。
static
<V> java.util.Map<java.lang.String,V>
keyNotEmptyMap(java.util.Map<java.lang.String,V> map)
          キーの文字数がゼロであることを禁止するMapのビューを返します。
static
<K,V> BuildableLinkedHashMap<K,V>
linkedMap(K key, V value)
          Javaの汎用型の推論を使用してLinkedHashMapを簡易に生成するための開始位置です。
static
<K,V> BuildableLinkedHashMap<K,V>
linkedMap(java.util.Map<? extends K,? extends V> t)
          Javaの汎用型の推論を使用してLinkedHashMapを簡易に生成するための開始位置です。
static
<V> BuildableArrayList<V>
list(java.util.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(java.util.Map<? extends K,? extends V> t)
          Javaの汎用型の推論を使用してMapを簡易に生成するための開始位置です。
static
<K,V> java.util.Map<K,V>
notNullMap(java.util.Map<K,V> map)
          キー・値が null 値をとることを禁止するMapのビューを返します。
static
<V> java.util.Map<java.lang.String,V>
similarKeyMap(java.util.Map<java.lang.String,V> map)
          類似の名前を同一とみなすMapのビューを返します。
static java.util.Collection<?> toCollection(java.lang.Object value)
          オブジェクトをCollectionに変換します。
static java.lang.Iterable<?> toIterable(java.lang.Object value)
          オブジェクトをIterableに変換します。
static java.util.List<?> toList(java.lang.Object value)
          オブジェクトをListに変換します。
static java.util.List<java.lang.String> toMessageList(java.lang.Throwable throwable)
          Throwable.getCause()をたどって Throwable.getLocalizedMessage()の一覧に変換します。
static
<E> java.lang.Iterable<E>
unmodifiableIterable(java.lang.Iterable<E> iterable)
          変更禁止のIterableのビューを返します。
static
<K,V> java.util.Map<K,V>
unoverwritableMap(java.util.Map<K,V> map)
          キーに関して上書き禁止したMapのビューを返します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

ATOM_SET

public static final java.util.Set<java.lang.Class<?>> ATOM_SET
値の個数に関して原子的であるクラスの一覧のデフォルト値です。処理の原子性とは無関係です。

メソッドの詳細

inverseMap

public static <K,V> java.util.Map<V,K> inverseMap(java.util.Map<K,V> before)
逆写像のMapのビューを返します。 引数が単射でなくなるキーと値の組を設定した場合は IllegalStateExceptionを投げます。

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

injectiveMap

public static <K,V> java.util.Map<K,V> injectiveMap(java.util.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を投げます。

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

unoverwritableMap

public static <K,V> java.util.Map<K,V> unoverwritableMap(java.util.Map<K,V> map)
キーに関して上書き禁止したMapのビューを返します。 登録済のキーを設定した場合はIllegalStateExceptionを投げます。

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

notNullMap

public static <K,V> java.util.Map<K,V> notNullMap(java.util.Map<K,V> map)
キー・値が null 値をとることを禁止するMapのビューを返します。 キーまたは値が null 値である組を設定した場合はNullPointerExceptionを投げます。

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

keyNotEmptyMap

public static <V> java.util.Map<java.lang.String,V> keyNotEmptyMap(java.util.Map<java.lang.String,V> map)
キーの文字数がゼロであることを禁止するMapのビューを返します。 文字数がゼロのキーを設定した場合は StringIndexOutOfBoundsExceptionを投げます。

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

similarKeyMap

public static <V> java.util.Map<java.lang.String,V> similarKeyMap(java.util.Map<java.lang.String,V> map)
類似の名前を同一とみなすMapのビューを返します。 類似の名前とは、大文字区切り(先頭文字の大文字と小文字の区別なし)と アンダーバー区切り(大文字と小文字の区別なし)の相互変換の範囲とします。

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

concurrentMap

public static <K,V> java.util.concurrent.ConcurrentMap<K,V> concurrentMap(java.util.Map<K,V> map,
                                                                          java.lang.Object lock)
ConcurrentMapで定義しているメソッドのみを lock で同期化するConcurrentMapのビューを返します。 DCLP(Double checked locking)パターンを使用しているためインスタンスが複数生成されることを抑止することはできませんが、 ひとつのインスタンスのみが複数のスレッドから参照されることを保証することができます。 Mapで定義されているメソッドは同期化しないので引数の map が同期化されている必要があります。

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

unmodifiableIterable

public static <E> java.lang.Iterable<E> unmodifiableIterable(java.lang.Iterable<E> iterable)
変更禁止のIterableのビューを返します。

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

arrayToList

public static java.util.List<java.lang.Object> arrayToList(java.lang.Object value)
配列を変換したListのビューを返します。

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

toIterable

public static java.lang.Iterable<?> toIterable(java.lang.Object value)
オブジェクトをIterableに変換します。 変換元が配列ならIterableに変換します。 変換元がIterableならそのまま返します。 上記以外ならその値ひとつのIterableを返します。 このクラスは LSP(The Liskov Substitution Principle) を満たしません。

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

toCollection

public static java.util.Collection<?> toCollection(java.lang.Object value)
オブジェクトをCollectionに変換します。 変換元が配列ならCollectionに変換します。 変換元がCollectionならそのまま返します。 上記以外ならその値ひとつのCollectionを返します。 このクラスは LSP(The Liskov Substitution Principle) を満たしません。

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

toList

public static java.util.List<?> toList(java.lang.Object value)
オブジェクトをListに変換します。 変換元が配列ならListに変換します。 変換元がListならそのまま返します。 上記以外ならその値ひとつのListを返します。 このクラスは LSP(The Liskov Substitution Principle) を満たしません。

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

toMessageList

public static java.util.List<java.lang.String> toMessageList(java.lang.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(java.util.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(java.util.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(java.util.Map<? extends K,? extends V> t)
Javaの汎用型の推論を使用してLinkedHashMapを簡易に生成するための開始位置です。

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

Woolpack API

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