/** * @version $Id: Concatenate.java 1839 2014-04-16 02:33:51Z yukihiro-kinjyo $ * * 2011/02/17 * @author KMorishima * * Copyright 2011-2014 TIDAコンソーシアム All Rights Reserved. * */ package com.tida_okinawa.corona.internal.ui.util; /** * 文字列連結のクラス * * @author KMorishima * */ public class Concatenate { /** * 文字列連結クラスをインスタンス化する。連結文字は {@value #DefaultSeparator}。 * * @param capacity * このクラスで連結する要素数。後からの変更はできない */ public Concatenate(int capacity) { elements = new Object[capacity]; } /** * 使用する区切り文字列を指定してインスタンス化する * * @param capacity * このクラスで連結する要素数。後からの変更はできない * @param separator */ public Concatenate(int capacity, String separator) { this(capacity); this.separator = separator; } private int index; private Object[] elements; /** * 連結対象の要素を追加する * * @param element */ public void add(Object element) { if (index < elements.length) { elements[index++] = element; } } /** * 追加された要素を{@link #getSeparator()}で区切って連結して返す * * @see java.lang.Object#toString() */ @Override public String toString() { if (elements.length > 0) { String sepa = separator; StringBuilder ret = new StringBuilder(elements[0].toString()); for (int i = 1; i < index; i++) { ret.append(sepa + elements[i]); } return ret.toString(); } return ""; } /** * {@link #setSeparator(String)}を呼び出さなかった場合の区切り文字列<br /> * デフォルトでは、{@value #DefaultSeparator}が指定されている */ public static final String DefaultSeparator = ", "; private String separator = DefaultSeparator; /** * @param separator * 要素を連結するときに、使用する区切り文字列 */ public void setSeparator(String separator) { this.separator = separator; } /** * @return 現在設定されている区切り文字列 */ public String getSeparator() { return separator; } /** * 渡された配列の各要素を、{@link #DefaultSeparator}で区切って連結して返す * * @param ary * @return */ public static String toString(Object[] ary) { return toString(ary, DefaultSeparator); } /** * 渡された配列の各要素を、指定されたseparatorで区切って連結して返す * * @param ary * @param separator * @return */ public static String toString(Object[] ary, String separator) { if (ary.length > 0) { String sepa = separator; StringBuilder ret = new StringBuilder(ary[0].toString()); for (int i = 1; i < ary.length; i++) { ret.append(sepa + ary[i]); } return ret.toString(); } return ""; } }