Package uk.ac.starlink.vo

## Class GlotsServiceFinder

- java.lang.Object
- - uk.ac.starlink.vo.GlotsServiceFinder

- All Implemented Interfaces:
    `TapServiceFinder`

      public class GlotsServiceFinder
      extends java.lang.Object
      implements TapServiceFinder

  TapServiceFinder implementation that uses the GloTS schema maintained (at time of writing) at the GAVO Data Center. GloTS is a non-standard registry containing metadata gathered by hook or by crook from all known registered TAP services.

  It is not very respectable to use this resource; the correct way to find out this kind of thing is using the standard interfaces of the IVOA Registry. However, at time of writing (June 2015) the Registry does not contain sufficiently detailed metadata (in particular, lists of table names and descriptions for each service) to do the job, while GloTS does.

  Since:
    30 Jun 2015
  Author:
    Mark Taylor

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface uk.ac.starlink.vo.TapServiceFinder

      `TapServiceFinder.Constraint, TapServiceFinder.Service, TapServiceFinder.Table, TapServiceFinder.Target`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `GAVO_DC_TAP_URL` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `GlotsServiceFinder()` | Constructs a default instance.
    `GlotsServiceFinder​(TapService glotsService, uk.ac.starlink.util.ContentCoding coding)` | Constructs an instance with custom configuration.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `TapServiceFinder.Service[]` | `readAllServices()` | Reads basic metadata about all known TAP services.
    `TapServiceFinder.Table[]` | `readSelectedTables​(TapServiceFinder.Constraint constraint)` | Locates a list of tables from a global list of all known tables served by all known TAP services that satisfy a given constraint.

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

    - #### GAVO_DC_TAP_URL

          public static final java.lang.String GAVO_DC_TAP_URL

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### GlotsServiceFinder

          public GlotsServiceFinder()

      Constructs a default instance.

    - #### GlotsServiceFinder

          public GlotsServiceFinder​(TapService glotsService,
                                    uk.ac.starlink.util.ContentCoding coding)

      Constructs an instance with custom configuration.
      Parameters:
        `glotsService` - TAP service description for a service containing GloTS tables
        `coding` - controls HTTP-level compression during TAP queries

  - ### Method Detail

    - #### readAllServices

          public TapServiceFinder.Service[] readAllServices()
                                                     throws java.io.IOException

      Description copied from interface: `TapServiceFinder`
      Reads basic metadata about all known TAP services. May be slow.
      Specified by:
        `readAllServices` in interface `TapServiceFinder`
      Returns:
        list of TAP services
      Throws:
        `java.io.IOException`

    - #### readSelectedTables

          public TapServiceFinder.Table[] readSelectedTables​(TapServiceFinder.Constraint constraint)
                                                      throws java.io.IOException

      Description copied from interface: `TapServiceFinder`
      Locates a list of tables from a global list of all known tables served by all known TAP services that satisfy a given constraint.
      Specified by:
        `readSelectedTables` in interface `TapServiceFinder`
      Parameters:
        `constraint` - object indicating the tables of interest
      Returns:
        list of tables matching constraint
      Throws:
        `java.io.IOException`