/** * Take an argument builder in a function definition and apply. Can be used in a jdk8 lambda * e.g.: * <pre> * {@code * argument(a -> a.name("argumentName")) * } * </pre> * * @param builderFunction a supplier for the builder impl * * @return this */ public Builder argument(UnaryOperator<GraphQLArgument.Builder> builderFunction) { GraphQLArgument.Builder builder = GraphQLArgument.newArgument(); builder = builderFunction.apply(builder); return argument(builder); }
private FieldDefAndDirectiveParams buildField(BuildContext buildCtx, TypeDefinition parentType, FieldDefinition fieldDef) { buildCtx.enterNode(fieldDef); GraphQLFieldDefinition.Builder builder = GraphQLFieldDefinition.newFieldDefinition(); builder.definition(fieldDef); builder.name(fieldDef.getName()); builder.description(schemaGeneratorHelper.buildDescription(fieldDef, fieldDef.getDescription())); builder.deprecate(schemaGeneratorHelper.buildDeprecationReason(fieldDef.getDirectives())); GraphQLDirective[] directives = buildDirectives(fieldDef.getDirectives(), Collections.emptyList(), DirectiveLocation.FIELD_DEFINITION, buildCtx.getDirectiveDefinitions()); builder.withDirectives( directives ); fieldDef.getInputValueDefinitions().forEach(inputValueDefinition -> builder.argument(buildArgument(buildCtx, inputValueDefinition))); GraphQLOutputType fieldType = buildOutputType(buildCtx, fieldDef.getType()); builder.type(fieldType); GraphQLFieldDefinition fieldDefinition = builder.build(); // if they have already wired in a fetcher - then leave it alone FieldCoordinates coordinates = FieldCoordinates.coordinates(parentType.getName(), fieldDefinition.getName()); if (!buildCtx.codeRegistry.hasDataFetcher(coordinates)) { DataFetcherFactory dataFetcherFactory = buildDataFetcherFactory(buildCtx, parentType, fieldDef, fieldType, Arrays.asList(directives)); buildCtx.getCodeRegistry().dataFetcher(coordinates, dataFetcherFactory); } return buildCtx.exitNode(new FieldDefAndDirectiveParams(fieldDefinition, buildCtx.mkBehaviourParams())); }
@Override public void build (Builder aBuilder) { aBuilder.field(Fields.field("addDirector") .type(Director.REF) .argument(Arguments.notNullStringArgument("name")) .dataFetcher((env) -> { Node node = SimpleNode.builder(g) .type(Director.NAME) .properties(env.getArguments()) .build(); return g.add(node); })); }
public static Builder notNull (Builder aSource) { GraphQLFieldDefinition field = aSource.build(); return create(field.getName()).argument(field.getArguments()) .type(new GraphQLNonNull(field.getType())) .dataFetcher(field.getDataFetcher()) .definition(field.getDefinition()) .deprecate(field.getDeprecationReason()) .description(field.getDescription()); }
private GraphQLFieldDefinition handleRelayArguments(Method method, ProcessingElementsContainer container, GraphQLFieldDefinition.Builder builder, GraphQLOutputType outputType, List<GraphQLArgument> args) { GraphQLFieldDefinition relayFieldDefinition = null; if (method.isAnnotationPresent(GraphQLRelayMutation.class)) { relayFieldDefinition = buildRelayMutation(method, container, builder, outputType, args); } else { builder.argument(args); } return relayFieldDefinition; }
public GraphQLFieldDefinition nodeField(GraphQLInterfaceType nodeInterface, DataFetcher nodeDataFetcher) { return newFieldDefinition() .name("node") .description("Fetches an object given its ID") .type(nodeInterface) .dataFetcher(nodeDataFetcher) .argument(newArgument() .name("id") .description("The ID of an object") .type(nonNull(GraphQLID))) .build(); }
public Builder argument(List<GraphQLArgument> arguments) { assertNotNull(arguments, "arguments can't be null"); for (GraphQLArgument argument : arguments) { argument(argument); } return this; }
public GraphQLFieldDefinition createPluginPageField() { return newFieldDefinition().name("plugins").description("Load plugins").argument(createPagingArgs()) .type(new GraphQLTypeReference(PLUGIN_PAGE_TYPE_NAME)).dataFetcher(env -> { GraphQLContext gc = env.getContext(); if (!gc.getUser().hasAdminRole()) { return new PermissionException("plugins", "Missing admin permission"); } Map<String, Plugin> deployments = manager.getPlugins(); Page<Plugin> page = new DynamicStreamPageImpl<>(deployments.values().stream(), getPagingInfo(env)); return page; }).build(); }
protected graphql.schema.GraphQLFieldDefinition.Builder newPagingFieldWithFetcherBuilder(String name, String description, DataFetcher<?> dataFetcher, String pageTypeName) { return newFieldDefinition().name(name).description(description).argument(createPagingArgs()).type(new GraphQLTypeReference(pageTypeName)) .dataFetcher(dataFetcher); }
/** * Same effect as the argument(GraphQLArgument). Builder.build() is called * from within * * @param builder an un-built/incomplete GraphQLArgument * * @return this */ public Builder argument(GraphQLArgument.Builder builder) { argument(builder.build()); return this; }
.name("stoptimesForServiceDate") .type(new GraphQLList(stoptimesInPatternType)) .argument(GraphQLArgument.newArgument() .name("date") .type(Scalars.GraphQLString) .name("stoptimesForPatterns") .type(new GraphQLList(stoptimesInPatternType)) .argument(GraphQLArgument.newArgument() .name("startTime") .argument(GraphQLArgument.newArgument() .name("timeRange") .type(Scalars.GraphQLInt) .defaultValue(24 * 60 * 60) .build()) .argument(GraphQLArgument.newArgument() .name("numberOfDepartures") .type(Scalars.GraphQLInt) .defaultValue(5) .build()) .argument(GraphQLArgument.newArgument() .name("omitNonPickups") .type(Scalars.GraphQLBoolean) .name("stoptimesWithoutPatterns") .type(new GraphQLList(stoptimeType)) .argument(GraphQLArgument.newArgument() .name("startTime")
.description("String#split(regex) but replace empty strings with nulls to help us test null behavior in lists") .type(list(typeRef("StringObject"))) .argument(GraphQLArgument.newArgument() .name("regex") .type(GraphQLString)) .description("String#split(regex) but replace empty strings with nulls to help us test null behavior in lists") .type(list(nonNull(typeRef("StringObject")))) .argument(GraphQLArgument.newArgument() .name("regex") .type(GraphQLString)) .name("append") .type(typeRef("StringObject")) .argument(GraphQLArgument.newArgument() .name("text") .type(GraphQLString)) .name("emptyOptional") .type(GraphQLString) .argument(GraphQLArgument.newArgument() .name("text") .type(GraphQLString)) .name("optional") .type(GraphQLString) .argument(GraphQLArgument.newArgument() .name("text") .type(GraphQLString))
.argument(GraphQLArgument .newArgument() .name("format")
public GraphQLFieldDefinition mutation(String name, String fieldName, List<GraphQLInputObjectField> inputFields, List<GraphQLFieldDefinition> outputFields, DataFetcher dataFetcher) { GraphQLInputObjectType inputObjectType = newInputObject() .name(name + "Input") .fields(inputFields) .build(); GraphQLObjectType outputType = newObject() .name(name + "Payload") .fields(outputFields) .build(); return newFieldDefinition() .name(fieldName) .type(outputType) .argument(newArgument() .name("input") .type(nonNull(inputObjectType))) .dataFetcher(dataFetcher) .build(); }
public GraphQLFieldDefinition nodeField(GraphQLInterfaceType nodeInterface, DataFetcher nodeDataFetcher) { return newFieldDefinition() .name("node") .description("Fetches an object given its ID") .type(nodeInterface) .dataFetcher(nodeDataFetcher) .argument(newArgument() .name("id") .description("The ID of an object") .type(nonNull(GraphQLID))) .build(); }
/** * Same effect as the argument(GraphQLArgument). Builder.build() is called * from within * * @param builder an un-built/incomplete GraphQLArgument * * @return this */ public Builder argument(GraphQLArgument.Builder builder) { argument(builder.build()); return this; }
public Builder argument(List<GraphQLArgument> arguments) { assertNotNull(arguments, "arguments can't be null"); for (GraphQLArgument argument : arguments) { argument(argument); } return this; }