ColumnMapping.java
package com.github.mygreen.supercsv.builder;
import org.supercsv.cellprocessor.ift.CellProcessor;
import com.github.mygreen.supercsv.cellprocessor.format.TextFormatter;
/**
* 解析したカラムのマッピング情報です。
*
* @version 2.1
* @author T.TSUCHIE
*
*/
public class ColumnMapping implements Comparable<ColumnMapping> {
private FieldAccessor field;
private String label;
private int number;
/**
* 部分的なカラムかどうか。
*/
private boolean partialized;
private CellProcessor cellProcessorForReading;
private CellProcessor cellProcessorForWriting;
private TextFormatter<?> formatter;
/**
* {@link #number}の昇順。
* <p>{@link #number}が同じ場合は、フィールド名の昇順。</p>
*/
@Override
public int compareTo(final ColumnMapping o) {
if(this.number == o.number) {
return this.field.getName().compareTo(o.field.getName());
} else {
return Integer.compare(number, o.number);
}
}
/**
* 番号が決まっている(1以上)かどうか。
* @since 2.1
* @return trueの場合、番号は1以上であり決まっています。
*/
public boolean isDeterminedNumber() {
return number >= 1;
}
/**
* カラムの名称を取得する。
* @return Beanに定義されているフィールドの名称を取得します。
* 部分的なカラムの場合はnullを返します。
*/
public String getName() {
return field != null ? field.getName() : null;
}
/**
* フィールド情報を取得します。
* @return 部分的なカラムの場合はnullを返します。
*/
public FieldAccessor getField() {
return field;
}
public void setField(FieldAccessor field) {
this.field = field;
}
/**
* ラベル情報を取得します。
* @return ラベル情報。
*/
public String getLabel() {
return label;
}
/**
* ラベル情報を設定します。
* @param label ラベル情報。
*/
public void setLabel(String label) {
this.label = label;
}
/**
* カラムの番号を取得します。
* @return 1から始まります。
*/
public int getNumber() {
return number;
}
/**
* カラムの番号を設定します。
* @param number 1から始まります。
*/
public void setNumber(int number) {
this.number = number;
}
/**
* 部分的なカラムかどうか判定する。
* @return trueの場合、部分的なカラムです。
*/
public boolean isPartialized() {
return partialized;
}
/**
* 部分的なカラムかどうか設定する。
* @param partialized trueの場合、部分的なカラムです。
*/
public void setPartialized(boolean partialized) {
this.partialized = partialized;
}
public CellProcessor getCellProcessorForReading() {
return cellProcessorForReading;
}
public void setCellProcessorForReading(CellProcessor cellProcessorForReading) {
this.cellProcessorForReading = cellProcessorForReading;
}
public CellProcessor getCellProcessorForWriting() {
return cellProcessorForWriting;
}
public void setCellProcessorForWriting(CellProcessor cellProcessorForWriting) {
this.cellProcessorForWriting = cellProcessorForWriting;
}
/**
* フィールドのオブジェクトに対するフォーマッタ。
* @return 部分的なカラムの場合、nullを返す。
*/
public TextFormatter<?> getFormatter() {
return formatter;
}
public void setFormatter(TextFormatter<?> formatter) {
this.formatter = formatter;
}
}