Package uk.ac.starlink.cdf

# Class CdfTableBuilder

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

All Implemented Interfaces:
  `uk.ac.starlink.table.Documented`, `uk.ac.starlink.table.formats.DocumentedIOHandler`, `uk.ac.starlink.table.MultiTableBuilder`, `uk.ac.starlink.table.TableBuilder`

public class CdfTableBuilder extends uk.ac.starlink.table.formats.DocumentedTableBuilder implements uk.ac.starlink.table.MultiTableBuilder
Table input handler for NASA CDF (Common Data Format) files.

Since:
  24 Jun 2013
Author:
  Mark Taylor

## Field Summary

Fields
Modifier and Type
Field
Description
`static final CdfTableProfile`
`DEFAULT_PROFILE`
Default CDF-StarTable translation profile.

## Constructor Summary

Constructors
Constructor
Description
`CdfTableBuilder()`
Constructs a default Cdf table builder.
`CdfTableBuilder(CdfTableProfile profile)`
Constructs a Cdf table builder with a custom translation profile.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`canImport(DataFlavor flavor)`
Returns false.
`boolean`
`canStream()`
`static CdfTableProfile`
`createProfile(boolean invarParams, String[] descripAttNames, String[] unitAttNames, String[] blankvalAttNames, String[] depend0AttNames)`
Constructs an instance of CdfTableProfile with some suggestions for attribute names with known semantics.
`boolean`
`docIncludesExample()`
`String`
`getFormatName()`
Returns "CDF".
`String`
`getXmlDescription()`
`uk.ac.starlink.table.StarTable`
`makeStarTable(uk.ac.starlink.util.DataSource datsrc, boolean wantRandom, uk.ac.starlink.table.StoragePolicy storagePolicy)`
`uk.ac.starlink.table.TableSequence`
`makeStarTables(uk.ac.starlink.util.DataSource datsrc, uk.ac.starlink.table.StoragePolicy storagePolicy)`
`void`
`streamStarTable(InputStream in, uk.ac.starlink.table.TableSink sink, String pos)`
Throws a TableFormatException.

### Methods inherited from class uk.ac.starlink.table.formats.DocumentedTableBuilder

`getExtensions, looksLikeFile`

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

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

### Methods inherited from interface uk.ac.starlink.table.formats.DocumentedIOHandler

`readText`

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

`looksLikeFile`

## Field Details

### DEFAULT_PROFILE

public static final CdfTableProfile DEFAULT_PROFILE
Default CDF-StarTable translation profile. This is based on the ISTP Metadata Guidelines at https://spdf.gsfc.nasa.gov/sp_use_of_cdf.html

## Constructor Details

### CdfTableBuilder

public CdfTableBuilder()
Constructs a default Cdf table builder.

### CdfTableBuilder

public CdfTableBuilder(CdfTableProfile profile)
Constructs a Cdf table builder with a custom translation profile.

Parameters:
  `profile` - CDF-Startable translation profile

## Method Details

### getFormatName

public String getFormatName()
Returns "CDF".

Specified by:
  `getFormatName` in interface `uk.ac.starlink.table.TableBuilder`

### makeStarTable

public uk.ac.starlink.table.StarTable makeStarTable(uk.ac.starlink.util.DataSource datsrc, boolean wantRandom, uk.ac.starlink.table.StoragePolicy storagePolicy) throws IOException

Specified by:
  `makeStarTable` in interface `uk.ac.starlink.table.TableBuilder`
Throws:
  `IOException`

### makeStarTables

public uk.ac.starlink.table.TableSequence makeStarTables(uk.ac.starlink.util.DataSource datsrc, uk.ac.starlink.table.StoragePolicy storagePolicy) throws IOException

Specified by:
  `makeStarTables` in interface `uk.ac.starlink.table.MultiTableBuilder`
Throws:
  `IOException`

### canImport

public boolean canImport(DataFlavor flavor)
Returns false. I don't think there is a MIME type associated with the CDF format. References to application/x-cdf and application/cdf appear on the web, but neither is IANA registered, and I think they refer to some other format.

Specified by:
  `canImport` in interface `uk.ac.starlink.table.TableBuilder`

### streamStarTable

public void streamStarTable(InputStream in, uk.ac.starlink.table.TableSink sink, String pos) throws IOException
Throws a TableFormatException. CDF is not suitable for streaming.

Specified by:
  `streamStarTable` in interface `uk.ac.starlink.table.TableBuilder`
Throws:
  `IOException`

### getXmlDescription

public String getXmlDescription()

Specified by:
  `getXmlDescription` in interface `uk.ac.starlink.table.Documented`

### docIncludesExample

public boolean docIncludesExample()

Specified by:
  `docIncludesExample` in interface `uk.ac.starlink.table.formats.DocumentedIOHandler`

### canStream

public boolean canStream()

Specified by:
  `canStream` in class `uk.ac.starlink.table.formats.DocumentedTableBuilder`

### createProfile

public static CdfTableProfile createProfile(boolean invarParams, String[] descripAttNames, String[] unitAttNames, String[] blankvalAttNames, String[] depend0AttNames)
Constructs an instance of CdfTableProfile with some suggestions for attribute names with known semantics.

Parameters:
  `invarParams` - true for turning non-row-varying variables into table parameters, false for turning them into variables
  `descripAttNames` - ordered list of names of attributes that might supply description metadata
  `unitAttNames` - ordered list of names of attributes that might supply units metadata
  `blankvalAttNames` - ordered list of names of attributes that might supply magic blank values
  `depend0AttNames` - ordered list of names of attributes that might supply a dependent variable name
Returns:
  new profile instance