gu.sql2java.excel.config.PropertyConfig Maven / Gradle / Ivy
package gu.sql2java.excel.config;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
/**
* 属性/字段访问接口
* @author guyadong
*
*/
public interface PropertyConfig{
/**
* @return 返回属性的名字,不可为{@code null}或空
*/
public abstract String getNestedName();
/**
* 设置属性的名字,多级属性名以.分割
* @param nestedName
*/
void setNestedName(String nestedName);
/**
* 从指定的对象读取属性的值
* @param from
* @return 属性的值,输入对数为{@code null}则返回{@code null}
*/
public abstract Object readFrom(Object from);
/**
* 将值写入指定的对象,输入参数为{@code null}则忽略
* @param to
* @param value
*/
public abstract void writeTo(Object to,Object value);
/**
* @return 返回属性的Excel输入/输出字段配置对象
*/
public ColumnConfig getColumnConfig();
/**
* 设置属性的Excel输入/输出字段配置对象
* @param columnConfig
*/
public void setColumnConfig(ColumnConfig columnConfig);
/**
* 设置所属的Excel表输出全局配置
* @param parentConfig
*/
public void setParent(SheetConfig parentConfig);
/**
* 返回Excel导出时的列名,
* 取值优先序:{@link ColumnConfig#name}字段,{@link ColumnConfig#columnName}字段{@link #getNestedName()}
*/
public String getExcelColumnName();
/**
* 返回EXCEL导入的字段对应的Java对象字段名
* @since 3.29.0
*/
public String getImportColumnName();
/**
* 返回指定值的数据格式
* @param value
* @return 输入参数为{@code null}返回空字符串
*/
public String getDataFormat(Object value);
/**
* 返回导出字段水平对齐方式,如果未定义则使用{@link SheetConfig}中的默认值
*/
public HorizontalAlignment getHorizontalAlign();
/**
* 返回单元格填充颜色,如果未定义则使用{@link SheetConfig}中的默认值
*/
public IndexedColors getFillColor();
/**
* 返回导出字体颜色,如果未定义则使用{@link SheetConfig}中的默认值
*/
public IndexedColors getColor();
}