Packages

package orm

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Type Members

  1. case class Alias(table: TableName, alias: String) extends Product with Serializable
  2. case class AliasAndFieldType[T](alias: Alias, fieldType: FieldType[T]) extends Product with Serializable
  3. case class AliasAndFieldTypes[Schema[_], T](alias: Alias, fieldTypes: List[FieldType[_]])(implicit tx: ValueFromMultipleAliasFields[Schema, T]) extends Product with Serializable
  4. trait ArrayAlias[F[_]] extends AnyRef
  5. case class ArrayAliasFromMap[S[_]](map: Map[String, Alias])(implicit evidence$1: SchemaMapKey[S]) extends ArrayAlias[S] with Product with Serializable
  6. case class BatchDetails(batchSize: Int, index: Int, whereForTable: WhereForTable) extends Product with Serializable
  7. sealed trait BulkDataPointer extends AnyRef
  8. trait ChildBulkDataPointer extends BulkDataPointer
  9. sealed trait ChildEntity extends OrmEntity
  10. 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

  11. case class EntityStrategy[X](mainEntityFn: (MainEntity) => X, childFn: (OrmEntity) => (ChildEntity) => X) extends Product with Serializable
  12. 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

  13. trait FastReader[T] extends (MainEntity) => (Int) => Stream[T]
  14. trait FastReaderDal extends AnyRef
  15. class FastReaderImpl[T] extends FastReader[T]
  16. trait FieldFilter[F[_]] extends AnyRef
  17. case class FieldType[T](name: String, typeName: String, numericSort: Boolean)(implicit writeToJson: WriteToJson[T], getFromJson: GetFromJson[T], classTag: ClassTag[T]) extends Product with Serializable
  18. case class FieldTypeAndIndex[T](fieldType: FieldType[T], index: Int) extends Product with Serializable
  19. trait FieldTypeToIndex extends AnyRef
  20. case class FoundChildBulkDataPointer(nth: Int, indexIntoBulkData: Int, parentId: Any, bulkData: ChildOrmBulkData[_], children: List[ChildBulkDataPointer]) extends ChildBulkDataPointer with Product with Serializable
  21. trait GetDateFormatter extends AnyRef
  22. class GetKey extends (List[Any]) => Any
  23. trait GetPattern[Schema[_]] extends AnyRef
  24. trait GetPatternFor[Schema[_], T] extends AnyRef
  25. case class IDWhereForTable(keys: Keys, ids: List[Any]) extends WhereForTable with Product with Serializable
  26. trait IsLinkFieldFilter[F[_]] extends FieldFilter[F]
  27. trait IsObjectFieldFilter[F[_]] extends FieldFilter[F]
  28. trait IsSimpleFieldFilter[F[_]] extends FieldFilter[F]
  29. trait JsonToStream[F[_], T] extends AnyRef
  30. trait JsonToStreamFor[Schema[_]] extends AnyRef
  31. case class Keys(list: List[FieldType[_]]) extends Product with Serializable
  32. case class KeysAndIndex(list: List[(Int, FieldType[_])]) extends Product with Serializable
  33. trait LinkPrefixFrom[Context] extends AnyRef
  34. final case class LinkUrl(url: String) extends AnyVal with Product with Serializable
  35. 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

  36. case class MainBulkDataPointer(nth: Int, bulkData: OrmBulkData[_], children: List[ChildBulkDataPointer]) extends BulkDataPointer with Product with Serializable
  37. case class MainEntity(alias: Alias, primaryKeyField: Keys, dataFields: List[FieldType[_]], children: List[ChildEntity]) extends OrmEntity with Product with Serializable
  38. trait MakeContextFromLink[Context] extends AnyRef
  39. 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

  40. case class ManyToOneEntity(alias: Alias, primaryKeyField: Keys, idInParent: Keys, dataFields: List[FieldType[_]], children: List[ChildEntity], where: Option[WhereForChildTable]) 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

  41. case class MultipleFieldDate(date: Date, dateFormatter: ThreadLocal[SimpleDateFormat]) extends Product with Serializable
  42. case class NullBulkDataPointer(bulkData: ChildOrmBulkData[_], children: List[ChildBulkDataPointer]) extends ChildBulkDataPointer with Product with Serializable
  43. 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

  44. case class OneToManyEntity(alias: Alias, primaryKeyField: Keys, parentId: Keys, dataFields: List[FieldType[_]], children: List[ChildEntity], where: Option[WhereForChildTable]) extends ChildEntity with Product with Serializable
  45. case class OneToZeroOneEntity(alias: Alias, primaryKeyField: Keys, idInParent: Keys, dataFields: List[FieldType[_]], children: List[ChildEntity], where: Option[WhereForChildTable]) 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

  46. case class OrmBatchConfig(dataSource: DataSource, batchSize: Int, whereForTable: WhereForTable = NullWhereForTable) extends Product with Serializable
  47. 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

    *

  48. trait OrmEntity extends FieldTypeToIndex
  49. trait OrmFactory[Schema[_]] extends AnyRef
  50. class OrmFactoryImpl[Schema[_]] extends OrmFactory[Schema]
  51. trait OrmMaker[T] extends (MainEntity) => (Map[OrmEntity, List[List[AnyRef]]]) => Stream[T]
  52. trait OrmStrategies extends AnyRef
  53. 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
  54. trait Placeholder extends AnyRef
  55. 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

  56. case class SameIdEntity(alias: Alias, primaryKeyField: Keys, dataFields: List[FieldType[_]], children: List[ChildEntity], where: Option[WhereForChildTable]) extends SingleChild with Product with Serializable
  57. 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.

  58. trait SingleChild extends ChildEntity
  59. case class TableName(name: String, description: String) extends Product with Serializable
  60. trait ToAliasAndFieldTypes[Schema[_]] extends AnyRef
  61. trait ToFieldType[T] extends AnyRef
  62. trait ToWritableForm[T] extends (T) => List[(OrmEntity, List[List[AnyRef]])]
  63. trait ValueFromMultipleAliasFields[Schema[_], T] extends AnyRef
  64. trait WhereForChildTable extends AnyRef
  65. trait WhereForTable extends SetParams[PreparedStatement]
  66. trait Write[T] extends AnyRef
  67. class WriteToJsonForSchema[Schema[_], Context] extends AnyRef

Value Members

  1. object Alias extends Serializable
  2. object AliasAndFieldType extends Serializable
  3. object BulkDataPointer
  4. object EntityStrategy extends Serializable
  5. object FastOrmSql
  6. object FastReader
  7. object FastReaderDal
  8. object FieldType extends Serializable
  9. object GetDateFormatter
  10. object IsObjectFieldFilter
  11. object IsSimpleFieldFilter
  12. object JsonToStream
  13. object Keys extends Serializable
  14. object LinkUrl extends Serializable
  15. object MainBulkData extends Serializable
  16. object MultipleFieldDate extends Serializable
  17. case object NullWhereForTable extends WhereForTable with Product with Serializable
  18. object OrmFactory
  19. object OrmMaker
  20. object OrmStrategies extends OrmStrategies

    This applies the sql defined in FastOrmSql to the entities in a composite entity

  21. object PartitionedSchema extends Serializable
  22. object SchemaMapKey
  23. object Table
  24. object ToFieldType
  25. object ValueFromMultipleAliasFields

Ungrouped