Packages

package api

Content Hierarchy
Ordering
  1. Alphabetic
Visibility
  1. Public
  2. All

Type Members

  1. trait DataModelApi extends AnyRef
  2. trait Schema extends AnyRef

    Schema transaction data interface with data sources for various databases.

Value Members

  1. object DataModelApi extends DataModelApi

    Data Model DSL.

    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...
    }

Ungrouped