Skip to content

Commit 6d62ae7

Browse files
author
vkarthikeya
committed
Hactoberfest2023: code optimization
1 parent fa99742 commit 6d62ae7

File tree

1 file changed

+13
-26
lines changed

1 file changed

+13
-26
lines changed

src/main/java/com/intuit/graphql/orchestrator/schema/transform/FieldResolverTransformerPreMerge.java

Lines changed: 13 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.intuit.graphql.orchestrator.resolverdirective.InvalidDirectivePairingException;
1111
import com.intuit.graphql.orchestrator.resolverdirective.NotAValidLocationForFieldResolverDirective;
1212
import com.intuit.graphql.orchestrator.utils.XtextTypeUtils;
13+
import com.intuit.graphql.orchestrator.utils.XtextUtils;
1314
import com.intuit.graphql.orchestrator.xtext.XtextGraph;
1415
import java.util.ArrayList;
1516
import java.util.List;
@@ -58,34 +59,20 @@ private void validateFieldWithResolver(List<FieldResolverContext> fieldResolverC
5859
}
5960

6061
EList<Directive> directives = fieldDefinition.getDirectives();
61-
boolean hasResolverDirective = false;
62-
boolean hasExternalDirective = false;
63-
boolean hasProvidesDirective = false;
64-
boolean hasRequiresDirective = false;
65-
66-
for (Directive directive : directives) {
67-
String directiveName = directive.getDefinition().getName();
68-
switch (directiveName) {
69-
case "resolver":
70-
hasResolverDirective = true;
71-
break;
72-
case "external":
73-
hasExternalDirective = true;
74-
break;
75-
case "provides":
76-
hasProvidesDirective = true;
77-
break;
78-
case "requires":
79-
hasRequiresDirective = true;
80-
break;
81-
}
82-
}
8362

84-
if (hasResolverDirective) {
85-
if (hasExternalDirective || hasProvidesDirective || hasRequiresDirective) {
86-
throw new InvalidDirectivePairingException(fieldName, parentTypeName);
87-
}
63+
boolean[] properDirectivesDefs = {false};
64+
65+
XtextUtils.getDirectivesWithNameFromDefinition((FieldDefinition) directives, "external")
66+
.forEach(directive -> properDirectivesDefs[0] = true);
67+
XtextUtils.getDirectivesWithNameFromDefinition((FieldDefinition) directives, "provides")
68+
.forEach(directive -> properDirectivesDefs[0] = true);
69+
XtextUtils.getDirectivesWithNameFromDefinition((FieldDefinition) directives, "requires")
70+
.forEach(directive -> properDirectivesDefs[0] = true);
71+
72+
if(properDirectivesDefs[0]) {
73+
throw new InvalidDirectivePairingException(fieldName, parentTypeName);
8874
}
75+
8976
});
9077
}
9178

0 commit comments

Comments
 (0)