Skip to content

Commit ad87047

Browse files
authored
Merge pull request graphql-java#1133 from graphql-java/restrict-to-sdl-definitions
restrict add to SDLDefinitions
2 parents 4d45311 + 11bbc70 commit ad87047

2 files changed

Lines changed: 7 additions & 3 deletions

File tree

src/main/java/graphql/schema/idl/SchemaParser.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import graphql.PublicApi;
66
import graphql.language.Definition;
77
import graphql.language.Document;
8+
import graphql.language.SDLDefinition;
89
import graphql.parser.Parser;
910
import graphql.schema.idl.errors.SchemaProblem;
1011
import org.antlr.v4.runtime.misc.ParseCancellationException;
@@ -101,7 +102,9 @@ public TypeDefinitionRegistry buildRegistry(Document document) {
101102
TypeDefinitionRegistry typeRegistry = new TypeDefinitionRegistry();
102103
List<Definition> definitions = document.getDefinitions();
103104
for (Definition definition : definitions) {
104-
typeRegistry.add(definition).ifPresent(errors::add);
105+
if (definition instanceof SDLDefinition) {
106+
typeRegistry.add((SDLDefinition) definition).ifPresent(errors::add);
107+
}
105108
}
106109
if (errors.size() > 0) {
107110
throw new SchemaProblem(errors);

src/main/java/graphql/schema/idl/TypeDefinitionRegistry.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import graphql.Assert;
44
import graphql.GraphQLError;
55
import graphql.PublicApi;
6-
import graphql.language.Definition;
76
import graphql.language.DirectiveDefinition;
87
import graphql.language.EnumTypeExtensionDefinition;
98
import graphql.language.InputObjectTypeExtensionDefinition;
@@ -143,7 +142,7 @@ public TypeDefinitionRegistry merge(TypeDefinitionRegistry typeRegistry) throws
143142
*
144143
* @return an optional error
145144
*/
146-
public Optional<GraphQLError> add(Definition definition) {
145+
public Optional<GraphQLError> add(SDLDefinition definition) {
147146
// extensions
148147
if (definition instanceof ObjectTypeExtensionDefinition) {
149148
ObjectTypeExtensionDefinition newEntry = (ObjectTypeExtensionDefinition) definition;
@@ -181,6 +180,8 @@ public Optional<GraphQLError> add(Definition definition) {
181180
} else {
182181
schema = newSchema;
183182
}
183+
} else {
184+
return Assert.assertShouldNeverHappen();
184185
}
185186
return Optional.empty();
186187
}

0 commit comments

Comments
 (0)