Class TapSchemaTapMetaReader

  • All Implemented Interfaces:
    TapMetaReader

    public class TapSchemaTapMetaReader
    extends java.lang.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 Summary

      Constructors 
      Constructor Description
      TapSchemaTapMetaReader​(EndpointSet endpointSet, int maxrec, uk.ac.starlink.util.ContentCoding coding, boolean populateSchemas, boolean populateTables, MetaNameFixer fixer, boolean preloadFkeys)
      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

      • TapSchemaTapMetaReader

        public TapSchemaTapMetaReader​(EndpointSet endpointSet,
                                      int maxrec,
                                      uk.ac.starlink.util.ContentCoding coding,
                                      boolean populateSchemas,
                                      boolean populateTables,
                                      MetaNameFixer fixer,
                                      boolean preloadFkeys)
        Constructor.
        Parameters:
        endpointSet - TAP service locations
        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 Detail

      • 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
      • 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
      • readTables

        public TableMeta[] readTables​(SchemaMeta schema)
                               throws java.io.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:
        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