private NodePrinter<ObjectField> objectField() { String nameValueSep = compactMode ? ":" : " : "; return (out, node) -> out.printf("%s%s%s", node.getName(), nameValueSep, value(node.getValue())); }
private Builder(ObjectField existing) { this.sourceLocation = existing.getSourceLocation(); this.comments = existing.getComments(); this.name = existing.getName(); this.value = existing.getValue(); }
public Object buildObjectValue(ObjectValue defaultValue, GraphQLInputObjectType objectType) { Map<String, Object> map = new LinkedHashMap<>(); defaultValue.getObjectFields().forEach(of -> map.put(of.getName(), buildValue(of.getValue(), objectType.getField(of.getName()).getType()))); return map; }
private void checkArgInputObjectValueFieldMatchesAllowedDefinition(List<GraphQLError> errors, ObjectField objectField, InputValueDefinition allowedValueDef) { if (objectField != null) { checkArgValueMatchesAllowedType(errors, objectField.getValue(), allowedValueDef.getType()); return; } // check if field definition is required and has no default value if (allowedValueDef.getType() instanceof NonNullType && allowedValueDef.getDefaultValue() == null) { addValidationError(errors, MISSING_REQUIRED_FIELD_MESSAGE, allowedValueDef.getName()); } // other cases are // - field definition is marked as non-null but has a default value, so the default value can be used // - field definition is nullable hence null can be used }
private boolean isValidLiteralValue(Value value, GraphQLInputObjectType type, GraphQLSchema schema) { if (!(value instanceof ObjectValue)) { handleNotObjectError(value, type); return false; } GraphqlFieldVisibility fieldVisibility = schema.getCodeRegistry().getFieldVisibility(); ObjectValue objectValue = (ObjectValue) value; Map<String, ObjectField> objectFieldMap = fieldMap(objectValue); Set<String> missingFields = getMissingFields(type, objectFieldMap, fieldVisibility); if (!missingFields.isEmpty()) { handleMissingFieldsError(value, type, missingFields); return false; } for (ObjectField objectField : objectValue.getObjectFields()) { GraphQLInputObjectField inputObjectField = fieldVisibility.getFieldDefinition(type, objectField.getName()); if (inputObjectField == null) { handleExtraFieldError(value, type, objectField); return false; } if (!isValidLiteralValue(objectField.getValue(), inputObjectField.getType(), schema)) { handleFieldNotValidError(objectField, type); return false; } } return true; }
@SuppressWarnings( "unchecked" ) protected final <R extends Value> R getObjectFieldValue(ObjectValue objectValue, String fieldName) { return (R) getObjectField(objectValue, fieldName) .map(it-> it.getValue()) .orElse(new NullValue()); }
private NodePrinter<ObjectField> objectField() { String nameValueSep = compactMode ? ":" : " : "; return (out, node) -> out.printf("%s%s%s", node.getName(), nameValueSep, value(node.getValue())); }
private Builder(ObjectField existing) { this.sourceLocation = existing.getSourceLocation(); this.comments = existing.getComments(); this.name = existing.getName(); this.value = existing.getValue(); }
public Object buildObjectValue(ObjectValue defaultValue, GraphQLInputObjectType objectType) { Map<String, Object> map = new LinkedHashMap<>(); defaultValue.getObjectFields().forEach(of -> map.put(of.getName(), buildValue(of.getValue(), objectType.getField(of.getName()).getType()))); return map; }
private Predicate getFieldPredicate(String fieldName, CriteriaBuilder cb, From<?,?> path, ObjectField objectField, DataFetchingEnvironment environment, Argument argument) { ObjectValue expressionValue = (ObjectValue) objectField.getValue(); .map(it -> getFieldPredicate(fieldName, cb, path, it, new ArgumentEnvironment(environment, argument.getName()), new Argument(it.getName(), it.getValue())) .map(it -> getPredicateFilter(new ObjectField(fieldName, it.getValue()), new ArgumentEnvironment(environment, argument.getName()), new Argument(it.getName(), it.getValue()))
final JsonObject result = new JsonObject(); ((ObjectValue) value).getObjectFields().forEach(objectField -> result.add(objectField.getName(), parseJsonValue(objectField.getValue()))); return result;
protected Predicate getArgumentPredicate(CriteriaBuilder cb, From<?,?> path, DataFetchingEnvironment environment, Argument argument) { ObjectValue whereValue = getValue(argument); if (whereValue.getChildren().isEmpty()) return cb.disjunction(); Logical logical = Optional.of(argument.getName()) .filter(it -> Arrays.asList("AND", "OR").contains(it)) .map(it -> Logical.valueOf(it)) .orElse(Logical.AND); List<Predicate> predicates = new ArrayList<>(); whereValue.getObjectFields().stream() .filter(it -> Arrays.asList("AND", "OR").contains(it.getName())) .map(it -> getArgumentPredicate(cb, path, new ArgumentEnvironment(environment, argument.getName()), new Argument(it.getName(), it.getValue()))) .forEach(predicates::add); whereValue.getObjectFields().stream() .filter(it -> !Arrays.asList("AND", "OR").contains(it.getName())) .map(it -> getFieldPredicate(it.getName(), cb, path, it, new ArgumentEnvironment(environment, argument.getName()), new Argument(it.getName(), it.getValue()))) .filter(predicate -> predicate != null) .forEach(predicates::add); if (predicates.isEmpty()) predicates.add(cb.disjunction()); return (logical == Logical.OR) ? cb.or(predicates.toArray(new Predicate[predicates.size()])) : cb.and(predicates.toArray(new Predicate[predicates.size()])); }
((ObjectValue) value) .getObjectFields() .forEach(field -> map.put(field.getName(), parseObjectValue(field.getValue()))); return map;
Map<String, Object> map = new LinkedHashMap<>(); ((ObjectValue) value).getObjectFields().forEach(field -> map.put(field.getName(), parseObjectValue(field.getValue(), variables))); return map;
final ObjectNode result = JsonNodeFactory.instance.objectNode(); ((ObjectValue) value).getObjectFields().forEach(objectField -> result.set(objectField.getName(), parseJsonValue(objectField.getValue(), variables))); return result;
private void checkArgInputObjectValueFieldMatchesAllowedDefinition(List<GraphQLError> errors, ObjectField objectField, InputValueDefinition allowedValueDef) { if (objectField != null) { checkArgValueMatchesAllowedType(errors, objectField.getValue(), allowedValueDef.getType()); return; } // check if field definition is required and has no default value if (allowedValueDef.getType() instanceof NonNullType && allowedValueDef.getDefaultValue() == null) { addValidationError(errors, MISSING_REQUIRED_FIELD_MESSAGE, allowedValueDef.getName()); } // other cases are // - field definition is marked as non-null but has a default value, so the default value can be used // - field definition is nullable hence null can be used }
StringValue clientMutationIdVal = (StringValue) value.getObjectFields().stream() .filter(f -> f.getName().contentEquals(CLIENT_MUTATION_ID)) .findFirst().get().getValue(); clientMutationId = clientMutationIdVal.getValue();
StringValue clientMutationIdVal = (StringValue) value.getObjectFields().stream() .filter(f -> f.getName().contentEquals(CLIENT_MUTATION_ID)) .findFirst().get().getValue(); clientMutationId = clientMutationIdVal.getValue();
private boolean isValidLiteralValue(Value value, GraphQLInputObjectType type, GraphQLSchema schema) { if (!(value instanceof ObjectValue)) { handleNotObjectError(value, type); return false; } GraphqlFieldVisibility fieldVisibility = schema.getCodeRegistry().getFieldVisibility(); ObjectValue objectValue = (ObjectValue) value; Map<String, ObjectField> objectFieldMap = fieldMap(objectValue); Set<String> missingFields = getMissingFields(type, objectFieldMap, fieldVisibility); if (!missingFields.isEmpty()) { handleMissingFieldsError(value, type, missingFields); return false; } for (ObjectField objectField : objectValue.getObjectFields()) { GraphQLInputObjectField inputObjectField = fieldVisibility.getFieldDefinition(type, objectField.getName()); if (inputObjectField == null) { handleExtraFieldError(value, type, objectField); return false; } if (!isValidLiteralValue(objectField.getValue(), inputObjectField.getType(), schema)) { handleFieldNotValidError(objectField, type); return false; } } return true; }