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

## woolpack.fn
クラス FnUtils

    java.lang.Object
      woolpack.fn.FnUtils

    public final class FnUtils

extends Object

インタープリタ デザインパターンの基本部品のユーティリティです。

フィールドの概要
`static Fn<Class,Class,RuntimeException>` | `TO_WRAPPER` プリミティブ型をオブジェクト型に変換する`Fn`です。

メソッドの概要
`static
`<R> Fn<Object,R,RuntimeException>`
` | `castTo(Class<R> clazz)` `Class.cast(Object)`を使用してキャストする関数を生成します。
`static
`<C,R,E extends Exception> Delegator<C,R,E>`
` | `delegate()` 委譲するだけの関数を生成します。
`static
`<C,R,E extends Exception> Delegator<C,R,E>`
` | `delegate(Fn<? super C,? extends R,? extends E> fn)` 委譲するだけの関数を生成します。
`static
`<C> Fn<C,C,RuntimeException>`
` | `echo()` 引数をそのまま返す関数を生成します。
`static
`<C,R,E extends Exception> Fn<C,R,E>`
` | `exec(Fn<? super C,? extends Fn<? super C,? extends R,? extends E>,? extends E> fn)` 限定的な汎関数を処理する関数を生成します。
`static
`<C,R> Fn<C,R,RuntimeException>`
` | `fix(R value)` 固定値を返す関数を生成します。
`static
`<C,R,E extends Exception> Fn<C,R,E>`
` | `fixThrows(R value)` 固定値を返す関数を生成します。
`static
`<C,R,E extends Exception> Fn<C,R,E>`
` | `ifElse(Map<? extends Fn<? super C,?,? extends E>,R> map, Fn<? super C,? extends R,? extends E> defaultFn)` `Map`を使用して、はじめて委譲先が`Boolean.TRUE`になった値を返す関数を生成します。
`static
`<C,R,E extends Exception> Fn<C,R,E>`
` | `ifElse(Map<? extends Fn<? super C,?,? extends E>,R> map, R defaultValue)` `Map`を使用して、はじめて委譲先が`Boolean.TRUE`になった値を返す関数を生成します。
`static
`<C,R,E extends Exception> Fn<C,R,E>`
` | `ifTrue(Fn<? super C,?,? extends E> ifFn, Fn<? super C,? extends R,? extends E> trueFn, Fn<? super C,? extends R,? extends E> falseFn)` 評価結果により委譲先を分岐する関数を生成します。
`static
`<A,B,C,E extends Exception> Fn<A,C,E>`
` | `join(Fn<? super A,? extends B,? extends E> fn0, Fn<? super B,? extends C,? extends E> fn1)` ふたつの関数を合成した関数を生成します。
`static
`<A,B,C,D,E extends Exception> Fn<A,D,E>`
` | `join(Fn<? super A,? extends B,? extends E> fn0, Fn<? super B,? extends C,? extends E> fn1, Fn<? super C,? extends D,? extends E> fn2)` 関数を合成した関数を生成します。
`static
`<A,B,C,D,E,T extends Exception> Fn<A,E,T>`
` | `join(Fn<? super A,? extends B,? extends T> fn0, Fn<? super B,? extends C,? extends T> fn1, Fn<? super C,? extends D,? extends T> fn2, Fn<? super D,? extends E,? extends T> fn3)` 関数を合成した関数を生成します。
`static
`<A,B,C,D,E,F,T extends Exception> Fn<A,F,T>`
` | `join(Fn<? super A,? extends B,? extends T> fn0, Fn<? super B,? extends C,? extends T> fn1, Fn<? super C,? extends D,? extends T> fn2, Fn<? super D,? extends E,? extends T> fn3, Fn<? super E,? extends F,? extends T> fn4)` 関数を合成した関数を生成します。
`static
`<C,R,E extends Exception> Fn<C,R,E>`
` | `maybe(Fn<? super C,? extends R,? extends E> fn)` 引数がnullの場合は委譲をスキップしてnullを返す関数を生成します。
`static
`<C,R,E extends Exception> Fn<C,R,E>`
` | `recode(Fn<? super C,? extends R,? extends E> fn, Collection<? super C> contextList, Collection<? super R> returnList)` 通過情報を`Collection`に記録するテスト用の関数を生成します。
`static
`<C,R,E extends Exception> Fn<C,R,E>`
` | `recode(Fn<? super C,? extends R,? extends E> fn, String name, Collection<String> nameList)` 通過情報を`Collection`に記録するテスト用の関数を生成します。
`static
`<C,R,E extends Exception> Fn<C,R,E>`
` | `recode(Fn<? super C,? extends R,? extends E> fn, String name, Collection<String> nameList, Collection<? super C> contextList, Collection<? super R> returnList)` 通過情報を`Collection`に記録するテスト用の関数を生成します。
`static
`<C,R,E extends Exception> Fn<C,R,E>`
` | `seq(Iterable<? extends Fn<? super C,? extends R,? extends E>> iterable)` 委譲先を順次実行し、最後に実行した結果を返す関数を生成します。
`static
`<C,R> Fn<C,R,RuntimeException>`
` | `switching(Map<? super C,? extends R> map)` `Map`を使用して、キーに対する値を返す関数を生成します。
`static
`<C,R,E extends Exception> Fn<C,R,E>`
` | `switching(Map<? super C,? extends R> map, Fn<? super C,? extends R,? extends E> defaultFn)` `Map`を使用して、キーに対する値を返す関数を生成します。
`static
`<C,R> Fn<C,R,RuntimeException>`
` | `switching(Map<? super C,? extends R> map, R defaultValue)` `Map`を使用して、キーに対する値を返す関数を生成します。
`static
`<C,R,E extends Exception> Fn<C,R,E>`
` | `throwing(E exception)` 例外を投げる関数を生成します。
`static
`<C,R,E extends Exception> Fn<C,R,E>`
` | `trying(Fn<? super C,? extends R,? extends Exception> fn, Fn<? super Exception,? extends R,? extends E> reportFn, Fn<? super C,?,? extends E> finallyFn)` Java の try-catch-finally のそれぞれのブロックで委譲する関数を生成します。

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

フィールドの詳細

### TO_WRAPPER

    public static final Fn<Class,Class,RuntimeException> TO_WRAPPER

  プリミティブ型をオブジェクト型に変換する`Fn`です。

メソッドの詳細

### castTo

    public static <R> Fn<Object,R,RuntimeException> castTo(Class<R> clazz)

  `Class.cast(Object)`を使用してキャストする関数を生成します。

  型パラメータ:
    `R` -
  パラメータ:
    `clazz` - キャストする型。
  戻り値:
    関数。

### exec

    public static <C,R,E extends Exception> Fn<C,R,E> exec(Fn<? super C,? extends Fn<? super C,? extends R,? extends E>,? extends E> fn)

  限定的な汎関数を処理する関数を生成します。

  型パラメータ:
    `C` -
    `R` -
    `E` -
  パラメータ:
    `fn` - 委譲先。
  戻り値:
    関数。

### echo

    public static <C> Fn<C,C,RuntimeException> echo()

  引数をそのまま返す関数を生成します。
  適用しているデザインパターン：Null Object。

  型パラメータ:
    `C` -
  戻り値:
    関数。

### fixThrows

    public static <C,R,E extends Exception> Fn<C,R,E> fixThrows(R value)

  固定値を返す関数を生成します。
  適用しているデザインパターン：Null Object。

  型パラメータ:
    `C` -
    `R` -
    `E` -
  パラメータ:
    `value` - 返却する値。
  戻り値:
    関数。

### fix

    public static <C,R> Fn<C,R,RuntimeException> fix(R value)

  固定値を返す関数を生成します。
  適用しているデザインパターン：Null Object。

  型パラメータ:
    `C` -
    `R` -
  パラメータ:
    `value` - 返却する値。
  戻り値:
    関数。

### ifTrue

    public static <C,R,E extends Exception> Fn<C,R,E> ifTrue(Fn<? super C,?,? extends E> ifFn,
                                                             Fn<? super C,? extends R,? extends E> trueFn,
                                                             Fn<? super C,? extends R,? extends E> falseFn)

  評価結果により委譲先を分岐する関数を生成します。
  適用しているデザインパターン：`Fn`のComposite。

  型パラメータ:
    `C` -
    `R` -
    `E` -
  パラメータ:
    `ifFn` - 評価用の委譲先。
    `trueFn` - 評価結果が`Boolean.TRUE`の場合の委譲先。
    `falseFn` - 評価結果が`Boolean.TRUE`でない場合の委譲先。
  戻り値:
    関数。

### join

    public static <A,B,C,E extends Exception> Fn<A,C,E> join(Fn<? super A,? extends B,? extends E> fn0,
                                                             Fn<? super B,? extends C,? extends E> fn1)

  ふたつの関数を合成した関数を生成します。 最初の委譲先の返却値を引数してに次の委譲先を実行しその結果を返します。
  適用しているデザインパターン：`Fn`のComposite。

  型パラメータ:
    `A` -
    `B` -
    `C` -
    `E` -
  パラメータ:
    `fn0` - 最初の委譲先。
    `fn1` - ふたつめの委譲先。
  戻り値:
    関数。

### join

    public static <A,B,C,D,E extends Exception> Fn<A,D,E> join(Fn<? super A,? extends B,? extends E> fn0,
                                                               Fn<? super B,? extends C,? extends E> fn1,
                                                               Fn<? super C,? extends D,? extends E> fn2)

  関数を合成した関数を生成します。
  適用しているデザインパターン：`Fn`のComposite。

  型パラメータ:
    `A` -
    `B` -
    `C` -
    `D` -
    `E` -
  パラメータ:
    `fn0` -
    `fn1` -
    `fn2` -
  戻り値:
    関数。
  関連項目:
    `join(Fn, Fn)`

### join

    public static <A,B,C,D,E,T extends Exception> Fn<A,E,T> join(Fn<? super A,? extends B,? extends T> fn0,
                                                                 Fn<? super B,? extends C,? extends T> fn1,
                                                                 Fn<? super C,? extends D,? extends T> fn2,
                                                                 Fn<? super D,? extends E,? extends T> fn3)

  関数を合成した関数を生成します。
  適用しているデザインパターン：`Fn`のComposite。

  型パラメータ:
    `A` -
    `B` -
    `C` -
    `D` -
    `E` -
    `T` -
  パラメータ:
    `fn0` -
    `fn1` -
    `fn2` -
    `fn3` -
  戻り値:
    関数。
  関連項目:
    `join(Fn, Fn)`

### join

    public static <A,B,C,D,E,F,T extends Exception> Fn<A,F,T> join(Fn<? super A,? extends B,? extends T> fn0,
                                                                   Fn<? super B,? extends C,? extends T> fn1,
                                                                   Fn<? super C,? extends D,? extends T> fn2,
                                                                   Fn<? super D,? extends E,? extends T> fn3,
                                                                   Fn<? super E,? extends F,? extends T> fn4)

  関数を合成した関数を生成します。
  適用しているデザインパターン：`Fn`のComposite。

  型パラメータ:
    `A` -
    `B` -
    `C` -
    `D` -
    `E` -
    `F` -
    `T` -
  パラメータ:
    `fn0` -
    `fn1` -
    `fn2` -
    `fn3` -
    `fn4` -
  戻り値:
    関数。
  関連項目:
    `join(Fn, Fn)`

### recode

    public static <C,R,E extends Exception> Fn<C,R,E> recode(Fn<? super C,? extends R,? extends E> fn,
                                                             String name,
                                                             Collection<String> nameList,
                                                             Collection<? super C> contextList,
                                                             Collection<? super R> returnList)

  通過情報を`Collection`に記録するテスト用の関数を生成します。
  適用しているデザインパターン：Proxy。

  型パラメータ:
    `C` -
    `R` -
    `E` -
  パラメータ:
    `fn` - 委譲先。null の場合は委譲しません。
    `name` - nameListに追加する名前。
    `nameList` - name を追加する対象。null の場合は追加しません。
    `contextList` - コンテキスト役を追加する対象。null の場合は追加しません。
    `returnList` - 委譲先を追加する対象。null の場合は追加しません。
  戻り値:
    関数。

### recode

    public static <C,R,E extends Exception> Fn<C,R,E> recode(Fn<? super C,? extends R,? extends E> fn,
                                                             String name,
                                                             Collection<String> nameList)

  通過情報を`Collection`に記録するテスト用の関数を生成します。
  適用しているデザインパターン：Proxy。

  型パラメータ:
    `C` -
    `R` -
    `E` -
  パラメータ:
    `fn` - 委譲先。null の場合は委譲しません。
    `name` - nameListに追加する名前。
    `nameList` - name を追加する対象。null の場合は追加しません。
  戻り値:
    関数。
  関連項目:
    `recode(Fn, String, Collection, Collection, Collection)`

### recode

    public static <C,R,E extends Exception> Fn<C,R,E> recode(Fn<? super C,? extends R,? extends E> fn,
                                                             Collection<? super C> contextList,
                                                             Collection<? super R> returnList)

  通過情報を`Collection`に記録するテスト用の関数を生成します。
  適用しているデザインパターン：Proxy。

  型パラメータ:
    `C` -
    `R` -
    `E` -
  パラメータ:
    `fn` - 委譲先。null の場合は委譲しません。
    `contextList` - コンテキスト役を追加する対象。null の場合は追加しません。
    `returnList` - 委譲先を追加する対象。null の場合は追加しません。
  戻り値:
    関数。
  関連項目:
    `recode(Fn, String, Collection, Collection, Collection)`

### seq

    public static <C,R,E extends Exception> Fn<C,R,E> seq(Iterable<? extends Fn<? super C,? extends R,? extends E>> iterable)

  委譲先を順次実行し、最後に実行した結果を返す関数を生成します。
  適用しているデザインパターン：`Fn`のComposite。

  型パラメータ:
    `C` -
    `R` -
    `E` -
  パラメータ:
    `iterable` - 委譲先の一覧。
  戻り値:
    関数。

### switching

    public static <C,R,E extends Exception> Fn<C,R,E> switching(Map<? super C,? extends R> map,
                                                                Fn<? super C,? extends R,? extends E> defaultFn)

  `Map`を使用して、キーに対する値を返す関数を生成します。 引数に対する値が null の場合はデフォルトの処理に委譲します。
  適用しているデザインパターン：`Fn`のComposite。

  型パラメータ:
    `C` -
    `R` -
    `E` -
  パラメータ:
    `map` - マップ。
    `defaultFn` - 引数に対応する値が null の場合の委譲先。
  戻り値:
    関数。

### switching

    public static <C,R> Fn<C,R,RuntimeException> switching(Map<? super C,? extends R> map,
                                                           R defaultValue)

  `Map`を使用して、キーに対する値を返す関数を生成します。 引数に対する値が null の場合はデフォルトの処理に委譲します。
  適用しているデザインパターン：`Map`のAdapter。

  型パラメータ:
    `C` -
    `R` -
  パラメータ:
    `map` - マップ。
    `defaultValue` - 引数に対応する値が null の場合の値。
  戻り値:
    関数。
  関連項目:
    `switching(Map, Fn)`

### switching

    public static <C,R> Fn<C,R,RuntimeException> switching(Map<? super C,? extends R> map)

  `Map`を使用して、キーに対する値を返す関数を生成します。 引数に対する値が null の場合はデフォルトの処理に委譲します。 引数に対応する値が null の場合はnullを返します。
  適用しているデザインパターン：`Map`のAdapter。

  型パラメータ:
    `C` -
    `R` -
  パラメータ:
    `map` - マップ。
  戻り値:
    関数。
  関連項目:
    `switching(Map, Fn)`

### throwing

    public static <C,R,E extends Exception> Fn<C,R,E> throwing(E exception)

  例外を投げる関数を生成します。
  適用しているデザインパターン：Null Object。

  型パラメータ:
    `C` -
    `R` -
    `E` -
  パラメータ:
    `exception` - 投げる例外。
  戻り値:
    関数。

### trying

    public static <C,R,E extends Exception> Fn<C,R,E> trying(Fn<? super C,? extends R,? extends Exception> fn,
                                                             Fn<? super Exception,? extends R,? extends E> reportFn,
                                                             Fn<? super C,?,? extends E> finallyFn)

  Java の try-catch-finally のそれぞれのブロックで委譲する関数を生成します。
  適用しているデザインパターン：`Fn`のComposite。

  型パラメータ:
    `C` -
    `R` -
    `E` -
  パラメータ:
    `fn` - try ブロックにおける委譲先。
    `reportFn` - catch ブロックにおける委譲先。
    `finallyFn` - finally ブロックにおける委譲先。
  戻り値:
    関数。

### delegate

    public static <C,R,E extends Exception> Delegator<C,R,E> delegate(Fn<? super C,? extends R,? extends E> fn)

  委譲するだけの関数を生成します。
  適用しているデザインパターン：初期化と委譲先決定とコンテキスト役決定のタイミングを分離するCurrying(3層)。

  型パラメータ:
    `C` -
    `R` -
    `E` -
  パラメータ:
    `fn` - 委譲先。
  戻り値:
    関数。

### delegate

    public static <C,R,E extends Exception> Delegator<C,R,E> delegate()

  委譲するだけの関数を生成します。
  適用しているデザインパターン：初期化と委譲先決定とコンテキスト役決定のタイミングを分離するCurrying(3層)。

  型パラメータ:
    `C` -
    `R` -
    `E` -
  戻り値:
    委譲先。

### maybe

    public static <C,R,E extends Exception> Fn<C,R,E> maybe(Fn<? super C,? extends R,? extends E> fn)

  引数がnullの場合は委譲をスキップしてnullを返す関数を生成します。
  適用しているデザインパターン：Balking。

  型パラメータ:
    `C` -
    `R` -
    `E` -
  パラメータ:
    `fn` - 委譲先。
  戻り値:
    委譲先。

### ifElse

    public static <C,R,E extends Exception> Fn<C,R,E> ifElse(Map<? extends Fn<? super C,?,? extends E>,R> map,
                                                             Fn<? super C,? extends R,? extends E> defaultFn)

  `Map`を使用して、はじめて委譲先が`Boolean.TRUE`になった値を返す関数を生成します。
  適用しているデザインパターン：`Fn`のComposite。

  型パラメータ:
    `C` -
    `R` -
    `E` -
  パラメータ:
    `map` - マップ。
    `defaultFn` - マップの全てのキーに対して委譲結果が`Boolean.TRUE`でない場合の委譲先。
  戻り値:
    関数。
  関連項目:
    `ifElse(Map, Fn)`

### ifElse

    public static <C,R,E extends Exception> Fn<C,R,E> ifElse(Map<? extends Fn<? super C,?,? extends E>,R> map,
                                                             R defaultValue)

  `Map`を使用して、はじめて委譲先が`Boolean.TRUE`になった値を返す関数を生成します。
  適用しているデザインパターン：`Fn`のComposite。

  型パラメータ:
    `C` -
    `R` -
    `E` -
  パラメータ:
    `map` - マップ。
    `defaultValue` - マップの全てのキーに対して委譲結果が`Boolean.TRUE`でない場合の返却値。
  戻り値:
    関数。
  関連項目:
    `ifElse(Map, Fn)`

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

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