📄 cmppdeliver.java
字号:
import java.lang.*;
import java.net.*;
import java.io.*;
import CMPPCommandID;
import CMPPPacket;
import CMPPStatusReport;
public class CMPPDeliver extends CMPPPacket
{
public int msg_id;//消息标识
public String destnation_id = null;//SP的接入代码,一般4~6位
public String service_id = null;//业务类型
public byte msg_fmt = 0;//信息格式
public String src_terminal_id = null;//源终端MSISDN号码
public byte registered_delivery = 0;//是否为应答信息
public byte msg_length = 0;//消息长度
public String msg_content = null;//消息内容
public CMPPStatusReport m_status_report = new CMPPStatusReport(this);//状态报告
//保留字段
private String reserve = "19751204";
public CMPPDeliver(int sequence_id)
{
super(CMPPCommandID.CMPP_DELIVER,sequence_id);
}
public CMPPDeliver(CMPPPacket packet)
{
super(packet);
}
public boolean isValid()
{
if(command_id != CMPPCommandID.CMPP_DELIVER)
{
CMPPLog.log("CMPPDeliver.isValid : not a CMPP_DELIVER command !",
CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
return false;
}
if(msg_id <= 0)
{
CMPPLog.log("CMPPDeliver.isValid : invalid msg_id !",
CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
return false;
}
if(destnation_id == null || destnation_id.length() != 21)
{
CMPPLog.log("CMPPDeliver.isValid : invalid destnation_id !",
CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
return false;
}
if(service_id == null || service_id.length() != 10)
{
CMPPLog.log("CMPPDeliver.isValid : invalid service_id !",
CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
return false;
}
if(msg_fmt != 0 && msg_fmt != 3 && msg_fmt != 4 && msg_fmt != 8 && msg_fmt != 15)
{
CMPPLog.log("CMPPDeliver.isValid : invalid msg_fmt !",
CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
return false;
}
if(src_terminal_id == null || src_terminal_id.length() != 21)
{
CMPPLog.log("CMPPDeliver.isValid : invalid src_terminal_id !",
CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
return false;
}
if(registered_delivery < 0 || registered_delivery > 1)
{
CMPPLog.log("CMPPDeliver.isValid : invalid registered_delivery !",
CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
return false;
}
if(registered_delivery == 1)
{
msg_length = 56;
msg_content = null;
if(!m_status_report.isValid())
{
CMPPLog.log("CMPPDeliver.isValid : invalid status_report !",
CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
return false;
}
}
else
{
if(msg_length <= 0 || (msg_fmt == 0 && msg_length >= 160) || (msg_fmt != 0 && msg_length > 140))
{
CMPPLog.log("CMPPDeliver.isValid : invalid msg_length !",
CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
return false;
}
if(msg_content == null || msg_content.length() != msg_length)
{
CMPPLog.log("CMPPDeliver.isValid : invalid msg_content !",
CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_ISVALID_METHOD);
return false;
}
}
return true;
}
public void dump(long lMethod)
{
CMPPLog.log("\tmsg_id = 0x" + CMPPUtility.toHexString(msg_id),
CMPPLog.LOG_CMPP_DELIVER | lMethod);
CMPPLog.log("\tdestnation_id = \"" + destnation_id + "\"",
CMPPLog.LOG_CMPP_DELIVER | lMethod);
CMPPLog.log("\tservice_id = \"" + service_id + "\"",
CMPPLog.LOG_CMPP_DELIVER | lMethod);
CMPPLog.log("\tmsg_fmt = " + msg_fmt
+ " [" + CMPPUtility.getMsgFmtDescription(msg_fmt) + "]",
CMPPLog.LOG_CMPP_DELIVER | lMethod);
CMPPLog.log("\tsrc_terminal_id = \"" + src_terminal_id + "\"",
CMPPLog.LOG_CMPP_DELIVER | lMethod);
CMPPLog.log("\tregistered_delivery = " + registered_delivery
+ " [" + (registered_delivery == 0 ? "非应答信息" : "状态报告") + "]",
CMPPLog.LOG_CMPP_DELIVER | lMethod);
if(registered_delivery == 1)
{
m_status_report.dump(lMethod);
}
else
{
CMPPLog.log("\tmsg_length = " + msg_length,
CMPPLog.LOG_CMPP_DELIVER | lMethod);
CMPPLog.log("\tmsg_content = \"" + msg_content + "\"",
CMPPLog.LOG_CMPP_DELIVER | lMethod);
}
CMPPLog.log("\treserve = \"" + reserve + "\"",
CMPPLog.LOG_CMPP_SUBMIT | lMethod);
}
public void wrap()
throws CMPPException
{
CMPPLog.log("CMPPDeliver.wrap : wrap elements !",
CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_WRAP_METHOD);
dump(CMPPLog.LOG_WRAP_METHOD);
insertString(reserve);
if(registered_delivery == 1)
{
m_status_report.wrap();
}
else
{
insertString(msg_content);
}
insertByte(msg_length);
insertByte(registered_delivery);
insertString(src_terminal_id);
insertByte(msg_fmt);
insertString(service_id);
insertString(destnation_id);
insertInteger(msg_id);
}
public void unwrap()
throws CMPPException
{
CMPPLog.log("CMPPDeliver.unwrap : unwrap elements !",
CMPPLog.LOG_CMPP_DELIVER | CMPPLog.LOG_UNWRAP_METHOD);
msg_id = getInteger();
destnation_id = getString(21);
service_id = getString(10);
msg_fmt = getByte();
src_terminal_id = getString(21);
registered_delivery = getByte();
msg_length = getByte();
if(registered_delivery == 1)
{
m_status_report.unwrap();
}
else
{
msg_content = getString(msg_length);
}
reserve = getString(8);
dump(CMPPLog.LOG_UNWRAP_METHOD);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -