private GraphQLInputObjectField buildInputField(BuildContext buildCtx, InputValueDefinition fieldDef) { buildCtx.enterNode(fieldDef); GraphQLInputObjectField.Builder fieldBuilder = GraphQLInputObjectField.newInputObjectField(); fieldBuilder.definition(fieldDef); fieldBuilder.name(fieldDef.getName()); fieldBuilder.description(schemaGeneratorHelper.buildDescription(fieldDef, fieldDef.getDescription())); // currently the spec doesnt allow deprecations on InputValueDefinitions but it should! //fieldBuilder.deprecate(buildDeprecationReason(fieldDef.getDirectives())); GraphQLInputType inputType = buildInputType(buildCtx, fieldDef.getType()); fieldBuilder.type(inputType); Value defaultValue = fieldDef.getDefaultValue(); if (defaultValue != null) { fieldBuilder.defaultValue(schemaGeneratorHelper.buildValue(defaultValue, inputType)); } fieldBuilder.withDirectives( buildDirectives(fieldDef.getDirectives(), emptyList(), INPUT_FIELD_DEFINITION, buildCtx.getDirectiveDefinitions()) ); GraphQLInputObjectField inputObjectField = fieldBuilder.build(); inputObjectField = directiveBehaviour.onInputObjectField(inputObjectField, buildCtx.mkBehaviourParams()); return buildCtx.exitNode(inputObjectField); }
/** * May return null should this field be disallowed * @param object * @return */ protected GraphQLInputObjectField.Builder getInputFieldDefinition( final Object object) { String fieldName = getFieldName(object); GraphQLInputType fieldType = (GraphQLInputType) getTypeOfField(object, TypeKind.INPUT_OBJECT); if (fieldName == null || fieldType == null) { return null; } String fieldDescription = getFieldDescription(object); String fieldDefaultValue = getFieldDefaultValue(object); logger.debug("GraphQL field will be of type [{}] and name [{}] with description [{}]", fieldType, fieldName, fieldDescription); GraphQLInputObjectField.Builder fieldBuilder = newInputObjectField() .name(fieldName) .type(fieldType) .description(fieldDescription) .defaultValue(fieldDefaultValue); return fieldBuilder; }
.type(graphQLInputType) .description(mpi.getDescription()) .defaultValue(defaultValue) .build(); graphQLInputObjectFields.add(graphQLInputObjectField);
.description("Maximum number of builds to display") .type(GraphQLInt) .defaultValue(10) .build()
.description(arg.getDescription()) .type(arg.getType()) .defaultValue(arg.getDefaultValue()) .build()) .collect(Collectors.toList());
private GraphQLInputObjectField buildInputField(BuildContext buildCtx, InputValueDefinition fieldDef) { buildCtx.enterNode(fieldDef); GraphQLInputObjectField.Builder fieldBuilder = GraphQLInputObjectField.newInputObjectField(); fieldBuilder.definition(fieldDef); fieldBuilder.name(fieldDef.getName()); fieldBuilder.description(schemaGeneratorHelper.buildDescription(fieldDef, fieldDef.getDescription())); // currently the spec doesnt allow deprecations on InputValueDefinitions but it should! //fieldBuilder.deprecate(buildDeprecationReason(fieldDef.getDirectives())); GraphQLInputType inputType = buildInputType(buildCtx, fieldDef.getType()); fieldBuilder.type(inputType); Value defaultValue = fieldDef.getDefaultValue(); if (defaultValue != null) { fieldBuilder.defaultValue(schemaGeneratorHelper.buildValue(defaultValue, inputType)); } fieldBuilder.withDirectives( buildDirectives(fieldDef.getDirectives(), emptyList(), INPUT_FIELD_DEFINITION, buildCtx.getDirectiveDefinitions()) ); GraphQLInputObjectField inputObjectField = fieldBuilder.build(); inputObjectField = directiveBehaviour.onInputObjectField(inputObjectField, buildCtx.mkBehaviourParams()); return buildCtx.exitNode(inputObjectField); }
/** * Maps a single field/property to a GraphQL input field. * * @param inputField The field/property to map to a GraphQL input field * @param buildContext The shared context containing all the global information needed for mapping * * @return GraphQL input field representing the given field/property */ public GraphQLInputObjectField toGraphQLInputField(InputField inputField, BuildContext buildContext) { GraphQLInputObjectField.Builder builder = newInputObjectField() .name(inputField.getName()) .description(inputField.getDescription()) .type(toGraphQLInputType(inputField.getJavaType(), buildContext)) .withDirective(Directives.mappedInputField(inputField)) .withDirectives(toGraphQLDirectives(inputField.getTypedElement(), buildContext.directiveBuilder::buildInputFieldDefinitionDirectives, buildContext)) .defaultValue(inputField.getDefaultValue()); return buildContext.transformers.transform(builder.build(), inputField, this, buildContext); }
public GraphQLInputObjectField buildGraphQLInputObjectField(DfsContext dfsContext, Field field, Class<?> implClass) { ResolvableTypeAccessor resolvableTypeAccessor = ResolvableTypeAccessor.forField(field, implClass); Object defaultValue = invokeMethodByName(dfsContext, implClass, resolvableTypeAccessor.getGraphQLInDefaultValueProviderMethodName()); defaultValue = evaluateSpElExpression(dfsContext, implClass, null, resolvableTypeAccessor.getGraphQLInDefaultValueSpel(), defaultValue); GraphQLInputObjectField graphQLInputObjectField = GraphQLInputObjectField.newInputObjectField() .name(resolvableTypeAccessor.getName()) .description(resolvableTypeAccessor.getDescription()) .defaultValue(defaultValue) .type(buildGraphQLInputTypeFromMethodParam(dfsContext, resolvableTypeAccessor)) .build(); return graphQLInputObjectField; }