All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.mygreen.supercsv.expression.CustomFunctions Maven / Gradle / Ivy

Go to download

CSVのJavaライブラリであるSuperCSVに、アノテーション機能を追加したライブラリです。

There is a newer version: 2.3
Show newest version
package com.github.mygreen.supercsv.expression;

import java.util.Arrays;
import java.util.Collection;
import java.util.Objects;
import java.util.stream.Collectors;

import com.github.mygreen.supercsv.cellprocessor.format.TextPrinter;

/**
 * EL式中で利用可なユーティリティ関数。
 * 
 * @since 2.0
 * @author T.TSUCHIE
 *
 */
public class CustomFunctions {
    
    /**
     * 文字列がnullの場合に空文字に変換する。
     * 

     *     CustomFunctions.defaultString(null) = ""
     *     CustomFunctions.defaultString("") = ""
     *     CustomFunctions.defaultString("abc") = "abc"
     * 
* * @param text 判定対象の文字列 * @return 非nullの場合は、引数の値をそのまま返す。 */ public static String defaultString(final String text) { if(text == null) { return ""; } return text; } /** * int型の配列の値を結合する。 * @param array 結合対象の配列 * @param delimiter 区切り文字 * @return 結合した文字列を返す。結合の対象の配列がnulの場合、空文字を返す。 */ public static String join(final int[] array, final String delimiter) { if(array == null || array.length == 0) { return ""; } String value = Arrays.stream(array) .boxed() .map(String::valueOf) .collect(Collectors.joining(defaultString(delimiter))); return value; } /** * 配列の値を結合する。 * @param array 結合対象の配列 * @param delimiter 区切り文字 * @return 結合した文字列を返す。結合の対象の配列がnulの場合、空文字を返す。 */ public static String join(final Object[] array, final String delimiter) { if(array == null || array.length == 0) { return ""; } String value = Arrays.stream(array) .map(v -> v.toString()) .collect(Collectors.joining(defaultString(delimiter))); return value; } /** * 配列の値を結合する。 * @param array 結合対象の配列 * @param delimiter 区切り文字 * @param printer 配列の要素の値のフォーマッタ * @return 結合した文字列を返す。結合の対象の配列がnulの場合、空文字を返す。 * @throws NullPointerException {@literal printer is null.} */ @SuppressWarnings({"rawtypes", "unchecked"}) public static String join(final Object[] array, final String delimiter, final TextPrinter printer) { Objects.requireNonNull(printer); if(array == null || array.length == 0) { return ""; } String value = Arrays.stream(array) .map(v -> printer.print(v)) .collect(Collectors.joining(defaultString(delimiter))); return value; } /** * コレクションの値を結合する。 * @param collection 結合対象のコレクション * @param delimiter 区切り文字 * @return 結合した文字列を返す。結合の対象のコレクションがnulの場合、空文字を返す。 */ public static String join(final Collection collection, final String delimiter) { if(collection == null || collection.isEmpty()) { return ""; } String value = collection.stream() .map(v -> v.toString()) .collect(Collectors.joining(defaultString(delimiter))); return value; } /** * コレクションの値を結合する。 * @param collection 結合対象のコレクション * @param delimiter 区切り文字 * @param printer コレクションの要素の値のフォーマッタ * @return 結合した文字列を返す。結合の対象のコレクションがnulの場合、空文字を返す。 * @throws NullPointerException {@literal printer is null.} */ @SuppressWarnings({"rawtypes", "unchecked"}) public static String join(final Collection collection, final String delimiter, final TextPrinter printer) { Objects.requireNonNull(printer); if(collection == null || collection.isEmpty()) { return ""; } String value = collection.stream() .map(v -> printer.print(v)) .collect(Collectors.joining(defaultString(delimiter))); return value; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy