DefaultFieldFormatter.java
package com.gh.mygreen.xlsmapper.validation.fieldvalidation;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.gh.mygreen.xlsmapper.util.Utils;
/**
* 標準のフィールドのフォーマッタ。
*
* @since 1.0
* @author T.TSUCHIE
* @param <T> フィールドのタイプ
*
*/
public class DefaultFieldFormatter<T> implements FieldFormatter<T> {
/**
* フォーマットする際の書式
*/
private final String pattern;
/**
* フォーマッタのコンストラクタ
* @param pattern フォーマットする際の書式。書式を指定しない場合はnullを指定する。
*/
public DefaultFieldFormatter(final String pattern) {
this.pattern = pattern;
}
@Override
public String format(final T value) {
if(value == null) {
return null;
}
if(Utils.isEmpty(pattern)) {
return value.toString();
}
if(value instanceof Number) {
final NumberFormat fomatter = new DecimalFormat(pattern);
return fomatter.format(value);
} else if(value instanceof Date) {
final DateFormat formatter = new SimpleDateFormat(pattern);
return formatter.format(value);
} else {
return value.toString();
}
}
/**
* フォーマットする際の書式
* @return
*/
public String getPattern() {
return pattern;
}
}