/** * A factory method for creating non null types so that when used with static imports allows * more readable code such as * {@code .type(nonNull(GraphQLString)) } * * @param wrappedType the type to wrap as being non null * * @return a GraphQLNonNull of that wrapped type */ public static GraphQLNonNull nonNull(GraphQLType wrappedType) { return new GraphQLNonNull(wrappedType); }
.field(GraphQLFieldDefinition.newFieldDefinition() .name("id") .type(new GraphQLNonNull(Scalars.GraphQLID)) .dataFetcher(environment -> relay .toGlobalId(clusterType.getName(), ((StopCluster) environment.getSource()).id)) .field(GraphQLFieldDefinition.newFieldDefinition() .name("gtfsId") .type(new GraphQLNonNull(Scalars.GraphQLString)) .dataFetcher(environment -> ((StopCluster) environment.getSource()).id) .build()) .field(GraphQLFieldDefinition.newFieldDefinition() .name("name") .type(new GraphQLNonNull(Scalars.GraphQLString)) .dataFetcher(environment -> ((StopCluster) environment.getSource()).name) .build()) .field(GraphQLFieldDefinition.newFieldDefinition() .name("lat") .type(new GraphQLNonNull(Scalars.GraphQLFloat)) .dataFetcher(environment -> (float) (((StopCluster) environment.getSource()).lat)) .build()) .field(GraphQLFieldDefinition.newFieldDefinition() .name("lon") .type(new GraphQLNonNull(Scalars.GraphQLFloat)) .dataFetcher(environment -> (float) (((StopCluster) environment.getSource()).lon)) .build()) .field(GraphQLFieldDefinition.newFieldDefinition() .name("stops") .type(new GraphQLList(new GraphQLNonNull(stopType)))
/** * A factory method for creating non null types so that when used with static imports allows * more readable code such as * {@code .type(nonNull(GraphQLString)) } * * @param wrappedType the type to wrap as being non null * * @return a GraphQLNonNull of that wrapped type */ public static GraphQLNonNull nonNull(GraphQLType wrappedType) { return new GraphQLNonNull(wrappedType); }
/** * Returns a non-null list of non-null types */ public static GraphQLOutputType stdList(GraphQLType type) { return new GraphQLNonNull( new GraphQLList( new GraphQLNonNull( type ) ) ); }
@Override public GraphQLNonNull toGraphQLInputType(AnnotatedType javaType, OperationMapper operationMapper, Set<Class<? extends TypeMapper>> mappersToSkip, BuildContext buildContext) { mappersToSkip.add(this.getClass()); GraphQLInputType inner = operationMapper.toGraphQLInputType(javaType, mappersToSkip, buildContext); return inner instanceof GraphQLNonNull ? (GraphQLNonNull) inner : new GraphQLNonNull(inner); }
@Override public GraphQLNonNull toGraphQLType(AnnotatedType javaType, OperationMapper operationMapper, Set<Class<? extends TypeMapper>> mappersToSkip, BuildContext buildContext) { mappersToSkip.add(this.getClass()); GraphQLOutputType inner = operationMapper.toGraphQLType(javaType, mappersToSkip, buildContext); return inner instanceof GraphQLNonNull ? (GraphQLNonNull) inner : new GraphQLNonNull(inner); }
@Override public GraphQLType buildType(String typeName, Class<?> aClass, AnnotatedType annotatedType) { TypeFunction typeFunction = getTypeFunction(aClass, annotatedType); if (typeFunction == null) { throw new IllegalArgumentException("unsupported type"); } GraphQLType result = typeFunction.buildType(typeName, aClass, annotatedType); if (aClass.getAnnotation(GraphQLNonNull.class) != null || (annotatedType != null && annotatedType.getAnnotation(GraphQLNonNull.class) != null)) { result = new graphql.schema.GraphQLNonNull(result); } return result; }
@Override public GraphQLType buildType(boolean input, Class<?> aClass, AnnotatedType annotatedType, ProcessingElementsContainer container) { TypeFunction typeFunction = getTypeFunction(aClass, annotatedType); if (typeFunction == null) { throw new IllegalArgumentException("unsupported type"); } GraphQLType result = typeFunction.buildType(input, aClass, annotatedType, container); if (annotatedType != null && annotatedType.isAnnotationPresent(GraphQLNonNull.class)) { result = new graphql.schema.GraphQLNonNull(result); } return result; }
public static GraphQLArgument.Builder notNullStringArgument (String aName) { return GraphQLArgument.newArgument() .name(aName) .type(new GraphQLNonNull(Scalars.GraphQLString)); }
@Override public GraphQLOutputType toGraphQLType(AnnotatedType javaType, OperationMapper operationMapper, Set<Class<? extends TypeMapper>> mappersToSkip, BuildContext buildContext) { return new GraphQLList(new GraphQLNonNull( mapEntry( operationMapper.toGraphQLType(getElementType(javaType, 0), buildContext), operationMapper.toGraphQLType(getElementType(javaType, 1), buildContext), buildContext))); }
@Override public GraphQLInputType toGraphQLInputType(AnnotatedType javaType, OperationMapper operationMapper, Set<Class<? extends TypeMapper>> mappersToSkip, BuildContext buildContext) { return new GraphQLList(new GraphQLNonNull( mapEntry( operationMapper.toGraphQLInputType(getElementType(javaType, 0), buildContext), operationMapper.toGraphQLInputType(getElementType(javaType, 1), buildContext), buildContext))); }
private GraphQLOutputType getGraphQLConnection(AccessibleObject field, graphql.schema.GraphQLType type, Relay relay, Map<String, graphql.schema.GraphQLType> typeRegistry) { if (type instanceof GraphQLNonNull) { GraphQLList listType = (GraphQLList) ((GraphQLNonNull) type).getWrappedType(); return new GraphQLNonNull(internalGetGraphQLConnection(field, listType, relay, typeRegistry)); } else { return internalGetGraphQLConnection(field, (GraphQLList) type, relay, typeRegistry); } }
public static GraphQLFieldDefinition disabledField() { return newFieldDefinition() .name(DISABLED) .type(new GraphQLNonNull(GraphQLBoolean)) .build(); }
@Override public GraphQLFieldDefinition transformField(GraphQLFieldDefinition field, Operation operation, OperationMapper operationMapper, BuildContext buildContext) { if (shouldWrap(field.getType(), operation.getTypedElement())) { return field.transform(builder -> builder.type(new GraphQLNonNull(field.getType()))); } return field; }
private GraphQLArgument transformArgument(GraphQLArgument argument, TypedElement element, String description, OperationMapper operationMapper, BuildContext buildContext) { if (argument.getDefaultValue() == null && shouldWrap(argument.getType(), element)) { return argument.transform(builder -> builder.type(new GraphQLNonNull(argument.getType()))); } if (shouldUnwrap(argument.getDefaultValue(), argument.getType())) { //do not warn on primitives as their non-nullness is implicit if (!ClassUtils.getRawType(element.getJavaType().getType()).isPrimitive()) { log.warn("Non-null argument with a default value will be treated as nullable: " + description); } return argument.transform(builder -> builder.type((GraphQLInputType) GraphQLUtils.unwrapNonNull(argument.getType()))); } return argument; }
@Override public GraphQLInputObjectField transformInputField(GraphQLInputObjectField field, InputField inputField, OperationMapper operationMapper, BuildContext buildContext) { if (field.getDefaultValue() == null && shouldWrap(field.getType(), inputField.getTypedElement())) { return field.transform(builder -> builder.type(new GraphQLNonNull(field.getType()))); } if (shouldUnwrap(field.getDefaultValue(), field.getType())) { //do not warn on primitives as their non-nullness is implicit if (!ClassUtils.getRawType(inputField.getJavaType().getType()).isPrimitive()) { log.warn("Non-null input field with a default value will be treated as nullable: " + inputField); } return field.transform(builder -> builder.type((GraphQLInputType) GraphQLUtils.unwrapNonNull(field.getType()))); } return field; }
@SuppressWarnings("serial") @Test public void testMethodParameterRequired() { IGraphQLObjectMapper graphQLObjectMapper = newGraphQLObjectMapper( ImmutableList.<IGraphQLTypeMapper>builder().add(new TestTypeMapper()).addAll(GraphQLSchemaBuilder.getDefaultTypeMappers()).build()); GraphQLObjectType objectType = (GraphQLObjectType) graphQLObjectMapper.getOutputType(new TypeToken<MethodRequiredFields>() { }.getType()); assertEquals(MethodRequiredFields.class.getSimpleName(), objectType.getName()); assertEquals(1, objectType.getFieldDefinitions().size()); assertNotNull(objectType.getFieldDefinition("method")); List<GraphQLArgument> arguments = objectType.getFieldDefinition("method").getArguments(); assertEquals(2, arguments.size()); assertEquals(new GraphQLNonNull(Scalars.GraphQLString), arguments.get(0).getType()); assertEquals(Scalars.GraphQLString, arguments.get(1).getType()); }
public static GraphQLArgument.Builder notNull (GraphQLArgument.Builder aBuilder) { GraphQLArgument arg = aBuilder.build(); return GraphQLArgument.newArgument() .name(arg.getName()) .defaultValue(arg.getDefaultValue()) .definition(arg.getDefinition()) .description(arg.getDescription()) .type(new GraphQLNonNull(arg.getType())); }
@Override public GraphQLFieldDefinition getFieldDefinition() { return newFieldDefinition() .name("promotionRuns") .type(stdList(promotionRun.getTypeRef())) .argument( newArgument() .name("id") .description("ID of the promotion run to look for") .type(new GraphQLNonNull(GraphQLInt)) .build() ) .dataFetcher(promotionRunFetcher()) .build(); }
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()); }