default <W> LookupService<K, W> mapValues(BiFunction<K, V, W> fn) { return LookupServiceTransformValue.create(this, fn); }
/** * create method that only passes the original value to the mapping function * * @param base * @param fn * @return */ public static <K, W, V> LookupServiceTransformValue<K, W, V> create(LookupService<K, V> base, BiFunction<? super K, ? super V, W> fn) { LookupServiceTransformValue<K, W, V> result = new LookupServiceTransformValue<K, W, V>(base, fn); return result; }
public static LookupService<Node, Geometry> createGeoLookupService(QueryExecutionFactory sparqlService, MappedConcept<String> mappedConcept) { LookupService<Node, String> ls = LookupServiceUtils.createLookupService(sparqlService, mappedConcept); LookupService<Node, Geometry> result = LookupServiceTransformValue.create(ls, FN_ParseWkt.create()); return result; } }
/** * create method tha passes both key and value of each entry to the mapping function * * @param base * @param fn * @return */ public static <K, W, V> LookupServiceTransformValue<K, W, V> create(LookupService<K, V> base, Function<? super V, W> fn) { LookupServiceTransformValue<K, W, V> result = new LookupServiceTransformValue<K, W, V>(base, (k, v) -> fn.apply(v)); return result; } }
public static LookupService<Node, Geometry> createGeoLookupService(QueryExecutionFactory sparqlService, MappedConcept<String> mappedConcept) { LookupService<Node, String> ls = LookupServiceUtils.createLookupService(sparqlService, mappedConcept); LookupService<Node, Geometry> result = LookupServiceTransformValue.create(ls, FN_ParseWkt.create()); return result; } }
public static <T> LookupService<Node, T> createLookupService(QueryExecutionFactory sparqlService, MappedQuery<T> mappedQuery) { PartitionedQuery1 partQuery = mappedQuery.getPartQuery(); Query query = partQuery.getQuery(); Var partVar = partQuery.getPartitionVar(); Agg<T> agg = mappedQuery.getAgg(); LookupService<Node, Table> base = new LookupServiceSparqlQuery(sparqlService, query, partVar); FunctionResultSetAggregate<T> transform = FunctionResultSetAggregate.create(agg); LookupService<Node, T> result = LookupServiceTransformValue.create(base, transform); return result; }
public static LookupService<Node, Node> createLookupServiceMostRecentChangeSet(QueryExecutionFactory qef, Node service, Node graph) { Query query = queryMostRecentChangeSet; if(service != null || graph != null) { query = query.cloneQuery(); } if(service != null) { QueryUtils.injectFilter(query, new E_Equals(new ExprVar(Vars.y), NodeValue.makeNode(service))); //QueryUtils.injectElement(query, ElementUtils.createElement(new Triple(Vars.s, NodeFactory.createURI("http://purl.org/vocab/changeset/schema#service"), Vars.y))); //query.getProject().add(Vars.y); // new E_Equals(new ExprVar(Vars.y), new ExprVar(graph))); } if(graph != null) { QueryUtils.injectFilter(query, new E_Equals(new ExprVar(Vars.z), NodeValue.makeNode(graph))); //QueryUtils.injectElement(query, ElementUtils.createElement(new Triple(Vars.s, NodeFactory.createURI("http://purl.org/vocab/changeset/schema#graph"), Vars.z))); } LookupService<Node, Table> ls = new LookupServiceSparqlQuery(qef, query, Vars.o); // We filter by o, but project by s LookupService<Node, Node> result = LookupServiceTransformValue.create(ls, (k, v) -> FunctionTableFirstRow.fn.andThen( FunctionBindingMapper.create(BindingMapperProjectVar.create(Vars.s))).apply(v)); return result; }