Class TapSchemaTapMetaReader

java.lang.Object
uk.ac.starlink.vo.TapSchemaTapMetaReader
All Implemented Interfaces:
TapMetaReader

public class TapSchemaTapMetaReader extends Object implements TapMetaReader
TapMetaReader implementation that uses TAP queries on the TAP_SCHEMA schema to acquire table metadata.
Since:
18 Mar 2015
Author:
Mark Taylor
  • Constructor Details

    • TapSchemaTapMetaReader

      public TapSchemaTapMetaReader(TapService service, int maxrec, uk.ac.starlink.util.ContentCoding coding, boolean populateSchemas, boolean populateTables, MetaNameFixer fixer, boolean preloadFkeys)
      Constructor.
      Parameters:
      service - TAP service description
      maxrec - maximum number of records to be requested at once
      coding - configures HTTP compression
      populateSchemas - whether SchemaMeta objects will be filled in with table lists when they are acquired
      populateTables - whether TableMeta objects will be filled in with column and foreign key lists when they are acquired
      fixer - object that fixes up syntactically incorrect table/column names; if null no fixing is done; has no effect for compliant TAP_SCHEMA services
      preloadFkeys - if true, all foreign key info is loaded in one go, if false it's read per-table as required
  • Method Details

    • getSource

      public 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 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
    • readSchemas

      public SchemaMeta[] readSchemas() throws 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:
      IOException
    • readTables

      public TableMeta[] readTables(SchemaMeta schema) throws IOException
      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:
      IOException
    • readColumns

      public ColumnMeta[] readColumns(TableMeta table) throws 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:
      IOException
    • readForeignKeys

      public ForeignMeta[] readForeignKeys(TableMeta table) throws 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:
      IOException