概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 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)

  委譲先の実行時間を測定する関数を生成します。

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

### 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`を、 複数生成することにより並行に実行するようにみせる関数を生成します。

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

### fnRunnable

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

  `Fn`に委譲する`Runnable`を生成します。

  型パラメータ:
    `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 を返します。

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

### sleep

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

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

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

### 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)

  一覧から指定されたロケールに最も近いロケールをキーとして値を返す関数を生成します。

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

### threadLocal

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

  `ThreadLocal.get()`を返す関数を生成します。

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

### 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) を満たしません。

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

### 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`を保持するスレッドローカル。
  戻り値:
    関数。

### 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)

  成功するまでリトライする関数を生成します。

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

### 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` - リトライ回数。
  戻り値:
    関数。

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

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