package org.openiot.gsn.dynamicSensorControl; import java.util.Collection; import java.util.LinkedHashSet; import java.util.Set; import org.apache.log4j.Logger; import org.openrdf.query.BindingSet; import org.openrdf.query.QueryEvaluationException; import org.openrdf.query.TupleQueryResult; /** * * @author Christos Georgoulis (cgeo) e-mail: cgeo@ait.edu.gr * */ public final class ParserFactory { private ParserFactory() { } /** * Sensor Parser Singleton */ public static final Parser<String> SENSOR_PARSER = new SensorParser(); // private classes private static class SensorParser implements Parser<String> { private static final Logger logger = Logger .getLogger(SensorParser.class); @Override public Collection<String> parse(TupleQueryResult tqr) { return parseTQR(tqr); } private Set<String> parseTQR(TupleQueryResult tqr) { Set<String> results = new LinkedHashSet<String>(); try { while (tqr.hasNext()) { BindingSet b = tqr.next(); Set<String> names = b.getBindingNames(); for (String s : names) { if (s.equalsIgnoreCase("sensorId")) { String str = (b.getValue(s) == null ? null : b .getValue(s).stringValue()); results.add(str); logger.debug("retrieved sensorId: " + s + " "); } } }// while } catch (QueryEvaluationException e) { e.printStackTrace(); logger.error("Query Error: ", e); } return results; } } } //