abstract class DomainStructure extends AnyRef
Domain structure definition
Define a Domain structure to be handled by Molecule in an object that extends this Domain class.
A domain structure consists of traits describing real world entities. Each entity/trait is given a name and defines a list of attributes that are the relevant properties of the entity.
A maxArity number is applied to Domain to tell Molecule how many Attributes it should
create boilerplate code for, or how many attribute values are expected at most to be returned
from molecule queries. This is to generate a minimum of boilerplate code.
package path.to.your.project import molecule.Domain object Community extends Domain(8) { // "Community" domain trait Person { // "Person" entity val name = oneString // Person "name" String attribute definition val age = oneInt // Person "age" Int attribute definition } // Additional entities... }
For larger projects, it is recommended to organize the domain structure in segments of related entity traits within objects:
object Seattle extends Domain(15) { object customer { // "customer" segment trait Person { val name = oneString val age = oneInt val address = one[Address] // Cardinality-one relationship to Address val bought = many[products.Item] // Cardinality-many relationship to products.Item } trait Address { val street = oneString.fulltext val city = oneInt } // ..more entities in the `customer` segment } object products { // "products" segment trait Item { val title = oneString val inStock = oneInt } // ..more entities in the `products` segment } // Additional segments... }
- Source
- DomainStructure.scala
- Grouped
- Alphabetic
- By Inheritance
- DomainStructure
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
DomainStructure(maxArity: Int)
- maxArity
Number of possible attributes in molecule output.
Type Members
-
sealed
trait
Options[Self, Tpe, BaseTpe] extends Requierable
Attribute options.
- trait Requierable extends AnyRef
- trait Validations[Self, BaseTpe] extends AnyRef
- trait arrayByte extends Options[arrayByte, Seq[Byte], Byte] with Validations[oneByte, Byte]
- trait enumConstructor extends AnyRef
- trait many extends refOptions[many]
- trait mapBigDecimal extends Options[mapBigDecimal, Map[String, BigDecimal], BigDecimal]
- trait mapBigInt extends Options[mapBigInt, Map[String, BigInt], BigInt]
- trait mapBoolean extends Options[mapBoolean, Map[String, Boolean], Boolean]
- trait mapByte extends Options[mapByte, Map[String, Byte], Byte]
- trait mapChar extends Options[mapChar, Map[String, Char], Char]
- trait mapDate extends Options[mapDate, Map[String, Date], Date]
- trait mapDouble extends Options[mapDouble, Map[String, Double], Double]
- trait mapDuration extends Options[mapDuration, Map[String, Duration], Duration]
- trait mapFloat extends Options[mapFloat, Map[String, Float], Float]
- trait mapInstant extends Options[mapInstant, Map[String, Instant], Instant]
- trait mapInt extends Options[mapInt, Map[String, Int], Int]
- trait mapLocalDate extends Options[mapLocalDate, Map[String, LocalDate], LocalDate]
- trait mapLocalDateTime extends Options[mapLocalDateTime, Map[String, LocalDateTime], LocalDateTime]
- trait mapLocalTime extends Options[mapLocalTime, Map[String, LocalTime], LocalTime]
- trait mapLong extends Options[mapLong, Map[String, Long], Long]
- trait mapOffsetDateTime extends Options[mapOffsetDateTime, Map[String, OffsetDateTime], OffsetDateTime]
- trait mapOffsetTime extends Options[mapOffsetTime, Map[String, OffsetTime], OffsetTime]
- trait mapShort extends Options[mapShort, Map[String, Short], Short]
- trait mapString extends stringOptions[mapString, Map[String, String]]
- trait mapURI extends Options[mapURI, Map[String, URI], URI]
- trait mapUUID extends Options[mapUUID, Map[String, UUID], UUID]
- trait mapZonedDateTime extends Options[mapZonedDateTime, Map[String, ZonedDateTime], ZonedDateTime]
- trait one extends refOptions[one]
- trait oneBigDecimal extends Options[oneBigDecimal, BigDecimal, BigDecimal] with Validations[oneBigDecimal, BigDecimal]
- trait oneBigInt extends Options[oneBigInt, BigInt, BigInt] with Validations[oneBigInt, BigInt]
- trait oneBoolean extends Options[oneBoolean, Boolean, Boolean] with Validations[oneBoolean, Boolean]
- trait oneByte extends Options[oneByte, Byte, Byte] with Validations[oneByte, Byte]
- trait oneChar extends Options[oneChar, Char, Char] with Validations[oneChar, Char]
- trait oneDate extends Options[oneDate, Date, Date] with Validations[oneDate, Date]
- trait oneDouble extends Options[oneDouble, Double, Double] with Validations[oneDouble, Double]
- trait oneDuration extends Options[oneDuration, Duration, Duration] with Validations[oneDuration, Duration]
- trait oneFloat extends Options[oneFloat, Float, Float] with Validations[oneFloat, Float]
- trait oneInstant extends Options[oneInstant, Instant, Instant] with Validations[oneInstant, Instant]
- trait oneInt extends Options[oneInt, Int, Int] with Validations[oneInt, Int]
- trait oneLocalDate extends Options[oneLocalDate, LocalDate, LocalDate] with Validations[oneLocalDate, LocalDate]
- trait oneLocalDateTime extends Options[oneLocalDateTime, LocalDateTime, LocalDateTime] with Validations[oneLocalDateTime, LocalDateTime]
- trait oneLocalTime extends Options[oneLocalTime, LocalTime, LocalTime] with Validations[oneLocalTime, LocalTime]
- trait oneLong extends Options[oneLong, Long, Long] with Validations[oneLong, Long]
- trait oneOffsetDateTime extends Options[oneOffsetDateTime, OffsetDateTime, OffsetDateTime] with Validations[oneOffsetDateTime, OffsetDateTime]
- trait oneOffsetTime extends Options[oneOffsetTime, OffsetTime, OffsetTime] with Validations[oneOffsetTime, OffsetTime]
- trait oneShort extends Options[oneShort, Short, Short] with Validations[oneShort, Short]
- trait oneString extends stringOptions[oneString, String] with Validations[oneString, String]
- trait oneURI extends Options[oneURI, URI, URI] with Validations[oneURI, URI]
- trait oneUUID extends Options[oneUUID, UUID, UUID] with Validations[oneUUID, UUID]
- trait oneZonedDateTime extends Options[oneZonedDateTime, ZonedDateTime, ZonedDateTime] with Validations[oneZonedDateTime, ZonedDateTime]
- trait refOptions[Self] extends Requierable
- trait seqBigDecimal extends Options[seqBigDecimal, Seq[BigDecimal], BigDecimal] with Validations[oneBigDecimal, BigDecimal]
- trait seqBigInt extends Options[seqBigInt, Seq[BigInt], BigInt] with Validations[oneBigInt, BigInt]
- trait seqBoolean extends Options[seqBoolean, Seq[Boolean], Boolean] with Validations[oneBoolean, Boolean]
- trait seqChar extends Options[seqChar, Seq[Char], Char] with Validations[oneChar, Char]
- trait seqDate extends Options[seqDate, Seq[Date], Date] with Validations[oneDate, Date]
- trait seqDouble extends Options[seqDouble, Seq[Double], Double] with Validations[oneDouble, Double]
- trait seqDuration extends Options[seqDuration, Seq[Duration], Duration] with Validations[oneDuration, Duration]
- trait seqFloat extends Options[seqFloat, Seq[Float], Float] with Validations[oneFloat, Float]
- trait seqInstant extends Options[seqInstant, Seq[Instant], Instant] with Validations[oneInstant, Instant]
- trait seqInt extends Options[seqInt, Seq[Int], Int] with Validations[oneInt, Int]
- trait seqLocalDate extends Options[seqLocalDate, Seq[LocalDate], LocalDate] with Validations[oneLocalDate, LocalDate]
- trait seqLocalDateTime extends Options[seqLocalDateTime, Seq[LocalDateTime], LocalDateTime] with Validations[oneLocalDateTime, LocalDateTime]
- trait seqLocalTime extends Options[seqLocalTime, Seq[LocalTime], LocalTime] with Validations[oneLocalTime, LocalTime]
- trait seqLong extends Options[seqLong, Seq[Long], Long] with Validations[oneLong, Long]
- trait seqOffsetDateTime extends Options[seqOffsetDateTime, Seq[OffsetDateTime], OffsetDateTime] with Validations[oneOffsetDateTime, OffsetDateTime]
- trait seqOffsetTime extends Options[seqOffsetTime, Seq[OffsetTime], OffsetTime] with Validations[oneOffsetTime, OffsetTime]
- trait seqShort extends Options[seqShort, Seq[Short], Short] with Validations[oneShort, Short]
- trait seqString extends stringOptions[seqString, Seq[String]] with Validations[oneString, String]
- trait seqURI extends Options[seqURI, Seq[URI], URI] with Validations[oneURI, URI]
- trait seqUUID extends Options[seqUUID, Seq[UUID], UUID] with Validations[oneUUID, UUID]
- trait seqZonedDateTime extends Options[seqZonedDateTime, Seq[ZonedDateTime], ZonedDateTime] with Validations[oneZonedDateTime, ZonedDateTime]
- trait setBigDecimal extends Options[setBigDecimal, Set[BigDecimal], BigDecimal] with Validations[oneBigDecimal, BigDecimal]
- trait setBigInt extends Options[setBigInt, Set[BigInt], BigInt] with Validations[oneBigInt, BigInt]
- trait setBoolean extends Options[setBoolean, Set[Boolean], Boolean] with Validations[oneBoolean, Boolean]
- trait setByte extends Options[setByte, Set[Byte], Byte] with Validations[oneByte, Byte]
- trait setChar extends Options[setChar, Set[Char], Char] with Validations[oneChar, Char]
- trait setDate extends Options[setDate, Set[Date], Date] with Validations[oneDate, Date]
- trait setDouble extends Options[setDouble, Set[Double], Double] with Validations[oneDouble, Double]
- trait setDuration extends Options[setDuration, Set[Duration], Duration] with Validations[oneDuration, Duration]
- trait setFloat extends Options[setFloat, Set[Float], Float] with Validations[oneFloat, Float]
- trait setInstant extends Options[setInstant, Set[Instant], Instant] with Validations[oneInstant, Instant]
- trait setInt extends Options[setInt, Set[Int], Int] with Validations[oneInt, Int]
- trait setLocalDate extends Options[setLocalDate, Set[LocalDate], LocalDate] with Validations[oneLocalDate, LocalDate]
- trait setLocalDateTime extends Options[setLocalDateTime, Set[LocalDateTime], LocalDateTime] with Validations[oneLocalDateTime, LocalDateTime]
- trait setLocalTime extends Options[setLocalTime, Set[LocalTime], LocalTime] with Validations[oneLocalTime, LocalTime]
- trait setLong extends Options[setLong, Set[Long], Long] with Validations[oneLong, Long]
- trait setOffsetDateTime extends Options[setOffsetDateTime, Set[OffsetDateTime], OffsetDateTime] with Validations[oneOffsetDateTime, OffsetDateTime]
- trait setOffsetTime extends Options[setOffsetTime, Set[OffsetTime], OffsetTime] with Validations[oneOffsetTime, OffsetTime]
- trait setShort extends Options[setShort, Set[Short], Short] with Validations[oneShort, Short]
- trait setString extends stringOptions[setString, Set[String]] with Validations[oneString, String]
- trait setURI extends Options[setURI, Set[URI], URI] with Validations[oneURI, URI]
- trait setUUID extends Options[setUUID, Set[UUID], UUID] with Validations[oneUUID, UUID]
- trait setZonedDateTime extends Options[setZonedDateTime, Set[ZonedDateTime], ZonedDateTime] with Validations[oneZonedDateTime, ZonedDateTime]
- trait stringOptions[Self, Tpe] extends Options[Self, Tpe, String]
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( ... ) @native() @IntrinsicCandidate()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
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() @IntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
- object arrayByte extends arrayByte
- object many extends many
- object mapBigDecimal extends mapBigDecimal
- object mapBigInt extends mapBigInt
- object mapBoolean extends mapBoolean
- object mapByte extends mapByte
- object mapChar extends mapChar
- object mapDate extends mapDate
- object mapDouble extends mapDouble
- object mapDuration extends mapDuration
- object mapFloat extends mapFloat
- object mapInstant extends mapInstant
- object mapInt extends mapInt
- object mapLocalDate extends mapLocalDate
- object mapLocalDateTime extends mapLocalDateTime
- object mapLocalTime extends mapLocalTime
- object mapLong extends mapLong
- object mapOffsetDateTime extends mapOffsetDateTime
- object mapOffsetTime extends mapOffsetTime
- object mapShort extends mapShort
- object mapString extends mapString
- object mapURI extends mapURI
- object mapUUID extends mapUUID
- object mapZonedDateTime extends mapZonedDateTime
- object one extends one
- object oneBigDecimal extends oneBigDecimal
- object oneBigInt extends oneBigInt
- object oneBoolean extends oneBoolean
- object oneByte extends oneByte
- object oneChar extends oneChar
- object oneDate extends oneDate
- object oneDouble extends oneDouble
- object oneDuration extends oneDuration
- object oneEnum extends enumConstructor
- object oneFloat extends oneFloat
- object oneInstant extends oneInstant
- object oneInt extends oneInt
- object oneLocalDate extends oneLocalDate
- object oneLocalDateTime extends oneLocalDateTime
- object oneLocalTime extends oneLocalTime
- object oneLong extends oneLong
- object oneOffsetDateTime extends oneOffsetDateTime
- object oneOffsetTime extends oneOffsetTime
- object oneShort extends oneShort
- object oneString extends oneString
- object oneURI extends oneURI
- object oneUUID extends oneUUID
- object oneZonedDateTime extends oneZonedDateTime
- object seqBigDecimal extends seqBigDecimal
- object seqBigInt extends seqBigInt
- object seqBoolean extends seqBoolean
- object seqChar extends seqChar
- object seqDate extends seqDate
- object seqDouble extends seqDouble
- object seqDuration extends seqDuration
- object seqEnum extends enumConstructor
- object seqFloat extends seqFloat
- object seqInstant extends seqInstant
- object seqInt extends seqInt
- object seqLocalDate extends seqLocalDate
- object seqLocalDateTime extends seqLocalDateTime
- object seqLocalTime extends seqLocalTime
- object seqLong extends seqLong
- object seqOffsetDateTime extends seqOffsetDateTime
- object seqOffsetTime extends seqOffsetTime
- object seqShort extends seqShort
- object seqString extends seqString
- object seqURI extends seqURI
- object seqUUID extends seqUUID
- object seqZonedDateTime extends seqZonedDateTime
- object setBigDecimal extends setBigDecimal
- object setBigInt extends setBigInt
- object setBoolean extends setBoolean
- object setByte extends setByte
- object setChar extends setChar
- object setDate extends setDate
- object setDouble extends setDouble
- object setDuration extends setDuration
- object setEnum extends enumConstructor
- object setFloat extends setFloat
- object setInstant extends setInstant
- object setInt extends setInt
- object setLocalDate extends setLocalDate
- object setLocalDateTime extends setLocalDateTime
- object setLocalTime extends setLocalTime
- object setLong extends setLong
- object setOffsetDateTime extends setOffsetDateTime
- object setOffsetTime extends setOffsetTime
- object setShort extends setShort
- object setString extends setString
- object setURI extends setURI
- object setUUID extends setUUID
- object setZonedDateTime extends setZonedDateTime
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated