//package eu.play_project.play_platformservices_querydispatcher.bdpl.visitor;
//
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Map;
//
//import com.hp.hpl.jena.graph.Node;
//import com.hp.hpl.jena.graph.Node_Variable;
//import com.hp.hpl.jena.sparql.core.TriplePath;
//import com.hp.hpl.jena.sparql.syntax.Element;
//import com.hp.hpl.jena.sparql.syntax.ElementEventGraph;
//import com.hp.hpl.jena.sparql.syntax.ElementGroup;
//import com.hp.hpl.jena.sparql.syntax.ElementPathBlock;
//
//import eu.play_platform.platformservices.bdpl.VariableTypes;
//import eu.play_project.play_platformservices_querydispatcher.bdpl.visitor.realtime.GenericVisitor;
//import eu.play_project.play_platformservices_querydispatcher.types.C_Quadruple;
//import eu.play_project.play_platformservices_querydispatcher.types.H_Quadruple;
//import eu.play_project.play_platformservices_querydispatcher.types.P_Quadruple;
//import eu.play_project.play_platformservices_querydispatcher.types.R_Quadruple;
//import fr.inria.eventcloud.api.Quadruple;
//
//public class R_VariableVisitor extends GenericVisitor {
// Map<String, List<Quadruple>> variables;
//
// public Map<String, List<Quadruple>> getVariables() {
// return variables;
// }
//
// public void setVariables(Map<String, List<Quadruple>> variables) {
// this.variables = variables;
// }
//
// @Override
// public void visit(ElementEventGraph el) {
// el.getElement().visit(this);
// }
//
// @Override
// public void visit(ElementGroup el) {
// for (Element elment : el.getElements()) {
// elment.visit(this);
// }
// }
//
// @Override
// public void visit(ElementPathBlock el) {
// for (TriplePath triple : el.getPattern()) {
// addToVariablelist(triple.getSubject().visitWith(this), triple,
// VariableTypes.realtimeType);
// addToVariablelist(triple.getPredicate().visitWith(this), triple,
// VariableTypes.realtimeType);
// addToVariablelist(triple.getObject().visitWith(this), triple,
// VariableTypes.realtimeType);
// }
// }
//
// @Override
// public Object visitVariable(Node_Variable it, String name) {
// return name;
// }
//
// // Add value to resultSet if it is not null.
// private void addToVariablelist(Object var, TriplePath triple,
// VariableTypes type) {
// if (variables == null) {
// throw new RuntimeException(
// "Pleas use first R_VariableVisitor.setVariables(Map<String, List<Quadruple>> variables) first, before using visit(R_VariableVisitor rVisitor)");
// }
// if (var != null) {
// if (variables.get(var) == null) {
// variables.put((String) var, new ArrayList<Quadruple>());
// }
// List<Quadruple> value = variables.get(var);
// switch (type) {
// case constructType:
// value.add(new C_Quadruple(Node
// .createURI("http://construct.play-project.eu/"), triple
// .getSubject(), triple.getPredicate(), triple
// .getObject()));
// break;
// case historicType:
// value.add(new H_Quadruple(Node
// .createURI("http://construct.play-project.eu/"), triple
// .getSubject(), triple.getPredicate(), triple
// .getObject()));
// break;
// case realtimeType:
// value.add(new R_Quadruple(Node
// .createURI("http://construct.play-project.eu/"), triple
// .getSubject(), triple.getPredicate(), triple
// .getObject()));
// break;
// case preloadType:
// value.add(new P_Quadruple(Node
// .createURI("http://construct.play-project.eu/"), triple
// .getSubject(), triple.getPredicate(), triple
// .getObject()));
// }
//
// variables.put((String) var, value);
// }
// }
//}