Packages

abstract class Molecule_1[Obj, I1] extends InputMolecule

Shared interfaces of input molecules awaiting 1 input.

// Input molecule awaiting 1 input for `name`
val ageOfPersons = m(Person.name_(?).age)
for {
  // Sample data set
  _ <- Person.name.age insert List(
    ("Joe", 42),
    ("Liz", 34)
  )

  // Resolve input molecule with name input in various ways
  _ <- ageOfPersons("Joe").get.map(_ ==> List(42))
  _ <- ageOfPersons("Joe", "Liz").get.map(_ ==> List(42, 34))
  _ <- ageOfPersons("Joe" or "Liz").get.map(_ ==> List(42, 34))
  _ <- ageOfPersons(Seq("Joe", "Liz")).get.map(_ ==> List(42, 34))
} yield ()
I1

Type of input matching attribute with ? marker

Source
Molecule_1.scala
Linear Supertypes
InputMolecule, Molecule, AnyRef, Any
Ordering
  1. Grouped
  2. Alphabetic
  3. By Inheritance
Inherited
  1. Molecule_1
  2. InputMolecule
  3. Molecule
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Molecule_1(model: Model, queryData: (Query, String, Option[Throwable]))

Abstract Value Members

  1. abstract def apply(args: Seq[I1])(implicit conn: Future[Conn]): Molecule

    Apply Seq of input values with OR semantics to resolve input molecule.

    Apply Seq of input values with OR semantics to resolve input molecule.

    Resolve input molecule by applying a Set of values that the attribute is expected to have (OR semantics).

    // Input molecule awaiting name input
    val ageOfPersons = Person.name_(?).age
    for {
      // Apply Seq of one or more input value(s)
      _ <- ageOfPersons(Seq("Joe", "Liz")).get.map(_ ==> List(42, 34))
    } yield ()

    Querying the resolved molecule will match all entities having name set to the value(s) applied.

    returns

    Resolved molecule that can be queried

    Note

    Only distinct values are matched.

  2. abstract def apply(or: Or[I1])(implicit conn: Future[Conn]): Molecule

    Apply OR expression of input values to resolve input molecule.

    Apply OR expression of input values to resolve input molecule.

    Input value type matches attribute having ? marker.

    // Input molecule awaiting name input
    val ageOfPersons = Person.name_(?).age
    for {
      // Apply OR expression of two or more input values
      _ <- ageOfPersons("Joe" or "Liz").get.map(_ ==> List(42, 34))
    } yield ()

    Querying the resolved molecule will match all entities having name set to the values applied.

    returns

    Resolved molecule that can be queried

    Note

    Only distinct values are matched.

  3. abstract def apply(arg: I1, arg2: I1, moreArgs: I1*)(implicit conn: Future[Conn]): Molecule

    Apply one or more input values to resolve input molecule.

    Apply one or more input values to resolve input molecule.

    // Input molecule awaiting name input
    val ageOfPersons = Person.name_(?).age
    for {
      // Apply two or more values as vararg
      _ <- ageOfPersons("Joe", "Liz").get.map(_ ==> List(42, 34))
    } yield ()

    Querying the resolved molecule will match all entities having name set to the value(s) applied.

    returns

    Resolved molecule that can be queried

    Note

    Only distinct values are matched.

  4. abstract def apply(arg: I1)(implicit conn: Future[Conn]): Molecule

    Apply one or more input values to resolve input molecule.

    Apply one or more input values to resolve input molecule.

    // Input molecule awaiting name input
    val ageOfPersons = Person.name_(?).age
    for {
      // Apply single value
      _ <- ageOfPersons("Joe").get.map(_ ==> List(42))
    } yield ()

    Querying the resolved molecule will match all entities having name set to the value(s) applied.

    returns

    Resolved molecule that can be queried

    Note

    Only distinct values are matched.

  5. abstract val isJsPlatform: Boolean
    Definition Classes
    InputMolecule

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. 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
  5. def _inputThrowable: Option[Throwable]
    Definition Classes
    InputMolecule → Molecule
  6. 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
  7. def _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 --> Datalog query

    Definition Classes
    InputMolecule → Molecule
  8. def addNilClause(clauses: Seq[Clause], e: Var, kw: KW, v0: Var): Seq[Clause]
    Attributes
    protected
    Definition Classes
    InputMolecule
  9. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  10. def bindValues(query: Query, inputs0: Seq[I1]): Either[Throwable, Query]
    Attributes
    protected
  11. def cardinality(nsFull: String, attr: String): Int
    Attributes
    protected
    Definition Classes
    InputMolecule
  12. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  13. def dataClause(e: String, kw: KW, enumPrefix: Option[String], arg: Any, i: Int): Seq[Clause]
    Attributes
    protected
    Definition Classes
    InputMolecule
  14. def deepNil(args: Seq[Any]): Boolean
    Attributes
    protected
    Definition Classes
    InputMolecule
  15. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  17. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  18. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  19. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  20. def isExpression(nsFull: String, attr: String): Boolean
    Attributes
    protected
    Definition Classes
    InputMolecule
  21. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  22. def isTacit(nsFull: String, attr: String): Boolean
    Attributes
    protected
    Definition Classes
    InputMolecule
  23. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  24. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  25. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  26. def resolveInput(query: Query, ph: Placeholder, inputs: Seq[Any], ruleName: String = "rule1", unifyRule: Boolean = false): Query
    Attributes
    protected
    Definition Classes
    InputMolecule
  27. def resolveOr[I1](or: Or[I1]): Either[Throwable, Seq[I1]]
    Attributes
    protected
    Definition Classes
    InputMolecule
  28. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  29. def toString(): String
    Definition Classes
    AnyRef → Any
  30. def valueClauses[TT](e: String, kw: KW, enumPrefix: Option[String], tpe: String, args: TT): Seq[Clause]
    Attributes
    protected
    Definition Classes
    InputMolecule
  31. def varsAndPrefixes(query: Query): Seq[(Var, String)]
    Attributes
    protected
    Definition Classes
    InputMolecule
  32. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  34. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from InputMolecule

Inherited from Molecule

Inherited from AnyRef

Inherited from Any

internal

Ungrouped