Packages

t

io.getquill.codegen.gen

CodeGeneratorComponents

trait CodeGeneratorComponents extends HasBasicMeta with QuerySchemaNaming

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. CodeGeneratorComponents
  2. QuerySchemaNaming
  3. HasBasicMeta
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. type ColumnGetter = (ColumnMeta) => String
  2. abstract type ColumnMeta <: BasicColumnMeta
    Definition Classes
    HasBasicMeta
  3. abstract type ConnectionMaker
  4. type QuerySchemaNaming = (TableMeta) => String
  5. type SchemaReader = (ConnectionMaker) => Seq[RawSchema[TableMeta, ColumnMeta]]
  6. abstract type TableMeta <: BasicTableMeta
    Definition Classes
    HasBasicMeta
  7. abstract type TypeInfo
  8. type Typer = (TypeInfo) => Option[ClassTag[_]]

Abstract Value Members

  1. abstract def filter(tc: RawSchema[TableMeta, ColumnMeta]): Boolean
  2. abstract def nameParser: NameParser
  3. abstract def namespacer: Namespacer[TableMeta]

    Take the schema of a table and convert it to something a object/package etc...

    Take the schema of a table and convert it to something a object/package etc... can actually be named as i.e. a namespace.

  4. abstract def packagingStrategy: PackagingStrategy
  5. abstract def schemaReader: SchemaReader
  6. abstract def typer: Typer
  7. abstract def unrecognizedTypeStrategy: UnrecognizedTypeStrategy

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  6. def defaultExcludedSchemas: Set[String]
  7. def defaultNamespace: String
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  11. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. def querySchemaImports: String
  18. def querySchemaNaming: QuerySchemaNaming

    When defining your query schema object, this will name the method which produces the query schema.

    When defining your query schema object, this will name the method which produces the query schema. It will be named query by default so if you are doing Table Stereotyping, be sure it's something reasonable like (ts) => ts.tableName.snakeToLowerCamel

    
    case class Person(firstName:String, lastName:String, age:Int)
    
    object Person {
      // The method will be 'query' by default which is good if you are not stereotyping.
      def query = querySchema[Person](...)
    
    }
    

    Now let's take an example where you have a database that has two schemas ALPHA and BRAVO, each with a table called Person and you want to stereotype the two schemas into one table case class. In this case you have to be sure that memberNamer is something like (ts) => ts.tableName.snakeToLowerCamel so you'll get a different method for every querySchema.

    
    case class Person(firstName:String, lastName:String, age:Int)
    
    object Person {
      // Taking ts.tableName.snakeToLowerCamel will ensure each one has a different name. Otherise
      // all of them will be 'query' which will result in a compile error.
      def alphaPerson = querySchema[Person]("ALPHA.PERSON", ...)
      def bravoPerson = querySchema[Person]("BRAVO.PERSON", ...)
    
    }
    

  19. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  20. def toString(): String
    Definition Classes
    AnyRef → Any
  21. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  22. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  23. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  24. object "query" extends CodeGeneratorComponents.QuerySchemaNaming
    Definition Classes
    QuerySchemaNaming
  25. object [namespace][Table] extends CodeGeneratorComponents.QuerySchemaNaming
    Definition Classes
    QuerySchemaNaming

Inherited from gen.QuerySchemaNaming

Inherited from HasBasicMeta

Inherited from AnyRef

Inherited from Any

Ungrouped