Packages

case class Conn_Client(client: Client, clientAsync: AsyncClient, dbName: String) extends Conn_Datomic with Helpers with BridgeDatomicFuture with Product with Serializable

Facade to Datomic connection for client api (peer-server/cloud/dev-local).

Source
Conn_Client.scala
Linear Supertypes
Serializable, Serializable, Product, Equals, BridgeDatomicFuture, Helpers, DateHandling, RegexMatching, Conn_Datomic, Conn, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Conn_Client
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. BridgeDatomicFuture
  7. Helpers
  8. DateHandling
  9. RegexMatching
  10. Conn_Datomic
  11. Conn
  12. AnyRef
  13. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Conn_Client(client: Client, clientAsync: AsyncClient, dbName: String)

Type Members

  1. implicit class Regex extends AnyRef
    Definition Classes
    RegexMatching

Value Members

  1. object mkDate
    Attributes
    protected
    Definition Classes
    Helpers
  2. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  3. final def ##(): Int
    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  5. var _adhocDb: Option[TempDb]
    Attributes
    protected
  6. def _index(model: Model): Collection[List[AnyRef]]
    Definition Classes
    Conn_ClientConn
  7. def _query(model: Model, query: Query, _db: Option[DatomicDb]): Collection[List[AnyRef]]
    Definition Classes
    Conn_ClientConn
  8. var _testDb: Option[Db]
    Attributes
    protected
  9. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  10. def cast(value: Any): String
    Attributes
    protected
    Definition Classes
    Helpers
  11. def clean(attr: String): String
    Definition Classes
    Helpers
  12. val client: Client
  13. val clientAsync: AsyncClient
  14. val clientConn: Connection
  15. val clientConnAsync: Future[Either[CognitectAnomaly, AsyncConnection]]
  16. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  17. def date2datomicStr(date: Date, zoneOffset: ZoneOffset = localZoneOffset): String
    Definition Classes
    DateHandling
  18. def date2str(date: Date, zoneOffset: ZoneOffset = localZoneOffset): String
    Definition Classes
    DateHandling
  19. def daylight(ms: Long): Int
    Definition Classes
    DateHandling
  20. def db: DatomicDb

    Get current test/live db.

    Get current test/live db. Test db has preference.

    Definition Classes
    Conn_ClientConn
  21. val dbName: String
  22. def entity(id: Any): DatomicEntity

    Convenience method to retrieve entity directly from connection.

    Convenience method to retrieve entity directly from connection.

    Definition Classes
    Conn_ClientConn
  23. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  24. def escStr(s: String): String
    Definition Classes
    Helpers
  25. def expandDateStr(dateStr: String): String
    Definition Classes
    DateHandling
  26. final def f(a: Any): Any
    Attributes
    protected
    Definition Classes
    Helpers
  27. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  28. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  29. def getT(tx: Long): Long

    Convenience retrieval of time t.

    Convenience retrieval of time t.

    Definition Classes
    Conn
  30. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  31. def liveDbUsed: Boolean

    Flag to indicate if live database is used

    Flag to indicate if live database is used

    Definition Classes
    Conn_ClientConn
  32. lazy val localOffset: String
    Definition Classes
    DateHandling
  33. lazy val localZoneOffset: ZoneOffset
    Definition Classes
    DateHandling
  34. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  35. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  36. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  37. final def o(opt: Option[Any]): String
    Attributes
    protected
    Definition Classes
    Helpers
  38. final def os(opt: Option[Set[_]]): String
    Attributes
    protected
    Definition Classes
    Helpers
  39. def q(db: DatomicDb, query: String, inputs: Seq[Any]): List[List[AnyRef]]

    Query Datomic directly with db value and optional Scala inputs.

    Query Datomic directly with db value and optional Scala inputs.

    // Sample data
    Ns.str.int.get === List(
      ("Liz", 37),
      ("Ben", 42),
    )
    
    // Start out easily with a Datomic query from inspect output
    Ns.str.int.inspectGet // shows datomic query...
    
    // Paste Datomic query into `q` call and use some db value
    conn.q(conn.db,
           """[:find  ?b ?c
             | :where [?a :Ns/str ?b]
             |        [?a :Ns/int ?c]]""".stripMargin) === List(
      List("Liz", 37),
      List("Ben", 42)
    )
    
    // Modify Datomic query to see result, for instance
    // by adding input to query and applying input value
    conn.q(conn.db,
           """[:find  ?b ?c
             | :in    $ ?c
             | :where [?a :Ns/str ?b]
             |        [?a :Ns/int ?c]]""".stripMargin,
           Seq(42) // input values in list
     ) === List(
      List("Ben", 42)
    )
    db

    Any Datomic Database value (could be asOf(x) etc)

    query

    Datomic query string

    inputs

    Seq of optional input(s) to query

    returns

    List[List[AnyRef]]

    Definition Classes
    Conn_DatomicConn
  40. def q(query: String, inputs: Any*): List[List[AnyRef]]

    Query Datomic directly with optional Scala inputs.

    Query Datomic directly with optional Scala inputs.

    // Sample data
    Ns.str.int.get === List(
      ("Liz", 37),
      ("Ben", 42),
    )
    
    // Start out easily with a Datomic query from inspect output
    Ns.str.int.inspectGet // shows datomic query...
    
    // Paste Datomic query into `q` call
    conn.q("""[:find  ?b ?c
             | :where [?a :Ns/str ?b]
             |        [?a :Ns/int ?c]]""".stripMargin) === List(
      List("Liz", 37),
      List("Ben", 42)
    )
    
    // Modify Datomic query to see result, for instance
    // by adding input to query and applying input value
    conn.q("""[:find  ?b ?c
             | :in    $ ?c
             | :where [?a :Ns/str ?b]
             |        [?a :Ns/int ?c]]""".stripMargin, 42) === List(
      List("Ben", 42)
    )
    query

    Datomic query string

    inputs

    Optional input(s) to query

    returns

    List[List[AnyRef]]

    Definition Classes
    Conn
  41. def qRaw(db: DatomicDb, query: String, inputs0: Seq[Any]): Collection[List[AnyRef]]

    Query Datomic directly with db value and optional Scala inputs and get raw Java result.

    Query Datomic directly with db value and optional Scala inputs and get raw Java result.

    // Sample data
    Ns.str.int.get === List(
      ("Liz", 37),
      ("Ben", 42),
    )
    
    // Get some Datomic query from inspect output
    Ns.str.int.inspectGet // shows datomic query...
    
    // Paste Datomic query into `q` call and use some db value
    conn.q(conn.db,
           """[:find  ?b ?c
             | :where [?a :Ns/str ?b]
             |        [?a :Ns/int ?c]]""".stripMargin)
        .toString === """[["Liz" 37], ["Ben" 42]]"""
    
    // Modify Datomic query to see result, for instance
    // by adding input to query and applying input value
    conn.q(conn.db,
           """[:find  ?b ?c
             | :in    $ ?c
             | :where [?a :Ns/str ?b]
             |        [?a :Ns/int ?c]]""".stripMargin,
           Seq(42) // input values in list
     ).toString === """[["Ben" 42]]"""
    db

    Any Datomic Database value (could be asOf(x) etc)

    query

    Datomic query string

    inputs0

    Seq of optional input(s) to query

    returns

    java.util.Collection[java.util.List[AnyRef]]

    Definition Classes
    Conn_ClientConn
  42. def qRaw(query: String, inputs: Any*): Collection[List[AnyRef]]

    Query Datomic directly with optional Scala inputs and get raw Java result.

    Query Datomic directly with optional Scala inputs and get raw Java result.

    // Sample data
    Ns.str.int.get === List(
      ("Liz", 37),
      ("Ben", 42),
    )
    
    // Start out easily with a Datomic query from inspect output
    Ns.str.int.inspectGet // shows datomic query...
    
    // Paste Datomic query into `q` call
    conn.q("""[:find  ?b ?c
             | :where [?a :Ns/str ?b]
             |        [?a :Ns/int ?c]]""".stripMargin)
        .toString === """[["Liz" 37], ["Ben" 42]]"""
    
    // Modify Datomic query to see result, for instance
    // by adding input to query and applying input value
    conn.q("""[:find  ?b ?c
             | :in    $ ?c
             | :where [?a :Ns/str ?b]
             |        [?a :Ns/int ?c]]""".stripMargin, 42).toString === """[["Ben" 42]]"""
    query

    Datomic query string

    inputs

    Optional input(s) to query

    returns

    java.util.Collection[java.util.List[AnyRef]]

    Definition Classes
    Conn
  43. def query(model: Model, query: Query): Collection[List[AnyRef]]

    Query Datomic with Model and Query to get raw Java data.

    Query Datomic with Model and Query to get raw Java data.

    Will transparently relegate query depending on Model to:

    - Datalog query execution - Datoms API accessing index - Log API accessing log

    Return type (tuple matching the molecule) is the same for all 3 APIs so that application code can query and access data of all molecules the same way.

    model

    Model instance

    query

    Query instance

    returns

    java.util.Collection[java.util.List[AnyRef]]

    Definition Classes
    Conn_ClientConn
  44. final def seq[T](values: Seq[T]): String
    Attributes
    protected
    Definition Classes
    Helpers
  45. def str2date(s: String, zoneOffset: ZoneOffset = localZoneOffset): Date
    Definition Classes
    DateHandling
  46. def str2zdt(s: String, zoneOffset: ZoneOffset = localZoneOffset): ZonedDateTime
    Definition Classes
    DateHandling
  47. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  48. def testDb(db: DatomicDb): Unit

    Manually apply a database to use.

    Manually apply a database to use.

    Definition Classes
    Conn_ClientConn
  49. def testDbAsOf(d: Date): Unit

    Use test database as of date.

    Use test database as of date.

    d

    Date

    Definition Classes
    Conn_ClientConn
  50. def testDbAsOf(tOrTx: Long): Unit

    Use test database as of time t / tx id.

    Use test database as of time t / tx id.

    Definition Classes
    Conn_ClientConn
  51. def testDbAsOf(txR: TxReport): Unit

    Use test database as of transaction report.

    Use test database as of transaction report.

    txR

    Transaction report

    Definition Classes
    Conn_ClientConn
  52. def testDbAsOfNow: Unit

    Use test database as of now.

    Use test database as of now.

    Definition Classes
    Conn_ClientConn
  53. def testDbSince(d: Date): Unit

    Use test database since date.

    Use test database since date.

    d

    Date

    Definition Classes
    Conn_ClientConn
  54. def testDbSince(tOrTx: Long): Unit

    Use test database since time t.

    Use test database since time t.

    Definition Classes
    Conn_ClientConn
  55. def testDbSince(txR: TxReport): Unit

    Use test database since transaction report.

    Use test database since transaction report.

    txR

    Transaction report

    Definition Classes
    Conn_ClientConn
  56. def testDbWith(txDataJava: List[List[AnyRef]]): Unit

    Use test database with temporary raw Java transaction data.

    Use test database with temporary raw Java transaction data.

    Definition Classes
    Conn_ClientConn
  57. def testDbWith(txData: Seq[Seq[Statement]]*): Unit

    Use test database with temporary transaction data.

    Use test database with temporary transaction data.

    Transaction data can be supplied from any molecule:

    val benId = Person.name("Ben").save.eid
    
    // Use temporary db with given transaction data applied
    conn.testDbWith(
      Person.name("liz").getSaveTx
    )
    
    // Query using temporary database including Liz
    Person.name.get === List("Ben", "Liz")
    
    // Multiple transactions can be applied
    conn.testDbWith(
      Person.name("Joe").getSaveTx,
      benId.getRetractTx
    )
    Person.name.get === List("Liz", "Joe")
    txData

    List of List of transaction Statement's

    Definition Classes
    Conn_ClientConn
  58. final def time(n: Int, prev: Int = 0): Unit
    Attributes
    protected
    Definition Classes
    Helpers
  59. def transact(javaStmts: List[_], scalaStmts: Seq[Seq[Statement]] = Nil): TxReport

    Transact edn files or other raw transaction data.

    Transact edn files or other raw transaction data.

    val data_rdr2 = new FileReader("examples/resources/seattle/seattle-data1a.dtm")
    val rawTxStmts = Util.readAll(data_rdr2).get(0).asInstanceOf[java.util.List[Object]]
    
    // transact
    val result: TxReport = conn.transact(rawTxStmts)
    javaStmts

    Raw transaction data, typically from edn file.

    returns

    TxReport

    Definition Classes
    Conn_ClientConn
  60. def transact(scalaStmts: Seq[Seq[Statement]]): TxReport

    Transact Seq of Seqs of molecule.core.ast.transactionModel.Statements

    returns

    TxReport

    Definition Classes
    Conn_ClientConn
  61. def transactAsync(javaStmts: List[_], scalaStmts: Seq[Seq[Statement]] = Nil)(implicit ec: ExecutionContext): Future[TxReport]

    Asynchronously transact edn files or other raw transaction data.

    Asynchronously transact edn files or other raw transaction data.

    val data_rdr2 = new FileReader("examples/resources/seattle/seattle-data1a.dtm")
    val rawTxStmts = Util.readAll(data_rdr2).get(0).asInstanceOf[java.util.List[Object]]
    
    // transact
    val result: Future[TxReport] = conn.transactAsync(rawTxStmts)
    javaStmts

    Raw transaction data, typically from edn file.

    returns

    Future with TxReport with result of transaction

    Definition Classes
    Conn_ClientConn
  62. def transactAsync(scalaStmts: Seq[Seq[Statement]])(implicit ec: ExecutionContext): Future[TxReport]

    Asynchronously transact Seq of Seqs of molecule.core.ast.transactionModel.Statements

    Asynchronously transact Seq of Seqs of molecule.core.ast.transactionModel.Statements

    returns

    TxReport

    Definition Classes
    Conn_ClientConn
  63. def truncateDateStr(dateStr: String): String
    Definition Classes
    DateHandling
  64. final def tupleToSeq(arg: Any): Seq[Any]
    Attributes
    protected
    Definition Classes
    Helpers
  65. def unescStr(s: String): String
    Definition Classes
    Helpers
  66. def useLiveDb: Unit

    Get out of test mode and back to live db.

    Get out of test mode and back to live db.

    Definition Classes
    Conn_ClientConn
  67. def usingTempDb(tempDb: TempDb): Conn
    Definition Classes
    Conn_ClientConn
  68. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  69. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  70. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  71. var withDbInUse: Boolean
    Attributes
    protected
  72. lazy val zone: ZoneId
    Definition Classes
    DateHandling

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from BridgeDatomicFuture

Inherited from Helpers

Inherited from DateHandling

Inherited from RegexMatching

Inherited from Conn_Datomic

Inherited from Conn

Inherited from AnyRef

Inherited from Any

Ungrouped