abstract class Molecule_2_18[Obj, I1, I2, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R] extends Molecule_2[Obj, I1, I2]
- Grouped
- Alphabetic
- By Inheritance
- Molecule_2_18
- Molecule_2
- InputMolecule
- Molecule
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
Abstract Value Members
-
abstract
val
isJsPlatform: Boolean
- Definition Classes
- InputMolecule
-
abstract
def
outMoleculeSeqs(args: Either[Throwable, (Seq[I1], Seq[I2])])(implicit conn: Future[Conn]): Molecule_0_18[Obj, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R]
- Attributes
- protected
-
abstract
def
outMoleculeValues(args: Either[Throwable, Seq[(I1, I2)]])(implicit conn: Future[Conn]): Molecule_0_18[Obj, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R]
- Attributes
- protected
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
_datalog: String
Datalog query.
Datalog query.
Molecule transforms custom boilerplate DSL constructs to Datomic queries in 3 steps:
Custom DSL molecule --> Model --> Query --> Datalog query- Definition Classes
- InputMolecule → Molecule
-
def
_inputThrowable: Option[Throwable]
- Definition Classes
- InputMolecule → Molecule
-
def
_model: Model
Internal Model representation of a molecule.
Internal Model representation of a molecule.
Molecule transforms custom boilerplate DSL constructs to Datomic queries in 3 steps:
Custom DSL molecule --> Model --> Query --> Datalog query- Definition Classes
- InputMolecule → Molecule
-
def
_query: Query
Internal Query representation of molecule.
-
def
addNilClause(clauses: Seq[Clause], e: Var, kw: KW, v0: Var): Seq[Clause]
- Attributes
- protected
- Definition Classes
- InputMolecule
-
def
apply(in1: Seq[I1], in2: Seq[I2])(implicit conn: Future[Conn]): Molecule_0_18[Obj, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R]
Resolve input molecule by applying 2 Seq of values, one for each input attribute
Resolve input molecule by applying 2 Seq of values, one for each input attribute
// Input molecule awaiting 2 inputs for profession and age val profAge = m(Person.name.profession_(?).age_(?)) for { // Sample data set Person.name.profession.age insert List( ("Ann", "doctor", 37), ("Ben", "teacher", 37), ("Joe", "teacher", 32), ("Liz", "teacher", 28) ) // Apply 2 Seq of values, each matching one of the input attributes _ <- profAge(Seq("doctor"), Seq(37)).get.map(_ ==> List("Ann")) _ <- profAge(Seq("doctor", "teacher"), Seq(37, 32)).get.map(_.sorted ==> List("Ann", "Ben", "Joe")) // Number of arguments in each Seq don't have to match but can be asymmetric _ <- profAge(Seq("doctor", "teacher"), Seq(37)).get.map(_.sorted ==> List("Ann", "Ben")) _ <- profAge(Seq("teacher"), Seq(37, 32)).get.map(_.sorted ==> List("Ben", "Joe")) } yield ()
- in1
Seq of values matching first input attribute (professions: Seq[String])
- in2
Seq of values matching second input attribute (ages: Seq[Int])
- conn
Implicit Conn in scope
- returns
Resolved molecule that can be queried
- Definition Classes
- Molecule_2_18 → Molecule_2
-
def
apply(and: And2[I1, I2])(implicit conn: Future[Conn]): Molecule_0_18[Obj, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R]
Resolve input molecule by applying 2 expressions, one for each input attribute
Resolve input molecule by applying 2 expressions, one for each input attribute
// Input molecule awaiting 2 inputs for `profession` and `age` val profAge = m(Person.name.profession_(?).age_(?)) for { // Sample data set Person.name.profession.age insert List( ("Ann", "doctor", 37), ("Ben", "teacher", 37), ("Joe", "teacher", 32), ("Liz", "teacher", 28) ) // Apply 2 expressions, one for each input attribute // [profession-expression] and [age-expression] _ <- profAge("doctor" and 37).get.map(_ ==> List("Ann")) _ <- profAge(("doctor" or "teacher") and 37).get.map(_.sorted ==> List("Ann", "Ben")) _ <- profAge(("doctor" or "teacher") and (32 or 28)).get.map(_.sorted ==> List("Joe", "Liz")) } yield ()
- and
First input expr
andsecond input expr- conn
Implicit Conn in scope
- returns
Resolved molecule that can be queried
- Definition Classes
- Molecule_2_18 → Molecule_2
-
def
apply(ins: Seq[(I1, I2)])(implicit conn: Future[Conn]): Molecule_0_18[Obj, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R]
Resolve input molecule by applying Seq of value pairs
Resolve input molecule by applying Seq of value pairs
// Input molecule awaiting 2 inputs for `profession` and `age` val profAge = m(Person.name.profession_(?).age_(?)) for { // Sample data set Person.name.profession.age insert List( ("Ann", "doctor", 37), ("Ben", "teacher", 37), ("Joe", "teacher", 32), ("Liz", "teacher", 28) ) // Apply Seq of one or more value pairs, each matching both input attributes _ <- profAge(Seq(("doctor", 37))).get.map(_ ==> List("Ann")) _ <- profAge(Seq(("doctor", 37), ("teacher", 37))).get.map(_.sorted ==> List("Ann", "Ben")) } yield ()
- ins
Seq of value pairs, each matching both input attributes
- conn
Implicit Conn in scope
- returns
Resolved molecule that can be queried
- Definition Classes
- Molecule_2_18 → Molecule_2
-
def
apply(or: Or2[I1, I2])(implicit conn: Future[Conn]): Molecule_0_18[Obj, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R]
Resolve input molecule by applying one or more pairs of expressions, each matching both input attributes
Resolve input molecule by applying one or more pairs of expressions, each matching both input attributes
// Input molecule awaiting 2 inputs for `profession` and `age` val profAge = m(Person.name.profession_(?).age_(?)) for { // Sample data set Person.name.profession.age insert List( ("Ann", "doctor", 37), ("Ben", "teacher", 37), ("Joe", "teacher", 32), ("Liz", "teacher", 28) ) // Apply two or more pair expressions, each matching both input attributes // [profession/age-expression] or [profession/age-expression] or ... _ <- profAge("doctor" and 37).get.map(_.sorted ==> List("Ann")) _ <- profAge(("doctor" and 37) or ("teacher" and 32)).get.map(_.sorted ==> List("Ann", "Joe")) } yield ()
- or
Two or more pair-wise expressions separated by
or- conn
Implicit Conn in scope
- returns
Resolved molecule that can be queried
- Definition Classes
- Molecule_2_18 → Molecule_2
-
def
apply(tpl: (I1, I2), tpls: (I1, I2)*)(implicit conn: Future[Conn]): Molecule_0_18[Obj, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R]
Resolve input molecule by applying one or more value pairs
Resolve input molecule by applying one or more value pairs
// Input molecule awaiting 2 inputs for `profession` and `age` val profAge = m(Person.name.profession_(?).age_(?)) for { // Sample data set Person.name.profession.age insert List( ("Ann", "doctor", 37), ("Ben", "teacher", 37), ("Joe", "teacher", 32), ("Liz", "teacher", 28) ) // Apply one or more value pairs, each matching both input attributes _ <- profAge(("doctor", 37)).get.map(_ ==> List("Ann")) _ <- profAge(("doctor", 37), ("teacher", 37)).get.map(_.sorted ==> List("Ann", "Ben")) } yield ()
- tpl
First pair of values matching both input attributes
- tpls
Optional more pairs of values matching both input attributes
- conn
Implicit Conn in scope
- returns
Resolved molecule that can be queried
- Definition Classes
- Molecule_2_18 → Molecule_2
-
def
apply(i1: I1, i2: I2)(implicit conn: Future[Conn]): Molecule_0_18[Obj, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R]
Resolve input molecule by applying 2 input values as individual args
Resolve input molecule by applying 2 input values as individual args
// Input molecule awaiting 2 inputs for `profession` and `age` val profAge = m(Person.name.profession_(?).age_(?)) for { // Sample data set Person.name.profession.age insert List( ("Ann", "doctor", 37), ("Ben", "teacher", 37), ("Joe", "teacher", 32), ("Liz", "teacher", 28) ) // Apply 2 input values _ <- profAge("doctor", 37).get.map(_ ==> List("Ann")) } yield ()
- i1
Input value matching first input attribute (profession: String)
- i2
Input value matching second input attribute (age: Int)
- conn
Implicit Conn in scope
- returns
Resolved molecule that can be queried
- Definition Classes
- Molecule_2_18 → Molecule_2
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
bindSeqs(query: Query, inputRaw1: Seq[I1], inputRaw2: Seq[I2]): Either[Throwable, Query]
- Attributes
- protected
- Definition Classes
- Molecule_2
-
def
bindValues(query: Query, inputTuples: Seq[(I1, I2)]): Either[Throwable, Query]
- Attributes
- protected
- Definition Classes
- Molecule_2
-
def
cardinality(nsFull: String, attr: String): Int
- Attributes
- protected
- Definition Classes
- InputMolecule
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
dataClause(e: String, kw: KW, enumPrefix: Option[String], arg: Any, i: Int): Seq[Clause]
- Attributes
- protected
- Definition Classes
- InputMolecule
-
def
deepNil(args: Seq[Any]): Boolean
- Attributes
- protected
- Definition Classes
- InputMolecule
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
isExpression(nsFull: String, attr: String): Boolean
- Attributes
- protected
- Definition Classes
- InputMolecule
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isTacit(nsFull: String, attr: String): Boolean
- Attributes
- protected
- Definition Classes
- InputMolecule
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
resolveAnd2(and2: And2[I1, I2]): Either[Throwable, (Seq[I1], Seq[I2])]
- Attributes
- protected
- Definition Classes
- Molecule_2
-
def
resolveInput(query: Query, ph: Placeholder, inputs: Seq[Any], ruleName: String = "rule1", unifyRule: Boolean = false): Query
- Attributes
- protected
- Definition Classes
- InputMolecule
-
def
resolveOr[I1](or: Or[I1]): Either[Throwable, Seq[I1]]
- Attributes
- protected
- Definition Classes
- InputMolecule
-
def
resolveOr2(or: Or2[I1, I2]): Either[Throwable, Seq[(I1, I2)]]
- Attributes
- protected
- Definition Classes
- Molecule_2
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
valueClauses[TT](e: String, kw: KW, enumPrefix: Option[String], tpe: String, args: TT): Seq[Clause]
- Attributes
- protected
- Definition Classes
- InputMolecule
-
def
varsAndPrefixes(query: Query): Seq[(Var, String)]
- Attributes
- protected
- Definition Classes
- InputMolecule
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()

Documentation/API for the Molecule library - a meta DSL for the Datomic database.
scalamolecule.org | Github | Forum