Class 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