Package graphql.validation.rules
Class OverlappingFieldsCanBeMerged
java.lang.Object
graphql.validation.AbstractRule
graphql.validation.rules.OverlappingFieldsCanBeMerged
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classprivate static class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Set<Set<OverlappingFieldsCanBeMerged.FieldAndType>> private final Set<Set<OverlappingFieldsCanBeMerged.FieldAndType>> -
Constructor Summary
ConstructorsConstructorDescriptionOverlappingFieldsCanBeMerged(ValidationContext validationContext, ValidationErrorCollector validationErrorCollector) -
Method Summary
Modifier and TypeMethodDescriptionprivate voidcollectFields(Map<String, Set<OverlappingFieldsCanBeMerged.FieldAndType>> fieldMap, SelectionSet selectionSet, GraphQLType parentType, Set<String> visitedFragmentSpreads) private voidcollectFieldsForField(Map<String, Set<OverlappingFieldsCanBeMerged.FieldAndType>> fieldMap, GraphQLType parentType, Field field) private voidcollectFieldsForFragmentSpread(Map<String, Set<OverlappingFieldsCanBeMerged.FieldAndType>> fieldMap, Set<String> visitedFragmentSpreads, FragmentSpread fragmentSpread) private voidcollectFieldsForInlineFragment(Map<String, Set<OverlappingFieldsCanBeMerged.FieldAndType>> fieldMap, Set<String> visitedFragmentSpreads, GraphQLType parentType, InlineFragment inlineFragment) private ArgumentfindArgumentByName(String name, List<Argument> arguments) private GraphQLTypeprivate GraphQLTypegetGraphQLTypeForInlineFragment(GraphQLType parentType, InlineFragment inlineFragment) private GraphQLFieldDefinitiongetVisibleFieldDefinition(GraphQLFieldsContainer fieldsContainer, Field field) private List<Set<OverlappingFieldsCanBeMerged.FieldAndType>> private booleanvoidleaveSelectionSet(SelectionSet selectionSet) mergeSubSelections(Set<OverlappingFieldsCanBeMerged.FieldAndType> sameNameFields) mkNotSameTypeError(com.google.common.collect.ImmutableList<String> path, List<Field> fields, GraphQLType typeA, GraphQLType typeB) private StringpathToString(com.google.common.collect.ImmutableList<String> path) requireSameNameAndArguments(com.google.common.collect.ImmutableList<String> path, Set<OverlappingFieldsCanBeMerged.FieldAndType> fieldAndTypes) requireSameOutputTypeShape(com.google.common.collect.ImmutableList<String> path, Set<OverlappingFieldsCanBeMerged.FieldAndType> fieldAndTypes) private booleansameArguments(List<Argument> arguments1, List<Argument> arguments2) private voidsameForCommonParentsByName(Map<String, Set<OverlappingFieldsCanBeMerged.FieldAndType>> fieldMap, com.google.common.collect.ImmutableList<String> currentPath, List<OverlappingFieldsCanBeMerged.Conflict> conflictsResult) private voidsameResponseShapeByName(Map<String, Set<OverlappingFieldsCanBeMerged.FieldAndType>> fieldMap, com.google.common.collect.ImmutableList<String> currentPath, List<OverlappingFieldsCanBeMerged.Conflict> conflictsResult) private booleansameType(GraphQLType type1, GraphQLType type2) Methods inherited from class graphql.validation.AbstractRule
addError, addError, addError, checkArgument, checkDirective, checkDocument, checkField, checkFragmentDefinition, checkFragmentSpread, checkInlineFragment, checkObjectValue, checkOperationDefinition, checkSelectionSet, checkTypeName, checkVariable, checkVariableDefinition, documentFinished, getErrors, getQueryPath, getValidationContext, getValidationErrorCollector, getValidationUtil, i18n, i18n, isVisitFragmentSpreads, leaveOperationDefinition, setVisitFragmentSpreads, toString
-
Field Details
-
sameResponseShapeChecked
-
sameForCommonParentsChecked
-
conflictsReported
-
-
Constructor Details
-
OverlappingFieldsCanBeMerged
public OverlappingFieldsCanBeMerged(ValidationContext validationContext, ValidationErrorCollector validationErrorCollector)
-
-
Method Details
-
leaveSelectionSet
- Overrides:
leaveSelectionSetin classAbstractRule
-
collectFields
private void collectFields(Map<String, Set<OverlappingFieldsCanBeMerged.FieldAndType>> fieldMap, SelectionSet selectionSet, GraphQLType parentType, Set<String> visitedFragmentSpreads) -
collectFieldsForFragmentSpread
private void collectFieldsForFragmentSpread(Map<String, Set<OverlappingFieldsCanBeMerged.FieldAndType>> fieldMap, Set<String> visitedFragmentSpreads, FragmentSpread fragmentSpread) -
getGraphQLTypeForFragmentDefinition
-
collectFieldsForInlineFragment
private void collectFieldsForInlineFragment(Map<String, Set<OverlappingFieldsCanBeMerged.FieldAndType>> fieldMap, Set<String> visitedFragmentSpreads, GraphQLType parentType, InlineFragment inlineFragment) -
getGraphQLTypeForInlineFragment
private GraphQLType getGraphQLTypeForInlineFragment(GraphQLType parentType, InlineFragment inlineFragment) -
collectFieldsForField
private void collectFieldsForField(Map<String, Set<OverlappingFieldsCanBeMerged.FieldAndType>> fieldMap, GraphQLType parentType, Field field) -
getVisibleFieldDefinition
private GraphQLFieldDefinition getVisibleFieldDefinition(GraphQLFieldsContainer fieldsContainer, Field field) -
findConflicts
private List<OverlappingFieldsCanBeMerged.Conflict> findConflicts(Map<String, Set<OverlappingFieldsCanBeMerged.FieldAndType>> fieldMap) -
sameResponseShapeByName
private void sameResponseShapeByName(Map<String, Set<OverlappingFieldsCanBeMerged.FieldAndType>> fieldMap, com.google.common.collect.ImmutableList<String> currentPath, List<OverlappingFieldsCanBeMerged.Conflict> conflictsResult) -
mergeSubSelections
private Map<String,Set<OverlappingFieldsCanBeMerged.FieldAndType>> mergeSubSelections(Set<OverlappingFieldsCanBeMerged.FieldAndType> sameNameFields) -
sameForCommonParentsByName
private void sameForCommonParentsByName(Map<String, Set<OverlappingFieldsCanBeMerged.FieldAndType>> fieldMap, com.google.common.collect.ImmutableList<String> currentPath, List<OverlappingFieldsCanBeMerged.Conflict> conflictsResult) -
groupByCommonParents
private List<Set<OverlappingFieldsCanBeMerged.FieldAndType>> groupByCommonParents(Set<OverlappingFieldsCanBeMerged.FieldAndType> fields) -
isInterfaceOrUnion
-
requireSameNameAndArguments
private OverlappingFieldsCanBeMerged.Conflict requireSameNameAndArguments(com.google.common.collect.ImmutableList<String> path, Set<OverlappingFieldsCanBeMerged.FieldAndType> fieldAndTypes) -
pathToString
-
sameArguments
-
findArgumentByName
-
requireSameOutputTypeShape
private OverlappingFieldsCanBeMerged.Conflict requireSameOutputTypeShape(com.google.common.collect.ImmutableList<String> path, Set<OverlappingFieldsCanBeMerged.FieldAndType> fieldAndTypes) -
mkNotSameTypeError
private OverlappingFieldsCanBeMerged.Conflict mkNotSameTypeError(com.google.common.collect.ImmutableList<String> path, List<Field> fields, GraphQLType typeA, GraphQLType typeB) -
sameType
-