Skip to content

Commit 287f774

Browse files
committed
PR feedback
1 parent 0cf6283 commit 287f774

19 files changed

+122
-92
lines changed

src/main/java/graphql/execution/ConditionalNodes.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package graphql.execution;
22

33
import graphql.language.Directive;
4+
import graphql.language.NodeUtil;
45

56
import java.util.List;
67
import java.util.Map;
78

89
import static graphql.Directives.IncludeDirective;
910
import static graphql.Directives.SkipDirective;
11+
import static graphql.language.NodeUtil.directivesByName;
1012

1113

1214
public class ConditionalNodes {
@@ -19,14 +21,14 @@ public ConditionalNodes() {
1921

2022
public boolean shouldInclude(Map<String, Object> variables, List<Directive> directives) {
2123

22-
Directive skipDirective = findDirective(directives, SkipDirective.getName());
24+
Directive skipDirective = getDirectiveByName(directives, SkipDirective.getName());
2325
if (skipDirective != null) {
2426
Map<String, Object> argumentValues = valuesResolver.getArgumentValues(SkipDirective.getArguments(), skipDirective.getArguments(), variables);
2527
return !(Boolean) argumentValues.get("if");
2628
}
2729

2830

29-
Directive includeDirective = findDirective(directives, IncludeDirective.getName());
31+
Directive includeDirective = getDirectiveByName(directives, IncludeDirective.getName());
3032
if (includeDirective != null) {
3133
Map<String, Object> argumentValues = valuesResolver.getArgumentValues(IncludeDirective.getArguments(), includeDirective.getArguments(), variables);
3234
return (Boolean) argumentValues.get("if");
@@ -35,8 +37,8 @@ public boolean shouldInclude(Map<String, Object> variables, List<Directive> dire
3537
return true;
3638
}
3739

38-
private Directive findDirective(List<Directive> directives, String name) {
39-
return Directive.getDirectivesMap(directives).get(name);
40+
private Directive getDirectiveByName(List<Directive> directives, String name) {
41+
return directivesByName(directives).get(name);
4042
}
4143

4244
}

src/main/java/graphql/language/Directive.java

Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,12 @@
11
package graphql.language;
22

33

4-
import graphql.Internal;
5-
64
import java.util.ArrayList;
75
import java.util.Collections;
86
import java.util.List;
97
import java.util.Map;
10-
import java.util.function.BinaryOperator;
11-
import java.util.function.Function;
12-
import java.util.stream.Collectors;
138

14-
import static java.util.function.Function.identity;
9+
import static graphql.language.NodeUtil.argumentByName;
1510

1611
public class Directive extends AbstractNode {
1712
private final String name;
@@ -30,38 +25,19 @@ public List<Argument> getArguments() {
3025
return arguments;
3126
}
3227

33-
public Map<String, Argument> getArgumentsMap() {
28+
public Map<String, Argument> getArgumentsByName() {
3429
// the spec says that args MUST be unique within context
35-
return toNameMap(arguments, Argument::getName);
30+
return argumentByName(arguments);
3631
}
3732

3833
public Argument getArgument(String argumentName) {
39-
return getArgumentsMap().get(argumentName);
34+
return getArgumentsByName().get(argumentName);
4035
}
4136

4237
public String getName() {
4338
return name;
4439
}
4540

46-
/*
47-
* A common helper to turn a list of directives into a map according to spec
48-
*/
49-
@Internal
50-
public static Map<String, Directive> getDirectivesMap(List<Directive> directives) {
51-
return toNameMap(directives, Directive::getName);
52-
}
53-
54-
private static <T> Map<String, T> toNameMap(List<T> namedObjects, Function<T, String> keyFn) {
55-
return namedObjects.stream().collect(Collectors.toMap(
56-
keyFn,
57-
identity(),
58-
mergeFirst())
59-
);
60-
}
61-
62-
private static <T> BinaryOperator<T> mergeFirst() {
63-
return (o1, o2) -> o1;
64-
}
6541

6642
@Override
6743
public List<Node> getChildren() {

src/main/java/graphql/language/EnumTypeDefinition.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import java.util.List;
55
import java.util.Map;
66

7+
import static graphql.language.NodeUtil.directivesByName;
8+
79
public class EnumTypeDefinition extends AbstractNode implements TypeDefinition {
810
private String name;
911
private List<EnumValueDefinition> enumValueDefinitions;
@@ -27,12 +29,12 @@ public List<Directive> getDirectives() {
2729
return directives;
2830
}
2931

30-
public Map<String, Directive> getDirectivesMap() {
31-
return Directive.getDirectivesMap(directives);
32+
public Map<String, Directive> getDirectivesByName() {
33+
return directivesByName(directives);
3234
}
3335

3436
public Directive getDirective(String directiveName) {
35-
return getDirectivesMap().get(directiveName);
37+
return getDirectivesByName().get(directiveName);
3638
}
3739

3840

src/main/java/graphql/language/Field.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import java.util.List;
88
import java.util.Map;
99

10+
import static graphql.language.NodeUtil.directivesByName;
11+
1012
/*
1113
* This is provided to a DataFetcher, therefore it is a public API.
1214
* This might change in the future.
@@ -91,12 +93,12 @@ public List<Directive> getDirectives() {
9193
return directives;
9294
}
9395

94-
public Map<String, Directive> getDirectivesMap() {
95-
return Directive.getDirectivesMap(directives);
96+
public Map<String, Directive> getDirectivesByName() {
97+
return directivesByName(directives);
9698
}
9799

98100
public Directive getDirective(String directiveName) {
99-
return getDirectivesMap().get(directiveName);
101+
return getDirectivesByName().get(directiveName);
100102
}
101103

102104

src/main/java/graphql/language/FieldDefinition.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import java.util.List;
66
import java.util.Map;
77

8+
import static graphql.language.NodeUtil.directivesByName;
9+
810
public class FieldDefinition extends AbstractNode {
911
private String name;
1012
private Type type;
@@ -40,12 +42,12 @@ public List<Directive> getDirectives() {
4042
return directives;
4143
}
4244

43-
public Map<String, Directive> getDirectivesMap() {
44-
return Directive.getDirectivesMap(directives);
45+
public Map<String, Directive> getDirectivesByName() {
46+
return directivesByName(directives);
4547
}
4648

4749
public Directive getDirective(String directiveName) {
48-
return getDirectivesMap().get(directiveName);
50+
return getDirectivesByName().get(directiveName);
4951
}
5052

5153

src/main/java/graphql/language/FragmentDefinition.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import java.util.List;
88
import java.util.Map;
99

10+
import static graphql.language.NodeUtil.directivesByName;
11+
1012
/**
1113
* Provided to the DataFetcher, therefore public API
1214
*/
@@ -54,12 +56,12 @@ public List<Directive> getDirectives() {
5456
return directives;
5557
}
5658

57-
public Map<String, Directive> getDirectivesMap() {
58-
return Directive.getDirectivesMap(directives);
59+
public Map<String, Directive> getDirectivesByName() {
60+
return directivesByName(directives);
5961
}
6062

6163
public Directive getDirective(String directiveName) {
62-
return getDirectivesMap().get(directiveName);
64+
return getDirectivesByName().get(directiveName);
6365
}
6466

6567
public void setDirectives(List<Directive> directives) {

src/main/java/graphql/language/FragmentSpread.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import java.util.List;
66
import java.util.Map;
77

8+
import static graphql.language.NodeUtil.directivesByName;
9+
810
public class FragmentSpread extends AbstractNode implements Selection {
911

1012
private String name;
@@ -29,12 +31,12 @@ public List<Directive> getDirectives() {
2931
return directives;
3032
}
3133

32-
public Map<String, Directive> getDirectivesMap() {
33-
return Directive.getDirectivesMap(directives);
34+
public Map<String, Directive> getDirectivesByName() {
35+
return directivesByName(directives);
3436
}
3537

3638
public Directive getDirective(String directiveName) {
37-
return getDirectivesMap().get(directiveName);
39+
return getDirectivesByName().get(directiveName);
3840
}
3941

4042

src/main/java/graphql/language/InlineFragment.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import java.util.List;
66
import java.util.Map;
77

8+
import static graphql.language.NodeUtil.directivesByName;
9+
810
public class InlineFragment extends AbstractNode implements Selection {
911
private TypeName typeCondition;
1012
private List<Directive> directives = new ArrayList<>();
@@ -42,12 +44,12 @@ public List<Directive> getDirectives() {
4244
return directives;
4345
}
4446

45-
public Map<String, Directive> getDirectivesMap() {
46-
return Directive.getDirectivesMap(directives);
47+
public Map<String, Directive> getDirectivesByName() {
48+
return directivesByName(directives);
4749
}
4850

4951
public Directive getDirective(String directiveName) {
50-
return getDirectivesMap().get(directiveName);
52+
return getDirectivesByName().get(directiveName);
5153
}
5254

5355

src/main/java/graphql/language/InputObjectTypeDefinition.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import java.util.List;
66
import java.util.Map;
77

8+
import static graphql.language.NodeUtil.directivesByName;
9+
810
public class InputObjectTypeDefinition extends AbstractNode implements TypeDefinition {
911
private String name;
1012
private List<Directive> directives = new ArrayList<>();
@@ -18,12 +20,12 @@ public List<Directive> getDirectives() {
1820
return directives;
1921
}
2022

21-
public Map<String, Directive> getDirectivesMap() {
22-
return Directive.getDirectivesMap(directives);
23+
public Map<String, Directive> getDirectivesByName() {
24+
return directivesByName(directives);
2325
}
2426

2527
public Directive getDirective(String directiveName) {
26-
return getDirectivesMap().get(directiveName);
28+
return getDirectivesByName().get(directiveName);
2729
}
2830

2931
public List<InputValueDefinition> getInputValueDefinitions() {

src/main/java/graphql/language/InputValueDefinition.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import java.util.List;
66
import java.util.Map;
77

8+
import static graphql.language.NodeUtil.directivesByName;
9+
810
public class InputValueDefinition extends AbstractNode {
911
private String name;
1012
private Type type;
@@ -49,12 +51,12 @@ public List<Directive> getDirectives() {
4951
return directives;
5052
}
5153

52-
public Map<String, Directive> getDirectivesMap() {
53-
return Directive.getDirectivesMap(directives);
54+
public Map<String, Directive> getDirectivesByName() {
55+
return directivesByName(directives);
5456
}
5557

5658
public Directive getDirective(String directiveName) {
57-
return getDirectivesMap().get(directiveName);
59+
return getDirectivesByName().get(directiveName);
5860
}
5961

6062

0 commit comments

Comments
 (0)