175 lines
5.0 KiB
Java
175 lines
5.0 KiB
Java
/*
|
|
* Conditions Of Use
|
|
*
|
|
* This software was developed by employees of the National Institute of
|
|
* Standards and Technology (NIST), an agency of the Federal Government.
|
|
* Pursuant to title 15 Untied States Code Section 105, works of NIST
|
|
* employees are not subject to copyright protection in the United States
|
|
* and are considered to be in the public domain. As a result, a formal
|
|
* license is not needed to use the software.
|
|
*
|
|
* This software is provided by NIST as a service and is expressly
|
|
* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
|
|
* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
|
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
|
|
* AND DATA ACCURACY. NIST does not warrant or make any representations
|
|
* regarding the use of the software or the results thereof, including but
|
|
* not limited to the correctness, accuracy, reliability or usefulness of
|
|
* the software.
|
|
*
|
|
* Permission to use this software is contingent upon your acceptance
|
|
* of the terms of this agreement
|
|
*
|
|
* .
|
|
*
|
|
*/
|
|
/*******************************************************************************
|
|
* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). *
|
|
*******************************************************************************/
|
|
|
|
package gov.nist.javax.sip.stack;
|
|
|
|
import gov.nist.javax.sip.LogRecord;
|
|
|
|
/**
|
|
* This class stores a message along with some other informations
|
|
* Used to log messages.
|
|
*
|
|
*@version 1.2 $Revision: 1.9 $ $Date: 2009/07/17 18:58:13 $
|
|
*
|
|
* @author M. Ranganathan <br/>
|
|
* @author Marc Bednarek <br/>
|
|
*
|
|
*
|
|
*/
|
|
class MessageLog implements LogRecord {
|
|
|
|
private String message;
|
|
|
|
private String source;
|
|
|
|
private String destination;
|
|
|
|
private long timeStamp;
|
|
|
|
private boolean isSender;
|
|
|
|
private String firstLine;
|
|
|
|
private String tid;
|
|
|
|
private String callId;
|
|
|
|
private long timeStampHeaderValue;
|
|
|
|
/* (non-Javadoc)
|
|
* @see gov.nist.javax.sip.stack.LogRecord#equals(java.lang.Object)
|
|
*/
|
|
public boolean equals(Object other) {
|
|
if (!(other instanceof MessageLog)) {
|
|
return false;
|
|
} else {
|
|
MessageLog otherLog = (MessageLog) other;
|
|
return otherLog.message.equals(message)
|
|
&& otherLog.timeStamp == timeStamp;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Constructor
|
|
*/
|
|
|
|
public MessageLog(
|
|
String message,
|
|
String source,
|
|
String destination,
|
|
String timeStamp,
|
|
boolean isSender,
|
|
String firstLine,
|
|
String tid,
|
|
String callId,
|
|
long timeStampHeaderValue) {
|
|
if (message == null || message.equals(""))
|
|
throw new IllegalArgumentException("null msg");
|
|
this.message = message;
|
|
this.source = source;
|
|
this.destination = destination;
|
|
try {
|
|
long ts = Long.parseLong(timeStamp);
|
|
if (ts < 0)
|
|
throw new IllegalArgumentException("Bad time stamp ");
|
|
this.timeStamp = ts;
|
|
} catch (NumberFormatException ex) {
|
|
throw new IllegalArgumentException(
|
|
"Bad number format " + timeStamp);
|
|
}
|
|
this.isSender = isSender;
|
|
this.firstLine = firstLine;
|
|
this.tid = tid;
|
|
this.callId = callId;
|
|
this.timeStampHeaderValue = timeStampHeaderValue;
|
|
}
|
|
|
|
|
|
|
|
public MessageLog(
|
|
String message,
|
|
String source,
|
|
String destination,
|
|
long timeStamp,
|
|
boolean isSender,
|
|
String firstLine,
|
|
String tid,
|
|
String callId,
|
|
long timestampVal) {
|
|
if (message == null || message.equals(""))
|
|
throw new IllegalArgumentException("null msg");
|
|
this.message = message;
|
|
this.source = source;
|
|
this.destination = destination;
|
|
if (timeStamp < 0)
|
|
throw new IllegalArgumentException("negative ts");
|
|
this.timeStamp = timeStamp;
|
|
this.isSender = isSender;
|
|
this.firstLine = firstLine;
|
|
this.tid = tid;
|
|
this.callId = callId;
|
|
this.timeStampHeaderValue = timestampVal;
|
|
}
|
|
|
|
|
|
/* (non-Javadoc)
|
|
* @see gov.nist.javax.sip.stack.LogRecord#toString()
|
|
*/
|
|
|
|
public String toString() {
|
|
String log;
|
|
|
|
|
|
log =
|
|
"<message\nfrom=\""
|
|
+ source
|
|
+ "\" \nto=\""
|
|
+ destination
|
|
+ "\" \ntime=\""
|
|
+ timeStamp
|
|
+ "\"" +
|
|
(this.timeStampHeaderValue != 0 ? "\ntimeStamp = \"" + timeStampHeaderValue + "\"": "")
|
|
+"\nisSender=\""
|
|
+ isSender
|
|
+ "\" \ntransactionId=\""
|
|
+ tid
|
|
+ "\" \ncallId=\""
|
|
+ callId
|
|
+ "\" \nfirstLine=\""
|
|
+ firstLine.trim() + "\"" +
|
|
" \n>\n";
|
|
log += "<![CDATA[";
|
|
log += message;
|
|
log += "]]>\n";
|
|
log += "</message>\n";
|
|
|
|
return log;
|
|
}
|
|
}
|