# SelectionSet

interface SelectionSet<T : CompositeOutput>(source)

SelectionSet describes a type-safe interface to querying and transforming a GraphQL selection set.

#### Inheritors

NoSelections

## Types

Companion
Link copied to clipboard
object Companion
NoSelections
Link copied to clipboard
object NoSelections : SelectionSet<CompositeOutput.NotComposite>

A marker object that defines a SelectionSet for a type that does not support selections. NoSelections can be used in places where a SelectionSet is required but cannot be defined.

## Properties

type
Link copied to clipboard
abstract val type: Type<T>

the type condition of this SelectionSet

## Functions

contains
Link copied to clipboard
abstract fun <U : T> contains(field: Field<U>): Boolean

Returns true if this SelectionSet includes the provided Field.

isEmpty
Link copied to clipboard
abstract fun isEmpty(): Boolean

Returns true if this SelectionSet contains no fields for any valid type projection.

requestsType
Link copied to clipboard
abstract fun <U : T> requestsType(type: Type<U>): Boolean

Returns true if the provided type is requested in this SelectionSet.

selectionSetFor
Link copied to clipboard
abstract fun <U : T, R : CompositeOutput> selectionSetFor(field: CompositeField<U, R>): SelectionSet<R>

Return a SelectionSet describing the selections at the provided field. If the current SelectionSet does not include the provided field, then an empty SelectionSet will be returned.

abstract fun <U : T> selectionSetFor(type: Type<U>): SelectionSet<U>

Return a SelectionSet that is a projection of the selections on the provided type. The returned SelectionSet may include fields that are selected on a parent interface or union -- if you need to know if a projected SelectionSet contains non-inherited selections for a type, see requestsType