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

## woolpack.misc
クラス MiscUtils

    java.lang.Object
      woolpack.misc.MiscUtils

    public final class MiscUtils

extends java.lang.Object

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

作成者:
  nakamura

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

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

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

### loadBalancer

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

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

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

### fnRunnable

    public static <C> FnRunnable<C> fnRunnable(Fn<? super C,?,? extends java.lang.RuntimeException> fn,
                                               C c)

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

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

### runnableFn

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

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

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

### sleep

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

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

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

### switchNearLocale

    public static <R,E extends java.lang.Exception> Fn<java.util.Locale,R,E> switchNearLocale(SwitchFn<java.util.Locale,? extends R,? extends E> switching)

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

  型パラメータ:
    `R` -
    `E` -
  パラメータ:
    `switching` - ロケールをキーとする`SwitchFn`。
  戻り値:
    関数。
  関連項目:
    `SwitchNearLocale`

### threadLocal

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

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

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

### tryLocales

    public static <R,E extends java.lang.Exception> Fn<java.lang.String,R,E> tryLocales(Fn<? super java.lang.String,? extends R,? extends java.lang.Exception> fn,
                                                                                        java.lang.ThreadLocal<java.util.Locale> threadLocal,
                                                                                        Fn<? super java.lang.Exception,?,? extends E> errorFn,
                                                                                        Fn<? super java.lang.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`

### tryLocales

    public static <R> Fn<java.lang.String,R,java.lang.IllegalStateException> tryLocales(Fn<? super java.lang.String,? extends R,? extends java.lang.Exception> fn,
                                                                                        java.lang.ThreadLocal<java.util.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 java.lang.Exception> Fn<C,R,E> retry(Fn<? super C,? extends R,? extends java.lang.Exception> fn,
                                                                      int count,
                                                                      Fn<? super java.lang.Exception,?,? extends E> errorFn,
                                                                      Fn<? super java.lang.Exception,? extends R,? extends E> finalFn)

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

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

### retry

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

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

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

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

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