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 getAsyncObj

    Asynchronous getter methods to retrieve data as objects.

    Asynchronous getter methods to retrieve data as objects.

    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 objects, each returning Futures of data in various formats:

    • GetAsyncObjArray - fastest retrieved typed data set. Can be traversed with a fast while loop
    • GetAsyncObjIterable - for lazily traversing row by row
    • GetAsyncObjList - default getter returning Lists of objects. 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.

  • GetAsyncObjArray
  • GetAsyncObjIterable
  • GetAsyncObjList
t

molecule.core.api.getAsyncObj

GetAsyncObjList

trait GetAsyncObjList[Obj, Tpl] extends AnyRef

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

For expected smaller result sets it's convenient to return Lists of objects of data.

for {
  persons <- Person.name.age.getAsyncObjList
} yield {
  persons.map(p => s"${p.name} is ${p.age} years old")) === List(
    "Ben is 42 years old",
    "Liz is 37 years old"
  )
}

Each asynchronous getter in this package simply wraps the result of its equivalent synchronous getter in a Future. getAsyncObjListAsOf thus wraps the result of getObjListAsOf in a Future and so on.

Self Type
Molecule_0[Obj, Tpl] with GetAsyncObjArray[Obj, Tpl]
Source
GetAsyncObjList.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Grouped
  2. Alphabetic
  3. By Inheritance
Inherited
  1. GetAsyncObjList
  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 getAsyncObjList(n: Int)(implicit conn: Conn): Future[List[Obj]]

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

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

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

    n

    Int Number of rows returned

    conn

    Implicit Conn value in scope

    returns

    Future[List[Obj]] where Obj is an object type having property types matching the attributes of the molecule

  10. def getAsyncObjList(implicit conn: Conn): Future[List[Obj]]

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

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

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

    conn

    Implicit Conn value in scope

    returns

    Future[List[Obj]] where Obj is an object type having property types matching the attributes of the molecule

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

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

    Get Future with List of n rows as objects 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[Obj]] where Obj is an object type having property types matching the attributes of the molecule

  12. def getAsyncObjListAsOf(date: Date)(implicit conn: Conn): Future[List[Obj]]

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

    Get Future with List of all rows as objects 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[Obj]] where Obj is an object type having property types matching the attributes of the molecule

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

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

    Get Future with List of n rows as objects 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[Obj]] where Obj is an object type having property types matching the attributes of the molecule

  14. def getAsyncObjListAsOf(tx: TxReport)(implicit conn: Conn): Future[List[Obj]]

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

    Get Future with List of all rows as objects 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[Obj]] where Obj is an object type having property types matching the attributes of the molecule

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

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

    Get Future with List of n rows as objects 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[Obj]] where Obj is an object type having property types matching the attributes of the molecule

  16. def getAsyncObjListAsOf(t: Long)(implicit conn: Conn): Future[List[Obj]]

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

    Get Future with List of all rows as objects 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[Obj]] where Obj is an object type having property types matching the attributes of the molecule

  17. def getAsyncObjListHistory(implicit conn: Conn): Future[List[Obj]]

    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

    Future[List[Obj]] where Obj is an object type having property types matching the attributes of the molecule

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

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

    Get Future with List of n rows as objects 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[Obj]] where Obj is an object type having property types matching the attributes of the molecule

  19. def getAsyncObjListSince(date: Date)(implicit conn: Conn): Future[List[Obj]]

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

    Get Future with List of all rows as objects 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[Obj]] where Obj is an object type having property types matching the attributes of the molecule

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

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

    Get Future with List of n rows as objects 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[Obj]] where Obj is an object type having property types matching the attributes of the molecule

  21. def getAsyncObjListSince(tx: TxReport)(implicit conn: Conn): Future[List[Obj]]

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

    Get Future with List of all rows as objects 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[Obj]] where Obj is an object type having property types matching the attributes of the molecule

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

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

    Get Future with List of n rows as objects 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[Obj]] where Obj is an object type having property types matching the attributes of the molecule

  23. def getAsyncObjListSince(t: Long)(implicit conn: Conn): Future[List[Obj]]

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

    Get Future with List of all rows as objects 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[Obj]] where Obj is an object type having property types matching the attributes of the molecule

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

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

    Get Future with List of n rows as objects 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[Obj]] where Obj is an object type having property types matching the attributes of the molecule

  25. def getAsyncObjListWith(txData: List[_])(implicit conn: Conn): Future[List[Obj]]

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

    Get Future with List of all rows as objects 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[Obj]] where Obj is an object type having property types matching the attributes of the molecule

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

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

    Get Future with List of n rows as objects 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[Obj]] where Obj is an object type having property types matching the attributes of the molecule

    Note

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

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

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

    Get Future with List of all rows as objects 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[Obj]] where Obj is an object type having property 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