package voi.votable;

import java.io.*;
import voi.ui.*;
import java.sql.*;

public class ConstructVoFlags
{
	private boolean[] queryFlags = new boolean [13];
	private String [] columnNames = new String[0];
	private ResultSet results;
	private int columns;
	private Index index;
	
	private final int NUMBER_OF_ATTRRIBUTES = 10;
	
	public ConstructVoFlags (ResultSet results)
	{
		this.results = results;
	}
	
	public boolean[] getQueryFlags ()
	{
		try
		{
			ResultSetMetaData metadata = results.getMetaData ();
			columns = metadata.getColumnCount ();
			columnNames = new String [columns];			
			for (int i = 0; i < metadata.getColumnCount (); i++)
				columnNames [i] = metadata.getColumnLabel(i+1);

		}
		catch (SQLException e)
		{
			System.out.println ("There was an exception in returning column names");
		}
		
		index = new Index ();

		if (present ("name")) queryFlags [index.NAME] = true;
		if ((present ("ra")) || (present ("decl"))) queryFlags [index.RA_DEC] = true;
		if ((present ("ra_rad")) || (present ("dec_rad"))) queryFlags [index.RA_DEC_RADIANS] = true;
		if (present ("bj")) queryFlags [index.BJ] = true;
		if (present ("ujr")) queryFlags [index.UBJ] = true;
		if (present ("bjr")) queryFlags [index.BJR] = true;
		if (present ("z1")) queryFlags [index.Z1] = true;
		if (present ("q1")) queryFlags [index.Q1] = true;
		if (present ("snr")) queryFlags [index.SNR] = true;
		if (present ("abs_mag")) queryFlags [index.ABS_MAG] = true;

		return queryFlags; 
	}
	
	public boolean present (String attrName)
	{
		for (int i = 0; i < columns; i++)
		{
			if (columnNames [i].equals (attrName)) return true;
		}
		return false;
	}
}
