Class Builder

java.lang.Object
nablarch.core.util.Builder

public final class Builder extends Object
List・Map・String 等の基本型からなるオブジェクトグラフの生成を簡略化する ユーティリティメソッドを提供する。
Author:
Iwauo Tajima <iwauo@tis.co.jp>
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    改行文字
  • Method Summary

    Modifier and Type
    Method
    Description
    static String
    concat(Object... elements)
    elementsの各要素のtoString()の結果を単純に連結した文字列を返す。 大量の文字列連結を行う場合、+演算子による連結より処理効率がよい。
    static String
    join(Iterable<?> lines)
    linesの各要素のtoString()の結果をLSで連結した文字列を返す。
    static String
    join(Iterable<?> lines, String separator)
    linesの各要素のtoString()の結果を、separatorで連結した文字列を返す。
    static String
    join(Object[] lines, String separator)
    linesの各要素のtoString()の結果を、separatorで連結した文字列を返す。
    static String
    lines(Object... lines)
    各引数に対するtoString()の結果を改行文字(line.separator)で連結した文字列を返す。
    static String
    linesf(Object... lines)
    lines()メソッドにテンプレート文字列を解釈する機能を追加したもの。
    static <T> List<T>
    list(Class<T> memberType, Object... elements)
    elementType型のインスタンスを要素とするList(ArrayList)を生成する。
    static <T> List<T>
    listf(Class<T> memberType, Object... elements)
    list(Class, Object...) をprintf型の埋め込みパラメータが使用できるように拡張したもの。
    static List<String>
    split(Object string)
    改行文字によって文字列を分割する。
    static List<String>
    split(Object string, String lineSeparator)
    指定した連結文字によって文字列を分割する。
    static Class<?>
    typeOf(String literal)
    文字列から適切なデータ型を自動判別する。
    static <T> T
    valueOf(Class<T> type, Object value)
    指定された文字列表現から、指定された型のオブジェクトを生成する。
    static Object
    valueOf(String literal)
    文字列から適切なデータ型を自動判別してオブジェクトを生成する。

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Method Details

    • join

      @Published(tag="architect") public static String join(Iterable<?> lines, String separator)
      linesの各要素のtoString()の結果を、separatorで連結した文字列を返す。
       
       List<String> list = Arrays.asList("あ", "い", "う");
       String str = Builder.join(list, ","); //--> "あ,い,う"
       
       
      Parameters:
      lines - 連結される要素文字列
      separator - 要素間に連結される文字列
      Returns:
      連結後の文字列
    • join

      @Published(tag="architect") public static String join(Object[] lines, String separator)
      linesの各要素のtoString()の結果を、separatorで連結した文字列を返す。
       
       String[] lines = {"あ", "い", "う"};
       String str = Builder.join(lines, ","); //--> "あ,い,う"
       
       
      Parameters:
      lines - 連結される要素文字列
      separator - 要素間に連結される文字列
      Returns:
      連結後の文字列
    • concat

      @Published(tag="architect") public static String concat(Object... elements)
      elementsの各要素のtoString()の結果を単純に連結した文字列を返す。 大量の文字列連結を行う場合、+演算子による連結より処理効率がよい。
       
       String str = Builder.concat("あ", "い", "う"); //--> "あいう"
       
       
      Parameters:
      elements - 要素
      Returns:
      連結文字列
    • join

      @Published(tag="architect") public static String join(Iterable<?> lines)
      linesの各要素のtoString()の結果をLSで連結した文字列を返す。
       
       List<String> list = Arrays.asList("あ", "い", "う");
       String str = Builder.join(list); //--> "あ\nい\nう"
       
       
      Parameters:
      lines - 連結される要素文字列
      Returns:
      連結後の文字列
    • split

      public static List<String> split(Object string)
      改行文字によって文字列を分割する。
       このメソッドの処理は以下のコードと同等である。
           split(string,  System.getProperty("line.separator"));
       
      Parameters:
      string - 分割対象文字列
      Returns:
      分割後文字列
    • split

      public static List<String> split(Object string, String lineSeparator)
      指定した連結文字によって文字列を分割する。
       分割対象文字列がString型でない場合はそのtoString()の結果を対象とする。
       分割対象文字列がnullであった場合は空文字列を返す。
       
      Parameters:
      string - 分割対象文字列
      lineSeparator - 連結文字もしくはその正規表現
      Returns:
      分割後文字列
    • lines

      public static String lines(Object... lines)
      各引数に対するtoString()の結果を改行文字(line.separator)で連結した文字列を返す。
       引数にnullが渡された場合は単に無視される。
        (空行が出力されるわけではない。)
       
      Parameters:
      lines - 各行の文字列を保持するオブジェクト
      Returns:
      連結後文字列
    • linesf

      public static String linesf(Object... lines)
      lines()メソッドにテンプレート文字列を解釈する機能を追加したもの。
       引数文字列に"%"が含まれる場合はテンプレート文字列とみなされ、
       埋め込みパラメータ数と同数の後続引数がString.format()の仕様に従って埋め込まれる。
       この際、埋め込まれる引数に対するテンプレート文字列の評価は行わない。
       
      Parameters:
      lines - 連結対象文字列
      Returns:
      連結後文字列
      See Also:
    • list

      public static <T> List<T> list(Class<T> memberType, Object... elements)
      elementType型のインスタンスを要素とするList(ArrayList)を生成する。
       引数elementsの各要素は以下の規則に従ってelementType型、もしくはnullに変換され、
        戻り値の対応する要素に設定される。
          1. 引数の要素がnullだった場合
             戻り値の対応する要素にはnullが設定される。
          2. 引数の要素がelementTypeに適合する型のインスタンスだった場合
             戻り値の対応する要素には、そのインスタンスがそのまま設定される。
          3. 引数の要素がelementTypeに適合しないインスタンスだった場合。
             下記の条件を満たすメソッドがelementTypeに定義されていれば、
             その実行結果を戻り値の対応する要素に設定する。
             条件を満たすメソッドが存在しない場合、実行時例外を送出する。
             a. スタティックメソッド elementType.valueOf("引数の要素の型")
             b. コンストラクタ elementType("引数の要素の型")
          使用例::
              List<java.sql.Date> leapDays = Builder.listf(java.sql.Date.class
              , java.sql.Date.valueOf("2004-02-29") // elementTypeのオブジェクトを設定。
              , "2008-02-29"                        // java.sql.Date.valueOf(String) の結果が格納される。
              );
       
      Type Parameters:
      T - 生成されるListの要素型
      Parameters:
      memberType - 生成されるListの要素型
      elements - 生成されるListの要素
      Returns:
      elementType型のインスタンスを要素とするList
    • listf

      public static <T> List<T> listf(Class<T> memberType, Object... elements)
      list(Class, Object...) をprintf型の埋め込みパラメータが使用できるように拡張したもの。
          使用例::
            String leapDate = "02-29";
            List<java.sql.Date> leapDays = Builder.listf(java.sql.Date.class
            , java.sql.Date.valueOf("2004-02-29") // elementTypeのオブジェクトを設定。
            , "2008-02-29"                        // java.sql.Date.valueOf(String) の結果が格納される。
            , "2012-%s", leapDate                 // 埋め込みパラメータを使用。
            );
       
      Type Parameters:
      T - 生成されるListの要素型
      Parameters:
      memberType - 生成されるListの要素型
      elements - 生成されるListの要素と埋め込みパラメータ
      Returns:
      elementType型のインスタンスを要素とするList
    • valueOf

      public static Object valueOf(String literal)
      文字列から適切なデータ型を自動判別してオブジェクトを生成する。
      Parameters:
      literal - データオブジェクトの文字列表現
      Returns:
      オブジェクト
    • typeOf

      public static Class<?> typeOf(String literal)
      文字列から適切なデータ型を自動判別する。
      Parameters:
      literal - データオブジェクトの文字列表現
      Returns:
      データ型
    • valueOf

      public static <T> T valueOf(Class<T> type, Object value)
      指定された文字列表現から、指定された型のオブジェクトを生成する。
      Type Parameters:
      T - 変換先の型
      Parameters:
      type - 変換先の型
      value - 変換対象文字列
      Returns:
      変換結果