trait AttrExpr[Ns, T] extends AnyRef
Expression methods common for all attributes.
- Source
- AttrExpressions.scala
- Alphabetic
- By Inheritance
- AttrExpr
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
def
!=(values: Seq[T]): Ns with Attr
Match attribute values different from applied Iterable of values.
Match attribute values different from applied Iterable of values.
Person.name.get === List("Ben", "Liz", "Joe") // Negate Iterable of values Person.name.!=(List("Ben", "Joe")).get === List("Liz") // same as Person.name.not(List("Ben", "Joe")).get === List("Liz")
- values
Iterable of negated attribute values
- returns
Filtered molecule
-
def
!=(value: T): Ns with Attr
Match attribute values different from applied value.
Match attribute values different from applied value.
Person.name.get === List("Ben", "Liz", "Joe") // Negate value Person.name.!=("Ben").get === List("Liz", "Joe") // same as Person.name.not("Ben").get === List("Liz", "Joe")
- value
Negated attribute value
- returns
Filtered molecule
-
def
!=(value: T, value2: T, moreValues: T*): Ns with Attr
Match attribute values different from one or more applied values.
Match attribute values different from one or more applied values.
Person.name.get === List("Ben", "Liz", "Joe") // Negate one value Person.name.!=("Ben").get === List("Liz", "Joe") // Negate multiple values Person.name.!=("Ben", "Liz").get === List("Joe") // same as Person.name.not("Ben", "Liz").get === List("Joe")
- value
Negated attribute value
- moreValues
Optional additional negated attribute values
- returns
Filtered molecule
-
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
apply(unifyer: unify): Ns with Attr
Mark tacit attribute to be unified in self-join.
Mark tacit attribute to be unified in self-join.
Attributes beforeSelf
are joined with attributes added afterSelf
by values that can unify:
Find 23-year olds liking the same beverage as 25-year olds (unifying by beverage):Person.name.age(23).Drinks.beverage._Person.Self // create self join .name.age(25).Drinks.beverage_(unify) // unify by beverage .get === List( ("Joe", 23, "Coffee", "Ben", 25), // Joe (23) and Ben(25) both like coffee ("Liz", 23, "Coffee", "Ben", 25), // Liz (23) and Ben(25) both like coffee ("Liz", 23, "Tea", "Ben", 25) // Liz (23) and Ben(25) both like tea )
unify
marker can only be applied to tacit attribute (with underscore).- unifyer
unify
marker to unify self-join by this attribute values- returns
Self-join molecule
-
def
apply(values: Seq[T], moreValues: Seq[T]*): Ns with Attr
Match one or more Iterables of attribute values.
Match one or more Iterables of attribute values.
Multiple Iterables are concatenated into one Iterable of values to be matched.
Applying value(s) to an attribute has different semantics depending on what operation is performed:// Querying with `get` - Ben is 42 Person.name_(Set("Ben")).age.get === List(42) val members = List("Ben", "Liz") val associates = List("Don", "Ann") // OR-semantics when multiple values are queried Person.name_(members).age.get === List(42, 37) // Multiple Iterables concatenated Person.name_(members, associates).age.get === List(42, 37, 71, 28) // Single value in Iterable can be added when saving // (although easier to apply the value directly) Person.name(List("Joe")).save // Saving multiple new card-many attribute values (all old values are retracted). // (Saving multiple new values not allowed for card-one attributes) val sports = Set("golf", "diving") Person.hobbies(sports).save // Replacing value when updating (old value is retracted). Person(benId).age(List(43)).update // Replacing multiple values for card-many attributes (all old values are retracted). // (Replacing multiple values not allowed for card-one attributes) Person(benId).hobbies(Seq("reading", "walking")).update // Multiple Iterables can be applied Person(benId).hobbies(Seq("reading", "walking"), Set("stamps")).update
- values
Iterable of attribute values to be matched
- moreValues
Optional additional Iterables of attribute values to be matched
- returns
Filtered molecule
-
def
apply(value: T, moreValues: T*): Ns with Attr
Match one or more attribute values.
Match one or more attribute values.
Applying value(s) to an attribute has different semantics depending on what operation is performed:// Querying with `get` - Ben is 42 Person.name_("Ben").age.get === List(42) // OR-semantics when multiple values are queried Person.name_("Ben", "Liz").age.get === List(42, 37) // Saving new value (any old value is retracted) Person.name("Joe").save // Saving multiple new card-many attribute values (all old values are retracted). // (Saving multiple new values not allowed for card-one attributes) Person.hobbies("golf", "diving").save // Replacing value when updating (old value is retracted). Person(benId).age(43).update // Replacing multiple values for card-many attributes (all old values are retracted). // (Replacing multiple values not allowed for card-one attributes) Person(benId).hobbies("reading", "walking").update
- value
Attribute values to be matched
- moreValues
Optional additional attribute values to be matched
- returns
Filtered molecule
-
def
apply(): Ns with Attr
Apply empty value to retract datom in an update.
Apply empty value to retract datom in an update.
val benId = Person.name("Ben").age(42).save.eid Person.name.age$ === List(("Ben", Some(42))) // Retract Ben's age Person(benId).age().update Person.name.age$ === List(("Ben", None))
For cardinality-many attributes, all values of the attribute are retracted.
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.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()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
not(values: Seq[T]): Ns with Attr
Match attribute values different from applied Iterable of values.
Match attribute values different from applied Iterable of values.
Person.name.get === List("Ben", "Liz", "Joe") // Negate Iterable of values Person.name.not(List("Ben", "Joe")).get === List("Liz") // same as Person.name.!=(List("Ben", "Joe")).get === List("Liz")
- values
Iterable of negated attribute values
- returns
Filtered molecule
-
def
not(value: T, moreValues: T*): Ns with Attr
Match attribute values different from one or more applied values.
Match attribute values different from one or more applied values.
Person.name.get === List("Ben", "Liz", "Joe") // Negate one value Person.name.not("Ben").get === List("Liz", "Joe") // Negate multiple values Person.name.not("Ben", "Liz").get === List("Joe") // same as Person.name.!=("Ben", "Liz").get === List("Joe")
- value
Negated attribute value
- moreValues
Optional additional negated attribute values
- returns
Filtered molecule
-
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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
Documentation/API for the Molecule library - a meta DSL for the Datomic database.
Manual | scalamolecule.org | Github | Forum