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

com.supwisdom.spreadsheet.mapper.w2o.Sheet2ObjectComposer Maven / Gradle / Ivy

package com.supwisdom.spreadsheet.mapper.w2o;

import com.supwisdom.spreadsheet.mapper.model.core.Row;
import com.supwisdom.spreadsheet.mapper.model.core.Sheet;
import com.supwisdom.spreadsheet.mapper.model.meta.FieldMeta;
import com.supwisdom.spreadsheet.mapper.model.meta.SheetMeta;
import com.supwisdom.spreadsheet.mapper.w2o.listener.CellProcessListener;
import com.supwisdom.spreadsheet.mapper.w2o.listener.RowProcessListener;
import com.supwisdom.spreadsheet.mapper.w2o.listener.SheetProcessListener;
import com.supwisdom.spreadsheet.mapper.w2o.setter.PropertySetter;

import java.util.List;

/**
 * {@link Sheet}到List<Object>的转换器
 * Created by hanwen on 2016/12/28.
 */
public interface Sheet2ObjectComposer {

  /**
   * 设置忽略的field。如果设置了ignore fields,那么这些fields肯定不会被设置值。
   *
   * @param field       field
   * @param otherFields 其他field
   */
  void ignoreFields(String field, String... otherFields);

  /**
   * 添加{@link PropertySetter},一个field只能有一个FieldSetter。
* 在{@link #compose(Sheet, SheetMeta)}之前必须要设置 * * @param propertySetter {@link PropertySetter} * @return 自己 */ Sheet2ObjectComposer addPropertySetter(PropertySetter propertySetter); /** * 设置{@link ObjectFactory}。
* 在{@link #compose(Sheet, SheetMeta)}之前必须要设置 * * @param objectFactory {@link ObjectFactory} * @return 自己 */ Sheet2ObjectComposer setObjectFactory(ObjectFactory objectFactory); /** * @param sheetProcessListener {@link SheetProcessListener} * @return 自己 */ Sheet2ObjectComposer setSheetProcessorListener(SheetProcessListener sheetProcessListener); /** * @param rowProcessListener {@link RowProcessListener} * @return 自己 */ Sheet2ObjectComposer setRowProcessorListener(RowProcessListener rowProcessListener); /** * @param cellProcessListener {@link CellProcessListener} * @return 自己 */ Sheet2ObjectComposer setCellProcessorListener(CellProcessListener cellProcessListener); /** * 将Sheet转换成List<Object> * * @param sheet {@link Sheet},这里面包含{@link Row}数据 * @param sheetMeta {@link SheetMeta},这里包含{@link FieldMeta},{@link FieldMeta}是和Object里的每个property对应的。 * 也就是说,如果没有{@link FieldMeta},那么Object的property是不会被set值的 * @return Object列表 */ List compose(Sheet sheet, SheetMeta sheetMeta); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy