/** * Take a field builder in a function definition and apply. Can be used in a jdk8 lambda * e.g.: * <pre> * {@code * field(f -> f.name("fieldName")) * } * </pre> * * @param builderFunction a supplier for the builder impl * * @return this */ public Builder field(UnaryOperator<GraphQLFieldDefinition.Builder> builderFunction) { assertNotNull(builderFunction, "builderFunction can't be null"); GraphQLFieldDefinition.Builder builder = GraphQLFieldDefinition.newFieldDefinition(); builder = builderFunction.apply(builder); return field(builder); }
builder.field(fieldAndParams.fieldDefinition); encounteredFields.add(fieldAndParams); if (!builder.hasField(fieldAndParams.fieldDefinition.getName())) { encounteredFields.add(fieldAndParams); builder.field(fieldAndParams.fieldDefinition); interfaceType = interfaceType.transform(interfaceBuilder -> interfaceBuilder.field(fieldDefinition));
.name(nodeTypeName) .typeResolver(this) .field(GraphQLFieldDefinition.newFieldDefinition().name("id").type(Scalars.GraphQLString).build()) .build());
builder.field(fieldAndParams.fieldDefinition); encounteredFields.add(fieldAndParams); if (!builder.hasField(fieldAndParams.fieldDefinition.getName())) { encounteredFields.add(fieldAndParams); builder.field(fieldAndParams.fieldDefinition); interfaceType = interfaceType.transform(interfaceBuilder -> interfaceBuilder.field(fieldDefinition));
@Override public GraphQLInterfaceType.Builder getIfaceBuilder(Class<?> iface) throws GraphQLAnnotationsException, IllegalArgumentException { if (!iface.isInterface()) { throw new IllegalArgumentException(iface + " is not an interface"); } GraphQLInterfaceType.Builder builder = newInterface(); builder.name(getTypeName(iface)); GraphQLDescription description = iface.getAnnotation(GraphQLDescription.class); if (description != null) { builder.description(description.value()); } for (Method method : getOrderedMethods(iface)) { boolean valid = !Modifier.isStatic(method.getModifiers()) && method.getAnnotation(GraphQLField.class) != null; if (valid) { builder.field(getField(method)); } } GraphQLTypeResolver typeResolver = iface.getAnnotation(GraphQLTypeResolver.class); builder.typeResolver(newInstance(typeResolver.value())); return builder; }
public GraphQLInterfaceType.Builder getInterfaceBuilder(Class<?> iface, ProcessingElementsContainer container) throws GraphQLAnnotationsException, IllegalArgumentException, CannotCastMemberException { if (!iface.isInterface()) { throw new IllegalArgumentException(iface + " is not an interface"); } GraphQLInterfaceType.Builder builder = newInterface(); builder.name(graphQLObjectInfoRetriever.getTypeName(iface)); GraphQLDescription description = iface.getAnnotation(GraphQLDescription.class); if (description != null) { builder.description(description.value()); } List<String> definedFields = new ArrayList<>(); for (Method method : graphQLObjectInfoRetriever.getOrderedMethods(iface)) { boolean valid = !Modifier.isStatic(method.getModifiers()) && method.getAnnotation(GraphQLField.class) != null; if (valid) { GraphQLFieldDefinition gqlField = graphQLFieldRetriever.getField(method,container); definedFields.add(gqlField.getName()); builder.field(gqlField); } } builder.fields(extensionsHandler.getExtensionFields(iface, definedFields,container)); GraphQLTypeResolver typeResolver = iface.getAnnotation(GraphQLTypeResolver.class); builder.typeResolver(newInstance(typeResolver.value())); return builder; } }
/** * Take a field builder in a function definition and apply. Can be used in a jdk8 lambda * e.g.: * <pre> * {@code * field(f -> f.name("fieldName")) * } * </pre> * * @param builderFunction a supplier for the builder impl * * @return this */ public Builder field(UnaryOperator<GraphQLFieldDefinition.Builder> builderFunction) { assertNotNull(builderFunction, "builderFunction can't be null"); GraphQLFieldDefinition.Builder builder = GraphQLFieldDefinition.newFieldDefinition(); builder = builderFunction.apply(builder); return field(builder); }
@Override public GraphQLType build() { return Types.interfaceTypeBuilder() .name(NAME) .field(Fields.notNullStringField("id")) .typeResolver((env) -> { Object source = env.getObject(); if(source instanceof Element) { Element element = (Element) source; return (GraphQLObjectType) env.getSchema().getType(element.type()); } throw new IllegalArgumentException("Can't resolve type"); }) .build(); }
/** * Same effect as the field(GraphQLFieldDefinition). Builder.build() is called * from within * * @param builder an un-built/incomplete GraphQLFieldDefinition * * @return this */ public Builder field(GraphQLFieldDefinition.Builder builder) { return field(builder.build()); }
public GraphQLInterfaceType nodeInterface(TypeResolver typeResolver) { return newInterface() .name(NODE) .description("An object with an ID") .typeResolver(typeResolver) .field(newFieldDefinition() .name("id") .description("The ID of an object") .type(nonNull(GraphQLID))) .build(); }
.field(newFieldDefinition() .name("value") .type(GraphQLString)
void interfaceType() { GraphQLInterfaceType comicCharacter = newInterface() .name("ComicCharacter") .description("A abstract comic character.") .field(newFieldDefinition() .name("name") .description("The name of the character.") .type(GraphQLString)) .build(); }
/** * Same effect as the field(GraphQLFieldDefinition). Builder.build() is called * from within * * @param builder an un-built/incomplete GraphQLFieldDefinition * * @return this */ public Builder field(GraphQLFieldDefinition.Builder builder) { return field(builder.build()); }
public GraphQLInterfaceType nodeInterface(TypeResolver typeResolver) { return newInterface() .name(NODE) .description("An object with an ID") .typeResolver(typeResolver) .field(newFieldDefinition() .name("id") .description("The ID of an object") .type(nonNull(GraphQLID))) .build(); }