# Class LinkColMap

java.lang.Object
uk.ac.starlink.vo.datalink.LinkColMap

public class LinkColMap extends Object
Defines the mapping of columns named by the DataLink standard to a given table.

The usual way to obtain an instance of this class is using the static `getMap` method.

Since:
  22 Nov 2017
Author:
  Mark Taylor
See Also:
  - DataLink 1.0 or 1.1, sec 3.2

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`LinkColMap.ColDef<C>`
Utility class that encapsulates the characteristics of a given column from the DataLink standard.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final LinkColMap.ColDef<String>`
`COL_ACCESSURL`
access_url column definition.
`static final LinkColMap.ColDef<Number>`
`COL_CONTENTLENGTH`
content_length column definition.
`static final LinkColMap.ColDef<String>`
`COL_CONTENTQUALIFIER`
content_qualifier column definition.
`static final LinkColMap.ColDef<String>`
`COL_CONTENTTYPE`
content_type column definition.
`static final LinkColMap.ColDef<String>`
`COL_DESCRIPTION`
description column definition.
`static final LinkColMap.ColDef<String>`
`COL_ERRORMESSAGE`
error_message column definition.
`static final LinkColMap.ColDef<String>`
`COL_ID`
ID column definition.
`static final LinkColMap.ColDef<String>`
`COL_LINKAUTH`
link_auth column definition.
`static final LinkColMap.ColDef<Boolean>`
`COL_LINKAUTHORIZED`
link_authorized column definition.
`static final LinkColMap.ColDef<Object>`
`COL_LOCALSEMANTICS`
local_semantics column definition.
`static final LinkColMap.ColDef<String>`
`COL_SEMANTICS`
semantics column definition.
`static final LinkColMap.ColDef<String>`
`COL_SERVICEDEF`
service_def column definition.
`static final Map<String, LinkColMap.ColDef<?>>`
`COLDEF_MAP`
Map by column name of all columns required in a DataLink table.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`LinkColMap(Map<LinkColMap.ColDef<?>, Integer> icolMap)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`String`
`getAccessUrl(Object[] row)`
Returns the value of the DataLink access_url column in a given row.
`Long`
`getContentLength(Object[] row)`
Returns the value of the DataLink content_length column in a given row.
`String`
`getContentQualifier(Object[] row)`
Returns the value of the DataLink content_qualifier column in a given row.
`String`
`getContentType(Object[] row)`
Returns the value of the DataLink content_type column in a given row.
`String`
`getDescription(Object[] row)`
Returns the value of the DataLink description column in a given row.
`String`
`getErrorMessage(Object[] row)`
Returns the value of the DataLink error_message column in a given row.
`String`
`getId(Object[] row)`
Returns the value of the DataLink id column in a given row.
`String`
`getLinkAuth(Object[] row)`
Returns the value of the DataLink content_auth column in a given row.
`Boolean`
`getLinkAuthorized(Object[] row)`
Returns the declared authorization status for a given row.
`Object`
`getLocalSemantics(Object[] row)`
Returns the local semantics value for a given row.
`static LinkColMap`
`getMap(uk.ac.starlink.table.StarTable table)`
Constructs a LinkColMap that knows where the DataLink columns are in a supplied table.
`String`
`getSemantics(Object[] row)`
Returns the value of the DataLink semantics column in a given row.
`String`
`getServiceDef(Object[] row)`
Returns the value of the DataLink service_def column in a given row.
`<C> C`
`getValue(LinkColMap.ColDef<C> col, Object[] row)`
Returns the typed corresponding to a given column definition in a given row.

### Methods inherited from class Object

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

## Field Details

### COL_ID

public static final LinkColMap.ColDef<String> COL_ID
ID column definition.

### COL_ACCESSURL

public static final LinkColMap.ColDef<String> COL_ACCESSURL
access_url column definition.

### COL_SERVICEDEF

public static final LinkColMap.ColDef<String> COL_SERVICEDEF
service_def column definition.

### COL_ERRORMESSAGE

public static final LinkColMap.ColDef<String> COL_ERRORMESSAGE
error_message column definition.

### COL_DESCRIPTION

public static final LinkColMap.ColDef<String> COL_DESCRIPTION
description column definition.

### COL_SEMANTICS

public static final LinkColMap.ColDef<String> COL_SEMANTICS
semantics column definition.

### COL_CONTENTTYPE

public static final LinkColMap.ColDef<String> COL_CONTENTTYPE
content_type column definition.

### COL_CONTENTLENGTH

public static final LinkColMap.ColDef<Number> COL_CONTENTLENGTH
content_length column definition.

### COL_CONTENTQUALIFIER

public static final LinkColMap.ColDef<String> COL_CONTENTQUALIFIER
content_qualifier column definition.

### COL_LOCALSEMANTICS

public static final LinkColMap.ColDef<Object> COL_LOCALSEMANTICS
local_semantics column definition.

### COL_LINKAUTH

public static final LinkColMap.ColDef<String> COL_LINKAUTH
link_auth column definition.

### COL_LINKAUTHORIZED

public static final LinkColMap.ColDef<Boolean> COL_LINKAUTHORIZED
link_authorized column definition.

### COLDEF_MAP

public static final Map<String, LinkColMap.ColDef<?>> COLDEF_MAP
Map by column name of all columns required in a DataLink table.

## Constructor Details

### LinkColMap

protected LinkColMap(Map<LinkColMap.ColDef<?>, Integer> icolMap)
Constructor.

Parameters:
  `icolMap` - map from column definition to column index, providing the state of this object

## Method Details

### getId

public String getId(Object[] row)
Returns the value of the DataLink id column in a given row.

Parameters:
  `row` - row from the table for which this map was prepared
Returns:
  cell value for the `id` column

### getAccessUrl

public String getAccessUrl(Object[] row)
Returns the value of the DataLink access_url column in a given row.

Parameters:
  `row` - row from the table for which this map was prepared
Returns:
  cell value for the `access_url` column

### getServiceDef

public String getServiceDef(Object[] row)
Returns the value of the DataLink service_def column in a given row.

Parameters:
  `row` - row from the table for which this map was prepared
Returns:
  cell value for the `service_def` column

### getErrorMessage

public String getErrorMessage(Object[] row)
Returns the value of the DataLink error_message column in a given row.

Parameters:
  `row` - row from the table for which this map was prepared
Returns:
  cell value for the `error_message` column

### getDescription

public String getDescription(Object[] row)
Returns the value of the DataLink description column in a given row.

Parameters:
  `row` - row from the table for which this map was prepared
Returns:
  cell value for the `description` column

### getSemantics

public String getSemantics(Object[] row)
Returns the value of the DataLink semantics column in a given row.

Parameters:
  `row` - row from the table for which this map was prepared
Returns:
  cell value for the `semantics` column

### getContentType

public String getContentType(Object[] row)
Returns the value of the DataLink content_type column in a given row.

Parameters:
  `row` - row from the table for which this map was prepared
Returns:
  cell value for the `content_type` column

### getContentLength

public Long getContentLength(Object[] row)
Returns the value of the DataLink content_length column in a given row.

Parameters:
  `row` - row from the table for which this map was prepared
Returns:
  cell value for the `content_length` column, may be null

### getContentQualifier

public String getContentQualifier(Object[] row)
Returns the value of the DataLink content_qualifier column in a given row.

Parameters:
  `row` - row from the table for which this map was prepared
Returns:
  cell value for the `content_qualifier` column

### getLocalSemantics

public Object getLocalSemantics(Object[] row)
Returns the local semantics value for a given row.

Parameters:
  `row` - row from the table for which this map was prepared
Returns:
  object corresponding to the cell value for the experimental `local_semantics` column, may be null

### getLinkAuth

public String getLinkAuth(Object[] row)
Returns the value of the DataLink content_auth column in a given row. This is supposed to be one of "`false`", "`optional`", "`true`" or null.

Parameters:
  `row` - row from the table for which this map was prepared
Returns:
  cell value for the `content_auth` column

### getLinkAuthorized

public Boolean getLinkAuthorized(Object[] row)
Returns the declared authorization status for a given row.

Parameters:
  `row` - row from the table for which this map was prepared
Returns:
  boolean corresponding to the cell value for the `link_authorized` column, may be null

### getValue

public <C> C getValue(LinkColMap.ColDef<C> col, Object[] row)
Returns the typed corresponding to a given column definition in a given row.

Parameters:
  `col` - column value extractor object
  `row` - row from the table for which this map was prepared
Returns:
  typed cell value for `col`

### getMap

public static LinkColMap getMap(uk.ac.starlink.table.StarTable table)
Constructs a LinkColMap that knows where the DataLink columns are in a supplied table. Columns are identified by name and content type. Incorrect UCDs etc lead to warnings emitted through the logging system. No check is made that all columns are present; attempts to retrieve column values for unidentified columns just return null.

Parameters:
  `table` - table (assumed DataLink) to interpret
Returns:
  column map object