package org.aksw.jena_sparql_api.spring.conversion; import org.aksw.jena_sparql_api.mapper.MappedQuery; import org.aksw.jena_sparql_api.mapper.MappedQueryUtils; import org.aksw.jena_sparql_api.mapper.PartitionedQuery1; import org.aksw.jena_sparql_api.stmt.SparqlQueryParser; import org.aksw.jena_sparql_api.utils.VarUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.convert.converter.Converter; import org.apache.jena.query.Query; import org.apache.jena.sparql.core.DatasetGraph; import org.apache.jena.sparql.core.Var; @AutoRegistered public class C_StringToMappedQuery implements Converter<String, MappedQuery<DatasetGraph>> { @Autowired protected SparqlQueryParser parser; public MappedQuery<DatasetGraph> convert(String str) { PartitionedQuery1 partQuery = parse(str, parser); MappedQuery<DatasetGraph> result = MappedQueryUtils.fromConstructQuery(partQuery); return result; } public static PartitionedQuery1 parse(String str, SparqlQueryParser parser) { String[] splits = str.split("\\|", 2); if(splits.length != 2) { throw new RuntimeException("Invalid string: " + str); } Var var = VarUtils.parseVar(splits[0]); Query query = parser.apply(splits[1]); PartitionedQuery1 result = new PartitionedQuery1(query, var); return result; } }