@Override public boolean providesDataFetcher(FieldWiringEnvironment environment) { return environment.getFieldDefinition().getDirective("fromCollection") != null || environment.getFieldDefinition().getDirective("lookupUri") != null || environment.getFieldDefinition().getDirective("rdf") != null || environment.getFieldDefinition().getDirective("uri") != null || environment.getFieldDefinition().getDirective("passThrough") != null || environment.getFieldDefinition().getDirective("related") != null || environment.getFieldDefinition().getDirective("dataSet") != null || environment.getFieldDefinition().getDirective("entityTitle") != null || environment.getFieldDefinition().getDirective("entityDescription") != null || environment.getFieldDefinition().getDirective("entityImage") != null || environment.getFieldDefinition().getDirective("otherDataSets") != null || environment.getFieldDefinition().getDirective("getAllOfPredicate") != null || environment.getFieldDefinition().getDirective("createMutation") != null || environment.getFieldDefinition().getDirective("editMutation") != null || environment.getFieldDefinition().getDirective("deleteMutation") != null || environment.getFieldDefinition().getDirective("persistEntityMutation") != null || environment.getFieldDefinition().getDirective("setCustomProvenanceMutation") != null; }
public static Optional<String> getDirectiveArgument(GraphQLFieldDefinition field, String directiveName, String argumentName) { return Optional.ofNullable(field.getDefinition().getDirective(directiveName)) .map(d -> d.getArgument(argumentName)) .map(v -> (StringValue) v.getValue()) .map(StringValue::getValue); } }
@Override public DataFetcher getDataFetcher(FieldWiringEnvironment environment) { if (environment.getFieldDefinition().getDirective("passThrough") != null) { return DataFetchingEnvironment::getSource; } else if (environment.getFieldDefinition().getDirective("related") != null) { final Directive directive = environment.getFieldDefinition().getDirective("related"); String source = ((StringValue) directive.getArgument("source").getValue()).getValue(); String predicate = ((StringValue) directive.getArgument("predicate").getValue()).getValue(); Direction.valueOf(direction) )); } else if (environment.getFieldDefinition().getDirective("lookupUri") != null) { return lookupFetcher; } else if (environment.getFieldDefinition().getDirective("fromCollection") != null) { final Directive directive = environment.getFieldDefinition().getDirective("fromCollection"); String uri = ((StringValue) directive.getArgument("uri").getValue()).getValue(); return new CollectionFetcherWrapper(argumentsHelper, new CollectionDataFetcher(uri)); } else if (environment.getFieldDefinition().getDirective("rdf") != null) { final Directive directive = environment.getFieldDefinition().getDirective("rdf"); String uri = ((StringValue) directive.getArgument("predicate").getValue()).getValue(); Direction direction = valueOf(((StringValue) directive.getArgument("direction").getValue()).getValue()); } else if (environment.getFieldDefinition().getDirective("uri") != null) { return uriFetcher; } else if (environment.getFieldDefinition().getDirective("dataSet") != null) { final Directive directive = environment.getFieldDefinition().getDirective("dataSet"); String userId = ((StringValue) directive.getArgument("userId").getValue()).getValue(); String dataSetId = ((StringValue) directive.getArgument("dataSetId").getValue()).getValue(); } else if (environment.getFieldDefinition().getDirective("entityTitle") != null) {
String iri = ((StringValue) field.getDirective("href").getArgument("iri").getValue()).getValue(); contextMap.put(field.getName(), iri); }); rdfSchema.insertObjectTriple(typeUri, HGQL_HAS_FIELD, fieldURI); String serviceId = ((StringValue) field.getDirective("service").getArgument("id").getValue()).getValue(); String serviceURI = HGQL_SERVICE_NAMESPACE + serviceId; rdfSchema.insertObjectTriple(fieldURI, HGQL_HAS_SERVICE, serviceURI);
String iri = ((StringValue) field.getDirective("href").getArgument("iri").getValue()).getValue(); contextMap.put(field.getName(), iri); }); rdfSchema.insertObjectTriple(typeUri, HGQL_HAS_FIELD, fieldURI); String serviceId = ((StringValue) field.getDirective("service").getArgument("id").getValue()).getValue(); String serviceURI = HGQL_SERVICE_NAMESPACE + serviceId; rdfSchema.insertObjectTriple(fieldURI, HGQL_HAS_SERVICE, serviceURI);