Packages

c

molecule.input.InputMolecule_2

InputMolecule_2_12

abstract class InputMolecule_2_12[I1, I2, A, B, C, D, E, F, G, H, I, J, K, L] extends InputMolecule_2[I1, I2]

Source
InputMolecule_2.scala
Linear Supertypes
Type Hierarchy
Ordering
  1. Grouped
  2. Alphabetic
  3. By Inheritance
Inherited
  1. InputMolecule_2_12
  2. InputMolecule_2
  3. InputMolecule
  4. MoleculeBase
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new InputMolecule_2_12(_model: Model, queryData: (Query, Option[Query], Query, Option[Query]))

Abstract Value Members

  1. abstract def apply(in1: Seq[I1], in2: Seq[I2])(implicit conn: Conn): Molecule12[A, B, C, D, E, F, G, H, I, J, K, L]

    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

    // Sample data set
    Person.name.profession.age insert List(
      ("Ann", "doctor", 37),
      ("Ben", "teacher", 37),
      ("Joe", "teacher", 32),
      ("Liz", "teacher", 28)
    )
    
    // Input molecule awaiting 2 inputs for profession and age
    val profAge = m(Person.name.profession_(?).age_(?))
    
    // Apply 2 Seq of values, each matching one of the input attributes
    profAge(Seq("doctor"), Seq(37)).get === List("Ann")
    profAge(Seq("doctor", "teacher"), Seq(37, 32)).get.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.sorted === List("Ann", "Ben")
    profAge(Seq("teacher"), Seq(37, 32)).get.sorted === List("Ben", "Joe")
    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
    InputMolecule_2_12InputMolecule_2
  2. abstract def apply(ins: Seq[(I1, I2)])(implicit conn: Conn): Molecule12[A, B, C, D, E, F, G, H, I, J, K, L]

    Resolve input molecule by applying Seq of value pairs

    Resolve input molecule by applying Seq of value pairs

    // Sample data set
    Person.name.profession.age insert List(
      ("Ann", "doctor", 37),
      ("Ben", "teacher", 37),
      ("Joe", "teacher", 32),
      ("Liz", "teacher", 28)
    )
    
    // Input molecule awaiting 2 inputs for `profession` and `age`
    val profAge = m(Person.name.profession_(?).age_(?))
    
    // Apply Seq of one or more value pairs, each matching both input attributes
    profAge(Seq(("doctor", 37))).get === List("Ann")
    profAge(Seq(("doctor", 37), ("teacher", 37))).get.sorted === List("Ann", "Ben")
    ins

    Seq of value pairs, each matching both input attributes

    conn

    Implicit Conn in scope

    returns

    Resolved molecule that can be queried

    Definition Classes
    InputMolecule_2_12InputMolecule_2

Concrete 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. val _model: Model

    Internal Model representation of molecule.

    Internal Model representation of molecule.

    Molecule transforms custom boilerplate DSL constructs to Datomic queries in 3 steps:

    Custom DSL molecule --> Model --> Query --> Datomic query string

    Definition Classes
    InputMolecule_2_12MoleculeBase
  5. val _nestedQuery: Option[Query]

    Internal optional Query representation of nested molecule with added entity search for each level.

    Internal optional Query representation of nested molecule with added entity search for each level.

    Molecule transforms custom boilerplate DSL constructs to Datomic queries in 3 steps:

    Custom DSL molecule --> Model --> Query --> Datomic query string

    Definition Classes
    InputMolecule_2_12MoleculeBase
  6. val _query: Query

    Internal Query representation of molecule.

    Internal Query representation of molecule.

    Molecule transforms custom boilerplate DSL constructs to Datomic queries in 3 steps:

    Custom DSL molecule --> Model --> Query --> Datomic query string

    Definition Classes
    InputMolecule_2_12MoleculeBase
  7. val _rawNestedQuery: Option[Query]

    Internal un-optimized optional Query representation of nested molecule with added entity search for each level.

    Internal un-optimized optional Query representation of nested molecule with added entity search for each level.

    Molecule transforms custom boilerplate DSL constructs to Datomic queries in 3 steps:

    Custom DSL molecule --> Model --> Query --> Datomic query string

    Definition Classes
    InputMolecule_2_12MoleculeBase
  8. val _rawQuery: Query

    Internal un-optimized Query representation molecule.

    Internal un-optimized Query representation molecule.

    Molecule transforms custom boilerplate DSL constructs to Datomic queries in 3 steps:

    Custom DSL molecule --> Model --> Query --> Datomic query string

    Definition Classes
    InputMolecule_2_12MoleculeBase
  9. def addNilClause(clauses: Seq[Clause], e: Var, kw: KW, v0: Var): Seq[Clause]
    Attributes
    protected
    Definition Classes
    InputMolecule
  10. def apply(and: And2[I1, I2])(implicit conn: Conn): Molecule12[A, B, C, D, E, F, G, H, I, J, K, L]

    Resolve input molecule by applying 2 expressions, one for each input attribute

    Resolve input molecule by applying 2 expressions, one for each input attribute

    // Sample data set
    Person.name.profession.age insert List(
      ("Ann", "doctor", 37),
      ("Ben", "teacher", 37),
      ("Joe", "teacher", 32),
      ("Liz", "teacher", 28)
    )
    
    // Input molecule awaiting 2 inputs for `profession` and `age`
    val profAge = m(Person.name.profession_(?).age_(?))
    
    // Apply 2 expressions, one for each input attribute
    // [profession-expression] and [age-expression]
    profAge("doctor" and 37).get === List("Ann")
    profAge(("doctor" or "teacher") and 37).get.sorted === List("Ann", "Ben")
    profAge(("doctor" or "teacher") and (32 or 28)).get.sorted === List("Joe", "Liz")
    and

    First input expr and second input expr

    conn

    Implicit Conn in scope

    returns

    Resolved molecule that can be queried

    Definition Classes
    InputMolecule_2_12InputMolecule_2
  11. def apply(tpl: (I1, I2), tpls: (I1, I2)*)(implicit conn: Conn): Molecule12[A, B, C, D, E, F, G, H, I, J, K, L]

    Resolve input molecule by applying one or more value pairs

    Resolve input molecule by applying one or more value pairs

    // Sample data set
    Person.name.profession.age insert List(
      ("Ann", "doctor", 37),
      ("Ben", "teacher", 37),
      ("Joe", "teacher", 32),
      ("Liz", "teacher", 28)
    )
    
    // Input molecule awaiting 2 inputs for `profession` and `age`
    val profAge = m(Person.name.profession_(?).age_(?))
    
    // Apply one or more value pairs, each matching both input attributes
    profAge(("doctor", 37)).get === List("Ann")
    profAge(("doctor", 37), ("teacher", 37)).get.sorted === List("Ann", "Ben")
    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
    InputMolecule_2_12InputMolecule_2
  12. def apply(or: Or2[I1, I2])(implicit conn: Conn): Molecule12[A, B, C, D, E, F, G, H, I, J, K, L]

    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

    // Sample data set
    Person.name.profession.age insert List(
      ("Ann", "doctor", 37),
      ("Ben", "teacher", 37),
      ("Joe", "teacher", 32),
      ("Liz", "teacher", 28)
    )
    
    // Input molecule awaiting 2 inputs for `profession` and `age`
    val profAge = m(Person.name.profession_(?).age_(?))
    
    // Apply two or more pair expressions, each matching both input attributes
    // [profession/age-expression] or [profession/age-expression] or ...
    profAge("doctor" and 37).get.sorted === List("Ann")
    profAge(("doctor" and 37) or ("teacher" and 32)).get.sorted === List("Ann", "Joe")
    or

    Two or more pair-wise expressions separated by or

    conn

    Implicit Conn in scope

    returns

    Resolved molecule that can be queried

    Definition Classes
    InputMolecule_2_12InputMolecule_2
  13. def apply(i1: I1, i2: I2)(implicit conn: Conn): Molecule12[A, B, C, D, E, F, G, H, I, J, K, L]

    Resolve input molecule by applying 2 input values as individual args

    Resolve input molecule by applying 2 input values as individual args

    // Sample data set
    Person.name.profession.age insert List(
      ("Ann", "doctor", 37),
      ("Ben", "teacher", 37),
      ("Joe", "teacher", 32),
      ("Liz", "teacher", 28)
    )
    
    // Input molecule awaiting 2 inputs for `profession` and `age`
    val profAge = m(Person.name.profession_(?).age_(?))
    
    // Apply 2 input values
    profAge("doctor", 37).get === List("Ann")
    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
    InputMolecule_2_12InputMolecule_2
  14. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  15. def bindSeqs(query: Query, inputRaw1: Seq[I1], inputRaw2: Seq[I2]): Query
    Attributes
    protected
    Definition Classes
    InputMolecule_2
  16. def bindValues(query: Query, inputTuples: Seq[(I1, I2)]): Query
    Attributes
    protected
    Definition Classes
    InputMolecule_2
  17. def cardinality(nsFull: String, attr: String): Int
    Attributes
    protected
    Definition Classes
    InputMolecule
  18. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  19. def dataClause(e: String, kw: KW, enumPrefix: Option[String], arg: Any, i: Int): Seq[Clause]
    Attributes
    protected
    Definition Classes
    InputMolecule
  20. def deepNil(args: Seq[Any]): Boolean
    Attributes
    protected
    Definition Classes
    InputMolecule
  21. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  22. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  23. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  24. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  25. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  26. def isExpression(nsFull: String, attr: String): Boolean
    Attributes
    protected
    Definition Classes
    InputMolecule
  27. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  28. def isTacit(nsFull: String, attr: String): Boolean
    Attributes
    protected
    Definition Classes
    InputMolecule
  29. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  30. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  31. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  32. def pre[T](enumPrefix: Option[String], arg: T): Any
    Attributes
    protected
    Definition Classes
    InputMolecule
  33. def resolveAnd2(and2: And2[I1, I2]): (Seq[I1], Seq[I2])
    Attributes
    protected
    Definition Classes
    InputMolecule_2
  34. def resolveInput[T](query: Query, ph: Placeholder, inputs: Seq[T], ruleName: String = "rule1", unifyRule: Boolean = false): Query
    Attributes
    protected
    Definition Classes
    InputMolecule
  35. def resolveOr[I1](or: Or[I1]): Seq[I1]
    Attributes
    protected
    Definition Classes
    InputMolecule
  36. def resolveOr2(or: Or2[I1, I2]): Seq[(I1, I2)]
    Attributes
    protected
    Definition Classes
    InputMolecule_2
  37. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  38. def toString(): String
    Definition Classes
    AnyRef → Any
  39. def valueClauses[TT](e: String, kw: KW, enumPrefix: Option[String], args: TT): Seq[Clause]
    Attributes
    protected
    Definition Classes
    InputMolecule
  40. def varsAndPrefixes(query: Query): Seq[(Var, String)]
    Attributes
    protected
    Definition Classes
    InputMolecule
  41. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  42. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  43. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from InputMolecule_2[I1, I2]

Inherited from InputMolecule

Inherited from MoleculeBase

Inherited from AnyRef

Inherited from Any

internal

Ungrouped