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

## woolpack.misc
クラス MiscUtils

    java.lang.Object
      woolpack.misc.MiscUtils

    public final class MiscUtils

extends Object

多雑な部品のユーティリティです。

メソッドの概要
`static
`<C> Runnable`
` | `fnRunnable(Fn<? super C,?,? extends RuntimeException> fn, C c)` `Fn`に委譲する`Runnable`を生成します。
`static
`<C,R,E extends Exception> Fn<C,R,E>`
` | `lapTime(Fn<? super C,? extends R,? extends E> fn, Fn<? super Long,?,? extends E> reportFn)` 委譲先の実行時間を測定する関数を生成します。
`static
`<C,R,E extends Exception,E1 extends Exception> Fn<C,R,E>`
` | `loadBalancer(Fn<Object,? extends Fn<? super C,? extends R,? extends E>,? extends E1> factory, int length)` 複数のスレッドで同時に実行することができない`Fn`を、 複数生成することにより並行に実行するようにみせる関数を生成します。
`static
`<C,R> Fn<C,R,IllegalStateException>`
` | `retry(Fn<? super C,? extends R,? extends Exception> fn, int count)` 成功するまでリトライする関数を生成します。
`static
`<C,R,E extends Exception> Fn<C,R,E>`
` | `retry(Fn<? super C,? extends R,? extends Exception> fn, int count, Fn<? super Exception,?,? extends E> errorFn, Fn<? super Exception,? extends R,? extends E> finalFn)` 成功するまでリトライする関数を生成します。
`static
`<R> Fn<Object,R,RuntimeException>`
` | `runnableFn(Runnable runnable)` `Runnable`に委譲する関数を生成します。
`static
`<C,R> Fn<C,R,InterruptedException>`
` | `sleep(long sleepMillis)` スリープする関数を生成します。
`static
`<R,E extends Exception> Fn<Locale,R,E>`
` | `switchNearLocale(Map<? super Locale,? extends R> map, Fn<? super Locale,? extends R,? extends E> defaultFn)` 一覧から指定されたロケールに最も近いロケールをキーとして値を返す関数を生成します。
`static
`<R> Fn<Object,R,RuntimeException>`
` | `threadLocal(ThreadLocal<? extends R> threadLocal)` `ThreadLocal.get()`を返す関数を生成します。
`static
`<R> Fn<String,R,IllegalStateException>`
` | `tryLocales(Fn<? super String,? extends R,? extends Exception> fn, ThreadLocal<Locale> threadLocal)` `Locale`を元に id に接尾辞を付加して成功するまで委譲する関数を生成します。
`static
`<R,E extends Exception> Fn<String,R,E>`
` | `tryLocales(Fn<? super String,? extends R,? extends Exception> fn, ThreadLocal<Locale> threadLocal, Fn<? super Exception,?,? extends E> errorFn, Fn<? super Exception,? extends R,? extends E> finalFn)` `Locale`を元に id に接尾辞を付加して成功するまで委譲する関数を生成します。

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

メソッドの詳細

### lapTime

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

  委譲先の実行時間を測定する関数を生成します。
  適用しているデザインパターン：`Fn`のComposite。

  型パラメータ:
    `C` -
    `R` -
    `E` -
  パラメータ:
    `fn` - 委譲先。
    `reportFn` - 結果の送付先。
  戻り値:
    関数。

### loadBalancer

    public static <C,R,E extends Exception,E1 extends Exception> Fn<C,R,E> loadBalancer(Fn<Object,? extends Fn<? super C,? extends R,? extends E>,? extends E1> factory,
                                                                                        int length)
                                                    throws Exception

  複数のスレッドで同時に実行することができない`Fn`を、 複数生成することにより並行に実行するようにみせる関数を生成します。
  適用しているデザインパターン：内部で`Fn`のCompositeを生成して使用するBuilder。

  型パラメータ:
    `C` -
    `R` -
    `E` -
    `E1` -
  パラメータ:
    `factory` - 複数のスレッドで同時に実行できない`Fn`のファクトリ。
    `length` - 並行実行数。
  戻り値:
    関数。
  例外:
    `IllegalArgumentException` - length がゼロ以下の場合。
    `Exception` - `Fn`の生成に失敗した場合。

### fnRunnable

    public static <C> Runnable fnRunnable(Fn<? super C,?,? extends RuntimeException> fn,
                                          C c)

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

  型パラメータ:
    `C` -
  パラメータ:
    `fn` - 委譲先。
    `c` - 委譲先に渡す値。
  戻り値:
    ランナブル。

### runnableFn

    public static <R> Fn<Object,R,RuntimeException> runnableFn(Runnable runnable)

  `Runnable`に委譲する関数を生成します。 `Fn.exec(Object)`は null を返します。
  適用しているデザインパターン：`Runnable`のAdapter。

  型パラメータ:
    `R` -
  パラメータ:
    `runnable` - ランナブル。
  戻り値:
    関数。

### sleep

    public static <C,R> Fn<C,R,InterruptedException> sleep(long sleepMillis)

  スリープする関数を生成します。

  型パラメータ:
    `C` -
    `R` -
  パラメータ:
    `sleepMillis` - スリープ時間。
  戻り値:
    関数。

### switchNearLocale

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

  一覧から指定されたロケールに最も近いロケールをキーとして値を返す関数を生成します。
  適用しているデザインパターン：`Fn`のProxy。

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

### threadLocal

    public static <R> Fn<Object,R,RuntimeException> threadLocal(ThreadLocal<? extends R> threadLocal)

  `ThreadLocal.get()`を返す関数を生成します。
  適用しているデザインパターン：`ThreadLocal`のAdapter。

  型パラメータ:
    `R` -
  パラメータ:
    `threadLocal` - スレッドローカル。
  戻り値:
    関数。

### tryLocales

    public static <R,E extends Exception> Fn<String,R,E> tryLocales(Fn<? super String,? extends R,? extends Exception> fn,
                                                                    ThreadLocal<Locale> threadLocal,
                                                                    Fn<? super Exception,?,? extends E> errorFn,
                                                                    Fn<? super Exception,? extends R,? extends E> finalFn)

  `Locale`を元に id に接尾辞を付加して成功するまで委譲する関数を生成します。 このクラスは LSP(The Liskov Substitution Principle) を満たしません。
  適用しているデザインパターン：`Fn`のComposite、`Fn`のProxy。

  型パラメータ:
    `R` -
    `E` -
  パラメータ:
    `fn` - 委譲先。
    `threadLocal` - 現在のスレッドの`Locale`を保持するスレッドローカル。
    `errorFn` - エラー発生時の委譲先。
    `finalFn` - 全て成功しなかった場合の委譲先。
  戻り値:
    関数。

### tryLocales

    public static <R> Fn<String,R,IllegalStateException> tryLocales(Fn<? super String,? extends R,? extends Exception> fn,
                                                                    ThreadLocal<Locale> threadLocal)

  `Locale`を元に id に接尾辞を付加して成功するまで委譲する関数を生成します。 このクラスは LSP(The Liskov Substitution Principle) を満たしません。 全て成功しなかった場合は`IllegalStateException`を投げます。

  型パラメータ:
    `R` -
  パラメータ:
    `fn` - 委譲先。
    `threadLocal` - 現在のスレッドの`Locale`を保持するスレッドローカル。
  戻り値:
    関数。
  関連項目:
    `tryLocales(Fn, ThreadLocal, Fn, Fn)`

### retry

    public static <C,R,E extends Exception> Fn<C,R,E> retry(Fn<? super C,? extends R,? extends Exception> fn,
                                                            int count,
                                                            Fn<? super Exception,?,? extends E> errorFn,
                                                            Fn<? super Exception,? extends R,? extends E> finalFn)

  成功するまでリトライする関数を生成します。
  適用しているデザインパターン：`Fn`のComposite。

  型パラメータ:
    `C` -
    `R` -
    `E` -
  パラメータ:
    `fn` - 委譲先。
    `count` - リトライ回数。
    `errorFn` - エラー発生時の委譲先。
    `finalFn` - 全て成功しなかった場合の委譲先。
  戻り値:
    関数。

### retry

    public static <C,R> Fn<C,R,IllegalStateException> retry(Fn<? super C,? extends R,? extends Exception> fn,
                                                            int count)

  成功するまでリトライする関数を生成します。 全て成功しなかった場合は`IllegalStateException`を投げます。

  型パラメータ:
    `C` -
    `R` -
  パラメータ:
    `fn` - 委譲先。
    `count` - リトライ回数。
  戻り値:
    関数。
  関連項目:
    `retry(Fn, int, Fn, Fn)`

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

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