Package com.illumon.iris.db.v2
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:
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:
- Serialized Form
-
Method Summary
Modifier and Type Method Description static Table
build(Table sourceTable)
Use to start the construction of a Table Supplier.static Table
complete(Table maybeSupplier)
Sets a Table Supplier to be complete.static Table
getAppliedEmptyTable(Table maybeSupplier)
Gets an empty version of the supplied table with all current operations applied to it.Object
invoke(Object proxy, Method method, Object[] args)
Methods inherited from class com.illumon.iris.db.util.liveness.LivenessArtifact
manageWithCurrentScope, unmanage, unmanage
Methods inherited from class com.illumon.iris.db.util.liveness.ReferenceCountedLivenessNode
destroy, dropReference, getWeakReference, initializeTransientFieldsForLiveness, onReferenceCountAtZero, tryManage, tryRetainReference
Methods inherited from class com.illumon.util.referencecounting.ReferenceCounted
append, decrementReferenceCount, incrementReferenceCount, resetReferenceCount, toString, tryDecrementReferenceCount, tryIncrementReferenceCount
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.illumon.iris.db.util.liveness.LivenessReferent
getReferentDescription, retainReference
-
Method Details
-
build
Use to start the construction of a Table Supplier.- Parameters:
sourceTable
- the source table- Returns:
- a Proxy that will supply a table
-
complete
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
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
- Specified by:
invoke
in interfaceInvocationHandler
- Throws:
Throwable
-