trait SelectElaborator extends Phase
A compiler phase which translates Select
nodes to be directly
interpretable.
This phase,
1. types bindings according to the schema: i) untyped enums are validated and typed according to their declared type. ii) String and Int bindings are translated to ID bindings where appropriate. iii) default values are supplied for missing arguments. iv) arguments are permuted into the order declared in the schema.
2. eliminates Select arguments by delegating to a model-specific
PartialFunction
which is responsible for translating Select
nodes into a form which is directly interpretable, for example,
replacing them with a Filter
or Unique
node with a
Predicate
which is parameterized by the arguments, ie.,
might be translated to,
UntypedSelect("character", None, List(IDBinding("id", "1000")), Nil, child)
3. GraphQL introspection query field arguments are elaborated.
Select("character, None, Filter(FieldEquals("id", "1000"), child))
- Source
- compiler.scala
- Alphabetic
- By Inheritance
- SelectElaborator
- Phase
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val EnumValueTypeRef: TypeRef
- val FieldTypeRef: TypeRef
- val QueryTypeRef: TypeRef
- val TypeTypeRef: TypeRef
- val TypenameType: ObjectType
- Definition Classes
- Phase
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def elaborateFieldArgs(tpe: NamedType, field: Field, args: List[Binding]): Result[List[Binding]]
- def elaborateIntrospection(ref: TypeRef, name: String, args: List[Binding]): Elab[Unit]
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def introspectionRef(tpe: Type): Option[TypeRef]
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def transform(query: Query): Elab[Query]
Transform the supplied query algebra term
query
.Transform the supplied query algebra term
query
.- Definition Classes
- SelectElaborator → Phase
- def transformSelect(fieldName: String, alias: Option[String], child: Query): Elab[Query]
- Definition Classes
- Phase
- def validateSubselection(fieldName: String, child: Query): Elab[Unit]
- Definition Classes
- Phase
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()