Skip to content

Commit e10e524

Browse files
committed
refactoring of list completion
1 parent 22789c2 commit e10e524

1 file changed

Lines changed: 10 additions & 12 deletions

File tree

src/main/java/graphql/execution/ExecutionStrategy.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@
99
import org.slf4j.Logger;
1010
import org.slf4j.LoggerFactory;
1111

12-
import java.util.ArrayList;
13-
import java.util.LinkedHashMap;
14-
import java.util.List;
15-
import java.util.Map;
12+
import java.util.*;
1613

1714
import static graphql.introspection.Introspection.*;
1815

@@ -62,14 +59,7 @@ protected ExecutionResult completeValue(ExecutionContext executionContext, Graph
6259
} else if (result == null) {
6360
return null;
6461
} else if (fieldType instanceof GraphQLList) {
65-
if (result.getClass().isArray()) {
66-
List<Object> resultList = new ArrayList<>();
67-
for (Object value : (Object[]) result) {
68-
resultList.add(value);
69-
}
70-
return completeValueForList(executionContext, (GraphQLList) fieldType, fields, resultList);
71-
}
72-
return completeValueForList(executionContext, (GraphQLList) fieldType, fields, (List<Object>) result);
62+
return completeValueForList(executionContext, (GraphQLList) fieldType, fields, result);
7363
} else if (fieldType instanceof GraphQLScalarType) {
7464
return completeValueForScalar((GraphQLScalarType) fieldType, result);
7565
} else if (fieldType instanceof GraphQLEnumType) {
@@ -99,6 +89,14 @@ protected ExecutionResult completeValue(ExecutionContext executionContext, Graph
9989
return executionContext.getExecutionStrategy().execute(executionContext, resolvedType, result, subFields);
10090
}
10191

92+
private ExecutionResult completeValueForList(ExecutionContext executionContext, GraphQLList fieldType, List<Field> fields, Object result) {
93+
if (result.getClass().isArray()) {
94+
result = Arrays.asList((Object[]) result);
95+
}
96+
97+
return completeValueForList(executionContext, fieldType, fields, (List<Object>) result);
98+
}
99+
102100
protected GraphQLObjectType resolveType(GraphQLInterfaceType graphQLInterfaceType, Object value) {
103101
GraphQLObjectType result = graphQLInterfaceType.getTypeResolver().getType(value);
104102
if (result == null) {

0 commit comments

Comments
 (0)