package com.jiayue.ipfcst.dataexchange.dataprocesser.datapacker;

import com.jiayue.ipfcst.dataexchange.exception.DataExchangeException;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * 数据组装器
 *
 * @author: xiuwei
 */

public abstract class AbstractDataPacker<T> {


  @Getter
  @Setter
  protected T t;

  /**
   * 入库时间间隔 单位S 默认1分钟
   */
  @Setter
  @Getter
  @Accessors(chain = true)
  protected Integer interval = 60;

  /**
   * 通过反射机制将容器中的数据封装入设备描述的实体类 同时对数据合理性进行校验 仅对数据类型为BigDecimal的数据进行合理性校验
   *
   * @return AbstractEquipmentData 设备状态数据
   * @throws DataExchangeException 异常
   */
  public abstract T packageData() throws DataExchangeException, IllegalAccessException;
}
