woolpack.convert
クラス ConvertUtils

java.lang.Object
  上位を拡張 woolpack.convert.ConvertUtils

public final class ConvertUtils
extends Object

変換処理のユーティリティです。 型推論で表記を簡略するためのスタティックメソッドと変数を含みます。


フィールドの概要
static Fn<Object,BigDecimal,RuntimeException> TO_BIG_DECIMAL
          入力をNumberにキャストして BigDecimalに変換する関数です。
static Fn<Object,BigInteger,RuntimeException> TO_BIG_INTEGER
          入力をNumberにキャストして BigIntegerに変換する関数です。
static Fn<Object,Byte,RuntimeException> TO_BYTE
          入力をNumberにキャストして Byteに変換する関数です。
static Fn<Object,Calendar,RuntimeException> TO_CALENDAR
          入力をDateにキャストして Calendarに変換する関数です。
static Fn<Object,Double,RuntimeException> TO_DOUBLE
          入力をNumberにキャストして Doubleに変換する関数です。
static Fn<Object,Float,RuntimeException> TO_FLOAT
          入力をNumberにキャストして Floatに変換する関数です。
static Fn<Object,Integer,RuntimeException> TO_INTEGER
          入力をNumberにキャストして Integerに変換する関数です。
static Fn<Object,Long,RuntimeException> TO_LONG
          入力をNumberにキャストして Longに変換する関数です。
static Fn<Object,Short,RuntimeException> TO_SHORT
          入力をNumberにキャストして Shortに変換する関数です。
static Fn<Object,Date,RuntimeException> TO_SQL_DATE
          入力をDateにキャストして Dateに変換する関数です。
static Fn<Object,String,RuntimeException> TO_STRING
          Object.toString()で変換する関数です。
static Fn<Object,Time,RuntimeException> TO_TIME
          入力をDateにキャストして Timeに変換する関数です。
static Fn<Object,Timestamp,RuntimeException> TO_TIMESTAMP
          入力をDateにキャストして Timestampに変換する関数です。
 
メソッドの概要
static Fn<String,String,RuntimeException> convertRegExp(Pattern pattern, String replacement)
          正規表現で変換する関数を生成します。
static
<E extends Exception>
Fn<Object,String,E>
format(Fn<?,? extends Format,? extends E> formatFactory)
          Format.format(Object)で変換する関数を生成します。
static Fn<Object,Format,RuntimeException> formatFactory(Format format)
          Formatの新規のインスタンスをFormat.clone()により複製するファクトリを生成します。
static
<K> Fn<Map<K,?>,Set<K>,RuntimeException>
keySet()
          Map.keySet()を返す関数を生成します。
static Fn<String,String,RuntimeException> netMask(String netMask)
          コンテキスト役をIPv4アドレスとしてネットワークアドレスを返す関数を生成します。
static Fn<String,Object,Exception> parse(Fn<?,? extends Format,? extends Exception> formatFactory)
          Format.parseObject(String)で変換する関数を生成します。
static Fn<Map<?,?>,Boolean,RuntimeException> retainKeys(Collection<?> collection)
          マップの指定されたキーを残す関数を生成します。
static
<C,R> Fn<C,R,IllegalStateException>
trys(Iterable<? extends Fn<? super C,? extends R,? extends Exception>> iterable)
          成功するまで順に委譲する関数を生成します。
static
<C,R,E extends Exception>
Fn<C,R,E>
trys(Iterable<? extends Fn<? super C,? extends R,? extends Exception>> iterable, Fn<? super Exception,?,? extends E> errorFn, Fn<? super Exception,? extends R,? extends E> finalFn)
          成功するまで順に委譲する関数を生成します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

TO_BIG_DECIMAL

public static final Fn<Object,BigDecimal,RuntimeException> TO_BIG_DECIMAL
入力をNumberにキャストして BigDecimalに変換する関数です。 このクラスは LSP(The Liskov Substitution Principle) を満たしません。 キャストできない場合はClassCastExceptionを投げます。


TO_BIG_INTEGER

public static final Fn<Object,BigInteger,RuntimeException> TO_BIG_INTEGER
入力をNumberにキャストして BigIntegerに変換する関数です。 このクラスは LSP(The Liskov Substitution Principle) を満たしません。 キャストできない場合はClassCastExceptionを投げます。 範囲外の場合はArithmeticExceptionを投げます。


TO_BYTE

public static final Fn<Object,Byte,RuntimeException> TO_BYTE
入力をNumberにキャストして Byteに変換する関数です。 キャストできない場合はClassCastExceptionを投げます。 範囲外の場合はIllegalArgumentExceptionを投げます。


TO_DOUBLE

public static final Fn<Object,Double,RuntimeException> TO_DOUBLE
入力をNumberにキャストして Doubleに変換する関数です。 Number.doubleValue()を使用するため丸め誤差が発生する可能性があります。 キャストできない場合はClassCastExceptionを投げます。


TO_FLOAT

public static final Fn<Object,Float,RuntimeException> TO_FLOAT
入力をNumberにキャストして Floatに変換する関数です。 一度値を double 型で取得して float 型に変換するため、 丸め誤差が発生する可能性があります。 キャストできない場合はClassCastExceptionを投げます。


TO_INTEGER

public static final Fn<Object,Integer,RuntimeException> TO_INTEGER
入力をNumberにキャストして Integerに変換する関数です。 キャストできない場合はClassCastExceptionを投げます。 範囲外の場合はIllegalArgumentExceptionを投げます。


TO_LONG

public static final Fn<Object,Long,RuntimeException> TO_LONG
入力をNumberにキャストして Longに変換する関数です。 キャストできない場合はClassCastExceptionを投げます。 範囲外の場合はIllegalArgumentExceptionを投げます。


TO_SHORT

public static final Fn<Object,Short,RuntimeException> TO_SHORT
入力をNumberにキャストして Shortに変換する関数です。 キャストできない場合はClassCastExceptionを投げます。 範囲外の場合はIllegalArgumentExceptionを投げます。


TO_SQL_DATE

public static final Fn<Object,Date,RuntimeException> TO_SQL_DATE
入力をDateにキャストして Dateに変換する関数です。 キャストできない場合はClassCastExceptionを投げます。


TO_TIME

public static final Fn<Object,Time,RuntimeException> TO_TIME
入力をDateにキャストして Timeに変換する関数です。 キャストできない場合はClassCastExceptionを投げます。


TO_TIMESTAMP

public static final Fn<Object,Timestamp,RuntimeException> TO_TIMESTAMP
入力をDateにキャストして Timestampに変換する関数です。 キャストできない場合はClassCastExceptionを投げます。


TO_CALENDAR

public static final Fn<Object,Calendar,RuntimeException> TO_CALENDAR
入力をDateにキャストして Calendarに変換する関数です。 キャストできない場合はClassCastExceptionを投げます。


TO_STRING

public static final Fn<Object,String,RuntimeException> TO_STRING
Object.toString()で変換する関数です。

メソッドの詳細

keySet

public static <K> Fn<Map<K,?>,Set<K>,RuntimeException> keySet()
Map.keySet()を返す関数を生成します。

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

formatFactory

public static Fn<Object,Format,RuntimeException> formatFactory(Format format)
Formatの新規のインスタンスをFormat.clone()により複製するファクトリを生成します。 Formatの各サブクラスはスレッドセーフでなく Cloneableを実装して Prototype デザインパターンを適用していますが、 本クラスはこれを Abstract Factory デザインパターンに変換しています。
適用しているデザインパターン:FormatのAbstract Factory、Prototype。

パラメータ:
format - プロトタイプ。
戻り値:
関数。

format

public static <E extends Exception> Fn<Object,String,E> format(Fn<?,? extends Format,? extends E> formatFactory)
Format.format(Object)で変換する関数を生成します。
適用しているデザインパターン:変換ルールと変換対象のCurrying。

型パラメータ:
E -
パラメータ:
formatFactory - フォーマットのファクトリ。
戻り値:
関数。

netMask

public static Fn<String,String,RuntimeException> netMask(String netMask)
コンテキスト役をIPv4アドレスとしてネットワークアドレスを返す関数を生成します。
適用しているデザインパターン:ネットマスクとアドレスのCurrying。

パラメータ:
netMask - ネットマスク。
戻り値:
関数。

parse

public static Fn<String,Object,Exception> parse(Fn<?,? extends Format,? extends Exception> formatFactory)
Format.parseObject(String)で変換する関数を生成します。 「NumberFormat の構文解析問題の解決」 (http://www-06.ibm.com/jp/developerworks/java/library/j-numberformat/index.shtml) のテクニックを使用してデータの欠損を検出しています。 パースに失敗した場合はParseExceptionを投げます。
適用しているデザインパターン:変換ルールと変換対象のCurrying。

パラメータ:
formatFactory - フォーマットのファクトリ。
戻り値:
関数。

convertRegExp

public static Fn<String,String,RuntimeException> convertRegExp(Pattern pattern,
                                                               String replacement)
正規表現で変換する関数を生成します。
適用しているデザインパターン:変換ルールと変換対象のCurrying。

パラメータ:
pattern - 正規表現。
replacement - 変換パターン。
戻り値:
関数。

trys

public static <C,R,E extends Exception> Fn<C,R,E> trys(Iterable<? extends Fn<? super C,? extends R,? extends Exception>> iterable,
                                                       Fn<? super Exception,?,? extends E> errorFn,
                                                       Fn<? super Exception,? extends R,? extends E> finalFn)
成功するまで順に委譲する関数を生成します。
適用しているデザインパターン:FnのComposite。

型パラメータ:
C -
R -
E -
パラメータ:
iterable - 委譲先の一覧。
errorFn - エラー発生時の委譲先。
finalFn - 最後まで成功しなかった場合の委譲先。
戻り値:
関数。

trys

public static <C,R> Fn<C,R,IllegalStateException> trys(Iterable<? extends Fn<? super C,? extends R,? extends Exception>> iterable)
成功するまで順に委譲する関数を生成します。 最後まで成功しなかった場合はIllegalStateExceptionを投げます。
適用しているデザインパターン:FnのComposite。

型パラメータ:
C -
R -
パラメータ:
iterable - 委譲先の一覧。
戻り値:
関数。
関連項目:
trys(Iterable, Fn, Fn)

retainKeys

public static Fn<Map<?,?>,Boolean,RuntimeException> retainKeys(Collection<?> collection)
マップの指定されたキーを残す関数を生成します。
適用しているデザインパターン:変換ルールと変換対象のCurrying。

パラメータ:
collection - 残すキーのコレクション。
戻り値:
関数。


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