# Class DocumentedTableBuilder

java.lang.Object
uk.ac.starlink.table.formats.DocumentedTableBuilder

All Implemented Interfaces:
  `Documented, DocumentedIOHandler, TableBuilder`

Direct Known Subclasses:
  `IpacTableBuilder, MrtTableBuilder, RowEvaluatorTableBuilder, TstTableBuilder, WDCTableBuilder`

public abstract class DocumentedTableBuilder extends Object implements TableBuilder, DocumentedIOHandler
Partial TableBuilder implementation that adds some behaviour useful when auto-generating XML user documentation for I/O handlers.

Since:
  18 Sep 2020
Author:
  Mark Taylor

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`DocumentedTableBuilder(String[] extensions)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`abstract boolean`
`canStream()`
Indicates whether this handler can read tables from a stream.
`String[]`
`getExtensions()`
Returns the list of filename extensions recognised by this handler.
`boolean`
`looksLikeFile(String filename)`
Indicates whether the given location string is of a familiar form for this builder.

### Methods inherited from class Object

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

### Methods inherited from interface Documented

`getXmlDescription`

### Methods inherited from interface DocumentedIOHandler

`docIncludesExample, readText`

### Methods inherited from interface TableBuilder

`canImport, getFormatName, makeStarTable, streamStarTable`

## Constructor Details

### DocumentedTableBuilder

protected DocumentedTableBuilder(String[] extensions)
Constructor.

Parameters:
  `extensions` - list of lower-cased filename extensions, excluding the '.' character

## Method Details

### getExtensions

public String[] getExtensions()
Description copied from interface: `DocumentedIOHandler`
Returns the list of filename extensions recognised by this handler.

Specified by:
  `getExtensions` in interface `DocumentedIOHandler`
Returns:
  lower-cased filename extension strings, no "." characters

### looksLikeFile

public boolean looksLikeFile(String filename)
Description copied from interface: `TableBuilder`
Indicates whether the given location string is of a familiar form for this builder. Implementations should return `true` if there is a good chance that a file with the given `location` can be interpreted by this reader, for instance if it has a suitable file extension.

This method may be used to guess, on a best-efforts basis, whether this builder is suitable for reading a file from a given location. Attempts may still be made to read inputs for which this method returns false. It is less important for builders that can recognise files by magic number, which is generally preferable to using filenames.

Specified by:
  `looksLikeFile` in interface `TableBuilder`
Parameters:
  `filename` - the location string, such as a filename or URL (not null)
Returns:
  true iff there is a good chance that the named input can be interpreted by this reader

### canStream

public abstract boolean canStream()
Indicates whether this handler can read tables from a stream.

Returns:
  true iff this handler can read from streams