trait AttrExpressions extends AnyRef
Attribute expression markers and methods.
Person.age(42) // equality Person.name.contains("John") // fulltext search Person.age.!=(42) // negation (or `not`) Person.age.<(42) // comparison (< > <= >=) Person.age().get // match non-asserted datoms (null) in query Person(benId).age().update // apply empty value to retract value(s) in updates Person.hobbies.assert("golf") // assert card-many value(s) Person.hobbies.replace("golf", "diving") // replace card-many attribute value(s) Person.hobbies.retract("golf") // retract card-many attribute value(s) Person.tags.k("en") // match values of map attributes by key Person.name(?) // initiate input molecules awaiting input at runtime Person.name(unify) // Unify attributes in self-joins
- Source
- AttrExpressions.scala
- See also
Manual: expressions, aggregates, input molecules, self-join | Tests: expressions, input1, input2, input3
- Grouped
- Alphabetic
- By Inheritance
- AttrExpressions
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- trait ? extends AnyRef
Turn molecule into input molecule awaiting input.
Turn molecule into input molecule awaiting input.
Apply input marker?
to attribute to turn molecule into an 'input molecule'.
At runtime the input molecule expects input for the attribute in place of the?
marker.// Input molecule created at compile time. val ageOfPersons = m(Person.name_(?).age) // awaiting name of type String // At runtime, "Ben" is applied as input replacing the `?` placeholder and we can get the age. ageOfPersons("Ben").get === List(42)
- Note
Data can only be retrieved from input molecules once they have been resolved with input.
Input molecule queries are cached and optimized by Datomic.
- type ?? = AttrExpressions.?
- trait AttrExpr[Ns, T] extends AnyRef
Expression methods common for all attributes.
- trait FulltextExpr[Ns, In] extends AnyRef
Expression methods of String attributes with fulltext search.
- trait ManyAttrExpr[Ns, Add, OldNew, Rem] extends AnyRef
Value update methods for card-many attributes.
- trait ManyExpr[Ns, In, T] extends ValueAttrExpr[Ns, In, T] with ManyAttrExpr[Ns, T, (T, T), T]
Expression methods of card-many attributes.
- trait MapAttrExpr[Ns, In, T] extends ValueAttrExpr[Ns, In, T] with ManyAttrExpr[Ns, (String, T), (String, T), String]
Expression methods of map attributes.
- trait OneExpr[Ns, In, T] extends ValueAttrExpr[Ns, In, T]
Expression methods of card-one attributes.
- trait OptionalExpr[Ns, T] extends AnyRef
Expression methods of optional attributes.
- trait ValueAttrExpr[Ns, In, T] extends AttrExpr[Ns, T]
Expression methods of value attributes.
- trait unify extends AnyRef
Unify attribute value in self-join.
Unify attribute value in self-join.
Applyunify
marker to attribute to unify its value with previous values of the same attribute in the molecule in a self-join.m(Person.age.name.Beverages * Beverage.name.rating) insert List( (23, "Joe", List(("Coffee", 3), ("Cola", 2), ("Pepsi", 3))), (25, "Ben", List(("Coffee", 2), ("Tea", 3))), (23, "Liz", List(("Coffee", 1), ("Tea", 3), ("Pepsi", 1)))) // What beverages do pairs of 23- AND 25-year-olds like in common? // Drink name is unified - Joe and Ben both drink coffee, etc.. Person.age_(23).name.Beverages.name._Ns.Self .age_(25).name.Beverages.name_(unify).get.sorted === List( ("Joe", "Coffee", "Ben"), ("Liz", "Coffee", "Ben"), ("Liz", "Tea", "Ben") )
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
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- 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()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
Inherited from AnyRef
Inherited from Any
Attribute markers
Markers applied to attributes that change the semantics of the attribute/molecule.
Documentation/API for the Molecule library - a meta DSL for the Datomic database.
Manual | scalamolecule.org | Github | Forum