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)

Woolpack API

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