Skip to content

Commit dc1e9ba

Browse files
committed
Changed the way the union resolver matches an implementation.
Now its by name (if the name of the answer from the datafetcher is the same as one of the candidates)
1 parent 7ee41ed commit dc1e9ba

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/main/java/graphql/annotations/typeResolvers/UnionTypeResolver.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@
1616

1717
import graphql.TypeResolutionEnvironment;
1818
import graphql.annotations.processor.ProcessingElementsContainer;
19-
import graphql.schema.*;
19+
import graphql.schema.GraphQLObjectType;
2020
import graphql.schema.GraphQLType;
21+
import graphql.schema.TypeResolver;
2122

2223
import java.util.Arrays;
2324
import java.util.HashMap;
@@ -29,14 +30,16 @@ public class UnionTypeResolver implements TypeResolver {
2930

3031
public UnionTypeResolver(Class<?>[] classes, ProcessingElementsContainer container) {
3132
Arrays.stream(classes).
32-
forEach(c -> types.put(c,container.getDefaultTypeFunction().buildType(c, null, container)));
33+
forEach(c -> types.put(c, container.getDefaultTypeFunction().buildType(c, null, container)));
3334
}
3435

3536
@Override
3637
public GraphQLObjectType getType(TypeResolutionEnvironment env) {
3738
Object object = env.getObject();
38-
Optional<Map.Entry<Class<?>, GraphQLType>> maybeType = types.entrySet().
39-
stream().filter(e -> e.getKey().isAssignableFrom(object.getClass())).findFirst();
39+
Optional<Map.Entry<Class<?>, GraphQLType>> maybeType = types.entrySet()
40+
.stream().filter(e -> object.getClass().getSimpleName()
41+
.equals(e.getKey().getSimpleName())).findFirst();
42+
4043
if (maybeType.isPresent()) {
4144
return (GraphQLObjectType) maybeType.get().getValue();
4245
} else {

0 commit comments

Comments
 (0)