Skip to content

Commit

Permalink
Merge pull request #2495 from graphql-java/overlapping-fields-perform…
Browse files Browse the repository at this point in the history
…ance

improve overlapping fields performance
  • Loading branch information
andimarek committed Aug 2, 2021
2 parents 8e0b509 + 30f78ad commit c7154f8
Show file tree
Hide file tree
Showing 5 changed files with 386 additions and 260 deletions.
11 changes: 0 additions & 11 deletions src/main/java/graphql/util/Anonymizer.java
Original file line number Diff line number Diff line change
Expand Up @@ -741,17 +741,6 @@ public TraversalControl visitDirective(Directive directive, TraverserContext<Nod
return changeNode(context, directive.transform(builder -> builder.name(newName)));
}

// @Override
// public TraversalControl visitStringValue(StringValue node, TraverserContext<Node> context) {
// return changeNode(context, node.transform(builder -> builder.value("stringValue" + stringValueCounter.getAndIncrement())));
// }
//
// @Override
// public TraversalControl visitIntValue(IntValue node, TraverserContext<Node> context) {
// return changeNode(context, node.transform(builder -> builder.value(BigInteger.valueOf(intValueCounter.getAndIncrement()))));
// }
//

@Override
public TraversalControl visitOperationDefinition(OperationDefinition node, TraverserContext<Node> context) {
if (node.getName() != null) {
Expand Down
12 changes: 12 additions & 0 deletions src/main/java/graphql/util/FpKit.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Optional;
import java.util.OptionalInt;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.function.BiFunction;
import java.util.function.BinaryOperator;
Expand Down Expand Up @@ -276,6 +278,16 @@ public static <T> List<T> filterList(Collection<T> list, Predicate<T> filter) {
.collect(Collectors.toList());
}

public static <T> Set<T> filterSet(Set<T> input, Predicate<T> filter) {
LinkedHashSet<T> result = new LinkedHashSet<>();
for (T t : input) {
if (filter.test(t)) {
result.add(t);
}
}
return result;
}

/**
* Used in simple {@link Map#computeIfAbsent(Object, java.util.function.Function)} cases
*
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/graphql/validation/AbstractRule.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import graphql.language.VariableReference;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import static graphql.validation.ValidationError.newValidationError;
Expand Down Expand Up @@ -51,7 +52,7 @@ public ValidationUtil getValidationUtil() {
return validationUtil;
}

public void addError(ValidationErrorType validationErrorType, List<? extends Node<?>> locations, String description) {
public void addError(ValidationErrorType validationErrorType, Collection<? extends Node<?>> locations, String description) {
List<SourceLocation> locationList = new ArrayList<>();
for (Node<?> node : locations) {
locationList.add(node.getSourceLocation());
Expand Down
Loading

0 comments on commit c7154f8

Please sign in to comment.