Package uk.ac.starlink.vo

## Class TapMetaPolicy

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

-     public abstract class TapMetaPolicy
      extends java.lang.Object

  Defines the policy for acquiring TAP metadata from a remote service. This is a factory for TapMetaReader objects.
  Since:
    25 Mar 2015
  Author:
    Mark Taylor

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static TapMetaPolicy` | `AUTO` | Tries its best to do something sensible.
    `static TapMetaPolicy` | `TAPSCHEMA` | Uses the TAP_SCHEMA tables, all data loaded at once.
    `static TapMetaPolicy` | `TAPSCHEMA_C` | Uses the TAP_SCHEMA tables, with columns on demand.
    `static TapMetaPolicy` | `TAPSCHEMA_CF` | Uses the TAP_SCHEMA tables, with columns and foreign keys on demand.
    `static TapMetaPolicy` | `VIZIER` | Uses the non-standard VizieR two-level tables endpoint.
    `static TapMetaPolicy` | `VOSI10` | Uses the VOSI 1.0 /tables endpoint.
    `static TapMetaPolicy` | `VOSI11_MAX` | Uses the VOSI 1.1 one-stage (detail=max) /tables endpoint.
    `static TapMetaPolicy` | `VOSI11_MIN` | Uses the VOSI 1.1 two-stage (detail=min) /tables endpoint.
    `static TapMetaPolicy` | `VOSI11_NULL` | Uses the VOSI 1.1 /tables endpoint (backward compatible).

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `TapMetaPolicy​(java.lang.String name, java.lang.String description)` | Constructor.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract TapMetaReader` | `createMetaReader​(TapService service, uk.ac.starlink.util.ContentCoding coding)` | Creates an object capable of acquiring TAP metadata for a given TAP service description.
    `static TapMetaPolicy` | `getDefaultInstance()` | Returns an instance of this class suitable for general use.
    `java.lang.String` | `getDescription()` | Returns a plain text description of this object.
    `java.lang.String` | `getName()` | Returns the name of this object.
    `static TapMetaPolicy[]` | `getStandardInstances()` | Returns a list of some general-purpose concrete implementations of this class.

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

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

- - ### Field Detail

    - #### AUTO

          public static final TapMetaPolicy AUTO

      Tries its best to do something sensible.

    - #### VOSI10

          public static final TapMetaPolicy VOSI10

      Uses the VOSI 1.0 /tables endpoint.

    - #### TAPSCHEMA_C

          public static final TapMetaPolicy TAPSCHEMA_C

      Uses the TAP_SCHEMA tables, with columns on demand.

    - #### TAPSCHEMA_CF

          public static final TapMetaPolicy TAPSCHEMA_CF

      Uses the TAP_SCHEMA tables, with columns and foreign keys on demand.

    - #### TAPSCHEMA

          public static final TapMetaPolicy TAPSCHEMA

      Uses the TAP_SCHEMA tables, all data loaded at once.

    - #### VIZIER

          public static final TapMetaPolicy VIZIER

      Uses the non-standard VizieR two-level tables endpoint.

    - #### VOSI11_MAX

          public static final TapMetaPolicy VOSI11_MAX

      Uses the VOSI 1.1 one-stage (detail=max) /tables endpoint.

    - #### VOSI11_MIN

          public static final TapMetaPolicy VOSI11_MIN

      Uses the VOSI 1.1 two-stage (detail=min) /tables endpoint.

    - #### VOSI11_NULL

          public static final TapMetaPolicy VOSI11_NULL

      Uses the VOSI 1.1 /tables endpoint (backward compatible).

  - ### Constructor Detail

    - #### TapMetaPolicy

          protected TapMetaPolicy​(java.lang.String name,
                                  java.lang.String description)

      Constructor.
      Parameters:
        `name` - short name for this instance
        `description` - plain text description of this instance

  - ### Method Detail

    - #### getName

          public java.lang.String getName()

      Returns the name of this object.
      Returns:
        short name

    - #### getDescription

          public java.lang.String getDescription()

      Returns a plain text description of this object.
      Returns:
        description

    - #### createMetaReader

          public abstract TapMetaReader createMetaReader​(TapService service,
                                                         uk.ac.starlink.util.ContentCoding coding)

      Creates an object capable of acquiring TAP metadata for a given TAP service description.
      Parameters:
        `service` - TAP service description
        `coding` - configures HTTP compression; implementations may honour this hint but are not required to
      Returns:
        new metadata reader

    - #### getStandardInstances

          public static TapMetaPolicy[] getStandardInstances()

      Returns a list of some general-purpose concrete implementations of this class.
      Returns:
        list of instances

    - #### getDefaultInstance

          public static TapMetaPolicy getDefaultInstance()

      Returns an instance of this class suitable for general use.
      Returns:
        default instance