package orm
- Alphabetic
- Public
- All
Type Members
- case class Alias(table: TableName, alias: String) extends Product with Serializable
- case class AliasAndFieldType[T](alias: Alias, fieldType: FieldType[T]) extends Product with Serializable
- case class AliasAndFieldTypes[Schema[_], T](alias: Alias, fieldTypes: List[FieldType[_]])(implicit tx: ValueFromMultipleAliasFields[Schema, T]) extends Product with Serializable
- trait ArrayAlias[F[_]] extends AnyRef
- case class ArrayAliasFromMap[S[_]](map: Map[String, Alias])(implicit evidence$1: SchemaMapKey[S]) extends ArrayAlias[S] with Product with Serializable
- case class BatchDetails(batchSize: Int, index: Int, whereForTable: WhereForTable) extends Product with Serializable
- sealed trait BulkDataPointer extends AnyRef
- trait ChildBulkDataPointer extends BulkDataPointer
- sealed trait ChildEntity extends OrmEntity
-
trait
ChildOrmBulkData[E] extends OrmBulkData[E]
This is the root interface for BulkData that are children.
This is the root interface for BulkData that are children.
The most important method is 'pointer' which 'given a parent id' return a pointer to the data in this about that parent. The pointers are mutable
- case class EntityStrategy[X](mainEntityFn: (MainEntity) ⇒ X, childFn: (OrmEntity) ⇒ (ChildEntity) ⇒ X) extends Product with Serializable
-
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]
- trait FieldFilter[F[_]] extends AnyRef
- 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
- trait FieldTypeToIndex extends AnyRef
- case class FoundChildBulkDataPointer(nth: Int, indexIntoBulkData: Int, parentId: Any, bulkData: ChildOrmBulkData[_], children: List[ChildBulkDataPointer]) extends ChildBulkDataPointer with Product with Serializable
- trait GetDateFormatter extends AnyRef
- class GetKey extends (List[Any]) ⇒ Any
- trait GetPattern[Schema[_]] extends AnyRef
- trait GetPatternFor[Schema[_], T] extends AnyRef
- case class IDWhereForTable(keys: Keys, ids: List[Any]) extends WhereForTable with Product with Serializable
- trait IsLinkFieldFilter[F[_]] extends FieldFilter[F]
- trait IsObjectFieldFilter[F[_]] extends FieldFilter[F]
- trait IsSimpleFieldFilter[F[_]] extends FieldFilter[F]
- trait JsonToStream[F[_], T] extends AnyRef
- trait JsonToStreamFor[Schema[_]] extends AnyRef
- case class Keys(list: List[FieldType[_]]) extends Product with Serializable
- case class KeysAndIndex(list: List[(Int, FieldType[_])]) extends Product with Serializable
- trait LinkPrefixFrom[Context] extends AnyRef
- final case class LinkUrl(url: String) extends AnyVal with Product with Serializable
-
case class
MainBulkData(ormEntity: MainEntity, tableNameToData: Map[String, List[List[Any]]], children: List[ChildOrmBulkData[_]]) extends OrmBulkData[MainEntity] with Product with Serializable
This is a BulkData, and it's defining characteristic is that it isn't the child of any other BulkData.
This is a BulkData, and it's defining characteristic is that it isn't the child of any other BulkData.
it's pointer method points to the 'nth' item in the main bulk. When we are iterating over the data we use the pointer to do that
- case class MainBulkDataPointer(nth: Int, bulkData: OrmBulkData[_], children: List[ChildBulkDataPointer]) extends BulkDataPointer with Product with Serializable
- case class MainEntity(alias: Alias, primaryKeyField: Keys, dataFields: List[FieldType[_]], children: List[ChildEntity]) extends OrmEntity with Product with Serializable
- trait MakeContextFromLink[Context] extends AnyRef
-
case class
ManyToOneBulkData(parentEntity: OrmEntity, ormEntity: ManyToOneEntity, tableNameToData: Map[String, List[List[Any]]], children: List[ChildOrmBulkData[_]]) extends ChildOrmBulkData[ManyToOneEntity] with Product with Serializable
As the name suggests this is a Bulk data for a table in which the childId is stored in the parent.
As the name suggests this is a Bulk data for a table in which the childId is stored in the parent. Thus there will be zero or one items for every parent. There may well be one or multiple parents that share the child
-
case class
ManyToOneEntity(alias: Alias, 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 MultipleFieldDate(date: Date, dateFormatter: ThreadLocal[SimpleDateFormat]) extends Product with Serializable
- case class NullBulkDataPointer(bulkData: ChildOrmBulkData[_], children: List[ChildBulkDataPointer]) extends ChildBulkDataPointer with Product with Serializable
-
case class
OneToManyBulkData(parentEntity: OrmEntity, ormEntity: OneToManyEntity, tableNameToData: Map[String, List[List[Any]]], children: List[ChildOrmBulkData[_]]) extends ChildOrmBulkData[OneToManyEntity] with Product with Serializable
As the name suggests this is a Bulk data that for every parent has zero or more child items.
As the name suggests this is a Bulk data that for every parent has zero or more child items.
We know that the parent id is stored in this data: which you can see looking at the pointer method
- case class OneToManyEntity(alias: Alias, primaryKeyField: Keys, parentId: Keys, dataFields: List[FieldType[_]], children: List[ChildEntity]) extends ChildEntity with Product with Serializable
-
case class
OneToZeroOneEntity(alias: Alias, 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, whereForTable: WhereForTable = NullWhereForTable) extends Product with Serializable
-
trait
OrmBulkData[E] extends AnyRef
OrmBuildData is 'the data we have loaded about an entity'.
OrmBuildData is 'the data we have loaded about an entity'. many of the implemtors have a 'pointer' which points to the 'current item being pulled in'. We use the pointers to 'walkthrough the data',
When we pull an object graph into memory, we pull it into a 'tableNameToData' and then rip it apart into OrmBuildData. So here:
- ormEntity/Alias define the entity
- data is the data about this entity
- children is about how this relates to other nodes in the object graph
*
- trait OrmEntity extends FieldTypeToIndex
- trait OrmFactory[Schema[_]] extends AnyRef
- class OrmFactoryImpl[Schema[_]] extends OrmFactory[Schema]
- trait OrmMaker[T] extends (MainEntity) ⇒ (Map[OrmEntity, List[List[AnyRef]]]) ⇒ Stream[T]
- trait OrmStrategies extends AnyRef
- case class PartitionedSchema[Schema[_]](key: String, links: List[Schema[_]], simple: List[Schema[_]], objects: List[PartitionedSchema[Schema]], arrays: List[(Alias, PartitionedSchema[Schema])]) extends Product with Serializable
- trait Placeholder extends AnyRef
-
case class
SameIdBulkData(ormEntity: SameIdEntity, tableNameToData: Map[String, List[List[Any]]], children: List[ChildOrmBulkData[_]]) extends ChildOrmBulkData[SameIdEntity] with Product with Serializable
As the name suggests this is a Bulk data for a table that shares the same primary key as the parent.
As the name suggests this is a Bulk data for a table that shares the same primary key as the parent. Thus there will be zero or one items for every parent
- case class SameIdEntity(alias: Alias, primaryKeyField: Keys, dataFields: List[FieldType[_]], children: List[ChildEntity]) extends SingleChild with Product with Serializable
-
trait
SchemaMapKey[Schema[_]] extends AnyRef
THere is a schema of type Schema.
THere is a schema of type Schema. Schema is not the data, is the structure of the data
The type parameter is the type of the data in the field that the schema is pointing to. This is used for things like 'getting from database' and 'putting in json'.
Because schemas hold other schemas, and I am not sure how to handle the schema object itself from a [T] perspective there is a fake T called Placeholder.
- trait SingleChild extends ChildEntity
- case class TableName(name: String, description: String) extends Product with Serializable
- trait ToAliasAndFieldTypes[Schema[_]] extends AnyRef
- trait ToFieldType[T] extends AnyRef
- trait ToWritableForm[T] extends (T) ⇒ List[(OrmEntity, List[List[AnyRef]])]
- trait ValueFromMultipleAliasFields[Schema[_], T] extends AnyRef
- trait WhereForTable extends SetParams[PreparedStatement]
- trait Write[T] extends AnyRef
- class WriteToJsonForSchema[Schema[_], Context] extends AnyRef
Value Members
- object Alias extends Serializable
- object AliasAndFieldType extends Serializable
- object BulkDataPointer
- object EntityStrategy extends Serializable
- object FastOrmSql
- object FastReader
- object FastReaderDal
- object FieldType extends Serializable
- object GetDateFormatter
- object IsObjectFieldFilter
- object IsSimpleFieldFilter
- object JsonToStream
- object Keys extends Serializable
- object LinkUrl extends Serializable
- object MainBulkData extends Serializable
- object MultipleFieldDate extends Serializable
- object NullWhereForTable extends WhereForTable with Product with Serializable
- object OrmFactory
- object OrmMaker
-
object
OrmStrategies extends OrmStrategies
This applies the sql defined in FastOrmSql to the entities in a composite entity
- object PartitionedSchema extends Serializable
- object SchemaMapKey
- object Table
- object ToFieldType
- object ValueFromMultipleAliasFields