package cgl.iotcloud.core.sensorsite;
import cgl.iotcloud.core.Configuration;
import cgl.iotcloud.core.ISensor;
import cgl.iotcloud.core.SensorContext;
import cgl.iotcloud.core.transport.Transport;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Holds information about an active site
*/
public class SiteContext {
// a unique id for the site
private String siteId;
// the transports available for this site
private Map<String, Transport> transports = new HashMap<String, Transport>();
// static information about the deployed sensors
private Map<String, SensorInstance> sensors = new HashMap<String, SensorInstance>();
private Map conf;
public SiteContext(String siteId, Map conf) {
this.siteId = siteId;
this.conf = conf;
}
public String getSiteId() {
return siteId;
}
public void addSensor(SensorContext context, ISensor sensor) {
SensorInstance details = new SensorInstance(context, sensor);
sensors.put(context.getSensorID(), details);
}
public SensorInstance removeSensor(String sensorId) {
return sensors.remove(sensorId);
}
public void addTransport(String tName, Transport t) {
transports.put(tName, t);
}
public Transport getTransport(String tName) {
return transports.get(tName);
}
public List<SensorInstance> getRegisteredSensors() {
return new ArrayList<SensorInstance>(sensors.values());
}
public SensorInstance getSensor(String id) {
return sensors.get(id);
}
public SensorInstance getSensorDescriptor(String id) {
return sensors.get(id);
}
public Map<String, Transport> getTransports() {
return transports;
}
public String getMasterHost() {
return Configuration.getMasterHost(conf);
}
public int getMasterPort() {
return Configuration.getMasterServerPort(conf);
}
public Map getConf() {
return conf;
}
}