package tmcsim.cadmodels;
import java.io.Serializable;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
/**
* IncidentInquiryLogEntry is the base model object used for IncidentInquiry
* log entries. Every log entry has an associated position and timestamp for
* where the data originated.
*
* This element parses and creates the following XML schema in its toXML() and
* fromXML() methods. The ROOT element is the parameter for those methods.
*
*
*
*
*
* @author Matthew Cechini
* @version
*/
@SuppressWarnings("serial")
public class IncidentInquiryLogEntry implements Serializable {
/**
* Enumeration with XML tag names.
* @author Matthew Cechini
*/
private static enum XML_TAGS {
/** Log entry position info. */
POSITION_INFO ("POSITION_INFO"),
/** Log entry timestamp. */
TIMESTAMP ("TIMESTAMP");
public String tag;
private XML_TAGS(String t) {
tag = t;
}
}
/** Position information for this log entry. */
protected String positionInfo;
/** Time stamp value for this log entry. */
protected String timeStamp;
/** Default Constructor. Initialize local data. */
public IncidentInquiryLogEntry() {
positionInfo = "";
timeStamp = "0000";
}
/**
* Constructor. Set position info and time stamp.
*
* @param newPosInfo Position info for this log entry
* @param newTimeStamp Time stamp for this log entry
*/
public IncidentInquiryLogEntry(String newPosInfo, String newTimeStamp) {
positionInfo = newPosInfo;
timeStamp = newTimeStamp;
}
/**
* Creates XML tags with the model data and adds them to the parameter
* Element. See clss description for XML schema.
*
* @param currElem XML Element used as a root for XML tag appending.
*/
public void toXML(Element currElem) {
Document theDoc = currElem.getOwnerDocument();
Element tempElem = null;
tempElem = theDoc.createElement(XML_TAGS.POSITION_INFO.tag);
tempElem.appendChild(theDoc.createTextNode(positionInfo));
currElem.appendChild(tempElem);
tempElem = theDoc.createElement(XML_TAGS.TIMESTAMP.tag);
tempElem.appendChild(theDoc.createTextNode(timeStamp));
currElem.appendChild(tempElem);
}
/**
* Parses model data from the parameter Node. See clss description for
* XML schema.
*
* @param modelNode XML Node containing model information.
*/
public void fromXML(Node modelNode) {
Node childNode = null;
//childNode = modelNode.getFirstChild();
positionInfo = modelNode.getTextContent();
childNode = modelNode.getNextSibling();
timeStamp = childNode.getTextContent();
}
/**
* Sets the time stamp for this log entry.
*
* @param newStamp The timestamp value.
*/
public void timeStamp(String newStamp) {
timeStamp = newStamp;
}
/**
* Returns the log information for this log entry. The log information
* is the concatenation of the entering position info and timestamp.
*
* @return Log entry's log information
*/
public String getLogInfo() {
return positionInfo += timeStamp;
}
}