uk.ac.starlink.table

## Interface MultiTableBuilder

- All Superinterfaces:
    TableBuilder
  All Known Implementing Classes:
    FitsPlusTableBuilder, FitsTableBuilder, VOTableBuilder

      public interface MultiTableBuilder
      extends TableBuilder

  Interface for objects which can construct an array of StarTables from a data resource. In most cases, this interface should be implemented by objects which also implement `TableBuilder`, but which additionally know how to read more than one table at a time.
  Since:
    22 Oct 2009

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `TableSequence` | `makeStarTables(DataSource datsrc, StoragePolicy storagePolicy)` Constructs a sequence of StarTables based on a given DataSource.

    - ### Methods inherited from interface uk.ac.starlink.table.TableBuilder

      `canImport, getFormatName, looksLikeFile, makeStarTable, streamStarTable`

- - ### Method Detail

    - #### makeStarTables

          TableSequence makeStarTables(DataSource datsrc,
                                       StoragePolicy storagePolicy)
                                throws java.io.IOException

      Constructs a sequence of StarTables based on a given DataSource. If the source is not recognised or this object does not know how to make tables from it, then a `TableFormatException` should be thrown. If this builder thinks it should be able to handle the source but an error occurs during processing, an `IOException` can be thrown.

      If the `position` of the data source is not null, then this method should return a sequence containing a single table, the one which would be returned by the `makeStarTable` method with that position.

      Parameters:
        `datsrc` - the DataSource containing the table resource
        `storagePolicy` - a StoragePolicy object which may be used to supply scratch storage if the builder needs it
      Returns:
        an array of StarTables read from `datsrc`
      Throws:
        `TableFormatException` - if the table is not of a kind that can be handled by this handler
        `java.io.IOException` - if an unexpected I/O error occurs during processing