uk.ac.starlink.vo
Class RegTapRegistryQuery

java.lang.Object
  extended by uk.ac.starlink.vo.RegTapRegistryQuery
All Implemented Interfaces:
RegistryQuery

public class RegTapRegistryQuery
extends Object
implements RegistryQuery

Registry Query implementation that uses TAP to access a Relational Registry.

Since:
11 Apr 2014
Author:
Mark Taylor
See Also:
IVOA Registry Relational Schema

Field Summary
static ValueInfo ADQL_INFO
          Description of metadata item describing query text.
static String AIP_REG
          TAP endpoint for GAVO registry hosted at AIP.
static String ARI_REG
          TAP endpoint for GAVO registry hosted at ARI Heidelberg.
static String GAVO_REG
          TAP endpoint for high-availablity GAVO registry (DNS pointer).
static String INAF_REG
          TAP endpoint for INAF registry (not sure if this is permanent).
static String[] REGISTRIES
          List of known registry TAP endpoints.
static ValueInfo REGISTRY_INFO
          Description of metadata item describing registry location.
 
Constructor Summary
RegTapRegistryQuery(String tapurl, String standardId, String adqlWhere)
          Constructs a query which will return RegResource lists for registry resource records with two optional restrictions: (a) restricted to a given service type, and (b) restricted by some free-form ADQL.
 
Method Summary
static String getAdqlCondition(ResourceField field, String keyword)
          Returns text that can be used as part of a WHERE clause to supply to this class that tests for a keyword in a given RR field.
 DescribedValue[] getMetadata()
          Returns a set of DescribedValue objects which characterise this query.
 Iterator<RegResource> getQueryIterator()
          Executes the query described by this object and returns an Iterator over RegResource objects.
 RegResource[] getQueryResources()
          Executes the query described by this object and returns the result as an array of RegResources.
 URL getRegistry()
          Returns the registry URL.
static String[] getSearchableRegistries(String regUrl)
          Queries a given registry for searchable registries suitable for use with this class.
 String getText()
          Returns the query text.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

GAVO_REG

public static final String GAVO_REG
TAP endpoint for high-availablity GAVO registry (DNS pointer).

See Also:
Constant Field Values

ARI_REG

public static final String ARI_REG
TAP endpoint for GAVO registry hosted at ARI Heidelberg.

See Also:
Constant Field Values

AIP_REG

public static final String AIP_REG
TAP endpoint for GAVO registry hosted at AIP.

See Also:
Constant Field Values

INAF_REG

public static final String INAF_REG
TAP endpoint for INAF registry (not sure if this is permanent).

See Also:
Constant Field Values

REGISTRIES

public static final String[] REGISTRIES
List of known registry TAP endpoints.


REGISTRY_INFO

public static final ValueInfo REGISTRY_INFO
Description of metadata item describing registry location.


ADQL_INFO

public static final ValueInfo ADQL_INFO
Description of metadata item describing query text.

Constructor Detail

RegTapRegistryQuery

public RegTapRegistryQuery(String tapurl,
                           String standardId,
                           String adqlWhere)
Constructs a query which will return RegResource lists for registry resource records with two optional restrictions: (a) restricted to a given service type, and (b) restricted by some free-form ADQL. The supplied adqlWhere text has to be written with some knowledge of the internals of this class, for instance what columns are available.

Parameters:
tapurl - TAP endpoint for service hosting relational registry
standardId - required value of RR standard_id field, or null if not resricted by service
adqlWhere - text to be ANDed with existing ADQL WHERE clause, or null for no further restriction
Method Detail

getMetadata

public DescribedValue[] getMetadata()
Description copied from interface: RegistryQuery
Returns a set of DescribedValue objects which characterise this query. These would be suitable for use in the parameter list of a StarTable resulting from the execution of this query.

Specified by:
getMetadata in interface RegistryQuery

getRegistry

public URL getRegistry()
Description copied from interface: RegistryQuery
Returns the registry URL.

Specified by:
getRegistry in interface RegistryQuery
Returns:
url

getText

public String getText()
Description copied from interface: RegistryQuery
Returns the query text.

Specified by:
getText in interface RegistryQuery
Returns:
query

getQueryResources

public RegResource[] getQueryResources()
                                throws IOException
Description copied from interface: RegistryQuery
Executes the query described by this object and returns the result as an array of RegResources.

Specified by:
getQueryResources in interface RegistryQuery
Returns:
resource list
Throws:
IOException

getQueryIterator

public Iterator<RegResource> getQueryIterator()
                                       throws IOException
Description copied from interface: RegistryQuery
Executes the query described by this object and returns an Iterator over RegResource objects. Note that the iterator's next method may throw the unchecked exception RegistryQueryException with a cause indicating the underlying error in case of a registry access problem.

Specified by:
getQueryIterator in interface RegistryQuery
Returns:
iterator over RegResources
Throws:
IOException

getAdqlCondition

public static String getAdqlCondition(ResourceField field,
                                      String keyword)
Returns text that can be used as part of a WHERE clause to supply to this class that tests for a keyword in a given RR field. The nature of the test (=, LIKE etc) depends on the field. If no suitable ADQL can be written, null is returned

Note that this code currently works by identifying known ResourceFields, so unknown ResourceFields will return null.

Parameters:
field - field whose content is to be tested
keyword - value to test against
Returns:
ADQL snippet that may be inserted into WHERE clause, or null if it can't be done

getSearchableRegistries

public static String[] getSearchableRegistries(String regUrl)
                                        throws IOException
Queries a given registry for searchable registries suitable for use with this class.

Parameters:
regUrl - TAP endpoint for bootstrap relational registry
Returns:
list of TAP endpoints for found relational registries
Throws:
IOException


Copyright © 2015 Central Laboratory of the Research Councils. All Rights Reserved.