package graphql.java.generator; import graphql.schema.DataFetcher; import graphql.schema.DataFetchingEnvironment; import graphql.schema.GraphQLFieldDefinition; import graphql.schema.GraphQLObjectType; public class DefaultTypes { private static final GraphQLObjectType emptyJavaObject = GraphQLObjectType.newObject() .name("java_lang_Object") .description("Default Type for java.lang.Object") .field(GraphQLFieldDefinition.newFieldDefinition() .name("toString") .type(graphql.Scalars.GraphQLString) .dataFetcher(new DataFetcher() { @Override public Object get(DataFetchingEnvironment environment) { if (environment.getSource() == null) return null; return environment.getSource().toString(); } }) .build()) .build(); public static GraphQLObjectType getDefaultObjectType(Class<?> clazz) { if (Object.class.equals(clazz)) { return emptyJavaObject; } return null; } }