Class LinkColMap


  • public class LinkColMap
    extends java.lang.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, 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.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected LinkColMap​(java.util.Map<LinkColMap.ColDef,​java.lang.Integer> icolMap)
      Constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getAccessUrl​(java.lang.Object[] row)
      Returns the value of the DataLink access_url column in a given row.
      java.lang.Long getContentLength​(java.lang.Object[] row)
      Returns the value of the DataLink content_length column in a given row.
      java.lang.String getContentType​(java.lang.Object[] row)
      Returns the value of the DataLink content_type column in a given row.
      java.lang.String getDescription​(java.lang.Object[] row)
      Returns the value of the DataLink description column in a given row.
      java.lang.String getErrorMessage​(java.lang.Object[] row)
      Returns the value of the DataLink error_message column in a given row.
      java.lang.String getId​(java.lang.Object[] row)
      Returns the value of the DataLink id column in 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.
      java.lang.String getSemantics​(java.lang.Object[] row)
      Returns the value of the DataLink semantics column in a given row.
      java.lang.String getServiceDef​(java.lang.Object[] row)
      Returns the value of the DataLink service_def column in a given row.
      <C> C getValue​(LinkColMap.ColDef<C> col, java.lang.Object[] row)
      Returns the typed corresponding to a given column definition in a given row.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • COL_ID

        public static final LinkColMap.ColDef<java.lang.String> COL_ID
        ID column definition.
      • COL_ACCESSURL

        public static final LinkColMap.ColDef<java.lang.String> COL_ACCESSURL
        access_url column definition.
      • COL_SERVICEDEF

        public static final LinkColMap.ColDef<java.lang.String> COL_SERVICEDEF
        service_def column definition.
      • COL_ERRORMESSAGE

        public static final LinkColMap.ColDef<java.lang.String> COL_ERRORMESSAGE
        error_message column definition.
      • COL_DESCRIPTION

        public static final LinkColMap.ColDef<java.lang.String> COL_DESCRIPTION
        description column definition.
      • COL_SEMANTICS

        public static final LinkColMap.ColDef<java.lang.String> COL_SEMANTICS
        semantics column definition.
      • COL_CONTENTTYPE

        public static final LinkColMap.ColDef<java.lang.String> COL_CONTENTTYPE
        content_type column definition.
      • COL_CONTENTLENGTH

        public static final LinkColMap.ColDef<java.lang.Number> COL_CONTENTLENGTH
        content_length column definition.
      • COLDEF_MAP

        public static final java.util.Map<java.lang.String,​LinkColMap.ColDef> COLDEF_MAP
        Map by column name of all columns required in a DataLink table.
    • Constructor Detail

      • LinkColMap

        protected LinkColMap​(java.util.Map<LinkColMap.ColDef,​java.lang.Integer> icolMap)
        Constructor.
        Parameters:
        icolMap - map from column definition to column index, providing the state of this object
    • Method Detail

      • getId

        public java.lang.String getId​(java.lang.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 java.lang.String getAccessUrl​(java.lang.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 java.lang.String getServiceDef​(java.lang.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 java.lang.String getErrorMessage​(java.lang.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 java.lang.String getDescription​(java.lang.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 java.lang.String getSemantics​(java.lang.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 java.lang.String getContentType​(java.lang.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 java.lang.Long getContentLength​(java.lang.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
      • getValue

        public <C> C getValue​(LinkColMap.ColDef<C> col,
                              java.lang.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