package eu.play_project.play_platformservices_querydispatcher.bdpl.visitor.historic; import java.util.Iterator; import com.hp.hpl.jena.graph.Node; import com.hp.hpl.jena.graph.NodeFactory; import com.hp.hpl.jena.graph.Triple; import com.hp.hpl.jena.query.Query; import eu.play_project.play_platformservices.QueryTemplateImpl; import eu.play_project.play_platformservices.api.QueryTemplate; import eu.play_project.play_platformservices_querydispatcher.bdpl.visitor.realtime.GenerateConstructResulTemplatetVisitor; import fr.inria.eventcloud.api.Quadruple; public class QueryTemplateGenerator { QueryTemplate queryTemplate; public QueryTemplate createQueryTemplate(Query inputQuery) { Node graph = NodeFactory.createURI("urn:placeholder"); queryTemplate = new QueryTemplateImpl(); Iterator<Triple> iter = inputQuery.getConstructTemplate().getTriples().iterator(); Triple triple; while (iter.hasNext()) { triple = iter.next(); GenerateConstructResulTemplatetVisitor gtv = new GenerateConstructResulTemplatetVisitor(); Node subject, predicate, object; gtv = new GenerateConstructResulTemplatetVisitor(); triple.getSubject().visitWith(gtv); subject = gtv.getTemplate().getSubject(); gtv = new GenerateConstructResulTemplatetVisitor(); triple.getPredicate().visitWith(gtv); predicate = gtv.getTemplate().getPredicate(); gtv = new GenerateConstructResulTemplatetVisitor(); triple.getObject().visitWith(gtv); object = gtv.getTemplate().getObject(); queryTemplate.appendLine(new Quadruple(graph, subject, predicate, object)); } return queryTemplate; } }