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 NormalizedFields 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 givenNormalizedFieldmaps 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 theMergedFieldgiven aNormalizedFieldgetNormalizedField(MergedField mergedField, GraphQLFieldsContainer fieldsContainer, ResultPath resultPath) This will find aNormalizedFieldgiven a merged field and a result path.getNormalizedFields(Field field) Looks up one or moreNormalizedFields given aFieldAST element in the operationintintgetQueryDirectives(NormalizedField NormalizedField) This looks up theQueryDirectivesassociated 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
NormalizedFields 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 givenNormalizedFieldmaps 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
NormalizedFields 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
FieldtoNormalizedField
-
getNormalizedFields
Looks up one or moreNormalizedFields given aFieldAST element in the operation- Parameters:
field- the field to look up- Returns:
- zero, one or more possible
NormalizedFields that represent that field
-
getNormalizedFieldToMergedField
- Returns:
- a map of
NormalizedFieldtoMergedFields
-
getMergedField
Looks up theMergedFieldgiven aNormalizedField- Parameters:
NormalizedField- the field to use the key- Returns:
- a
MergedFieldor null if its not present
-
getNormalizedFieldToQueryDirectives
- Returns:
- a map of
NormalizedFieldto itsQueryDirectives
-
getQueryDirectives
This looks up theQueryDirectivesassociated 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 aNormalizedFieldgiven 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
-