public Map<String, Object> getArgumentValues() { return dataFetchingEnvironment.getArguments(); }
public Map<String, Object> getArgumentValues() { return dataFetchingEnvironment.getArguments(); }
protected Map<String, Object> unwrapInputArguments(DataFetchingEnvironment environment) { Map<String, Object> inputObject = null; String inArgName = getGraphQLSchemaConfig().getMutationInputArgumentName(); if (environment.getArguments() != null && (environment.getArguments() instanceof Map)) { inputObject = (Map<String, Object>) environment.getArguments().get(inArgName); } return inputObject; }
private static Map<String, Object> getActualArguments(DataFetchingEnvironment environment) { return environment.getArguments().entrySet().stream() .filter(entry -> entry.getValue() != null) .collect(Collectors.toMap( Map.Entry::getKey, Map.Entry::getValue )); }
private Object[] invocationArgs(DataFetchingEnvironment environment) { List<Object> result = new ArrayList<>(); Iterator envArgs = environment.getArguments().values().iterator(); for (Parameter p : method.getParameters()) { Class<?> paramType = p.getType(); if (DataFetchingEnvironment.class.isAssignableFrom(paramType)) { result.add(environment); continue; } graphql.schema.GraphQLType graphQLType = typeFunction.buildType(paramType, p.getAnnotatedType()); if (graphQLType instanceof GraphQLObjectType) { Constructor<?> constructor = constructor(paramType, HashMap.class); result.add(constructNewInstance(constructor, envArgs.next())); } else { result.add(envArgs.next()); } } return result.toArray(); } }
private Object[] invocationArgs(DataFetchingEnvironment environment, ProcessingElementsContainer container) { List<Object> result = new ArrayList<>(); Map<String, Object> envArgs = environment.getArguments(); for (Parameter p : method.getParameters()) { String parameterName; GraphQLName name = p.getAnnotation(GraphQLName.class); if (name != null) { parameterName = toGraphqlName(name.value()); } else { parameterName = toGraphqlName(p.getName()); } Class<?> paramType = p.getType(); if (DataFetchingEnvironment.class.isAssignableFrom(paramType)) { result.add(environment); continue; } graphql.schema.GraphQLType graphQLType = typeFunction.buildType(true, paramType, p.getAnnotatedType(), container); if (envArgs.containsKey(parameterName)) { result.add(buildArg(p.getParameterizedType(), graphQLType, envArgs.get(parameterName))); } else { result.add(null); } } return result.toArray(); }
public DataFetcher<List<String>> literalValuesFetcher() { return environment -> { FetchParams params = new FetchParams(environment, schema); return params.getClient().getValuesOfDataProperty( params.getSubjectResource(), params.getPredicateURI(), environment.getArguments() ); }; } }
public DataFetcher<String> literalValueFetcher() { return environment -> { FetchParams params = new FetchParams(environment, schema); return params.getClient().getValueOfDataProperty( params.getSubjectResource(), params.getPredicateURI(), environment.getArguments() ); }; }
public DataFetcher<List<String>> literalValuesFetcher() { return environment -> { FetchParams params = new FetchParams(environment, schema); return params.getClient().getValuesOfDataProperty( params.getSubjectResource(), params.getPredicateURI(), environment.getArguments() ); }; } }
public DataFetcher<String> literalValueFetcher() { return environment -> { FetchParams params = new FetchParams(environment, schema); return params.getClient().getValueOfDataProperty( params.getSubjectResource(), params.getPredicateURI(), environment.getArguments() ); }; }
public List<Object> getBatched(DataFetchingEnvironment env) { List sources = (List)env.getSource(); if ( isBatched ) { Object result = fetcher.get(env); if ( !(result instanceof List) || ((List)result).size() != sources.size() ) { throw new IllegalStateException("Batched fetcher "+fetcher+" expected to return list of "+sources.size()); } return (List<Object>)result; } List<Object> result = new ArrayList<>(); for ( Object source : sources ) { DataFetchingEnvironment envCopy = new DataFetchingEnvironmentImpl( source, env.getArguments(), env.getContext(), env.getFields(), env.getFieldType(), env.getParentType(), env.getGraphQLSchema(), env.getFragmentsByName(), env.getExecutionId(), env.getSelectionSet()); result.add(fetcher.get(envCopy)); } return result; }
public Object getUnbatched(DataFetchingEnvironment env) { if ( ! isBatched ) return fetcher.get(env); DataFetchingEnvironment envCopy = new DataFetchingEnvironmentImpl( Collections.singletonList(env.getSource()), env.getArguments(), env.getContext(), env.getFields(), env.getFieldType(), env.getParentType(), env.getGraphQLSchema(), env.getFragmentsByName(), env.getExecutionId(), env.getSelectionSet()); Object result = fetcher.get(envCopy); if ( !(result instanceof List) || ((List)result).size() != 1 ) { throw new IllegalStateException("Batched fetcher "+fetcher+" expected to return list of 1"); } return ((List)result).get(0); }
public Object getUnbatched(DataFetchingEnvironment env) { if ( ! isBatched ) return fetcher.get(env); DataFetchingEnvironment envCopy = new DataFetchingEnvironmentImpl( Collections.singletonList(env.getSource()), env.getArguments(), env.getContext(), env.getFields(), env.getFieldType(), env.getParentType(), env.getGraphQLSchema(), env.getFragmentsByName(), env.getExecutionId(), env.getSelectionSet()); Object result = fetcher.get(envCopy); if ( !(result instanceof List) || ((List)result).size() != 1 ) { throw new IllegalStateException("Batched fetcher "+fetcher+" expected to return list of 1"); } return ((List)result).get(0); }
@Override public Object get(DataFetchingEnvironment env) { Object source = ( null != impl ) ? impl : env.getSource(); if (source == null) return null; if (source instanceof ResolveDataFetchingEnvironment) { source = ((ResolveDataFetchingEnvironment)source).resolve(env); } return getMethodViaGetter(source, env.getFieldType(), getFieldType(env.getParentType()), env.getArguments()); }
@Override public Object get(DataFetchingEnvironment env) { Object source = ( null != impl ) ? impl : env.getSource(); if (source == null) return null; if (source instanceof ResolveDataFetchingEnvironment) { source = ((ResolveDataFetchingEnvironment)source).resolve(env); } return getMethodViaGetter(source, env.getFieldType(), getFieldType(env.getParentType()), env.getArguments()); }
@Override public Object get(DataFetchingEnvironment environment) { Object targetMethodResult = null; try { beforeInvocation(environment); Object[] bindByClassValues = collectBindByClassValues(environment); Object[] inputArguments = getMethodParametersBinder().bindParameters(environment.getArguments(), bindByClassValues); if (isAllNulls(inputArguments) && canApplySourceObject(environment)) { inputArguments = new Object[]{environment.getSource()}; } targetMethodResult = getTargetMethod().invoke(getTargetObject(), inputArguments); targetMethodResult = afterInvocation(environment, targetMethodResult); } catch (Exception e) { String msg = "Exception while calling data fetcher [" + getTargetMethod().getName() + "]"; if (LOGGER.isErrorEnabled()) LOGGER.error(msg, e); throw new DataFetcherRuntimeException(msg, e); } return targetMethodResult; }
public Object execute(DataFetchingEnvironment env) throws Exception { Resolver resolver; if (env.getContext() instanceof ContextWrapper) { ContextWrapper context = env.getContext(); if (env.getArgument(CLIENT_MUTATION_ID) != null) { context.setClientMutationId(env.getArgument(CLIENT_MUTATION_ID)); } } Map<String, Object> arguments = env.getArguments(); resolver = this.operation.getApplicableResolver(arguments.keySet()); if (resolver == null) { throw new GraphQLException("Resolver for operation " + operation.getName() + " accepting arguments: " + arguments.keySet() + " not implemented"); } ResolutionEnvironment resolutionEnvironment = new ResolutionEnvironment(env, this.valueMapper, this.globalEnvironment, this.converterRegistry); try { Object result = execute(resolver, resolutionEnvironment, arguments); return resolutionEnvironment.convertOutput(result, resolver.getReturnType()); } catch (ReflectiveOperationException e) { sneakyThrow(unwrap(e)); } return null; //never happens, needed because of sneakyThrow }
@Override public void build (Builder aBuilder) { aBuilder.field(Fields.field("addDirector") .type(Director.REF) .argument(Arguments.notNullStringArgument("name")) .dataFetcher((env) -> { Node node = SimpleNode.builder(g) .type(Director.NAME) .properties(env.getArguments()) .build(); return g.add(node); })); }
@Override public void build (Builder aBuilder) { aBuilder.field(Fields.field("addMovie") .type(Movie.REF) .argument(Arguments.notNullStringArgument("title")) .dataFetcher((env) -> { Node node = SimpleNode.builder(g) .type(Movie.NAME) .properties(env.getArguments()) .build(); return g.add(node); })); }
@Override public T get(DataFetchingEnvironment environment) throws Exception { Object source = environment.getSource(); if (source != null && (!declaringClass.isInstance(source)) && !(source instanceof Map)) { environment = new DataFetchingEnvironmentImpl(newInstance(declaringClass, source), environment.getArguments(), environment.getContext(), environment.getRoot(), environment.getFieldDefinition(), environment.getFields(), environment.getFieldType(), environment.getParentType(), environment.getGraphQLSchema(), environment.getFragmentsByName(), environment.getExecutionId(), environment.getSelectionSet(), environment.getExecutionStepInfo(), environment.getExecutionContext()); } return dataFetcher.get(environment); }