public class TapSchemaInterrogator extends Object
| Modifier and Type | Class and Description | 
|---|---|
static class  | 
TapSchemaInterrogator.MetaQuerier<T>
Object that can read a certain type of TAP metadata object from
 a table of a TAP_SCHEMA database table. 
 | 
| Modifier and Type | Field and Description | 
|---|---|
static TapSchemaInterrogator.MetaQuerier<ColumnMeta> | 
COLUMN_QUERIER
Acquires ColumnMeta objects from TAP_SCHEMA.columns. 
 | 
static TapSchemaInterrogator.MetaQuerier<ForeignMeta> | 
FKEY_QUERIER
Acquires ForeignMeta objects from TAP_SCHEMA.keys. 
 | 
static TapSchemaInterrogator.MetaQuerier<ForeignMeta.Link> | 
LINK_QUERIER
Acquires ForeignMeta.Link objects from TAP_SCHEMA.key_columns. 
 | 
static TapSchemaInterrogator.MetaQuerier<SchemaMeta> | 
SCHEMA_QUERIER
Acquires SchemaMeta objects from TAP_SCHEMA.schemas. 
 | 
static TapSchemaInterrogator.MetaQuerier<TableMeta> | 
TABLE_QUERIER
Acquires TableMeta objects from TAP_SCHEMA.tables. 
 | 
| Constructor and Description | 
|---|
TapSchemaInterrogator(TapService service,
                     int maxrec,
                     ContentCoding coding)
Constructs an interrogator with explicit configuration. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
protected TapQuery | 
createTapQuery(String adql)
Constructs a TAP query for a given ADQL string. 
 | 
protected StarTable | 
executeQuery(TapQuery tq)
Performs an ADQL TAP query to this interrogator's service. 
 | 
TapService | 
getTapService()
Returns the TAP service used by this interrogator. 
 | 
static void | 
main(String[] args)
Prints out metadata content of a given TAP service. 
 | 
void | 
populateForeignKey(ForeignMeta fmeta,
                  Map<String,List<ForeignMeta.Link>> lMap)
Fills in link information for a ForeignMeta object. 
 | 
void | 
populateSchema(SchemaMeta smeta,
              Map<String,List<TableMeta>> tMap)
Fills in table information for a SchemaMeta object. 
 | 
void | 
populateTable(TableMeta tmeta,
             Map<String,List<ForeignMeta>> fMap,
             Map<String,List<ColumnMeta>> cMap)
Fills in foreign key and column information for a TableMeta object,
 Any relevant entries are removed from the supplied maps. 
 | 
SchemaMeta[] | 
queryMetadata()
This convenience method returns an array of fully filled in
 SchemaMeta objects describing the tables available from the service. 
 | 
<T> List<T> | 
readList(TapSchemaInterrogator.MetaQuerier<T> mq,
        String moreAdql)
Reads a list of metadata items using a given MetaQuerier object. 
 | 
<T> Map<String,List<T>> | 
readMap(TapSchemaInterrogator.MetaQuerier<T> mq,
       String moreAdql)
Reads a map of metadata items using a given MetaQuerier object. 
 | 
SchemaMeta[] | 
readSchemas(boolean populateSchemas,
           boolean populateTables,
           boolean addOrphanTables)
Reads all schemas. 
 | 
public static final TapSchemaInterrogator.MetaQuerier<ForeignMeta.Link> LINK_QUERIER
public static final TapSchemaInterrogator.MetaQuerier<ForeignMeta> FKEY_QUERIER
public static final TapSchemaInterrogator.MetaQuerier<ColumnMeta> COLUMN_QUERIER
public static final TapSchemaInterrogator.MetaQuerier<TableMeta> TABLE_QUERIER
public static final TapSchemaInterrogator.MetaQuerier<SchemaMeta> SCHEMA_QUERIER
public TapSchemaInterrogator(TapService service, int maxrec, ContentCoding coding)
service - TAP service descriptionmaxrec - maximum number of records to retrieve per querycoding - configures HTTP compressionpublic TapService getTapService()
public SchemaMeta[] queryMetadata() throws IOException
IOExceptionpublic SchemaMeta[] readSchemas(boolean populateSchemas, boolean populateTables, boolean addOrphanTables) throws IOException
populateSchemas - if true, schemas will contain non-null
                          table listspopulateTables - if true, tables will contain non-null
                          column/key lists
                          (ignored if populateSchemas is false)addOrphanTables - if true include tables whose schemas are not
                          explicitly declaredIOExceptionpublic <T> Map<String,List<T>> readMap(TapSchemaInterrogator.MetaQuerier<T> mq, String moreAdql) throws IOException
The form of the basic SELECT statement generated by this
 call is "SELECT <columns> FROM <table>".
 If non-null the text of the moreAdql parameter
 is appended (after a space), so it may be used to qualify the
 query further.
mq - type-specific queriermoreAdql - additional ADQL text to append after the
                    FROM clause (for example a WHERE clause);
                    may be nullIOExceptionpublic <T> List<T> readList(TapSchemaInterrogator.MetaQuerier<T> mq, String moreAdql) throws IOException
The form of the basic SELECT statement generated by this
 call is "SELECT <columns> FROM <table>".
 If non-null the text of the moreAdql parameter
 is appended (after a space), so it may be used to qualify the
 query further.
mq - type-specific queriermoreAdql - additional ADQL text to append after the
                    FROM clause (for example a WHERE clause);
                    may be nullIOExceptionpublic void populateForeignKey(ForeignMeta fmeta, Map<String,List<ForeignMeta.Link>> lMap)
fmeta - unpopulated foreign key itemlMap - map acquired using LINK_QUERIERpublic void populateTable(TableMeta tmeta, Map<String,List<ForeignMeta>> fMap, Map<String,List<ColumnMeta>> cMap)
tmeta - unpopulated table metadata itemfMap - map acquired using FKEY_QUERIERcMap - map acquired using COLUMN_QUERIERpublic void populateSchema(SchemaMeta smeta, Map<String,List<TableMeta>> tMap)
smeta - unpopulated schema metadata itemtMap - map acquired using TABLE_QUERIERprotected TapQuery createTapQuery(String adql)
adql - query textprotected StarTable executeQuery(TapQuery tq) throws IOException
tq - tap queryIOExceptionpublic static void main(String[] args) throws IOException
args - first element is TAP service URLIOExceptionCopyright © 2025 Central Laboratory of the Research Councils. All Rights Reserved.