package eu.play_project.play_platformservices_querydispatcher.types; //package eu.play_project.play_platformservices_querydispatcher; // //import java.util.HashMap; //import java.util.List; //import java.util.Map; // //import org.slf4j.Logger; //import org.slf4j.LoggerFactory; // //import com.hp.hpl.jena.query.Query; // //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.R_Quadruple; //import fr.inria.eventcloud.api.Quadruple; // //public class AgregatedVariableTypes { // // public enum AgregatedEventType { // C, H, R, CR, CH, RH, CRH // } // // Logger logger = LoggerFactory.getLogger(AgregatedVariableTypes.class); // // public Map<String, AgregatedEventType> detectType(Query query) { // // //Search variables. // VariableQuadrupleVisitor vqv = new VariableQuadrupleVisitor(); // Map<String, List<Quadruple>> variables = null;// = vqv.getVariables(query); // // // Result map. // Map<String, AgregatedEventType> variableAbsolutType = new HashMap<String, AgregatedEventType>(); // // // Print all variables and triples in which they occur. // for (String key : variables.keySet()) { // logger.debug("Variable " + key + " occurs in: "); // int type = 0; // boolean cSet = false; // boolean rSet = false; // boolean hSet = false; // for (Quadruple quadruple : variables.get(key)) { // logger.debug("Type is: " + quadruple.getClass().getName()); // // if (quadruple instanceof C_Quadruple) { // if(!cSet) type += 1; cSet= true; // } // if (quadruple instanceof R_Quadruple) { // if(!rSet)type += 2; rSet = true; // } // if (quadruple instanceof H_Quadruple) { // if(!hSet) type += 4; hSet = true; // } // } // // // Add type // switch (type) { // case 1: // variableAbsolutType.put(key, AgregatedEventType.C); // break; // case 2: // variableAbsolutType.put(key, AgregatedEventType.R); // break; // // case 3: // variableAbsolutType.put(key, AgregatedEventType.CR); // break; // // case 4: // variableAbsolutType.put(key, AgregatedEventType.H); // break; // // case 5: // variableAbsolutType.put(key, AgregatedEventType.CH); // break; // case 6: // variableAbsolutType.put(key, AgregatedEventType.RH); // break; // // case 7: // variableAbsolutType.put(key, AgregatedEventType.CRH); // break; // // case 8: // variableAbsolutType.put(key, AgregatedEventType.H); // break; // // case 9: // variableAbsolutType.put(key, AgregatedEventType.CH); // break; // // case 10: // variableAbsolutType.put(key, AgregatedEventType.RH); // break; // // case 11: // variableAbsolutType.put(key, AgregatedEventType.CRH); // break; // // case 12: // variableAbsolutType.put(key, AgregatedEventType.H); // break; // // } // } // return variableAbsolutType; // } // //}