package dalclient; import java.util.*; /** * SIAP search connection. At this point the protocol is stateless and a * "connection" is nothing more than a list of service URLs. Queries require * a connection context be established first. */ public class SiapConnection extends DALConnection { /* Default is an empty service list. */ SiapConnection() { // Nothing yet. } /* Create a new connection with one service. */ SiapConnection(String service) { super(service); } /* Get a new empty query context for this connection. */ public SiapQuery getSiapQuery() { SiapQuery query = new SiapQuery(this); return (query); } /* Set up a SIAP context with RA, DEC, SIZE. */ public SiapQuery getSiapQuery(double ra, double dec, double size) { SiapQuery query = new SiapQuery(this); String sval; Double dval; // Encode POS. dval = new Double(ra); sval = dval.toString(); sval += ","; dval = new Double(dec); sval += dval.toString(); query.addParameter("POS", sval); // Encode SIZE. dval = new Double(size); query.addParameter("SIZE", dval.toString()); return (query); } /* Set up a SIAP context with RA, DEC, SIZE, FORMAT. */ public SiapQuery getSiapQuery(double ra, double dec, double size, String format) { SiapQuery query = new SiapQuery(this); String sval; Double dval; // Encode POS. dval = new Double(ra); sval = dval.toString(); sval += ","; dval = new Double(dec); sval += dval.toString(); query.addParameter("POS", sval); // Encode SIZE. dval = new Double(size); sval = dval.toString(); query.addParameter("SIZE", sval); // Encode FORMAT. query.addParameter("FORMAT", format); return (query); } /* Set up a SIAP context with RA, DEC, RA_SIZE, DEC_SIZE. */ public SiapQuery getSiapQuery(double ra, double dec, double ra_size, double dec_size) { SiapQuery query = new SiapQuery(this); String sval, s1, s2; Double dval; // Encode POS. dval = new Double(ra); sval = dval.toString(); sval += ","; dval = new Double(dec); sval += dval.toString(); query.addParameter("POS", sval); // Encode SIZE. Collapse to one value if two values are equal. dval = new Double(ra_size); s1 = dval.toString(); dval = new Double(dec_size); s2 = dval.toString(); if (s1.equals(s2)) query.addParameter("SIZE", s1); else query.addParameter("SIZE", s1 + "," + s2); return (query); } /* Set up a SIAP context with RA, DEC, RA_SIZE, DEC_SIZE, FORMAT. */ public SiapQuery getSiapQuery(double ra, double dec, double ra_size, double dec_size, String format) { SiapQuery query = new SiapQuery(this); String sval, s1, s2; Double dval; // Encode POS. dval = new Double(ra); sval = dval.toString(); sval += ","; dval = new Double(dec); sval += dval.toString(); query.addParameter("POS", sval); // Encode SIZE. Collapse to one value if two values are equal. dval = new Double(ra_size); s1 = dval.toString(); dval = new Double(dec_size); s2 = dval.toString(); if (s1.equals(s2)) query.addParameter("SIZE", s1); else query.addParameter("SIZE", s1 + "," + s2); // Encode FORMAT. query.addParameter("FORMAT", format); return (query); } }