Packages

  • package root

    Documentation/API for the Molecule library - a meta DSL for the Datomic database.

    scalamolecule.org | Github | Forum

    Definition Classes
    root
  • package molecule

    Molecule library - a Scala meta-DSL for the Datomic database.

    Molecule library - a Scala meta-DSL for the Datomic database.

    Definition Classes
    root
  • package core
    Definition Classes
    molecule
  • package api
    Definition Classes
    core
  • package getAsyncTpl

    Asynchronous getter methods to retrieve tuples of data.

    Asynchronous getter methods to retrieve tuples of data.

    For convenience, all synchronous getter methods from the get package are here wrapped in Futures.

    The Datomic On-Prem(ises) server model provides a Peer that returns data synchronously. The Peer which lives in application memory caches data aggressively and for data fitting in memory, latency can be extremely low and queries return very fast. And even when access to disk is needed, clever branching is used. Memcached is also an option.

    The Datomic Cloud model data returns data asynchronously. If Datomic creates a Java API for the Cloud model, Molecule could relatively easy adapt to this model too. In the meanwhile, Future-wrapped methods in this package can be used.

    Molecule has 4 groups of asynchronous getters for tuples, each returning Futures of data in various formats:

    • GetAsyncTplArray - fastest retrieved typed data set. Can be traversed with a fast while loop
    • GetAsyncTplIterable - for lazily traversing row by row
    • GetAsyncTplList - default getter returning Lists of tuples. Convenient typed data, suitable for smaller data sets
    • GetAsyncRaw - fastest retrieved raw un-typed data from Datomic

    Getters in each of the 4 groups come with 5 time-dependent variations:

    • getAsync [current data]
    • getAsyncAsOf
    • getAsyncSince
    • getAsyncWith
    • getAsyncHistory

    Each time variation has various overloads taking different parameters (see each group for more info).

    Definition Classes
    api
    See also

    equivalent synchronous getters in the getTpl package.

  • GetAsyncTplArray
  • GetAsyncTplIterable
  • GetAsyncTplList
t

molecule.core.api.getAsyncTpl

GetAsyncTplList

trait GetAsyncTplList[Obj, Tpl] extends AnyRef

Default asynchronous data getter methods on molecules returning Future[List[Tpl]].

For expected smaller result sets it's convenient to return Lists of tuples of data. Considered as the default getter, no postfix has been added (getAsync instead of getAsyncList).

val futureList: Future[List[(String, Int)]] = Person.name.age.getAsync
for {
  list <- futureList
} yield {
  list === List(
    ("Ben", 42),
    ("Liz", 37)
  )
}

Each asynchronous getter in this package simply wraps the result of its equivalent synchronous getter (in the get package) in a Future. getAsyncAsOf thus wraps the result of getAsOf in a Future and so on.

Self Type
Molecule_0[Obj, Tpl] with GetAsyncTplArray[Obj, Tpl]
Source
GetAsyncTplList.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Grouped
  2. Alphabetic
  3. By Inheritance
Inherited
  1. GetAsyncTplList
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. def getAsync(n: Int)(implicit conn: Conn): Future[List[Tpl]]

    Get Future with List of n rows as tuples matching molecule.

    Get Future with List of n rows as tuples matching molecule.

    For more info and code examples see equivalent synchronous get method.

    Since retrieving a List is considered the default fetch format, the getter method is simply named get (and not getList).

    n

    Int Number of rows returned

    conn

    Implicit Conn value in scope

    returns

    Future[List[Tpl]] where Tpl is a tuple of types matching the attributes of the molecule

  10. def getAsync(implicit conn: Conn): Future[List[Tpl]]

    Get Future with List of all rows as tuples matching molecule.

    Get Future with List of all rows as tuples matching molecule.

    For more info and code examples see equivalent synchronous get method.

    Since retrieving a List is considered the default fetch format, the getter method is simply named get (and not getList).

    conn

    Implicit Conn value in scope

    returns

    Future[List[Tpl]] where Tpl is a tuple of types matching the attributes of the molecule

  11. def getAsyncAsOf(date: Date, n: Int)(implicit conn: Conn): Future[List[Tpl]]

    Get Future with List of n rows as tuples matching molecule as of date.

    Get Future with List of n rows as tuples matching molecule as of date.

    Get data at a human point in time (a java.util.Date).

    For more info and code examples see equivalent synchronous getAsOf method.

    date

    java.util.Date

    n

    Int Number of rows returned

    conn

    Implicit Conn value in scope

    returns

    Future[List[Tpl]] where Tpl is a tuple of types matching the attributes of the molecule

  12. def getAsyncAsOf(date: Date)(implicit conn: Conn): Future[List[Tpl]]

    Get Future with List of all rows as tuples matching molecule as of date.

    Get Future with List of all rows as tuples matching molecule as of date.

    Get data at a human point in time (a java.util.Date).

    For more info and code examples see equivalent synchronous getAsOf method.

    date

    java.util.Date

    conn

    Implicit Conn value in scope

    returns

    Future[List[Tpl]] where Tpl is a tuple of types matching the attributes of the molecule

  13. def getAsyncAsOf(tx: TxReport, n: Int)(implicit conn: Conn): Future[List[Tpl]]

    Get Future with List of n rows as tuples matching molecule as of tx.

    Get Future with List of n rows as tuples matching molecule as of tx.

    Datomic's internal asOf method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).

    Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations like get, update, retract etc.

    For more info and code examples see equivalent synchronous getAsOf method.

    tx

    TxReport (returned from all molecule transaction operations)

    n

    Int Number of rows returned

    conn

    Implicit Conn value in scope

    returns

    Future[List[Tpl]] where Tpl is a tuple of types matching the attributes of the molecule

  14. def getAsyncAsOf(tx: TxReport)(implicit conn: Conn): Future[List[Tpl]]

    Get Future with List of all rows as tuples matching molecule as of tx.

    Get Future with List of all rows as tuples matching molecule as of tx.

    Datomic's internal asOf method can take a transaction entity id as argument to retrieve a database value as of that transaction (including).

    Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations like get, update, retract etc.

    For more info and code examples see equivalent synchronous getAsOf method.

    tx

    TxReport (returned from all molecule transaction operations)

    conn

    Implicit Conn value in scope

    returns

    Future[List[Tpl]] where Tpl is a tuple of types matching the attributes of the molecule

  15. def getAsyncAsOf(t: Long, n: Int)(implicit conn: Conn): Future[List[Tpl]]

    Get Future with List of n rows as tuples matching molecule as of transaction time t.

    Get Future with List of n rows as tuples matching molecule as of transaction time t.

    Transaction time t is an auto-incremented transaction number assigned internally by Datomic.

    t can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction).

    For more info and code examples see equivalent synchronous getAsOf method.

    t

    Long Transaction time t

    n

    Int Number of rows returned

    conn

    Implicit Conn value in scope

    returns

    Future[List[Tpl]] where Tpl is a tuple of types matching the attributes of the molecule

  16. def getAsyncAsOf(t: Long)(implicit conn: Conn): Future[List[Tpl]]

    Get Future with List of all rows as tuples matching molecule as of transaction time t.

    Get Future with List of all rows as tuples matching molecule as of transaction time t.

    Transaction time t is an auto-incremented transaction number assigned internally by Datomic.

    t can for instance be retrieved in a getHistory call for an attribute and then be used to get data as of that point in time (including that transaction).

    For more info and code examples see equivalent synchronous getAsOf method.

    t

    Transaction time t

    conn

    Implicit Conn value in scope

    returns

    Future[List[Tpl]] where Tpl is a tuple of types matching the attributes of the molecule

  17. def getAsyncHistory(implicit conn: Conn): Future[List[Tpl]]

    Get Future with history of operations as List on an attribute in the db.

    Get Future with history of operations as List on an attribute in the db.

    For more info and code examples see equivalent synchronous getHistory method.

    conn

    Implicit Conn value in scope

    returns

    List[Tpl] where Tpl is tuple of data matching molecule

  18. def getAsyncSince(date: Date, n: Int)(implicit conn: Conn): Future[List[Tpl]]

    Get Future with List of n rows as tuples matching molecule since date.

    Get Future with List of n rows as tuples matching molecule since date.

    Get data added/retracted since a human point in time (a java.util.Date).

    For more info and code examples see equivalent synchronous getSince method.

    date

    java.util.Date

    n

    Int Number of rows returned

    conn

    Implicit Conn value in scope

    returns

    Future[List[Tpl]] where Tpl is a tuple of types matching the attributes of the molecule

  19. def getAsyncSince(date: Date)(implicit conn: Conn): Future[List[Tpl]]

    Get Future with List of all rows as tuples matching molecule since date.

    Get Future with List of all rows as tuples matching molecule since date.

    Get data added/retracted since a human point in time (a java.util.Date).

    For more info and code examples see equivalent synchronous getSince method.

    date

    java.util.Date

    conn

    Implicit Conn value in scope

    returns

    Future[List[Tpl]] where Tpl is a tuple of types matching the attributes of the molecule

  20. def getAsyncSince(tx: TxReport, n: Int)(implicit conn: Conn): Future[List[Tpl]]

    Get Future with List of n rows as tuples matching molecule since tx.

    Get Future with List of n rows as tuples matching molecule since tx.

    Datomic's internal since can take a transaction entity id as argument to retrieve a database value since that transaction (excluding the transaction itself).

    Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations like get, update, retract etc.

    For more info and code examples see equivalent synchronous getSince method.

    tx

    TxReport

    n

    Int Number of rows returned

    conn

    Implicit Conn value in scope

    returns

    Future[List[Tpl]] where Tpl is a tuple of types matching the attributes of the molecule

  21. def getAsyncSince(tx: TxReport)(implicit conn: Conn): Future[List[Tpl]]

    Get Future with List of all rows as tuples matching molecule since tx.

    Get Future with List of all rows as tuples matching molecule since tx.

    Datomic's internal since can take a transaction entity id as argument to retrieve a database value since that transaction (excluding the transaction itself).

    Instead of supplying the transaction entity id, in Molecule we supply a TxReport that contains the transaction entity id (which is used as argument to Datomic internally). This is more convenient when using Molecule since we get a TxReport from transaction operations like get, update, retract etc.

    For more info and code examples see equivalent synchronous getSince method.

    tx

    TxReport

    conn

    Implicit Conn value in scope

    returns

    Future[List[Tpl]] where Tpl is a tuple of types matching the attributes of the molecule

  22. def getAsyncSince(t: Long, n: Int)(implicit conn: Conn): Future[List[Tpl]]

    Get Future with List of n rows as tuples matching molecule since transaction time t.

    Get Future with List of n rows as tuples matching molecule since transaction time t.

    Transaction time t is an auto-incremented transaction number assigned internally by Datomic.

    For more info and code examples see equivalent synchronous getSince method.

    t

    Transaction time t

    n

    Int Number of rows returned

    conn

    Implicit Conn value in scope

    returns

    Future[List[Tpl]] where Tpl is a tuple of types matching the attributes of the molecule

  23. def getAsyncSince(t: Long)(implicit conn: Conn): Future[List[Tpl]]

    Get Future with List of all rows as tuples matching molecule since transaction time t.

    Get Future with List of all rows as tuples matching molecule since transaction time t.

    Transaction time t is an auto-incremented transaction number assigned internally by Datomic.

    For more info and code examples see equivalent synchronous getSince method.

    t

    Transaction time t

    conn

    Implicit Conn value in scope

    returns

    Future[List[Tpl]] where Tpl is a tuple of types matching the attributes of the molecule

  24. def getAsyncWith(txData: List[_], n: Int)(implicit conn: Conn): Future[List[Tpl]]

    Get Future with List of n rows as tuples matching molecule with applied raw transaction data.

    Get Future with List of n rows as tuples matching molecule with applied raw transaction data.

    Apply raw transaction data to in-memory "branch" of db without affecting db.

    For more info and code examples see equivalent synchronous getWith method.

    txData

    Raw transaction data as java.util.List[Object]

    n

    Int Number of rows returned

    conn

    Implicit Conn value in scope

    returns

    Future[List[Tpl]] where Tpl is a tuple of types matching the attributes of the molecule

  25. def getAsyncWith(txData: List[_])(implicit conn: Conn): Future[List[Tpl]]

    Get Future with List of all rows as tuples matching molecule with applied raw transaction data.

    Get Future with List of all rows as tuples matching molecule with applied raw transaction data.

    Apply raw transaction data to in-memory "branch" of db without affecting db.

    For more info and code examples see equivalent synchronous getWith method.

    txData

    Raw transaction data as java.util.List[Object]

    conn

    Implicit Conn value in scope

    returns

    Future[List[Tpl]] where Tpl is a tuple of types matching the attributes of the molecule

  26. def getAsyncWith(n: Int, txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn): Future[List[Tpl]]

    Get Future with List of n rows as tuples matching molecule with applied molecule transaction data.

    Get Future with List of n rows as tuples matching molecule with applied molecule transaction data.

    Apply one or more molecule transactions to in-memory "branch" of db without affecting db.

    For more info and code examples see equivalent synchronous getWith method.

    n

    Int Number of rows returned

    txMolecules

    Transaction statements from applied Molecules with test data

    conn

    Implicit Conn value in scope

    returns

    Future[List[Tpl]] where Tpl is a tuple of types matching the attributes of the molecule

    Note

    Note how the n parameter has to come before the txMolecules vararg.

  27. def getAsyncWith(txMolecules: Seq[Seq[Statement]]*)(implicit conn: Conn): Future[List[Tpl]]

    Get Future with List of all rows as tuples matching molecule with applied molecule transaction data.

    Get Future with List of all rows as tuples matching molecule with applied molecule transaction data.

    Apply one or more molecule transactions to in-memory "branch" of db without affecting db.

    For more info and code examples see equivalent synchronous getWith method. Multiple transactions can be applied to test more complex what-if scenarios!

    txMolecules

    Transaction statements from applied Molecules with test data

    conn

    Implicit Conn value in scope

    returns

    Future[List[Tpl]] where Tpl is a tuple of types matching the attributes of the molecule

  28. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  29. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  30. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  31. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  32. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  33. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  34. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  35. def toString(): String
    Definition Classes
    AnyRef → Any
  36. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  37. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  38. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from AnyRef

Inherited from Any

getAsync

getAsyncAsOf

getAsyncSince

getAsyncWith

getHistory

Ungrouped