package orm
- Alphabetic
- Public
- All
Type Members
- case class AlwaysOne[T](children: List[T]) extends ChildrenInSchema[T] with Product with Serializable
- trait AsDebugString[T] extends AnyRef
- case class BatchDetails(batchSize: Int, index: Int) extends Product with Serializable
- trait BuildOrmEntity[OrmEntity] extends (List[FieldType[_]], List[ChildEntity]) ⇒ OrmEntity
- sealed trait ChildArity extends AnyRef
- sealed trait ChildEntity extends OrmEntity
- sealed abstract class ChildrenInSchema[T] extends AnyRef
- case class EntityAndFieldsAndPath[E <: OrmEntity](entity: E, fieldsAndPath: OrmGettersAndPath) extends Product with Serializable
- case class EntityAndPath[E <: OrmEntity](entity: E, paths: Array[List[Int]]) extends Product with Serializable
- case class EntityStrategy[X](mainEntityFn: (MainEntity) ⇒ X, childFn: (OrmEntity) ⇒ (ChildEntity) ⇒ X) extends Product with Serializable
- case class FanInOrmData[Context, T](t: T, name: String, idInParentData: GetKey, idForChild: GetKey, executeWhenMatch: (Context, T, List[Any]) ⇒ Context, data: Array[List[Any]], children: List[OrmData[Context]]) extends OrmData[Context] with Product with Serializable
-
case class
FanoutOrmData[Context, T](t: T, name: String, flyweightKey: FlyweightKey, executeWhenMatch: (Context, T, List[Any]) ⇒ Context, ar: Array[List[Any]], children: List[OrmData[Context]]) extends OrmData[Context] with Product with Serializable
The data read from the database by ORM.
The data read from the database by ORM. Later this should be replaceable by a cursor
This is just for the 'numeric keys' story
So important features:*
- We need to process one to many tables and their children sensibly using the next mechanism
- That means we will process all the things for my id, and then tell the children The data is sorted by id. Children are sorted by child Id Note that we need the id to by ordered... ANd that's awkward because we don't know how big the composible key is... suppose we have Keys1(a), Keys2(a,b), Keys3(a,b,c)... ah do we actually need the id or can we go flyweight?
-
trait
FastOrmSql extends AnyRef
This is the layer of abstraction that needs to be rewritten for different databases.
This is the layer of abstraction that needs to be rewritten for different databases. It's just a block of sql for each operation
- trait FastReader[T] extends (MainEntity) ⇒ (Int) ⇒ Stream[T]
- trait FastReaderDal extends AnyRef
- class FastReaderImpl[T] extends FastReader[T]
- case class FieldType[T](name: String, typeName: String, numericSort: Boolean)(implicit writeToJson: WriteToJson[T], getFromJson: GetFromJson[T], classTag: ClassTag[T]) extends Product with Serializable
- case class FieldTypeAndIndex[T](fieldType: FieldType[T], index: Int) extends Product with Serializable
- case class FieldsWord[OrmEntity](nameAndTypes: Seq[String])(implicit validateAndBuild: BuildOrmEntity[OrmEntity]) extends OrmDslClass with Product with Serializable
-
trait
FindOrmEntityAndField[Schema] extends (Schema) ⇒ List[OrmValueGetter[_]]
For example a single item in the schema might be in several places in the database (a key/a foreign key).
For example a single item in the schema might be in several places in the database (a key/a foreign key). That item might be represented by multiple fields (e.g. a composite string, or a date where the date is stored in multiple fields_
- trait FlyweightKey extends Comparator[List[Any]]
- class GetKey extends (List[Any]) ⇒ Any
- case class Key2(key1: FlyweightKey, key2: FlyweightKey) extends FlyweightKey with Product with Serializable
- case class KeyInt(leftIndex: Int, rightIndex: Int) extends FlyweightKey with Product with Serializable
- case class KeyString(leftIndex: Int, rightIndex: Int) extends FlyweightKey with Product with Serializable
- case class Keys(list: List[FieldType[_]]) extends Product with Serializable
- case class KeysAndIndex(list: List[(Int, FieldType[_])]) extends Product with Serializable
- case class MainEntity(tableName: TableName, alias: String, primaryKeyField: Keys, dataFields: List[FieldType[_]], children: List[ChildEntity]) extends OrmEntity with Product with Serializable
- case class MainOrmData[Context, T](t: T, name: String, contextMaker: () ⇒ Context, executeWhenMatch: (Context, T, List[Any]) ⇒ Context, ar: Array[List[Any]], children: List[OrmData[Context]]) extends Product with Serializable
-
case class
ManyToOneEntity(tableName: TableName, alias: String, primaryKeyField: Keys, idInParent: Keys, dataFields: List[FieldType[_]], children: List[ChildEntity]) extends SingleChild with Product with Serializable
this is typically a look up reference.
this is typically a look up reference. It is very similar to 'oneToZeroOneEntity' except that many of the parent are likely to share the same value. Thus it won't be in sync
- case class NumericKey[T](path: List[Int], index: Int, key: String, arity: ChildArity, children: NumericKeys[T], t: T) extends Product with Serializable
- class NumericKeyPopulator[T] extends (Array[Any], OrmEntity, List[Any]) ⇒ Array[Any]
- case class NumericKeys[Schema](list: List[NumericKey[Schema]]) extends Product with Serializable
- case class OneToManyEntity(tableName: TableName, alias: String, primaryKeyField: Keys, parentId: Keys, dataFields: List[FieldType[_]], children: List[ChildEntity]) extends ChildEntity with Product with Serializable
-
case class
OneToZeroOneEntity(tableName: TableName, alias: String, primaryKeyField: Keys, idInParent: Keys, dataFields: List[FieldType[_]], children: List[ChildEntity]) extends SingleChild with Product with Serializable
This will have zero or one entries for each item in the parent.
This will have zero or one entries for each item in the parent. It will be in 'step' with it... allowing cursors to advance together
- case class OrmBatchConfig(dataSource: DataSource, batchSize: Int) extends Product with Serializable
- trait OrmData[Context] extends AnyRef
- trait OrmDataFactory[MainT, T] extends AnyRef
- class OrmDataFactoryForMainEntity extends OrmDataFactory[MainEntity, OrmEntity]
- trait OrmDslClass extends AnyRef
- trait OrmEntity extends AnyRef
- trait OrmFactory extends AnyRef
- class OrmFactoryImpl[Schema] extends OrmFactory
-
case class
OrmGettersAndPath(ormValueGetters: Array[OrmValueGetter[_]], path: Array[Array[Int]], indicies: Array[Int]) extends Product with Serializable
the orm getter is 'given this data from the database table what is the result.
the orm getter is 'given this data from the database table what is the result. Path and index and where to put the result when we get it
- case class OrmGettersForThisRowAndPath(ormValueGetters: Array[OrmValueGetterForARow[_]], path: Array[Array[Int]], indicies: Array[Int]) extends Product with Serializable
- trait OrmMaker[T] extends (MainEntity) ⇒ (Map[OrmEntity, List[List[AnyRef]]]) ⇒ Stream[T]
- class OrmMakerForArrayAny[Schema] extends OrmMaker[Array[Any]]
- class OrmMakerForArrayAnyUsingOrmData[Schema] extends OrmMaker[Array[Any]]
- trait OrmStrategies extends AnyRef
- case class OrmValueGetter[T](tableName: TableName, fieldTypes: List[FieldType[_]])(implicit tx: OrmValueTransformer[T]) extends Product with Serializable
- case class OrmValueGetterForARow[T](tableName: TableName, fieldTypes: Array[FieldTypeAndIndex[_]], tx: OrmValueTransformer[T]) extends Product with Serializable
- trait OrmValueTransformer[T] extends (Array[FieldTypeAndIndex[_]], Array[Any]) ⇒ Any
- case class SameIdEntity(tableName: TableName, alias: String, primaryKeyField: Keys, dataFields: List[FieldType[_]], children: List[ChildEntity]) extends SingleChild with Product with Serializable
- trait SchemaMapKey[Schema] extends AnyRef
- trait SingleChild extends ChildEntity
- class StreamArrayAnyForOneEntity[T] extends (Map[OrmEntity, List[List[AnyRef]]]) ⇒ Stream[Array[Any]]
- class StreamArrayAnyForOneEntity2[T] extends (Map[OrmEntity, List[List[AnyRef]]]) ⇒ Stream[Array[Any]]
- case class TableAndField(tableName: TableName, fieldName: String) extends Product with Serializable
- case class TableName(tableName: String, description: String) extends Product with Serializable
- case class TablesAndFieldsAndPaths(map: Map[TableName, OrmGettersAndPath]) extends Product with Serializable
- trait ToFieldType[T] extends AnyRef
- trait ToWritableForm[T] extends (T) ⇒ List[(OrmEntity, List[List[AnyRef]])]
- trait Write[T] extends AnyRef
- class WriteOrm extends AnyRef
- case class Zero[T]() extends ChildrenInSchema[T] with Product with Serializable
- case class ZeroOrMore[T](children: List[T]) extends ChildrenInSchema[T] with Product with Serializable
- case class manyToOne(tableName: TableName, primaryKeyDefn: String, aliasOverride: String = "") extends ormDslTable[ManyToOneEntity] with Product with Serializable
- case class oneToMany(tableName: TableName, primaryKeyDefn: String, aliasOverride: String = "") extends ormDslTable[OneToManyEntity] with Product with Serializable
- case class orm(tableName: TableName, primaryKeyDefn: String, aliasOverride: String = "") extends ormDslTable[MainEntity] with Product with Serializable
- abstract class ormDslTable[OrmEntity] extends OrmDslClass
- case class sameId(tableName: TableName, primaryKeyDefn: String, aliasOverride: String = "") extends ormDslTable[SameIdEntity] with Product with Serializable
Value Members
- object AsDebugString
- object ChildArity
- object ChildEntity
- object EntityAndPath extends Serializable
- object EntityStrategy extends Serializable
- object FastOrmSql
- object FastReader
- object FastReaderDal
- object FieldType extends Serializable
- object FlyweightKey
- object Keys extends Serializable
- object ManyChildren extends ChildArity with Product with Serializable
- object NoChildren extends ChildArity with Product with Serializable
- object NumericKeys extends Serializable
- object OneChild extends ChildArity with Product with Serializable
- object OrmData
- object OrmMaker
-
object
OrmStrategies extends OrmStrategies
This applies the sql defined in FastOrmSql to the entities in a composite entity
- object OrmValueTransformer
- object TableAndField extends Serializable
- object ToFieldType