Package uk.ac.starlink.vo

## Class VizierTapMetaReader

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

- All Implemented Interfaces:
    `TapMetaReader`

      public class VizierTapMetaReader
      extends java.lang.Object
      implements TapMetaReader

  TapMetaReader implementation that works with VizieR's non-standard tableset endpoint. The /tables endpoint gives you table-less schemas, and you can get the table documents by appending the table name to the tables URL. Details of what's quoted when seem to be in flux at time of writing, so the implementation may need adjustment.
  Since:
    14 May 2015
  Author:
    Mark Taylor

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `VizierTapMetaReader​(java.net.URL tablesetUrl, MetaNameFixer fixer, uk.ac.starlink.util.ContentCoding coding)` | Constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.String` | `getMeans()` | Returns a textual indication of the method or protocol this reader uses to acquire TAP metadata.
    `java.lang.String` | `getSource()` | Returns a textual indication of where the metadata is coming from, typically a URL.
    `ColumnMeta[]` | `readColumns​(TableMeta table)` | Acquires metadata about columns in a given table from a TAP service.
    `ForeignMeta[]` | `readForeignKeys​(TableMeta table)` | Acquires metadata about foreign keys in a given table from a TAP service.
    `SchemaMeta[]` | `readSchemas()` | Acquires metadata about schemas in a TAP service.
    `TableMeta[]` | `readTables​(SchemaMeta schema)` | Acquires metadata about tables in a given schema from a TAP service.

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

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

- - ### Constructor Detail

    - #### VizierTapMetaReader

          public VizierTapMetaReader​(java.net.URL tablesetUrl,
                                     MetaNameFixer fixer,
                                     uk.ac.starlink.util.ContentCoding coding)

      Constructor.
      Parameters:
        `tablesetUrl` - URL of TAPVizieR service followed by /tables
        `fixer` - object that fixes up syntactically incorrect table/column names; if null no fixing is done; has no effect for compliant VODataService documents
        `coding` - configures HTTP content-coding

  - ### Method Detail

    - #### readSchemas

          public SchemaMeta[] readSchemas()
                                   throws java.io.IOException

      Description copied from interface: `TapMetaReader`
      Acquires metadata about schemas in a TAP service.

      May be slow.

      Specified by:
        `readSchemas` in interface `TapMetaReader`
      Returns:
        schema metadata array
      Throws:
        `java.io.IOException`

    - #### readColumns

          public ColumnMeta[] readColumns​(TableMeta table)
                                   throws java.io.IOException

      Description copied from interface: `TapMetaReader`
      Acquires metadata about columns in a given table from a TAP service.

      May be slow. May throw UnsupportedOperationException if not needed.

      Specified by:
        `readColumns` in interface `TapMetaReader`
      Parameters:
        `table` - table containing columns; not altered by call
      Returns:
        column metadata array
      Throws:
        `java.io.IOException`

    - #### readForeignKeys

          public ForeignMeta[] readForeignKeys​(TableMeta table)
                                        throws java.io.IOException

      Description copied from interface: `TapMetaReader`
      Acquires metadata about foreign keys in a given table from a TAP service.

      May be slow. May throw UnsupportedOperationException if not needed.

      Specified by:
        `readForeignKeys` in interface `TapMetaReader`
      Parameters:
        `table` - table containing columns; not altered by call
      Returns:
        foreign key metadata array
      Throws:
        `java.io.IOException`

    - #### readTables

          public TableMeta[] readTables​(SchemaMeta schema)

      Description copied from interface: `TapMetaReader`
      Acquires metadata about tables in a given schema from a TAP service.

      May be slow. May throw UnsupportedOperationException if not needed.

      Specified by:
        `readTables` in interface `TapMetaReader`
      Parameters:
        `schema` - schema containing tables; not altered by call
      Returns:
        table metadata array
      Throws:
        `java.lang.UnsupportedOperationException` - always

    - #### getSource

          public java.lang.String getSource()

      Description copied from interface: `TapMetaReader`
      Returns a textual indication of where the metadata is coming from, typically a URL.
      Specified by:
        `getSource` in interface `TapMetaReader`
      Returns:
        address of metadata

    - #### getMeans

          public java.lang.String getMeans()

      Description copied from interface: `TapMetaReader`
      Returns a textual indication of the method or protocol this reader uses to acquire TAP metadata.
      Specified by:
        `getMeans` in interface `TapMetaReader`
      Returns:
        short description of metadata acquisition method