Package uk.ac.starlink.vo
Class RegTapRegistryQuery
java.lang.Object
uk.ac.starlink.vo.RegTapRegistryQuery
- All Implemented Interfaces:
RegistryQuery
Registry Query implementation that uses TAP to access a Relational Registry.
- Since:
- 11 Apr 2014
- Author:
- Mark Taylor
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final uk.ac.starlink.table.ValueInfo
Description of metadata item describing query text.static final String
TAP base URL for GAVO registry hosted at AIP.static final String
TAP base URL for GAVO registry hosted at ARI Heidelberg.static final String
TAP base URL for Euro-VO registry, currently hosted at ESAC.static final String
TAP base URL for high-availablity GAVO registry (DNS pointer).static final String
TAP base URL for INAF registry (not sure if this is permanent).static final String
TAP base URL for registry hosted at ObsPM, synced with GAVO.static final String[]
List of known registry TAP base URLs.static final uk.ac.starlink.table.ValueInfo
Description of metadata item describing registry location.static final String
TAP base URL for STScI registry. -
Constructor Summary
ConstructorsConstructorDescriptionRegTapRegistryQuery
(TapService tapService, Ivoid[] standardIds, 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
Modifier and TypeMethodDescriptionstatic String
getAdqlCondition
(ResourceField field, String keyword, boolean hasSubjectsTable) 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[]
Returns a set of DescribedValue objects which characterise this query.Executes the query described by this object and returns an Iterator overRegResource
objects.Executes the query described by this object and returns the result as an array ofRegResource
s.Returns the registry URL.static String[]
getSearchableRegistries
(TapService regtapService) Queries a given registry for searchable registries suitable for use with this class.getText()
Returns the query text.
-
Field Details
-
GAVO_REG
TAP base URL for high-availablity GAVO registry (DNS pointer).- See Also:
-
ARI_REG
TAP base URL for GAVO registry hosted at ARI Heidelberg.- See Also:
-
AIP_REG
TAP base URL for GAVO registry hosted at AIP.- See Also:
-
PARIS_REG
TAP base URL for registry hosted at ObsPM, synced with GAVO.- See Also:
-
EUROVO_REG
TAP base URL for Euro-VO registry, currently hosted at ESAC.- See Also:
-
STSCI_REG
TAP base URL for STScI registry.- See Also:
-
INAF_REG
TAP base URL for INAF registry (not sure if this is permanent).- See Also:
-
REGISTRIES
List of known registry TAP base URLs. -
REGISTRY_INFO
public static final uk.ac.starlink.table.ValueInfo REGISTRY_INFODescription of metadata item describing registry location. -
ADQL_INFO
public static final uk.ac.starlink.table.ValueInfo ADQL_INFODescription of metadata item describing query text.
-
-
Constructor Details
-
RegTapRegistryQuery
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:
tapService
- TAP service hosting relational registrystandardIds
- possible case-insensitive values for RRstandard_id
field, or null if not restricted by serviceadqlWhere
- text to be ANDed with existing ADQL WHERE clause, or null for no further restriction
-
-
Method Details
-
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
Description copied from interface:RegistryQuery
Returns the registry URL.- Specified by:
getRegistry
in interfaceRegistryQuery
- Returns:
- url
-
getText
Description copied from interface:RegistryQuery
Returns the query text.- Specified by:
getText
in interfaceRegistryQuery
- Returns:
- query
-
getQueryResources
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:
IOException
-
getQueryIterator
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:
IOException
-
getAdqlCondition
public static String getAdqlCondition(ResourceField field, String keyword, boolean hasSubjectsTable) 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 againsthasSubjectsTable
- true iff the rr.res_subject table is available for the query (hack; if not it assumes the res_subjects field is available)- Returns:
- ADQL snippet that may be inserted into WHERE clause, or null if it can't be done
-
getSearchableRegistries
Queries a given registry for searchable registries suitable for use with this class.- Parameters:
regtapService
- TAP service description of bootstrap relational registry- Returns:
- list of TAP base URLs for found relational registries
- Throws:
IOException
-