@Override public List<Field> getFields() { return delegate.getFields(); }
private FragmentDirectiveCollector(DataFetchingEnvironment env) { this.inlineFragmentDirs = new ArrayList<>(); this.fragmentDirs = new ArrayList<>(); this.fragmentDefDirs = new ArrayList<>(); this.fieldsToFind = env.getFields(); this.relevantFragments = new HashSet<>(); }
@Override public Object get(DataFetchingEnvironment environment) { return getQuery(environment, environment.getFields().iterator().next(), true).getResultList(); }
@Override public Object get(DataFetchingEnvironment environment) { for (Field field : environment.getFields()) { if (field.getName().equals(fieldName)) { Object[] arguments = new Object[argumentTypeMap.size()]; int index = 0; for (String argumentName : argumentTypeMap.keySet()) { arguments[index] = getParamValue(environment, argumentName, argumentTypeMap.get(argumentName)); index++; } return invokeMethod(environment, method, targetObject.isPresent() ? targetObject.get() : environment.getSource(), arguments); } } return null; }
@Override public Object get(DataFetchingEnvironment environment) { Field field = environment.getFields().iterator().next(); if(!field.getArguments().isEmpty()) { try { // Create entity graph from selection EntityGraph<?> entityGraph = buildEntityGraph(field); return super.getQuery(environment, field, true) .setHint("javax.persistence.fetchgraph", entityGraph) .getSingleResult(); } catch (NoResultException ignored) { // do nothing } } return null; } }
@Override public Object get(DataFetchingEnvironment environment) { Field field = environment.getFields().iterator().next(); Object source = environment.getSource(); Optional<Argument> whereArg = extractArgument(environment, field, GraphQLJpaSchemaBuilder.QUERY_WHERE_PARAM_NAME); // Resolve collection query if where argument is present or any field in selection has orderBy argument if(whereArg.isPresent() || hasSelectionAnyOrderBy(field)) { //EntityGraph<?> entityGraph = buildEntityGraph(new Field("select", new SelectionSet(Arrays.asList(field)))); return getQuery(environment, field, true) //.setHint("javax.persistence.fetchgraph", entityGraph) // TODO: fix runtime exception .getResultList(); } // Let hibernate resolve collection query return getAttributeValue(source, attribute); }
public DataFetcher<List<RDFNode>> instancesOfTypeFetcher() { return environment -> { Field field = (Field) environment.getFields().toArray()[0]; String predicate = (field.getAlias() == null) ? field.getName() : field.getAlias(); ModelContainer client = environment.getContext(); return client.getValuesOfObjectProperty( HGQLVocabulary.HGQL_QUERY_URI, HGQLVocabulary.HGQL_QUERY_NAMESPACE + predicate ); }; }
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 DataFetcher<List<RDFNode>> instancesOfTypeFetcher() { return environment -> { Field field = (Field) environment.getFields().toArray()[0]; String predicate = (field.getAlias() == null) ? field.getName() : field.getAlias(); ModelContainer client = environment.getContext(); return client.getValuesOfObjectProperty( HGQLVocabulary.HGQL_QUERY_URI, HGQLVocabulary.HGQL_QUERY_NAMESPACE + predicate ); }; }
public FetchParams(DataFetchingEnvironment environment, HGQLSchema hgqlschema) { subjectResource = environment.getSource(); String predicate = ((Field) environment.getFields().toArray()[0]).getName(); predicateURI = hgqlschema.getFields().get(predicate).getId(); client = environment.getContext(); if (!environment.getParentType().getName().equals("Query")) { String targetName = hgqlschema.getTypes().get(environment.getParentType().getName()).getField(predicate).getTargetName(); if (hgqlschema.getTypes().containsKey(targetName) && hgqlschema.getTypes().get(targetName).getId()!=null) { targetURI=hgqlschema.getTypes().get(targetName).getId(); } } }
public FetchParams(DataFetchingEnvironment environment, HGQLSchema hgqlschema) { subjectResource = environment.getSource(); String predicate = ((Field) environment.getFields().toArray()[0]).getName(); predicateURI = hgqlschema.getFields().get(predicate).getId(); client = environment.getContext(); if (!environment.getParentType().getName().equals("Query")) { String targetName = hgqlschema.getTypes().get(environment.getParentType().getName()).getField(predicate).getTargetName(); if (hgqlschema.getTypes().containsKey(targetName) && hgqlschema.getTypes().get(targetName).getId()!=null) { targetURI=hgqlschema.getTypes().get(targetName).getId(); } } }
@Test @DisplayName("schema must have some config") void schema_must_have_config() { DataFetchingEnvironment environment = mock(DataFetchingEnvironment.class); when(environment.getFields()).thenReturn(Collections.singletonList(mock(Field.class))); Executable executable = () -> new FetchParams( environment, mock(HGQLSchema.class) ); assertThrows(NullPointerException.class, executable); }
@Test @DisplayName("schema must not have empty config") void schema_must_have_config_2() { DataFetchingEnvironment environment = mock(DataFetchingEnvironment.class); when(environment.getFields()).thenReturn(Collections.singletonList(mock(Field.class))); HGQLSchema schema = mock(HGQLSchema.class); when(schema.getFields()).thenReturn(Collections.emptyMap()); Executable executable = () -> new FetchParams( environment, schema ); assertThrows(NullPointerException.class, executable); }
@Test @DisplayName("Environment must have more than zero fields") void environment_must_have_more_than_zero_fields() { DataFetchingEnvironment environment = mock(DataFetchingEnvironment.class); when(environment.getFields()).thenReturn(Collections.emptyList()); Executable executable = () -> new FetchParams( environment, mock(HGQLSchema.class) ); assertThrows(ArrayIndexOutOfBoundsException.class, executable); }
@Test @DisplayName("schema must have config for predicate") void schema_must_have_config_for_predicate() { DataFetchingEnvironment environment = mock(DataFetchingEnvironment.class); Field field = mock(Field.class); when(environment.getFields()).thenReturn(Collections.singletonList(field)); when(field.getName()).thenReturn("field1"); HGQLSchema schema = mock(HGQLSchema.class); FieldConfig fieldConfig = mock(FieldConfig.class); when(schema.getFields()).thenReturn(Collections.singletonMap("field", fieldConfig)); Executable executable = () -> new FetchParams( environment, schema ); assertThrows(NullPointerException.class, executable); } }
@Test @DisplayName("Environment must have a parent type") void environment_must_have_parent_type() { String uri = "abc123"; HGQLSchema schema = mock(HGQLSchema.class); DataFetchingEnvironment environment = mock(DataFetchingEnvironment.class); Field field1 = mock(Field.class); List<Field> fields = Collections.singletonList(field1); when(environment.getFields()).thenReturn(fields); when(field1.getName()).thenReturn("field1"); FieldConfig fieldConfig = mock(FieldConfig.class); Map<String, FieldConfig> schemaFields = Collections.singletonMap("field1", fieldConfig); when(schema.getFields()).thenReturn(schemaFields); when(fieldConfig.getId()).thenReturn(uri); Executable executable = () -> new FetchParams(environment, schema); assertThrows(NullPointerException.class, executable); }
@Test @DisplayName("Environment parent type must have a name") void environment_must_have_parent_type_name() { HGQLSchema schema = mock(HGQLSchema.class); DataFetchingEnvironment environment = mock(DataFetchingEnvironment.class); Field field1 = mock(Field.class); List<Field> fields = Collections.singletonList(field1); when(environment.getFields()).thenReturn(fields); when(field1.getName()).thenReturn("field1"); FieldConfig fieldConfig = mock(FieldConfig.class); Map<String, FieldConfig> schemaFields = Collections.singletonMap("field1", fieldConfig); when(schema.getFields()).thenReturn(schemaFields); GraphQLType parentType = mock(GraphQLType.class); when(environment.getParentType()).thenReturn(parentType); Executable executable = () -> new FetchParams(environment, schema); assertThrows(NullPointerException.class, executable); }
@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 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() ); } }