nablarch.core.util.Builder类的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(11.1k)|赞(0)|评价(0)|浏览(86)

本文整理了Java中nablarch.core.util.Builder类的一些代码示例,展示了Builder类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Builder类的具体详情如下:
包路径:nablarch.core.util.Builder
类名称:Builder

Builder介绍

[英]List・Map・String 等の基本型からなるオブジェクトグラフの生成を簡略化する ユーティリティメソッドを提供する。
[中]列表・地图・一串等の基本型からなるオブジェクトグラフの生成を簡略化する ユーティリティメソッドを提供する。

代码示例

代码示例来源:origin: com.nablarch.framework/nablarch-core

/**
 * ベースパスを追加する際に発生する例外メッセージの共通部を取得する。
 * @param basePathName ベースパスの論理名
 * @param path ベースパス
 * @return ベースパスが不正な場合の例外メッセージの共通部
 */
private static String getAddBasePathExceptionMessage(String basePathName, String path) {
  return Builder.concat("base path=[", path, "], base path name=[", basePathName, "].");
}

代码示例来源:origin: com.nablarch.framework/nablarch-fw-messaging

/**
 * 設定情報キーを作成する。
 * <pre>
 * 設定情報キーの形式は下記のとおり。
 * 
 *     "messageSender" + "." + ターゲット名 + "." + プロパティ名
 * 
 * ターゲット名の値は下記のとおり。
 * 
 *     デフォルト設定の場合: "DEFAULT"
 *     個別設定の場合: リクエストID
 * 
 * </pre>
 * @param targetName ターゲット名
 * @param propertyName プロパティ名
 * @return 設定情報キー
 */
private String createSettingKey(String targetName, String propertyName) {
  return Builder.join(new Object[] {KEY_PREFIX, targetName, propertyName}, KEY_SEPARATOR);
}

代码示例来源:origin: com.nablarch.framework/nablarch-core

/**
 * listf・list の実装実体
 *
 * @param <T> 生成されるListの要素型
 * @param usesFormatting printf型のテンプレート文字列を解釈するか否か
 * @param memberType 生成されるListの要素型
 * @param elements 生成されるListの要素と埋め込みパラメータ
 * @return elementType型のインスタンスを要素とするList
 */
@SuppressWarnings("unchecked")
static <T> List<T> list(boolean usesFormatting,
            Class<T> memberType,
            Object... elements) {
  List<T> result = new ArrayList<T>();
  if (usesFormatting) {
    elements = applyFormat(elements);
  }
  for (Object element : elements) {
    if (element instanceof String) {
      element = valueOf(memberType, element);
    }
    result.add((T) element);
  }
  return result;
}

代码示例来源:origin: com.nablarch.framework/nablarch-core

/**
 * 各引数に対するtoString()の結果を改行文字(line.separator)で連結した文字列を返す。
 * <pre>
 * 引数にnullが渡された場合は単に無視される。
 *  (空行が出力されるわけではない。)
 * </pre>
 *
 * @param lines 各行の文字列を保持するオブジェクト
 * @return 連結後文字列
 */
public static String lines(final Object... lines) {
  return lines(false, lines);
}

代码示例来源:origin: com.nablarch.framework/nablarch-core

/**
 * lines()・linesf()の実装実体。
 *
 * @param usesFormatting フォーマット文字列を認識させるか否か
 * @param lines 連結対象文字列
 * @return 連結後文字列
 */
private static String lines(boolean usesFormatting, Object... lines) {
  StringBuilder buffer = new StringBuilder();
  if (usesFormatting) {
    lines = applyFormat(lines);
  }
  for (Object line : lines) {
    if (line == null) {
      continue;
    }
    buffer.append(line.toString()).append(LS);
  }
  return buffer.substring(0, buffer.length() - LS.length());
}

代码示例来源:origin: com.nablarch.framework/nablarch-core

return (T) value.toString();
Method staticConstructor = getStaticConstructorFromString(type, value);
if (staticConstructor == null) {
  throw new RuntimeException(

代码示例来源:origin: com.nablarch.framework/nablarch-core

/**
 * lines()メソッドにテンプレート文字列を解釈する機能を追加したもの。
 * <pre>
 * 引数文字列に"%"が含まれる場合はテンプレート文字列とみなされ、
 * 埋め込みパラメータ数と同数の後続引数がString.format()の仕様に従って埋め込まれる。
 * この際、埋め込まれる引数に対するテンプレート文字列の評価は行わない。
 * </pre>
 *
 * @param lines 連結対象文字列
 * @return 連結後文字列
 * @see #lines(Object...)
 */
public static String linesf(final Object... lines) {
  return lines(true, lines);
}

代码示例来源:origin: com.nablarch.framework/nablarch-fw-web-extension

/**
 * applyFormat に失敗した際に送出する例外を作成する。
 * 
 * @param basePathName フォーマットファイルのベースパス名
 * @param layoutFileName フォーマットファイルの論理名
 * @param layoutFile フォーマットファイル
 * @param e 元例外
 * @return applyFormat に失敗した際に送出する例外
 */
private IllegalStateException createApplyFormatException(String basePathName,
    String layoutFileName, File layoutFile, Throwable e) {
  return new IllegalStateException(concat(
      "fail applying format file. basePathName=[", basePathName, "] ",
      "layoutFileName=[", layoutFileName, "] ",
      "layoutFile=[", layoutFile.getAbsolutePath(), "]",
      "partInfo=[", partInfo, "]"), e);
}

代码示例来源:origin: com.nablarch.framework/nablarch-core

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

代码示例来源:origin: com.nablarch.framework/nablarch-core

/** {@inheritDoc} */
  public String toString() {
    String handlerToString = "handler               : " + handler.toString();
    if (helper != null) {
      return Builder.lines(helper.toString(), handlerToString);
    } else {
      return handlerToString;
    }
  }
}

代码示例来源:origin: com.nablarch.framework/nablarch-core-validation

/**
 * トリムポリシーを設定する。
 * 
 * @param trimPolicy トリムポリシー
 */
public void setTrimPolicy(String trimPolicy) {
  
  if (StringUtil.isNullOrEmpty(trimPolicy)) {
    throw new IllegalArgumentException(Builder.concat(
        "invalid property value was specified."
       , " 'trimPolicy' property must not be empty."
       , " supported trim policy name=[\""
       , TRIM_ALL, "\", \"", NO_TRIM, "\"]."));
  }
  
  if (!(TRIM_ALL.equals(trimPolicy) || NO_TRIM.equals(trimPolicy))) {
    throw new IllegalArgumentException(Builder.concat(
        "invalid property value was specified."
       , " '", trimPolicy , "' was not supported trim policy name."
       , " supported trim policy name=[\""
       , TRIM_ALL, "\", \"", NO_TRIM, "\"]."));
  }
  this.trimPolicy = trimPolicy;
}

代码示例来源:origin: com.nablarch.framework/nablarch-core

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

代码示例来源:origin: com.nablarch.framework/nablarch-core-validation

/**
 * このオブジェクトの文字列表現を返す。
 * @return メッセージIDとバリデーション対象プロパティを記載した文字列
 */
@Override
public String toString() {
  return concat(
      "messageId=[", getMessageId(), "] ",
      "propertyName=[", getPropertyName(), "]"
      );
}

代码示例来源:origin: com.nablarch.framework/nablarch-core

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

代码示例来源:origin: com.nablarch.framework/nablarch-core-applog

/**
 * ログ出力後に、ロックを解放する。
 * <p/>
 * ロックの解放処理は、ロックファイルを削除することによって行う。
 * @param formattedMessage フォーマット済みのログ(本メソッドでは使用していない)
 * @param context ログエントリオブジェクト
 */
protected void releaseLock(String formattedMessage, LogContext context) {
  if (!lockFile.delete()) {
    String lockFileAbsolutePath = lockFile.getAbsolutePath();
    String failureMessage = getFormattingFailureMessage(
        context
       , Builder.concat("failed to delete lock file. lock file path=[", lockFileAbsolutePath, "].")
       , failureCodeReleaseLockFile
       , lockFileAbsolutePath);
    super.onWrite(failureMessage);
  }
}

代码示例来源:origin: com.nablarch.framework/nablarch-fw-standalone

/**
 * コマンドラインパラメータの内容をバリデーションする。
 * 
 * @param options コマンドラインパラメータ
 * @throws IllegalArgumentException
 *     コマンドラインパラメータの内容が不正だった場合。
 */
private void validateOptions(Map<String, String> options)
throws IllegalArgumentException {
  
   List<String> errorMessages = new ArrayList<String>();
  if (!options.containsKey("diConfig")) {
    errorMessages.add("parameter [-diConfig] must be specified.");
  }
  if (!options.containsKey("requestPath")) {
    errorMessages.add("parameter [-requestPath] must be specified.");
  }
  if (!options.containsKey("userId")) {
    errorMessages.add("parameter [-userId] must be specified.");
  }
  if (!errorMessages.isEmpty()) {
    throw new BadRequest(Builder.join(errorMessages, " / "));
  }
}

代码示例来源:origin: com.nablarch.framework/nablarch-core-applog

/**
 * ロック待ち処理を行う。
 * <p/>
 * ロック取得の再試行間隔(ミリ秒)で設定された時間、スレッドをスリープさせる。
 * @param lockFile ロックファイル
 * @param formattedMessage フォーマット済みのログ
 * @param context ログエントリオブジェクト
 * @return もし割り込みが発生した場合にはfalse
 */
protected boolean waitLock(File lockFile, String formattedMessage, LogContext context) {
  try {
    Thread.sleep(lockRetryInterval);
  } catch (InterruptedException e) {
    String lockFileAbsolutePath = lockFile.getAbsolutePath();
    // 割り込み発生時にはロック取得の再試行は行わず、強制的にログを出力し処理を終了する
    String failureMessage = getFormattingFailureMessage(
        context
       , Builder.concat("interrupted while waiting for lock retry.")
       , failureCodeInterruptLockWait
       , lockFileAbsolutePath);
    forceWrite(formattedMessage, context, failureMessage);
    return false;
  }
  return true;
}

代码示例来源:origin: com.nablarch.framework/nablarch-common-exclusivecontrol-jdbc

/**
 * INSERT文のカラムと値を取得する。
 * @param primaryKeyColumnNames 主キーカラム名
 * @param versionColumnName バージョン番号カラム名
 * @return INSERT文のカラムと値
 */
protected String getInsertColumnsAndValues(String[] primaryKeyColumnNames, String versionColumnName) {
  
  StringBuilder columns = new StringBuilder();
  columns.append(Builder.join(primaryKeyColumnNames, ", ")).append(", ").append(versionColumnName);
  
  StringBuilder values = new StringBuilder();
  for (String columnName : primaryKeyColumnNames) {
    if (values.length() != 0) {
      values.append(", ");
    }
    values.append(":" + ExclusiveControlUtil.convertToVariableName(columnName));
  }
  values.append(", ")
     .append(":" + ExclusiveControlUtil.convertToVariableName(versionColumnName));
  return String.format("(%s) VALUES (%s)", columns, values);
}

代码示例来源:origin: com.nablarch.framework/nablarch-core-applog

/**
 * 待機時間を過ぎても残存しているロックファイルを強制的に削除する。
 * @param lockFile ロックファイル
 * @param formattedMessage フォーマット済みのログ
 * @param context ログエントリオブジェクト
 * @return ロックファイルの強制削除が正常に終了したかどうか
 */
protected boolean deleteLockFileExceedsLockWaitTime(File lockFile, String formattedMessage, LogContext context) {
  // 不要なロックファイルが残存しているとみなし削除
  if (!lockFile.delete()) {
    String lockFileAbsolutePath = lockFile.getAbsolutePath();
    // ロックファイルの強制削除ができなかった場合、ロックの取得は不可能と判断し強制的にログを出力する
    String failureMessage = getFormattingFailureMessage(
        context
       , Builder.concat("failed to delete lock file forcedly. lock file was opened illegally. lock file path=[", lockFileAbsolutePath, "].")
       , failureCodeForceDeleteLockFile
       , lockFileAbsolutePath);
    forceWrite(formattedMessage, context, failureMessage);
    return false;
  }
  return true;
}

代码示例来源:origin: com.nablarch.framework/nablarch-fw-web-tag

/**
 * フォームのサブミット制御を行うJavaScript関数を取得する。
 * リポジトリから改行コード(カスタムタグのデフォルト値設定)を取得するため、このメソッドを設けている。
 * @return フォームのサブミット制御を行うJavaScript関数
 */
private static String getSubmitFunction() {
  if (submitFunction != null) {
    return submitFunction;
  }
  String ls = TagUtil.getCustomTagConfig().getLineSeparator();
  submitFunction = Builder.join(new String[] {
                  SUBMIT_FUNCTION,
                  SUBMIT_ON_WINDOW_FUNCTION,
                  SUBMIT_TO_NEW_FORM_FUNCTION,
                  FIND_FORM_FUNCTION,
                  INVOKE_ON_SUBMIT_FUNCTION,
                  ADD_HIDDEN_TAG_FUNCTION,
                  STOP_SUBMISSION_FUNCTION,
                  "var $submissionInfoVar$ = {};",
                  "$submissionEndMarkPrefix$ = {};"}, ls)
              .replace(Builder.LS, ls)
              .replace("$fwPrefix$", FW_PREFIX)
              .replace("$submissionInfoVar$", SUBMISSION_INFO_VAR)
              .replace("$submissionEndMarkPrefix$", SUBMISSION_END_MARK_PREFIX)
              .replace("$popupAction$", SubmissionAction.POPUP.name())
              .replace("$downloadAction$", SubmissionAction.DOWNLOAD.name());
  return submitFunction;
}

相关文章

微信公众号

最新文章

更多