private Optional<OperationTypeDefinition> getOpDef(String opName, SchemaDefinition schemaDef) { return schemaDef.getOperationTypeDefinitions() .stream() .filter(otd -> otd.getName().equals(opName)) .findFirst(); }
public OperationTypesMustBeObjects(OperationTypeDefinition op) { super(op, format("The operation type '%s' MUST have a object type as its definition %s", op.getName(), lineCol(op))); } }
private NodePrinter<OperationTypeDefinition> operationTypeDefinition() { String nameTypeSep = compactMode ? ":" : ": "; return (out, node) -> out.printf("%s%s%s", node.getName(), nameTypeSep, type(node.getTypeName())); }
private void checkSchemaInvariants(List<GraphQLError> errors, TypeDefinitionRegistry typeRegistry) { /* https://github.com/facebook/graphql/pull/90/files#diff-fe406b08746616e2f5f00909488cce66R1000 GraphQL type system definitions can omit the schema definition when the query and mutation root types are named `Query` and `Mutation`, respectively. */ // schema if (!typeRegistry.schemaDefinition().isPresent()) { if (!typeRegistry.getType("Query").isPresent()) { errors.add(new SchemaMissingError()); } } else { SchemaDefinition schemaDefinition = typeRegistry.schemaDefinition().get(); List<OperationTypeDefinition> operationTypeDefinitions = schemaDefinition.getOperationTypeDefinitions(); operationTypeDefinitions .forEach(checkOperationTypesExist(typeRegistry, errors)); operationTypeDefinitions .forEach(checkOperationTypesAreObjects(typeRegistry, errors)); // ensure we have a "query" one Optional<OperationTypeDefinition> query = operationTypeDefinitions.stream().filter(op -> "query".equals(op.getName())).findFirst(); if (!query.isPresent()) { errors.add(new QueryOperationMissingError()); } } }
private Consumer<OperationTypeDefinition> checkOperationTypesExist(TypeDefinitionRegistry typeRegistry, List<GraphQLError> errors) { return op -> { TypeName unwrapped = TypeInfo.typeInfo(op.getTypeName()).getTypeName(); if (!typeRegistry.hasType(unwrapped)) { errors.add(new MissingTypeError("operation", op, op.getName(), unwrapped)); } }; }
private Builder(OperationTypeDefinition existing) { this.sourceLocation = existing.getSourceLocation(); this.comments = existing.getComments(); this.name = existing.getName(); this.typeName = existing.getTypeName(); this.ignoredChars = existing.getIgnoredChars(); }
OperationTypeDefinition queryOp = operationTypes.stream().filter(op -> "query".equals(op.getName())).findFirst().get(); Optional<OperationTypeDefinition> mutationOp = operationTypes.stream().filter(op -> "mutation".equals(op.getName())).findFirst(); Optional<OperationTypeDefinition> subscriptionOp = operationTypes.stream().filter(op -> "subscription".equals(op.getName())).findFirst();
private Optional<OperationTypeDefinition> getOpDef(String opName, SchemaDefinition schemaDef) { return schemaDef.getOperationTypeDefinitions() .stream() .filter(otd -> otd.getName().equals(opName)) .findFirst(); }
public OperationTypesMustBeObjects(OperationTypeDefinition op) { super(op, format("The operation type '%s' MUST have a object type as its definition %s", op.getName(), lineCol(op))); } }
private NodePrinter<OperationTypeDefinition> operationTypeDefinition() { String nameTypeSep = compactMode ? ":" : ": "; return (out, node) -> out.printf("%s%s%s", node.getName(), nameTypeSep, type(node.getTypeName())); }
private List<Field> getFields(SchemaDefinition def) { List<Field> fields = new ArrayList<Field>(); for ( OperationTypeDefinition fieldDef : def.getOperationTypeDefinitions() ) { fields.add(new Field(fieldDef.getName(), toJavaTypeName(fieldDef.getType()))); } return fields; }
private void checkSchemaInvariants(List<GraphQLError> errors, TypeDefinitionRegistry typeRegistry) { /* https://github.com/facebook/graphql/pull/90/files#diff-fe406b08746616e2f5f00909488cce66R1000 GraphQL type system definitions can omit the schema definition when the query and mutation root types are named `Query` and `Mutation`, respectively. */ // schema if (!typeRegistry.schemaDefinition().isPresent()) { if (!typeRegistry.getType("Query").isPresent()) { errors.add(new SchemaMissingError()); } } else { SchemaDefinition schemaDefinition = typeRegistry.schemaDefinition().get(); List<OperationTypeDefinition> operationTypeDefinitions = schemaDefinition.getOperationTypeDefinitions(); operationTypeDefinitions .forEach(checkOperationTypesExist(typeRegistry, errors)); operationTypeDefinitions .forEach(checkOperationTypesAreObjects(typeRegistry, errors)); // ensure we have a "query" one Optional<OperationTypeDefinition> query = operationTypeDefinitions.stream().filter(op -> "query".equals(op.getName())).findFirst(); if (!query.isPresent()) { errors.add(new QueryOperationMissingError()); } } }
private Consumer<OperationTypeDefinition> checkOperationTypesExist(TypeDefinitionRegistry typeRegistry, List<GraphQLError> errors) { return op -> { TypeName unwrapped = TypeInfo.typeInfo(op.getTypeName()).getTypeName(); if (!typeRegistry.hasType(unwrapped)) { errors.add(new MissingTypeError("operation", op, op.getName(), unwrapped)); } }; }
private Builder(OperationTypeDefinition existing) { this.sourceLocation = existing.getSourceLocation(); this.comments = existing.getComments(); this.name = existing.getName(); this.typeName = existing.getTypeName(); this.ignoredChars = existing.getIgnoredChars(); }
OperationTypeDefinition queryOp = operationTypes.stream().filter(op -> "query".equals(op.getName())).findFirst().get(); Optional<OperationTypeDefinition> mutationOp = operationTypes.stream().filter(op -> "mutation".equals(op.getName())).findFirst(); Optional<OperationTypeDefinition> subscriptionOp = operationTypes.stream().filter(op -> "subscription".equals(op.getName())).findFirst();