graphql.language.Field.getArguments()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(11.5k)|赞(0)|评价(0)|浏览(111)

本文整理了Java中graphql.language.Field.getArguments()方法的一些代码示例,展示了Field.getArguments()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Field.getArguments()方法的具体详情如下:
包路径:graphql.language.Field
类名称:Field
方法名:getArguments

Field.getArguments介绍

暂无

代码示例

代码示例来源:origin: graphql-java/graphql-java

/**
 * All merged fields share the same arguments.
 *
 * @return the list of arguments
 */
public List<Argument> getArguments() {
  return getSingleField().getArguments();
}

代码示例来源:origin: graphql-java/graphql-java

@Override
  public void visitField(QueryVisitorFieldEnvironment env) {
    Field field = env.getField();
    if (field.getArguments() != null && !field.getArguments().isEmpty()) {
      //
      // only fields that have arguments make any sense to placed in play
      // since only they have variable input
      FieldAndArguments fieldArguments = new FieldAndArgumentsImpl(env);
      ExecutionPath path = fieldArguments.getPath();
      List<FieldAndArguments> list = fieldArgumentsMap.getOrDefault(path, new ArrayList<>());
      list.add(fieldArguments);
      fieldArgumentsMap.put(path, list);
    }
  }
});

代码示例来源:origin: graphql-java/graphql-java

private void traverseFields(MergedField fieldList, GraphQLFieldsContainer parentFieldType, String fieldPrefix) {
  FieldCollectorParameters parameters = FieldCollectorParameters.newParameters()
      .schema(graphQLSchema)
      .objectType(asObjectTypeOrNull(parentFieldType))
      .fragments(fragmentsByName)
      .variables(variables)
      .build();
  MergedSelectionSet collectedFields = fieldCollector.collectFields(parameters, fieldList);
  for (Map.Entry<String, MergedField> entry : collectedFields.getSubFields().entrySet()) {
    String fieldName = mkFieldName(fieldPrefix, entry.getKey());
    MergedField collectedFieldList = entry.getValue();
    selectionSetFields.put(fieldName, collectedFieldList);
    Field field = collectedFieldList.getSingleField();
    GraphQLFieldDefinition fieldDef = Introspection.getFieldDef(graphQLSchema, parentFieldType, field.getName());
    GraphQLType unwrappedType = GraphQLTypeUtil.unwrapAll(fieldDef.getType());
    Map<String, Object> argumentValues = valuesResolver.getArgumentValues(fieldDef.getArguments(), field.getArguments(), variables);
    selectionSetFieldArgs.put(fieldName, argumentValues);
    selectionSetFieldDefinitions.put(fieldName, fieldDef);
    flattenedFields.add(fieldName);
    if (unwrappedType instanceof GraphQLFieldsContainer) {
      traverseFields(collectedFieldList, (GraphQLFieldsContainer) unwrappedType, fieldName);
    }
  }
}

代码示例来源:origin: graphql-java/graphql-java

private Builder(Field existing) {
  this.sourceLocation = existing.getSourceLocation();
  this.comments = existing.getComments();
  this.name = existing.getName();
  this.alias = existing.getAlias();
  this.arguments = existing.getArguments();
  this.directives = existing.getDirectives();
  this.selectionSet = existing.getSelectionSet();
  this.ignoredChars = existing.getIgnoredChars();
}

代码示例来源:origin: graphql-java/graphql-java

@Override
public TraversalControl visitField(Field node, TraverserContext<Node> context) {
  Field changedNode = node.transform(builder -> {
    builder.arguments(sort(node.getArguments(), comparing(Argument::getName)));
    builder.directives(sort(node.getDirectives(), comparing(Directive::getName)));
    builder.selectionSet(sortSelectionSet(node.getSelectionSet()));
  });
  return changeNode(context, changedNode);
}

代码示例来源:origin: graphql-java/graphql-java

@Override
public void checkField(Field field) {
  GraphQLFieldDefinition fieldDef = getValidationContext().getFieldDef();
  if (fieldDef == null) return;
  Map<String, Argument> argumentMap = argumentMap(field.getArguments());
  for (GraphQLArgument graphQLArgument : fieldDef.getArguments()) {
    Argument argument = argumentMap.get(graphQLArgument.getName());
    if (argument == null
        && (isNonNull(graphQLArgument.getType()))
        && (graphQLArgument.getDefaultValue() == null)) {
      String message = String.format("Missing field argument %s", graphQLArgument.getName());
      addError(ValidationErrorType.MissingFieldArgument, field.getSourceLocation(), message);
    }
  }
}

代码示例来源:origin: graphql-java/graphql-java

if (!sameArguments(fieldA.getArguments(), fieldB.getArguments())) {
  String reason = format("%s: they have differing arguments", responseName);
  return new Conflict(responseName, reason, fieldA, fieldB);

代码示例来源:origin: graphql-java/graphql-java

private NodePrinter<Field> field() {
  final String argSep = compactMode ? "," : ", ";
  final String aliasSuffix = compactMode ? ":" : ": ";
  return (out, node) -> {
    String alias = wrap("", node.getAlias(), aliasSuffix);
    String name = node.getName();
    String arguments = wrap("(", join(node.getArguments(), argSep), ")");
    String directives = directives(node.getDirectives());
    String selectionSet = node(node.getSelectionSet());
    out.printf("%s", spaced(
        alias + name + arguments,
        directives,
        selectionSet
    ));
  };
}

代码示例来源:origin: graphql-java/graphql-java

private CompletableFuture<List<ExecutionNode>> resolveField(ExecutionContext executionContext,
                              ExecutionStrategyParameters parameters,
                              String fieldName,
                              ExecutionNode node) {
  GraphQLObjectType parentType = node.getType();
  MergedField fields = node.getFields().get(fieldName);
  GraphQLFieldDefinition fieldDef = getFieldDef(executionContext.getGraphQLSchema(), parentType, fields.getSingleField());
  Instrumentation instrumentation = executionContext.getInstrumentation();
  ExecutionStepInfo executionStepInfo = parameters.getExecutionStepInfo();
  InstrumentationContext<ExecutionResult> fieldCtx = instrumentation.beginField(
      new InstrumentationFieldParameters(executionContext, fieldDef, executionStepInfo)
  );
  CompletableFuture<FetchedValues> fetchedData = fetchData(executionContext, parameters, fieldName, node, fieldDef);
  CompletableFuture<List<ExecutionNode>> result = fetchedData.thenApply((fetchedValues) -> {
    GraphQLCodeRegistry codeRegistry = executionContext.getGraphQLSchema().getCodeRegistry();
    Map<String, Object> argumentValues = valuesResolver.getArgumentValues(
        codeRegistry,
        fieldDef.getArguments(), fields.getSingleField().getArguments(), executionContext.getVariables());
    return completeValues(executionContext, fetchedValues, executionStepInfo, fieldName, fields, argumentValues);
  });
  fieldCtx.onDispatched(null);
  result = result.whenComplete((nodes, throwable) -> fieldCtx.onCompleted(null, throwable));
  return result;
}

代码示例来源:origin: graphql-java/graphql-java

Map<String, Object> argumentValues = valuesResolver.getArgumentValues(
    codeRegistry,
    fieldDef.getArguments(), fields.getSingleField().getArguments(), executionContext.getVariables());

代码示例来源:origin: graphql-java/graphql-java

public CompletableFuture<FetchedValue> fetchValue(ExecutionContext executionContext, Object source, Object localContext, MergedField sameFields, ExecutionStepInfo executionInfo) {
  Field field = sameFields.getSingleField();
  GraphQLFieldDefinition fieldDef = executionInfo.getFieldDefinition();
  GraphQLCodeRegistry codeRegistry = executionContext.getGraphQLSchema().getCodeRegistry();
  GraphQLFieldsContainer parentType = getFieldsContainer(executionInfo);
  Map<String, Object> argumentValues = valuesResolver.getArgumentValues(codeRegistry, fieldDef.getArguments(), field.getArguments(), executionContext.getVariables());
  GraphQLOutputType fieldType = fieldDef.getType();
  DataFetchingFieldSelectionSet fieldCollector = DataFetchingFieldSelectionSetImpl.newCollector(executionContext, fieldType, sameFields);
  DataFetchingEnvironment environment = newDataFetchingEnvironment(executionContext)
      .source(source)
      .localContext(localContext)
      .arguments(argumentValues)
      .fieldDefinition(fieldDef)
      .mergedField(sameFields)
      .fieldType(fieldType)
      .executionStepInfo(executionInfo)
      .parentType(parentType)
      .selectionSet(fieldCollector)
      .build();
  ExecutionId executionId = executionContext.getExecutionId();
  ExecutionPath path = executionInfo.getPath();
  return callDataFetcher(codeRegistry, parentType, fieldDef, environment, executionId, path)
      .thenApply(rawFetchedValue -> FetchedValue.newFetchedValue()
          .fetchedValue(rawFetchedValue)
          .rawFetchedValue(rawFetchedValue)
          .build())
      .exceptionally(exception -> handleExceptionWhileFetching(field, path, exception))
      .thenApply(result -> unboxPossibleDataFetcherResult(sameFields, path, result, localContext))
      .thenApply(this::unboxPossibleOptional);
}

代码示例来源:origin: graphql-java/graphql-java

Map<String, Object> argumentValues = valuesResolver.getArgumentValues(codeRegistry, fieldDef.getArguments(), field.getArguments(), executionContext.getVariables());

代码示例来源:origin: graphql-java/graphql-java

GraphQLFieldsContainer fieldsContainer = !isTypeNameIntrospectionField ? (GraphQLFieldsContainer) unwrapAll(parentEnv.getOutputType()) : null;
GraphQLCodeRegistry codeRegistry = schema.getCodeRegistry();
Map<String, Object> argumentValues = valuesResolver.getArgumentValues(codeRegistry, fieldDefinition.getArguments(), field.getArguments(), variables);
QueryVisitorFieldEnvironment environment = new QueryVisitorFieldEnvironmentImpl(isTypeNameIntrospectionField,
    field,

代码示例来源:origin: com.graphql-java/graphql-java

/**
 * All merged fields share the same arguments.
 *
 * @return the list of arguments
 */
public List<Argument> getArguments() {
  return getSingleField().getArguments();
}

代码示例来源:origin: com.introproventures/graphql-jpa-query-schema

protected Optional<Argument> extractArgument(DataFetchingEnvironment environment, Field field, String argumentName) {
  return field.getArguments()
    .stream()
    .filter(it -> argumentName.equals(it.getName()))
    .findFirst();
}

代码示例来源:origin: com.introproventures/graphql-jpa-query-schema

private Optional<Argument> getPageArgument(Field field) {
  return field.getArguments()
    .stream()
    .filter(it -> GraphQLJpaSchemaBuilder.PAGE_PARAM_NAME.equals(it.getName()))
    .findFirst();
}

代码示例来源:origin: com.introproventures/graphql-jpa-query-schema

private TypedQuery<Long> getCountQuery(DataFetchingEnvironment environment, Field field) {
  CriteriaBuilder cb = entityManager.getCriteriaBuilder();
  CriteriaQuery<Long> query = cb.createQuery(Long.class);
  Root<?> root = query.from(entityType);
  SingularAttribute<?,?> idAttribute = entityType.getId(Object.class);
  
  query.select(cb.count(root.get(idAttribute.getName())));
  
  List<Predicate> predicates = field.getArguments().stream()
    .map(it -> getPredicate(cb, root, null, environment, it))
    .filter(it -> it != null)
    .collect(Collectors.toList());
  
  query.where(predicates.toArray(new Predicate[predicates.size()]));
  return entityManager.createQuery(query);
}

代码示例来源:origin: leangen/graphql-spqr

private void collectField(FieldCollectorParameters parameters, Map<String, List<ResolvedField>> fields, Field field, GraphQLFieldsContainer parent) {
  if (!conditionalNodes.shouldInclude(parameters.getVariables(), field.getDirectives())) {
    return;
  }
  GraphQLFieldDefinition fieldDefinition = parent.getFieldDefinition(field.getName());
  Map<String, Object> argumentValues = valuesResolver.getArgumentValues(fieldDefinition.getArguments(), field.getArguments(), parameters.getVariables());
  ResolvedField node = new ResolvedField(field, fieldDefinition, argumentValues);
  fields.putIfAbsent(node.getName(), new ArrayList<>());
  fields.get(node.getName()).add(node);
}

代码示例来源:origin: com.graphql-java/graphql-java

@Override
public TraversalControl visitField(Field node, TraverserContext<Node> context) {
  Field changedNode = node.transform(builder -> {
    builder.arguments(sort(node.getArguments(), comparing(Argument::getName)));
    builder.directives(sort(node.getDirectives(), comparing(Directive::getName)));
    builder.selectionSet(sortSelectionSet(node.getSelectionSet()));
  });
  return changeNode(context, changedNode);
}

代码示例来源:origin: com.graphql-java/graphql-java

private Builder(Field existing) {
  this.sourceLocation = existing.getSourceLocation();
  this.comments = existing.getComments();
  this.name = existing.getName();
  this.alias = existing.getAlias();
  this.arguments = existing.getArguments();
  this.directives = existing.getDirectives();
  this.selectionSet = existing.getSelectionSet();
  this.ignoredChars = existing.getIgnoredChars();
}

相关文章