private Object getVariableValue(GraphqlFieldVisibility fieldVisibility, VariableDefinition variableDefinition, GraphQLType variableType, Object value) { if (value == null && variableDefinition.getDefaultValue() != null) { return coerceValueAst(fieldVisibility, variableType, variableDefinition.getDefaultValue(), null); } return coerceValue(fieldVisibility, variableDefinition, variableDefinition.getName(), variableType, value); }
private NodePrinter<VariableDefinition> variableDefinition() { String nameTypeSep = compactMode ? ":" : ": "; String defaultValueEquals = compactMode ? "=" : " = "; return (out, node) -> out.printf("$%s%s%s%s", node.getName(), nameTypeSep, type(node.getType()), wrap(defaultValueEquals, node.getDefaultValue(), "") ); }
@Override public void checkVariableDefinition(VariableDefinition variableDefinition) { GraphQLInputType inputType = getValidationContext().getInputType(); if (inputType == null) return; if (isNonNull(inputType) && variableDefinition.getDefaultValue() != null) { String message = "Missing value for non null type"; addError(ValidationErrorType.DefaultForNonNullArgument, variableDefinition.getSourceLocation(), message); } if (variableDefinition.getDefaultValue() != null && !getValidationUtil().isValidLiteralValue(variableDefinition.getDefaultValue(), inputType, getValidationContext().getSchema())) { String message = String.format("Bad default value %s for type %s", variableDefinition.getDefaultValue(), inputType.getName()); addError(ValidationErrorType.BadValueForDefaultArg, variableDefinition.getSourceLocation(), message); } } }
Value defaultValue = variableDefinition.getDefaultValue(); if (defaultValue != null) { Object coercedValue = coerceValueAst(fieldVisibility, variableType, variableDefinition.getDefaultValue(), null); coercedValues.put(variableName, coercedValue); } else if (isNonNull(variableType)) {
private Builder(VariableDefinition existing) { this.sourceLocation = existing.getSourceLocation(); this.comments = existing.getComments(); this.name = existing.getName(); this.type = existing.getType(); this.defaultValue = existing.getDefaultValue(); this.ignoredChars = existing.getIgnoredChars(); }
@Override public void checkVariable(VariableReference variableReference) { VariableDefinition variableDefinition = variableDefinitionMap.get(variableReference.getName()); if (variableDefinition == null) { return; } GraphQLType variableType = TypeFromAST.getTypeFromAST(getValidationContext().getSchema(), variableDefinition.getType()); if (variableType == null) { return; } GraphQLInputType expectedType = getValidationContext().getInputType(); if (expectedType == null) { // we must have a unknown variable say to not have a known type return; } if (!variablesTypesMatcher.doesVariableTypesMatch(variableType, variableDefinition.getDefaultValue(), expectedType)) { GraphQLType effectiveType = variablesTypesMatcher.effectiveType(variableType, variableDefinition.getDefaultValue()); String message = String.format("Variable type '%s' doesn't match expected type '%s'", GraphQLTypeUtil.simplePrint(effectiveType), GraphQLTypeUtil.simplePrint(expectedType)); addError(ValidationErrorType.VariableTypeMismatch, variableReference.getSourceLocation(), message); } }
private Object getVariableValue(GraphqlFieldVisibility fieldVisibility, VariableDefinition variableDefinition, GraphQLType variableType, Object value) { if (value == null && variableDefinition.getDefaultValue() != null) { return coerceValueAst(fieldVisibility, variableType, variableDefinition.getDefaultValue(), null); } return coerceValue(fieldVisibility, variableDefinition, variableDefinition.getName(), variableType, value); }
private NodePrinter<VariableDefinition> variableDefinition() { String nameTypeSep = compactMode ? ":" : ": "; String defaultValueEquals = compactMode ? "=" : " = "; return (out, node) -> out.printf("$%s%s%s%s", node.getName(), nameTypeSep, type(node.getType()), wrap(defaultValueEquals, node.getDefaultValue(), "") ); }
@Override public void checkVariableDefinition(VariableDefinition variableDefinition) { GraphQLInputType inputType = getValidationContext().getInputType(); if (inputType == null) return; if (isNonNull(inputType) && variableDefinition.getDefaultValue() != null) { String message = "Missing value for non null type"; addError(ValidationErrorType.DefaultForNonNullArgument, variableDefinition.getSourceLocation(), message); } if (variableDefinition.getDefaultValue() != null && !getValidationUtil().isValidLiteralValue(variableDefinition.getDefaultValue(), inputType, getValidationContext().getSchema())) { String message = String.format("Bad default value %s for type %s", variableDefinition.getDefaultValue(), inputType.getName()); addError(ValidationErrorType.BadValueForDefaultArg, variableDefinition.getSourceLocation(), message); } } }
Value defaultValue = variableDefinition.getDefaultValue(); if (defaultValue != null) { Object coercedValue = coerceValueAst(fieldVisibility, variableType, variableDefinition.getDefaultValue(), null); coercedValues.put(variableName, coercedValue); } else if (isNonNull(variableType)) {
private Builder(VariableDefinition existing) { this.sourceLocation = existing.getSourceLocation(); this.comments = existing.getComments(); this.name = existing.getName(); this.type = existing.getType(); this.defaultValue = existing.getDefaultValue(); this.ignoredChars = existing.getIgnoredChars(); }
@Override public void checkVariable(VariableReference variableReference) { VariableDefinition variableDefinition = variableDefinitionMap.get(variableReference.getName()); if (variableDefinition == null) { return; } GraphQLType variableType = TypeFromAST.getTypeFromAST(getValidationContext().getSchema(), variableDefinition.getType()); if (variableType == null) { return; } GraphQLInputType expectedType = getValidationContext().getInputType(); if (expectedType == null) { // we must have a unknown variable say to not have a known type return; } if (!variablesTypesMatcher.doesVariableTypesMatch(variableType, variableDefinition.getDefaultValue(), expectedType)) { GraphQLType effectiveType = variablesTypesMatcher.effectiveType(variableType, variableDefinition.getDefaultValue()); String message = String.format("Variable type '%s' doesn't match expected type '%s'", GraphQLTypeUtil.simplePrint(effectiveType), GraphQLTypeUtil.simplePrint(expectedType)); addError(ValidationErrorType.VariableTypeMismatch, variableReference.getSourceLocation(), message); } }