Package uk.ac.starlink.vo
Class RegTapRegistryQuery
- java.lang.Object
-
- uk.ac.starlink.vo.RegTapRegistryQuery
-
- All Implemented Interfaces:
RegistryQuery
public class RegTapRegistryQuery extends java.lang.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
Fields Modifier and Type Field Description static uk.ac.starlink.table.ValueInfo
ADQL_INFO
Description of metadata item describing query text.static java.lang.String
AIP_REG
TAP endpoint for GAVO registry hosted at AIP.static java.lang.String
ARI_REG
TAP endpoint for GAVO registry hosted at ARI Heidelberg.static java.lang.String
EUROVO_REG
TAP endpoint for Euro-VO registry, currently hosted at ESAC.static java.lang.String
GAVO_REG
TAP endpoint for high-availablity GAVO registry (DNS pointer).static java.lang.String
INAF_REG
TAP endpoint for INAF registry (not sure if this is permanent).static java.lang.String
PARIS_REG
TAP endpoint for registry hosted at ObsPM, synced with GAVO.static java.lang.String[]
REGISTRIES
List of known registry TAP endpoints.static uk.ac.starlink.table.ValueInfo
REGISTRY_INFO
Description of metadata item describing registry location.static java.lang.String
STSCI_REG
TAP endpoint for STScI/VAO registry.
-
Constructor Summary
Constructors Constructor Description RegTapRegistryQuery(EndpointSet tapEndpointSet, java.lang.String standardId, java.lang.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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.lang.String
getAdqlCondition(ResourceField field, java.lang.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.uk.ac.starlink.table.DescribedValue[]
getMetadata()
Returns a set of DescribedValue objects which characterise this query.java.util.Iterator<RegResource>
getQueryIterator()
Executes the query described by this object and returns an Iterator overRegResource
objects.RegResource[]
getQueryResources()
Executes the query described by this object and returns the result as an array ofRegResource
s.java.net.URL
getRegistry()
Returns the registry URL.static java.lang.String[]
getSearchableRegistries(EndpointSet regtapEndpointSet)
Queries a given registry for searchable registries suitable for use with this class.java.lang.String
getText()
Returns the query text.
-
-
-
Field Detail
-
GAVO_REG
public static final java.lang.String GAVO_REG
TAP endpoint for high-availablity GAVO registry (DNS pointer).- See Also:
- Constant Field Values
-
ARI_REG
public static final java.lang.String ARI_REG
TAP endpoint for GAVO registry hosted at ARI Heidelberg.- See Also:
- Constant Field Values
-
AIP_REG
public static final java.lang.String AIP_REG
TAP endpoint for GAVO registry hosted at AIP.- See Also:
- Constant Field Values
-
PARIS_REG
public static final java.lang.String PARIS_REG
TAP endpoint for registry hosted at ObsPM, synced with GAVO.- See Also:
- Constant Field Values
-
EUROVO_REG
public static final java.lang.String EUROVO_REG
TAP endpoint for Euro-VO registry, currently hosted at ESAC.- See Also:
- Constant Field Values
-
STSCI_REG
public static final java.lang.String STSCI_REG
TAP endpoint for STScI/VAO registry.- See Also:
- Constant Field Values
-
INAF_REG
public static final java.lang.String INAF_REG
TAP endpoint for INAF registry (not sure if this is permanent).- See Also:
- Constant Field Values
-
REGISTRIES
public static final java.lang.String[] REGISTRIES
List of known registry TAP endpoints.
-
REGISTRY_INFO
public static final uk.ac.starlink.table.ValueInfo REGISTRY_INFO
Description of metadata item describing registry location.
-
ADQL_INFO
public static final uk.ac.starlink.table.ValueInfo ADQL_INFO
Description of metadata item describing query text.
-
-
Constructor Detail
-
RegTapRegistryQuery
public RegTapRegistryQuery(EndpointSet tapEndpointSet, java.lang.String standardId, java.lang.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 suppliedadqlWhere
text has to be written with some knowledge of the internals of this class, for instance what columns are available.- Parameters:
tapEndpointSet
- TAP endpoints for service hosting relational registrystandardId
- required value of RRstandard_id
field, or null if not resricted by serviceadqlWhere
- text to be ANDed with existing ADQL WHERE clause, or null for no further restriction
-
-
Method Detail
-
getMetadata
public uk.ac.starlink.table.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 aStarTable
resulting from the execution of this query.- Specified by:
getMetadata
in interfaceRegistryQuery
-
getRegistry
public java.net.URL getRegistry()
Description copied from interface:RegistryQuery
Returns the registry URL.- Specified by:
getRegistry
in interfaceRegistryQuery
- Returns:
- url
-
getText
public java.lang.String getText()
Description copied from interface:RegistryQuery
Returns the query text.- Specified by:
getText
in interfaceRegistryQuery
- Returns:
- query
-
getQueryResources
public RegResource[] getQueryResources() throws java.io.IOException
Description copied from interface:RegistryQuery
Executes the query described by this object and returns the result as an array ofRegResource
s.- Specified by:
getQueryResources
in interfaceRegistryQuery
- Returns:
- resource list
- Throws:
java.io.IOException
-
getQueryIterator
public java.util.Iterator<RegResource> getQueryIterator() throws java.io.IOException
Description copied from interface:RegistryQuery
Executes the query described by this object and returns an Iterator overRegResource
objects. Note that the iterator'snext
method may throw the unchecked exceptionRegistryQueryException
with a cause indicating the underlying error in case of a registry access problem.- Specified by:
getQueryIterator
in interfaceRegistryQuery
- Returns:
- iterator over
RegResource
s - Throws:
java.io.IOException
-
getAdqlCondition
public static java.lang.String getAdqlCondition(ResourceField field, java.lang.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 returnedNote that this code currently works by identifying known ResourceFields, so unknown ResourceFields will return null.
- Parameters:
field
- field whose content is to be testedkeyword
- 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 java.lang.String[] getSearchableRegistries(EndpointSet regtapEndpointSet) throws java.io.IOException
Queries a given registry for searchable registries suitable for use with this class.- Parameters:
regtapEndpointSet
- TAP endpoints for bootstrap relational registry- Returns:
- list of TAP endpoints for found relational registries
- Throws:
java.io.IOException
-
-