/*
 * Created on 23-Jul-2010
 *
 * TODO 
 */
package uk.ac.roe.wfau;

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;

import javax.servlet.http.HttpSession;

import uk.ac.starlink.table.StarTable;
import uk.ac.starlink.table.StarTableFactory;
import uk.ac.starlink.table.TableFormatException;
import uk.ac.starlink.table.jdbc.JDBCFormatter;
import uk.ac.starlink.table.jdbc.WriteMode;

/**
 * @author mar
 *
 */

public class UploadFileToTable {
    String database;
    HttpSession sess;
    String filename=null;
    String fileFmt=null;
    String [] servers;
    String tableName="#upload";
    long noRows;
    public static final String FITSFMT="FITS";
    public static final String CSVFMT="CSV";
    public static final String VOTFMT="VOTable";
    public static final String ASCIIFMT="ASCII";
    StarTable st;
    /**
     * @param filename
     * @param fileFmt
     */
    public UploadFileToTable(String filename, String fileFmt) {
        super();
        this.filename = filename;
        this.fileFmt = fileFmt;
    }
    
    
    public long createStarTable() throws TableFormatException, IOException {
        if (fileFmt == null) {
            
        }
        st = new StarTableFactory().makeStarTable( filename,fileFmt);
        return st.getRowCount();
        
    }
    
    public void createDBTable(Connection conn,String tableName) throws SQLException, IOException {
        JDBCFormatter jf=new JDBCFormatter(conn,st);
        jf.createJDBCTable(tableName,WriteMode.DROP_CREATE);
        conn=null;
        
    }
    public String getColumnNames() {
        StringBuffer sb = new StringBuffer("");
        for (int i=0; i<st.getColumnCount();i++) {
            if (i > 0) {
                sb.append(',');
            }
            sb.append(st.getColumnInfo(i).getName());
            
        }
        return sb.toString();
    }
}
