@SuppressWarnings("unchecked") @Override public T get(DataFetchingEnvironment environment) { Object source = environment.getSource(); if (source == null) { return null; } if (function != null) { return (T) function.apply(source); } if (source instanceof Map) { return (T) ((Map<?, ?>) source).get(propertyName); } return (T) getPropertyViaGetter(source, environment.getFieldType(), environment); }
@Override public DataFetcher getDefaultDataFetcher(FieldWiringEnvironment environment) { return env -> { GraphQLOutputType fieldType = env.getFieldType(); if (fieldType instanceof GraphQLObjectType) { return fakeObjectValue((GraphQLObjectType) fieldType); } else { PropertyDataFetcher<Object> df = new PropertyDataFetcher<>(env.getFieldDefinition().getName()); return df.get(env); } }; }
@Override public GraphQLOutputType getFieldType() { return delegate.getFieldType(); }
/** * Resolve GraphQL object type from Argument output type. * * @param environment * @param argument * @return resolved GraphQL object type or null if no output type is provided */ private GraphQLObjectType getObjectType(DataFetchingEnvironment environment, Argument argument) { GraphQLType outputType = environment.getFieldType(); if (outputType instanceof GraphQLList) outputType = ((GraphQLList) outputType).getWrappedType(); if (outputType instanceof GraphQLObjectType) return (GraphQLObjectType) outputType; return null; }
@SuppressWarnings("unchecked") @Override public T get(DataFetchingEnvironment environment) { Object source = environment.getSource(); if (source == null) { return null; } if (function != null) { return (T) function.apply(source); } if (source instanceof Map) { return (T) ((Map<?, ?>) source).get(propertyName); } return (T) getPropertyViaGetter(source, environment.getFieldType(), environment); }
outputType = environment.getFieldType();
outputType = environment.getFieldType();
public ResolutionEnvironment(DataFetchingEnvironment env, ValueMapper valueMapper, GlobalEnvironment globalEnvironment, ConverterRegistry converterRegistry) { this.context = env.getSource(); this.rootContext = env.getContext(); this.valueMapper = valueMapper; this.globalEnvironment = globalEnvironment; this.converterRegistry = converterRegistry; this.fields = env.getFields(); this.fieldType = env.getFieldType(); this.parentType = env.getParentType(); this.graphQLSchema = env.getGraphQLSchema(); this.dataFetchingEnvironment = env; this.arguments = new HashMap<>(); }
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; }
@Override public DataFetcher getDefaultDataFetcher(FieldWiringEnvironment environment) { return env -> { GraphQLOutputType fieldType = env.getFieldType(); if (fieldType instanceof GraphQLObjectType) { return fakeObjectValue((GraphQLObjectType) fieldType); } else { PropertyDataFetcher<Object> df = new PropertyDataFetcher<>(env.getFieldDefinition().getName()); return df.get(env); } }; }
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 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; }
@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()); }
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 environment) { // Exclude arguments DataFetchingEnvironment env = new DataFetchingEnvironmentImpl(environment.getSource(), new HashMap<>(), environment.getContext(), environment.getFields(), environment.getFieldType(), environment.getParentType(), environment.getGraphQLSchema(), environment.getFragmentsByName(), environment.getExecutionId(), environment.getSelectionSet()); Connection conn = constructNewInstance(constructor, actualDataFetcher.get(env)); return conn.get(environment); } }
@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 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); }
public ArgumentEnvironment(DataFetchingEnvironment environment, String argumentName) { super( environment.getSource(), environment.getArgument(argumentName), environment.getContext(), environment.getRoot(), environment.getFieldDefinition(), environment.getFields(), environment.getFieldType(), environment.getParentType(), environment.getGraphQLSchema(), environment.getFragmentsByName(), environment.getExecutionId(), environment.getSelectionSet(), environment.getExecutionStepInfo(), environment.getExecutionContext() ); } }
@SuppressWarnings( "serial" ) protected Predicate getWherePredicate(CriteriaBuilder cb, Root<?> root, From<?,?> path, DataFetchingEnvironment environment, Argument argument) { ObjectValue whereValue = getValue(argument); if(whereValue.getChildren().isEmpty()) return cb.conjunction(); return getArgumentPredicate(cb, (path != null) ? path : root, new DataFetchingEnvironmentImpl( environment.getSource(), new LinkedHashMap<String,Object>() {{ put(Logical.AND.name(), 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() ), new Argument(Logical.AND.name(), whereValue) ); }
@SuppressWarnings("serial") private PredicateFilter getPredicateFilter(ObjectField objectField, DataFetchingEnvironment environment, Argument argument) { EnumSet<PredicateFilter.Criteria> options = EnumSet.of(PredicateFilter.Criteria.valueOf(argument.getName())); Object filterValue = convertValue( new DataFetchingEnvironmentImpl( environment.getSource(), new LinkedHashMap<String,Object>() {{ put(objectField.getName(), environment.getArgument(argument.getName())); }}, environment.getContext(), environment.getRoot(), environment.getFieldDefinition(), environment.getFields(), environment.getFieldType(), environment.getParentType(), environment.getGraphQLSchema(), environment.getFragmentsByName(), environment.getExecutionId(), environment.getSelectionSet(), environment.getExecutionStepInfo(), environment.getExecutionContext() ), new Argument(objectField.getName(), argument.getValue()), argument.getValue() ); return new PredicateFilter(objectField.getName(), filterValue, options ); }