forked from fanruan/easyexcel
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
3.1 KiB
86 lines
3.1 KiB
package com.alibaba.excel.converters; |
|
|
|
import com.alibaba.excel.enums.CellDataTypeEnum; |
|
import com.alibaba.excel.metadata.GlobalConfiguration; |
|
import com.alibaba.excel.metadata.data.ReadCellData; |
|
import com.alibaba.excel.metadata.data.WriteCellData; |
|
import com.alibaba.excel.metadata.property.ExcelContentProperty; |
|
|
|
/** |
|
* Convert between Java objects and excel objects |
|
* |
|
* @param <T> |
|
* @author Dan Zheng |
|
*/ |
|
public interface Converter<T> { |
|
|
|
/** |
|
* Back to object types in Java |
|
* |
|
* @return Support for Java class |
|
*/ |
|
default Class<?> supportJavaTypeKey() { |
|
throw new UnsupportedOperationException("The current operation is not supported by the current converter."); |
|
} |
|
|
|
/** |
|
* Back to object enum in excel |
|
* |
|
* @return Support for {@link CellDataTypeEnum} |
|
*/ |
|
default CellDataTypeEnum supportExcelTypeKey() { |
|
throw new UnsupportedOperationException("The current operation is not supported by the current converter."); |
|
} |
|
|
|
/** |
|
* Convert excel objects to Java objects |
|
* |
|
* @param cellData Excel cell data.NotNull. |
|
* @param contentProperty Content property.Nullable. |
|
* @param globalConfiguration Global configuration.NotNull. |
|
* @return Data to put into a Java object |
|
* @throws Exception Exception. |
|
*/ |
|
default T convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, |
|
GlobalConfiguration globalConfiguration) throws Exception { |
|
throw new UnsupportedOperationException("The current operation is not supported by the current converter."); |
|
} |
|
|
|
/** |
|
* Convert excel objects to Java objects |
|
* |
|
* @param context read converter context |
|
* @return Data to put into a Java object |
|
* @throws Exception Exception. |
|
*/ |
|
default T convertToJavaData(ReadConverterContext<?> context) throws Exception { |
|
return convertToJavaData(context.getReadCellData(), context.getContentProperty(), |
|
context.getAnalysisContext().currentReadHolder().globalConfiguration()); |
|
} |
|
|
|
/** |
|
* Convert Java objects to excel objects |
|
* |
|
* @param value Java Data.NotNull. |
|
* @param contentProperty Content property.Nullable. |
|
* @param globalConfiguration Global configuration.NotNull. |
|
* @return Data to put into a Excel |
|
* @throws Exception Exception. |
|
*/ |
|
default WriteCellData<?> convertToExcelData(T value, ExcelContentProperty contentProperty, |
|
GlobalConfiguration globalConfiguration) throws Exception { |
|
throw new UnsupportedOperationException("The current operation is not supported by the current converter."); |
|
} |
|
|
|
/** |
|
* Convert Java objects to excel objects |
|
* |
|
* @param context write context |
|
* @return Data to put into a Excel |
|
* @throws Exception Exception. |
|
*/ |
|
default WriteCellData<?> convertToExcelData(WriteConverterContext<T> context) throws Exception { |
|
return convertToExcelData(context.getValue(), context.getContentProperty(), |
|
context.getWriteContext().currentWriteHolder().globalConfiguration()); |
|
} |
|
}
|
|
|