# Class ConeSelector

java.lang.Object
uk.ac.starlink.ttools.cone.ConeSelector

public abstract class ConeSelector extends Object
Abstract class for an object which can make a JDBC SELECT query corresponding to cone searches.

Since:
  9 Jan 2007
Author:
  Mark Taylor

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`ConeSelector(Connection connection, String tableName, String raCol, String decCol, AngleUnits units, String cols, String where)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`static ConeSelector`
`createSelector(Connection connection, String tableName, String raCol, String decCol, AngleUnits units, String cols, String where, boolean usePrepared)`
Returns a new selector object which just queries on RA and Dec values.
`static ConeSelector`
`createTiledSelector(Connection connection, String tableName, String raCol, String decCol, AngleUnits units, String cols, String where, String tileCol, SkyTiling tiling, boolean usePrepared)`
Returns a new selector object which queries using RA, Dec and a spatial tiling value.
`abstract ResultSet`
`executeQuery(double ra, double dec, double sr)`
Returns an SQL ResultSet containing the records corresponding to a cone search with the given parameters.

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### ConeSelector

protected ConeSelector(Connection connection, String tableName, String raCol, String decCol, AngleUnits units, String cols, String where) throws SQLException
Constructor.

Parameters:
  `connection` - live connection to database
  `tableName` - name of a table in the database to search
  `raCol` - name of table column containing right ascension
  `decCol` - name of table column containing declination
  `units` - angular units used by ra and dec columns
  `cols` - list of column names for the SELECT statement
  `where` - additional WHERE clause constraints
Throws:
  `SQLException`

## Method Details

### executeQuery

public abstract ResultSet executeQuery(double ra, double dec, double sr) throws SQLException
Returns an SQL ResultSet containing the records corresponding to a cone search with the given parameters. This may return a superset of the records in the given cone - it is essential to use SQL which is simple (that is portable and hopefully optimisable).

Parameters:
  `ra` - right ascension of cone centre in degrees
  `dec` - declination of cone centre in degrees
  `sr` - search radius of cone in degrees
Returns:
  ResultSet containing records in cone (and possible some more)
Throws:
  `SQLException`

### createSelector

public static ConeSelector createSelector(Connection connection, String tableName, String raCol, String decCol, AngleUnits units, String cols, String where, boolean usePrepared) throws SQLException
Returns a new selector object which just queries on RA and Dec values. You can choose an implementation which uses `PreparedStatement`s or not - there may be (big) performance implications.

Parameters:
  `connection` - live connection to database
  `tableName` - name of a table in the database to search
  `raCol` - name of table column containing right ascension
  `decCol` - name of table column containing declination
  `units` - angular units used by ra and dec columns
  `cols` - list of column names for the SELECT statement
  `where` - additional WHERE clause constraints
  `usePrepared` - true to use JDBC `PreparedStatement`s, false for normal `Statement`s
Throws:
  `SQLException`

### createTiledSelector

public static ConeSelector createTiledSelector(Connection connection, String tableName, String raCol, String decCol, AngleUnits units, String cols, String where, String tileCol, SkyTiling tiling, boolean usePrepared) throws SQLException
Returns a new selector object which queries using RA, Dec and a spatial tiling value. You can choose an implementation which uses `PreparedStatement`s or not - there may be (big) performance implications.

Parameters:
  `connection` - live connection to database
  `tableName` - name of a table in the database to search
  `raCol` - name of table column containing right ascension
  `decCol` - name of table column containing declination
  `units` - angular units used by ra and dec columns
  `cols` - list of column names for the SELECT statement
  `where` - additional WHERE clause constraints
  `tileCol` - column containing a sky tiling index value
  `tiling` - tiling scheme used by tileCol column
  `usePrepared` - true to use JDBC `PreparedStatement`s, false for normal `Statement`s
Throws:
  `SQLException`