private GraphQLInputObjectType buildInputObjectType(BuildContext buildCtx, InputObjectTypeDefinition typeDefinition) { buildCtx.enterNode(typeDefinition); GraphQLInputObjectType.Builder builder = GraphQLInputObjectType.newInputObject(); builder.definition(typeDefinition); builder.name(typeDefinition.getName()); builder.description(schemaGeneratorHelper.buildDescription(typeDefinition, typeDefinition.getDescription())); List<InputObjectTypeExtensionDefinition> extensions = inputObjectTypeExtensions(typeDefinition, buildCtx); builder.withDirectives( buildDirectives(typeDefinition.getDirectives(), directivesOf(extensions), INPUT_OBJECT, buildCtx.getDirectiveDefinitions()) ); typeDefinition.getInputValueDefinitions().forEach(inputValue -> builder.field(buildInputField(buildCtx, inputValue))); extensions.forEach(extension -> extension.getInputValueDefinitions().forEach(inputValueDefinition -> { GraphQLInputObjectField inputField = buildInputField(buildCtx, inputValueDefinition); if (!builder.hasField(inputField.getName())) { builder.field(inputField); } })); GraphQLInputObjectType inputObjectType = builder.build(); inputObjectType = directiveBehaviour.onInputObjectType(inputObjectType, buildCtx.mkBehaviourParams()); return buildCtx.exitNode(inputObjectType); }
private GraphQLInputObjectType buildInputObjectType(BuildContext buildCtx, InputObjectTypeDefinition typeDefinition) { buildCtx.enterNode(typeDefinition); GraphQLInputObjectType.Builder builder = GraphQLInputObjectType.newInputObject(); builder.definition(typeDefinition); builder.name(typeDefinition.getName()); builder.description(schemaGeneratorHelper.buildDescription(typeDefinition, typeDefinition.getDescription())); List<InputObjectTypeExtensionDefinition> extensions = inputObjectTypeExtensions(typeDefinition, buildCtx); builder.withDirectives( buildDirectives(typeDefinition.getDirectives(), directivesOf(extensions), INPUT_OBJECT, buildCtx.getDirectiveDefinitions()) ); typeDefinition.getInputValueDefinitions().forEach(inputValue -> builder.field(buildInputField(buildCtx, inputValue))); extensions.forEach(extension -> extension.getInputValueDefinitions().forEach(inputValueDefinition -> { GraphQLInputObjectField inputField = buildInputField(buildCtx, inputValueDefinition); if (!builder.hasField(inputField.getName())) { builder.field(inputField); } })); GraphQLInputObjectType inputObjectType = builder.build(); inputObjectType = directiveBehaviour.onInputObjectType(inputObjectType, buildCtx.mkBehaviourParams()); return buildCtx.exitNode(inputObjectType); }