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

## woolpack.factory
クラス FactoryUtils

    java.lang.Object
      woolpack.factory.FactoryUtils

    public final class FactoryUtils

extends java.lang.Object

ファクトリのユーティリティです。

作成者:
  nakamura

フィールドの概要
`static Fn<java.lang.Object,java.util.Map<java.lang.String,java.lang.Object>,java.lang.RuntimeException>` | `LINKED_MAP_FACTORY` `LinkedHashMap`を生成する関数です。

メソッドの概要
`static
`<C,K,E extends java.lang.Exception> Fn<C,java.lang.Void,E>`
` | `cache(Fn<? super C,? extends java.util.Map<? super K,java.lang.Object>,? extends E> mapGetter, Fn<? super C,? extends K,? extends E> keyGetter, Fn<? super C,?,? extends E> maker, EL el)` 委譲先で生成したオブジェクトを`Map`にキャッシュして コンテキスト役に設定する関数を生成します。
`static
`<C,K,E extends java.lang.Exception> Fn<C,java.lang.Object,E>`
` | `cache(Fn<? super C,? extends java.util.Map<? super K,java.lang.Object>,? extends E> mapGetter, Fn<? super C,K,? extends E> keyGetter, Fn<? super C,?,? extends E> maker)` 委譲先で生成したオブジェクトを`Map`にキャッシュして返す関数を生成します。
`static
`<C,K,E extends java.lang.Exception> Fn<C,java.lang.Void,E>`
` | `concurrentCache(Fn<? super C,? extends java.util.concurrent.ConcurrentMap<? super K,java.lang.Object>,? extends E> mapGetter, Fn<? super C,? extends K,? extends E> keyGetter, Fn<? super C,?,? extends E> maker, EL el)` 委譲先で生成したオブジェクトを`ConcurrentMap`にキャッシュして コンテキスト役に設定する関数を生成します。
`static
`<C,K,E extends java.lang.Exception> Fn<C,java.lang.Object,E>`
` | `concurrentCache(Fn<? super C,? extends java.util.concurrent.ConcurrentMap<? super K,java.lang.Object>,? extends E> mapGetter, Fn<? super C,K,? extends E> keyGetter, Fn<? super C,?,? extends E> maker)` 委譲先で生成したオブジェクトを`ConcurrentMap`にキャッシュして返す関数を生成します。
`static Fn<java.lang.Object,java.lang.Object,java.lang.RuntimeException>` | `doEL(GettingEL gettingEL)` `GettingEL`に委譲する関数を生成します。
`static
`<C> Fn<C,java.io.Reader,java.io.IOException>`
` | `inputStreamReaderFactory(Fn<? super C,? extends java.io.InputStream,? extends java.io.IOException> inputStreamFactory, java.lang.String charset)` 委譲先で取得した`InputStream`を`Reader`に変換する関数を生成します。
`static
`<R> Fn<java.lang.Object,R,java.lang.Exception>`
` | `newInstance(java.lang.Class<R> clazz)` `Class.newInstance()`を使用するオブジェクトファクトリを生成します。
`static Fn<java.lang.Object,java.io.InputStream,java.io.UnsupportedEncodingException>` | `stringInputStreamFactory(java.lang.String charset, java.lang.String s)` 文字列のバイト配列表現を返すテスト用の関数を生成します。
`static Fn<java.lang.Object,java.io.StringReader,java.lang.RuntimeException>` | `stringReaderFactory(java.lang.String s)` `StringReader`を返すテスト用の関数を生成します。

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

フィールドの詳細

### LINKED_MAP_FACTORY

    public static final Fn<java.lang.Object,java.util.Map<java.lang.String,java.lang.Object>,java.lang.RuntimeException> LINKED_MAP_FACTORY

  `LinkedHashMap`を生成する関数です。
  適用しているデザインパターン：`Map`のAbstract Factory。

メソッドの詳細

### cache

    public static <C,K,E extends java.lang.Exception> Fn<C,java.lang.Object,E> cache(Fn<? super C,? extends java.util.Map<? super K,java.lang.Object>,? extends E> mapGetter,
                                                                                     Fn<? super C,K,? extends E> keyGetter,
                                                                                     Fn<? super C,?,? extends E> maker)

  委譲先で生成したオブジェクトを`Map`にキャッシュして返す関数を生成します。
  適用しているデザインパターン：オブジェクト生成処理のProxy、Flyweight。

  型パラメータ:
    `C` -
    `K` -
    `E` -
  パラメータ:
    `mapGetter` - キャッシュ用マップを取得する委譲先。
    `keyGetter` - キャッシュに格納する際のキーを取得する委譲先。
    `maker` - キャッシュするファイルを生成するファクトリ。
  戻り値:
    関数。
  関連項目:
    `MapCache`

### concurrentCache

    public static <C,K,E extends java.lang.Exception> Fn<C,java.lang.Object,E> concurrentCache(Fn<? super C,? extends java.util.concurrent.ConcurrentMap<? super K,java.lang.Object>,? extends E> mapGetter,
                                                                                               Fn<? super C,K,? extends E> keyGetter,
                                                                                               Fn<? super C,?,? extends E> maker)

  委譲先で生成したオブジェクトを`ConcurrentMap`にキャッシュして返す関数を生成します。 `ConcurrentMap.putIfAbsent(Object, Object)`を使用して返却値の一意性を保証しますが、 ひとつの返却値に対応するインスタンス生成の委譲が複数回発生する可能性があります。
  適用しているデザインパターン：オブジェクト生成処理のProxy、Flyweight。

  型パラメータ:
    `C` -
    `K` -
    `E` -
  パラメータ:
    `mapGetter` - キャッシュ用マップを取得する委譲先。
    `keyGetter` - キャッシュに格納する際のキーを取得する委譲先。
    `maker` - キャッシュするファイルを生成するファクトリ。
  戻り値:
    関数。
  関連項目:
    `ConcurrentMapCache`

### cache

    public static <C,K,E extends java.lang.Exception> Fn<C,java.lang.Void,E> cache(Fn<? super C,? extends java.util.Map<? super K,java.lang.Object>,? extends E> mapGetter,
                                                                                   Fn<? super C,? extends K,? extends E> keyGetter,
                                                                                   Fn<? super C,?,? extends E> maker,
                                                                                   EL el)

  委譲先で生成したオブジェクトを`Map`にキャッシュして コンテキスト役に設定する関数を生成します。
  適用しているデザインパターン：オブジェクト生成処理のProxy、Flyweight。

  型パラメータ:
    `C` -
    `K` -
    `E` -
  パラメータ:
    `mapGetter` - キャッシュ用マップを取得する委譲先。
    `keyGetter` - キャッシュに格納する際のキーを取得する委譲先。
    `maker` - キャッシュするファイルを生成するファクトリ。
    `el` - makerと本インスタンスによって値が格納される位置。
  戻り値:
    関数。
  関連項目:
    `SideEffectMapCache`

### concurrentCache

    public static <C,K,E extends java.lang.Exception> Fn<C,java.lang.Void,E> concurrentCache(Fn<? super C,? extends java.util.concurrent.ConcurrentMap<? super K,java.lang.Object>,? extends E> mapGetter,
                                                                                             Fn<? super C,? extends K,? extends E> keyGetter,
                                                                                             Fn<? super C,?,? extends E> maker,
                                                                                             EL el)

  委譲先で生成したオブジェクトを`ConcurrentMap`にキャッシュして コンテキスト役に設定する関数を生成します。 `ConcurrentMap.putIfAbsent(Object, Object)`を使用して返却値の一意性を保証しますが、 ひとつの返却値に対応するインスタンス生成の委譲が複数回発生する可能性があります。
  適用しているデザインパターン：オブジェクト生成処理のProxy、Flyweight。

  型パラメータ:
    `C` -
    `K` -
    `E` -
  パラメータ:
    `mapGetter` - キャッシュ用マップを取得する委譲先。
    `keyGetter` - キャッシュに格納する際のキーを取得する委譲先。
    `maker` - キャッシュするファイルを生成するファクトリ。
    `el` - makerと本インスタンスによって値が格納される位置。
  戻り値:
    関数。
  関連項目:
    `SideEffectConcurrentMapCache`

### doEL

    public static Fn<java.lang.Object,java.lang.Object,java.lang.RuntimeException> doEL(GettingEL gettingEL)

  `GettingEL`に委譲する関数を生成します。
  適用しているデザインパターン：Adapter。

  パラメータ:
    `gettingEL` - 委譲先。
  戻り値:
    関数。
  関連項目:
    `GettingELFn`

### inputStreamReaderFactory

    public static <C> Fn<C,java.io.Reader,java.io.IOException> inputStreamReaderFactory(Fn<? super C,? extends java.io.InputStream,? extends java.io.IOException> inputStreamFactory,
                                                                                        java.lang.String charset)

  委譲先で取得した`InputStream`を`Reader`に変換する関数を生成します。 文字セットが不正な場合、取得した`InputStream.close()`を呼び出します。
  適用しているデザインパターン：`InputStream`のAbstract FactoryのAdapter。

  型パラメータ:
    `C` -
  パラメータ:
    `inputStreamFactory` - `InputStream`のファクトリ。
    `charset` - 文字セット。
  戻り値:
    関数。
  関連項目:
    `InputStreamReaderFactory`

### newInstance

    public static <R> Fn<java.lang.Object,R,java.lang.Exception> newInstance(java.lang.Class<R> clazz)

  `Class.newInstance()`を使用するオブジェクトファクトリを生成します。
  適用しているデザインパターン：オブジェクトのAbstract Factory。

  型パラメータ:
    `R` -
  パラメータ:
    `clazz` - 生成するクラスの型。
  戻り値:
    関数。
  関連項目:
    `NewInstanceFactory`

### stringInputStreamFactory

    public static Fn<java.lang.Object,java.io.InputStream,java.io.UnsupportedEncodingException> stringInputStreamFactory(java.lang.String charset,
                                                                                                                         java.lang.String s)

  文字列のバイト配列表現を返すテスト用の関数を生成します。
  適用しているデザインパターン：`InputStream`のAbstract Factory。

  パラメータ:
    `charset` - 文字セット。
    `s` - 文字列。
  戻り値:
    関数。
  関連項目:
    `StringInputStreamFactory`

### stringReaderFactory

    public static Fn<java.lang.Object,java.io.StringReader,java.lang.RuntimeException> stringReaderFactory(java.lang.String s)

  `StringReader`を返すテスト用の関数を生成します。
  適用しているデザインパターン：`StringReader`のAbstract Factory。

  パラメータ:
    `s` - 文字列。
  戻り値:
    関数。
  関連項目:
    `StringReaderFactory`

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

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