Class TableSupplier

All Implemented Interfaces:
com.fishlib.base.log.LogOutputAppendable, LivenessManager, LivenessNode, LivenessReferent, Serializable, InvocationHandler

@ScriptApi public class TableSupplier extends LivenessArtifact implements InvocationHandler
TableSupplier creates a Proxy to a Table with a list of Table operations to be applied when a filter method is called.

Example usage:

 import com.illumon.iris.db.v2.TableSupplier
 t=db.t("LearnDeephaven", "StockTrades").where("Date=`2017-08-21`")
 // The build method will start building a table supplier, you can chain any number of methods as you would with a normal table
 supplier = TableSupplier.build(t).where("Exchange=`Arca`")

 // The complete method marks the supplier is ready to use.  The next filter method (e.g. where) will cause the operations to be applied
 complete = TableSupplier.complete(supplier)

 // t2 is actually t.where("USym=`GOOG`").where("Exchange=`Arca`")
 t2 = complete.where("USym=`GOOG`")

 // Widgets that support one click will complete the supplier automatically
 import com.illumon.iris.console.utils.PivotWidgetBuilder
 pw = PivotWidgetBuilder.pivot(supplier, "USym", "Exchange", "Last").addValueColumns("Size", "ExchangeId").requireFilteredColumns("USym").avg().across().down().show()
 p = plot(“Test”,oneClick(supplier,“USym”),“Timestamp”,“ExchangeId”).show()
 import com.illumon.iris.console.utils.oneclick.LiveOneClickTable
 toc = LiveOneClickTable.oneClickTable(supplier, "USym")

 // Note that a method that returns a TableMap (e.g. byExternal) will end the chain and return a map that will perform the operations on each table
 supplier2 = TableSupplier.build(t).update("A=Exchange")
 import com.illumon.iris.console.utils.LiveTableMapSelector
 sel = new LiveTableMapSelector(supplier2.byExternal("USym", "Exchange"), true)
 
See Also:
  • Method Details

    • build

      @ScriptApi public static Table build(Table sourceTable)
      Use to start the construction of a Table Supplier.
      Parameters:
      sourceTable - the source table
      Returns:
      a Proxy that will supply a table
    • complete

      @ScriptApi public static Table complete(Table maybeSupplier)
      Sets a Table Supplier to be complete. This means that the supplier will generate a table the next time a filter operation is called. This method has no affect on Tables that are not suppliers.
      Parameters:
      maybeSupplier - a Table that may be a supplier
      Returns:
      a completed Supplier or unaltered Table
    • getAppliedEmptyTable

      @ScriptApi public static Table getAppliedEmptyTable(Table maybeSupplier)
      Gets an empty version of the supplied table with all current operations applied to it. If the Table is not a Table Supplier then this will return the table unaltered.
      Parameters:
      maybeSupplier - a Table that may be a supplier
      Returns:
      an applied empty table or an unaltered table
    • invoke

      public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
      Specified by:
      invoke in interface InvocationHandler
      Throws:
      Throwable