molecule

package molecule

Members list

Packages

package molecule.base
package molecule.core

Type members

Classlikes

case class DataModel(maxArity: Int) extends DataModelApi

Data Model DSL.

Define a Domain Data Model in a data model file.

For small projects, the schema can be defined without partition definitions where all namespaces reside in a default tacit partition:

Data Model DSL.

Define a Domain Data Model in a data model file.

For small projects, the schema can be defined without partition definitions where all namespaces reside in a default tacit partition:

package path.to.your.project
import molecule.data.model._       // import data model DSL

object Seattle extends DataModel(8) {  // data model object with input/output arity

 trait Person {                   // Namespace
   val name = oneString.fulltext  // String attribute definition with fulltext search
   val age  = oneInt              // Int attribute definition
 }

 // Additional namespaces...
}

For larger projects, it is recommended to group namespaces in partitions:

package path.to.your.project
import molecule.data.model._

object Seattle extends DataModel(15) {

 object customer {
   trait Person {
     val name    = oneString.fulltext
     val age     = oneInt
     val address = one[Address]
     val bought  = many[products.Item]
   }
   trait Address {
     val street = oneString.fulltext
     val city   = oneInt
   }
   // ..more namespaces in the `customer` partition
 }

 object products {
   trait Item {
     val title   = oneString
     val inStock = oneInt
   }
   // ..more namespaces in the `products` partition
 }

 // Additional partitions...
}

Attributes

Source
DataModel.scala
Supertypes
trait Serializable
trait Product
trait Equals
trait DataModelApi
class Object
trait Matchable
class Any
Show all