Package graphql.normalized.nf
Class NormalizedOperation
java.lang.Object
graphql.normalized.nf.NormalizedOperation
A
NormalizedOperation
represent how the text of a graphql operation (sometimes known colloquially as a query)
will be executed at runtime according to the graphql specification. It handles complex mechanisms like merging
duplicate fields into one and also detecting when the types of a given field may actually be for more than one possible object
type.
An operation consists of a list of NormalizedField
s in a parent child hierarchy
-
Constructor Summary
ConstructorsConstructorDescriptionNormalizedOperation
(OperationDefinition.Operation operation, String operationName, List<NormalizedField> rootFields, com.google.common.collect.ImmutableListMultimap<Field, NormalizedField> fieldToNormalizedField, Map<NormalizedField, MergedField> normalizedFieldToMergedField, Map<NormalizedField, QueryDirectives> normalizedFieldToQueryDirectives, com.google.common.collect.ImmutableListMultimap<FieldCoordinates, NormalizedField> coordinatesToNormalizedFields, int operationFieldCount, int operationDepth) -
Method Summary
Modifier and TypeMethodDescriptioncom.google.common.collect.ImmutableListMultimap
<FieldCoordinates, NormalizedField> This multimap shows how a givenNormalizedField
maps to a one or more field coordinate in the schemacom.google.common.collect.ImmutableListMultimap
<Field, NormalizedField> This is a multimap and the size of it reflects all the normalized fields in the operationgetMergedField
(NormalizedField NormalizedField) Looks up theMergedField
given aNormalizedField
getNormalizedField
(MergedField mergedField, GraphQLFieldsContainer fieldsContainer, ResultPath resultPath) This will find aNormalizedField
given a merged field and a result path.getNormalizedFields
(Field field) Looks up one or moreNormalizedField
s given aField
AST element in the operationint
int
getQueryDirectives
(NormalizedField NormalizedField) This looks up theQueryDirectives
associated with the givenNormalizedField
-
Constructor Details
-
NormalizedOperation
public NormalizedOperation(OperationDefinition.Operation operation, String operationName, List<NormalizedField> rootFields, com.google.common.collect.ImmutableListMultimap<Field, NormalizedField> fieldToNormalizedField, Map<NormalizedField, MergedField> normalizedFieldToMergedField, Map<NormalizedField, QueryDirectives> normalizedFieldToQueryDirectives, com.google.common.collect.ImmutableListMultimap<FieldCoordinates, NormalizedField> coordinatesToNormalizedFields, int operationFieldCount, int operationDepth)
-
-
Method Details
-
getOperation
- Returns:
- operation AST being executed
-
getOperationName
- Returns:
- the operation name, which can be null
-
getOperationFieldCount
public int getOperationFieldCount()- Returns:
- This returns how many
NormalizedField
s are in the operation.
-
getOperationDepth
public int getOperationDepth()- Returns:
- This returns the depth of the operation
-
getCoordinatesToNormalizedFields
public com.google.common.collect.ImmutableListMultimap<FieldCoordinates,NormalizedField> getCoordinatesToNormalizedFields()This multimap shows how a givenNormalizedField
maps to a one or more field coordinate in the schema- Returns:
- a multimap of fields to schema field coordinates
-
getRootFields
- Returns:
- a list of the top level
NormalizedField
s in this operation.
-
getFieldToNormalizedField
public com.google.common.collect.ImmutableListMultimap<Field,NormalizedField> getFieldToNormalizedField()This is a multimap and the size of it reflects all the normalized fields in the operation- Returns:
- an immutable list multimap of
Field
toNormalizedField
-
getNormalizedFields
Looks up one or moreNormalizedField
s given aField
AST element in the operation- Parameters:
field
- the field to look up- Returns:
- zero, one or more possible
NormalizedField
s that represent that field
-
getNormalizedFieldToMergedField
- Returns:
- a map of
NormalizedField
toMergedField
s
-
getMergedField
Looks up theMergedField
given aNormalizedField
- Parameters:
NormalizedField
- the field to use the key- Returns:
- a
MergedField
or null if its not present
-
getNormalizedFieldToQueryDirectives
- Returns:
- a map of
NormalizedField
to itsQueryDirectives
-
getQueryDirectives
This looks up theQueryDirectives
associated with the givenNormalizedField
- Parameters:
NormalizedField
- the executable normalised field in question- Returns:
- the fields query directives or null
-
getNormalizedField
public NormalizedField getNormalizedField(MergedField mergedField, GraphQLFieldsContainer fieldsContainer, ResultPath resultPath) This will find aNormalizedField
given a merged field and a result path. If this does not find a field it will assert with an exception- Parameters:
mergedField
- the merged fieldfieldsContainer
- the containing type of that fieldresultPath
- the result path in play- Returns:
- the NormalizedField
-