/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.wordpress.salaboy.sensor; import com.wordpress.salaboy.context.tracking.ContextTrackingProvider; import com.wordpress.salaboy.messaging.MessageFactory; import com.wordpress.salaboy.model.messages.patient.HeartBeatMessage; import java.util.Date; import java.util.logging.Level; import java.util.logging.Logger; import org.hornetq.api.core.HornetQException; /** * * @author esteban */ public class SensorMessageProducer { private EmergencyInformationDataSource emergencyInformationDataSource; public SensorMessageProducer(EmergencyInformationDataSource emergencyInformationDataSource) { this.emergencyInformationDataSource = emergencyInformationDataSource; } //TODO: change double attribute to a SensorMessage object public void informMessage(double heartBeat) throws Exception { try { String callId = emergencyInformationDataSource.getCallId(); String vehicleId = emergencyInformationDataSource.getVehicleId(); if (callId == null){ Logger.getLogger(SensorMessageProducer.class.getName()).log(Level.INFO, "No call id provided!"); return; } String emergencyId = ContextTrackingProvider.getTrackingService().getEmergencyAttachedToCall(callId); if (emergencyId == null){ Logger.getLogger(SensorMessageProducer.class.getName()).log(Level.INFO, "No emergency associated to call id "+callId); return; } if (vehicleId == null){ Logger.getLogger(SensorMessageProducer.class.getName()).log(Level.INFO, "No vehicle id provided!"); return; } MessageFactory.sendMessage(new HeartBeatMessage(emergencyId, vehicleId, heartBeat, new Date())); } catch (HornetQException ex) { throw new Exception("Unable to add Heart Beat message into queue!", ex); } } }