Package uk.ac.starlink.topcat

## Class TopcatCodec2

- java.lang.Object
- - uk.ac.starlink.topcat.TopcatCodec2

- All Implemented Interfaces:
    `TopcatCodec`

      public class TopcatCodec2
      extends java.lang.Object
      implements TopcatCodec

  Second version of TopcatCodec implementation. This defines a different serialization format to the older `TopcatCodec1`, and unlike that, this one stores the algebraic expressions etc for algebraically-defined columns and subsets, as well as the definition of some other RowSubset variants like ones based on other subsets or columns. It can thus preserve state better and also requires less storage.
  Since:
    6 Sep 2017
  Author:
    Mark Taylor

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `TopcatCodec2()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `TopcatModel` | `decode​(uk.ac.starlink.table.StarTable table, java.lang.String location, ControlWindow controlWindow)` | Takes a table which has been previously serialized by calling this codec's `encode` method, and for which the `isEncoded` method returns true, and turns it into a TopcatModel.
    `uk.ac.starlink.table.StarTable` | `encode​(TopcatModel tcModel)` | Turns a TopcatModel into a StarTable, ready for serialization.
    `boolean` | `isEncoded​(uk.ac.starlink.table.StarTable table)` | Indicates whether a given table is a candidate for this codec's `decode` method.

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

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

- - ### Constructor Detail

    - #### TopcatCodec2

          public TopcatCodec2()

  - ### Method Detail

    - #### encode

          public uk.ac.starlink.table.StarTable encode​(TopcatModel tcModel)

      Description copied from interface: `TopcatCodec`
      Turns a TopcatModel into a StarTable, ready for serialization.
      Specified by:
        `encode` in interface `TopcatCodec`
      Parameters:
        `tcModel` - model
      Returns:
        table

    - #### isEncoded

          public boolean isEncoded​(uk.ac.starlink.table.StarTable table)

      Description copied from interface: `TopcatCodec`
      Indicates whether a given table is a candidate for this codec's `decode` method. It should in general return true for a table that has been returned from this object's `encode` method (possibly following a table write/read cycle) and false for other tables.
      Specified by:
        `isEncoded` in interface `TopcatCodec`
      Parameters:
        `table` - data+metadata table
      Returns:
        true iff it looks like the table was written by this codec and can be decoded by it

    - #### decode

          public TopcatModel decode​(uk.ac.starlink.table.StarTable table,
                                    java.lang.String location,
                                    ControlWindow controlWindow)

      Description copied from interface: `TopcatCodec`
      Takes a table which has been previously serialized by calling this codec's `encode` method, and for which the `isEncoded` method returns true, and turns it into a TopcatModel. If decoding fails, null is returned.

      If used with a ControlWindow that users may be interacting with, this method should be called from the AWT event dispatch thread. This method may (for instance during testing) be called with a null value for the `controlWindow` parameter, but the resulting TopcatModel may not be suitable for all kinds of user interactions.

      Specified by:
        `decode` in interface `TopcatCodec`
      Parameters:
        `table` - encoded table
        `location` - table location string
        `controlWindow` - control window, or null if necessary
      Returns:
        topcat model, or null

Copyright © 2003-2018 CCLRC: Council for the Central Laboratory of the Research Councils. All Rights Reserved.