Package com.lingbobu.flashdb.transfer.sqlfunc

Source Code of com.lingbobu.flashdb.transfer.sqlfunc.InputFtpFile$FuncCsv

package com.lingbobu.flashdb.transfer.sqlfunc;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.BeanFactoryAware;

import com.lingbobu.flashdb.transfer.impl.FtpClientFactory;

import static com.lingbobu.flashdb.transfer.impl.FtpFileInput.*;

/**
* FTP 文件数据源的函数封装
*/
public class InputFtpFile {
  /**
   * 基于CSV文件的数据来源
   */
  public static class FuncCsv implements BeanFactoryAware {
    private BeanFactory beanFactory;

    @Override
    public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
      this.beanFactory = beanFactory;
    }
   
    public Csv call(String ftpFactoryBean, String filePath, String charsetName, String columnNames, boolean skipFirstLine) {
      FtpClientFactory ftpFactory = beanFactory.getBean(ftpFactoryBean, FtpClientFactory.class);
      return new Csv(ftpFactory, filePath, charsetName, columnNames, skipFirstLine);
    }
   
    public Csv call(String ftpFactoryBean, String filePath, String charsetName, String columnNames) {
      FtpClientFactory ftpFactory = beanFactory.getBean(ftpFactoryBean, FtpClientFactory.class);
      return new Csv(ftpFactory, filePath, charsetName, columnNames);
    }
   
    public Csv call(String ftpFactoryBean, String filePath, String charsetName) {
      FtpClientFactory ftpFactory = beanFactory.getBean(ftpFactoryBean, FtpClientFactory.class);
      return new Csv(ftpFactory, filePath, charsetName);
    }
  }
 
  /**
   * 基于JSON文件的数据来源
   */
  public static class FuncJson implements BeanFactoryAware {
    private BeanFactory beanFactory;

    @Override
    public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
      this.beanFactory = beanFactory;
    }
   
    public Json call(String ftpFactoryBean, String filePath, String charsetName, String fileExt, String[] childStringAsJson) {
      FtpClientFactory ftpFactory = beanFactory.getBean(ftpFactoryBean, FtpClientFactory.class);
      return new Json(ftpFactory, filePath, charsetName, fileExt, childStringAsJson);
    }
   
    public Json call(String ftpFactoryBean, String filePath, String charsetName, String fileExt) {
      FtpClientFactory ftpFactory = beanFactory.getBean(ftpFactoryBean, FtpClientFactory.class);
      return new Json(ftpFactory, filePath, charsetName, fileExt);
    }
   
    public Json call(String ftpFactoryBean, String filePath, String charsetName) {
      FtpClientFactory ftpFactory = beanFactory.getBean(ftpFactoryBean, FtpClientFactory.class);
      return new Json(ftpFactory, filePath, charsetName);
    }
   
    public Json call(String ftpFactoryBean, String filePath) {
      FtpClientFactory ftpFactory = beanFactory.getBean(ftpFactoryBean, FtpClientFactory.class);
      return new Json(ftpFactory, filePath);
    }
  }
 
  /**
   * 基于XML文件的数据来源
   */
  public static class FuncXml implements BeanFactoryAware {
    private BeanFactory beanFactory;

    @Override
    public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
      this.beanFactory = beanFactory;
    }
   
    public Xml call(String ftpFactoryBean, String filePath, boolean multiItemsPerFile, String itemXPathExpr, String listFields, String listmapFields, String[] fieldsAndXPath) {
      FtpClientFactory ftpFactory = beanFactory.getBean(ftpFactoryBean, FtpClientFactory.class);
      return new Xml(ftpFactory, filePath, multiItemsPerFile, itemXPathExpr, listFields, listmapFields, fieldsAndXPath);
    }
   
    public Xml call(String ftpFactoryBean, String filePath, boolean multiItemsPerFile, String itemXPathExpr, String listFields, String listmapFields) {
      FtpClientFactory ftpFactory = beanFactory.getBean(ftpFactoryBean, FtpClientFactory.class);
      return new Xml(ftpFactory, filePath, multiItemsPerFile, itemXPathExpr, listFields, listmapFields);
    }
   
    public Xml call(String ftpFactoryBean, String filePath, boolean multiItemsPerFile, String itemXPathExpr) {
      FtpClientFactory ftpFactory = beanFactory.getBean(ftpFactoryBean, FtpClientFactory.class);
      return new Xml(ftpFactory, filePath, multiItemsPerFile, itemXPathExpr);
    }
  }
}
TOP

Related Classes of com.lingbobu.flashdb.transfer.sqlfunc.InputFtpFile$FuncCsv

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.