package graphql;
import graphql.schema.*;
import static graphql.schema.GraphQLArgument.newArgument;
import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition;
import static graphql.schema.GraphQLObjectType.newObject;
import java.math.BigDecimal;
import java.math.BigInteger;
public class ScalarsQuerySchema {
public static final DataFetcher inputDF = environment -> environment.getArgument("input");
public static final GraphQLObjectType queryType = newObject()
.name("QueryType")
/** Static Scalars */
.field(newFieldDefinition()
.name("bigInteger")
.type(Scalars.GraphQLBigInteger)
.staticValue(BigInteger.valueOf(9999)))
.field(newFieldDefinition()
.name("bigDecimal")
.type(Scalars.GraphQLBigDecimal)
.staticValue(BigDecimal.valueOf(1234.0)))
.field(newFieldDefinition()
.name("floatNaN")
.type(Scalars.GraphQLFloat)
.staticValue(Double.NaN))
/** Scalars with input of same type, value echoed back */
.field(newFieldDefinition()
.name("bigIntegerInput")
.type(Scalars.GraphQLBigInteger)
.argument(newArgument()
.name("input")
.type(new GraphQLNonNull(Scalars.GraphQLBigInteger)))
.dataFetcher(inputDF))
.field(newFieldDefinition()
.name("bigDecimalInput")
.type(Scalars.GraphQLBigDecimal)
.argument(newArgument()
.name("input")
.type(new GraphQLNonNull(Scalars.GraphQLBigDecimal)))
.dataFetcher(inputDF))
.field(newFieldDefinition()
.name("floatNaNInput")
.type(Scalars.GraphQLFloat)
.argument(newArgument()
.name("input")
.type(new GraphQLNonNull(Scalars.GraphQLFloat)))
.dataFetcher(inputDF))
.field(newFieldDefinition()
.name("stringInput")
.type(Scalars.GraphQLString)
.argument(newArgument()
.name("input")
.type(new GraphQLNonNull(Scalars.GraphQLString)))
.dataFetcher(inputDF))
/** Scalars with input of String, cast to scalar */
.field(newFieldDefinition()
.name("bigIntegerString")
.type(Scalars.GraphQLBigInteger)
.argument(newArgument()
.name("input")
.type(Scalars.GraphQLString))
.dataFetcher(inputDF))
.field(newFieldDefinition()
.name("bigDecimalString")
.type(Scalars.GraphQLBigDecimal)
.argument(newArgument()
.name("input")
.type(Scalars.GraphQLString))
.dataFetcher(inputDF))
.field(newFieldDefinition()
.name("floatString")
.type(Scalars.GraphQLFloat)
.argument(newArgument()
.name("input")
.type(Scalars.GraphQLString))
.dataFetcher(inputDF))
.field(newFieldDefinition()
.name("longString")
.type(Scalars.GraphQLLong)
.argument(newArgument()
.name("input")
.type(Scalars.GraphQLString))
.dataFetcher(inputDF))
.field(newFieldDefinition()
.name("intString")
.type(Scalars.GraphQLInt)
.argument(newArgument()
.name("input")
.type(Scalars.GraphQLString))
.dataFetcher(inputDF))
.field(newFieldDefinition()
.name("shortString")
.type(Scalars.GraphQLShort)
.argument(newArgument()
.name("input")
.type(Scalars.GraphQLString))
.dataFetcher(inputDF))
.field(newFieldDefinition()
.name("byteString")
.type(Scalars.GraphQLByte)
.argument(newArgument()
.name("input")
.type(Scalars.GraphQLString))
.dataFetcher(inputDF))
.build();
public static final GraphQLSchema scalarsQuerySchema = GraphQLSchema.newSchema()
.query(queryType)
.build();
}