Packages

case class InContext(from: List[FromContext]) extends Product with Serializable

Simple utility that checks if if an AST entity refers to a entity. It traverses through the context types to find out what kind of context a variable refers to. For example, in a query like:

query[Pair].map(p => Pair(p.a, p.b)).distinct.map(p => (p.b, p.a))

Yielding SQL like this:

SELECT p.b, p.a FROM (SELECT DISTINCT p.a, p.b FROM pair p) AS p

the inner p.a and p.b will have a TableContext while the outer p.b and p.a will have a QueryContext.

Note that there are some cases where the id of a field is not in a FromContext at all. For example, in a query like this:

query[Human].filter(h => query[Robot].filter(r => r.friend == h.id).nonEmpty)

Where the sql produced is something like this:

SELECT h.id FROM human h WHERE EXISTS (SELECT r.* FROM robot r WHERE r.friend = h.id)

the field r.friend is selected from a sub-query of an SQL operation (i.e. EXISTS (...)) so a from-context of it will not exist at all. When deciding which properties to treat as sub-select properties (e.g. if we want to make sure NOT to apply a naming-schema on them) we need to take care to understand that we may not know the FromContext that a property comes from since it may not exist.

Linear Supertypes
Serializable, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. InContext
  2. Serializable
  3. Product
  4. Equals
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new InContext(from: List[FromContext])

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 contextReferenceType(ast: Ast): Option[InContextType]
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  9. val from: List[FromContext]
  10. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. def isEntityReference(ast: Ast): Boolean
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. def isSubselect(ast: Ast): Boolean
  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 productElementNames: Iterator[String]
    Definition Classes
    Product
  18. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  19. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  20. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  21. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped