package gmu.firstresponse.common.messages;
import gmu.firstresponse.common.XML.XMLDocumentUtilities;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
public class FireDetectedMessage implements Serializable{
private static final long serialVersionUID = 1L;
private static final String MESSAGE_NODE = "Message";
private static final String FIRE_DETECTED_NODE = "FireDetected";
private static final String SENSOR_ID_NODE = "SensorID";
private static final String LONGITUDE_NODE = "Longitude";
private static final String LATITUDE_NODE = "Latitude";
private double latitude;
private double longitude;
private int sensorID;
public FireDetectedMessage()
{
}
/*
private void readObject(ObjectInputStream in) throws IOException
{
Document doc = XMLDocumentUtilities.parseStream(in);
NodeList list = XMLDocumentUtilities.getNodesByName(doc, FIRE_DETECTED_NODE);
if(list != null && list.getLength() == 1) {
Element element = (Element)list.item(0);
latitude = XMLDocumentUtilities.getDoubleValue(element,LATITUDE_NODE);
longitude = XMLDocumentUtilities.getDoubleValue(element,LONGITUDE_NODE);
sensorID = XMLDocumentUtilities.getIntValue(element,SENSOR_ID_NODE);
}
else if(list != null && list.getLength() > 1)
{
System.err.println("There was more than one object in the input stream, this shouldn't happen.");
}
}
private void writeObject(ObjectOutputStream out)throws IOException
{
Document doc = XMLDocumentUtilities.createDocument();
Element messageElement = doc.createElement(MESSAGE_NODE);
doc.appendChild(messageElement);
Element fireDetectedElement = doc.createElement(FIRE_DETECTED_NODE);
messageElement.appendChild(fireDetectedElement);
Element latitudeElement = doc.createElement(LATITUDE_NODE);
Element longitudeElement = doc.createElement(LONGITUDE_NODE);
Element sensorIDElement = doc.createElement(SENSOR_ID_NODE);
fireDetectedElement.appendChild(latitudeElement);
fireDetectedElement.appendChild(longitudeElement);
fireDetectedElement.appendChild(sensorIDElement);
Text longitudeText = doc.createTextNode(longitude + "");
longitudeElement.appendChild(longitudeText);
Text latitudeText = doc.createTextNode(latitude + "");
latitudeElement.appendChild(latitudeText);
Text sensorIDText = doc.createTextNode(sensorID + "");
sensorIDElement.appendChild(sensorIDText);
XMLDocumentUtilities.writeDocumentToStream(doc, out);
}
*/
public FireDetectedMessage(double latitude, double longitude, int sensorID)
{
setLatitude(latitude);
setLongitude(longitude);
setSensorID(sensorID);
}
public boolean equals(Object object)
{
//check for self-comparison
if ( this == object ) return true;
if ( !(object instanceof FireDetectedMessage) ) return false;
FireDetectedMessage other = (FireDetectedMessage)object;
if(this.latitude == other.latitude &&
this.longitude == other.longitude &&
this.sensorID == other.sensorID)
{
return true;
}
else
{
return false;
}
}
public void setLatitude(double latitude) {
this.latitude = latitude;
}
public double getLatitude() {
return latitude;
}
public void setLongitude(double longitude) {
this.longitude = longitude;
}
public double getLongitude() {
return longitude;
}
public void setSensorID(int sensorID) {
this.sensorID = sensorID;
}
public int getSensorID() {
return sensorID;
}
}
|