@SuppressWarnings("unused") static DataFetcher getHeroDataFetcher() { return environment -> { if (environment.containsArgument("episode") && 5 == (int) environment.getArgument("episode")) return luke; return leia; // Not really, it was R2-D2, but Droids have been separated in this example. }; } }
@SuppressWarnings("unused") static DataFetcher getHeroDataFetcher() { return environment -> { if (environment.containsArgument("episode") && 5 == (int) environment.getArgument("episode")) return threepio; // It was Luke, but not here :-) return artoo; }; } }
public PaginationArguments getPaginationArguments(DataFetchingEnvironment environment) { String cursor = ""; int count = DEFAULT_COUNT; if (environment.containsArgument("cursor") && (environment.getArgument("cursor") instanceof String)) { cursor = new String(DECODER.decode((String) environment.getArgument("cursor")), Charsets.UTF_8); } if (environment.containsArgument("count")) { count = environment.getArgument("count"); } ConfiguredFilter filter = null; for (Map.Entry<String, CollectionFilter> entry : collectionFilters.entrySet()) { if (environment.containsArgument(entry.getKey())) { String searchQuery = environment.getArgument(entry.getKey()); String cursorArg = cursor; int countArg = count; String dataSetId = ((DatabaseResult) environment.getSource()).getDataSet().getMetadata().getCombinedId(); String fieldName = environment.getFieldDefinition().getName(); filter = () -> entry.getValue().query(dataSetId, fieldName, searchQuery, cursorArg, countArg); break; } } return PaginationArguments.create(count, cursor, Optional.ofNullable(filter)); }
@Override public List<Map> get(DataFetchingEnvironment env) { if (env.getSource() instanceof SubjectReference) { final Set<String> dataSetIds = new HashSet<>(); SubjectReference source = env.getSource(); ContextData contextData = env.getContext(); Stream<DataSet> dataSets = contextData.getUser() .map(user -> repo.getDataSetsWithReadAccess(user).stream()) .orElseGet(() -> repo.getDataSets().stream().filter(d -> d.getMetadata().isPublished())); if (env.containsArgument("dataSetIds")) { dataSetIds.addAll(env.getArgument("dataSetIds")); dataSets = dataSets.filter(d -> dataSetIds.contains(d.getMetadata().getCombinedId())); } final String ownId = source.getDataSet().getMetadata().getCombinedId(); return dataSets .filter(d -> !ownId.equals(d.getMetadata().getCombinedId())) .map(d -> { try (Stream<CursorQuad> quads = d.getQuadStore().getQuads(source.getSubjectUri())) { return tuple(d, quads.findAny()); } }) .filter(i -> i.getRight().isPresent()) .map(i -> ImmutableMap.of( "metadata", new DataSetWithDatabase(i.getLeft(), env.<ContextData>getContext().getUserPermissionCheck()), "entity", new LazyTypeSubjectReference(i.getRight().get().getSubject(), i.getLeft()) )) .collect(toList()); } return Lists.newArrayList(); }
public Object getInputValue(Object input, OperationArgument argument) { boolean argValuePresent = dataFetchingEnvironment.containsArgument(argument.getName()); ArgumentInjectorParams params = new ArgumentInjectorParams(input, argValuePresent, argument.getJavaType(), argument.getBaseType(), argument.getParameter(), this); Object value = this.globalEnvironment.injectors.getInjector(argument.getJavaType(), argument.getParameter()).getArgumentValue(params); if (argValuePresent) { arguments.put(argument.getName(), value); } return value; }