📄 submitmessage.java
字号:
package com.gctech.sms.sp.cms.msg2;
import java.util.*;
import com.gctech.sms.sp.cms.util.*;
public class SubmitMessage extends Message
{
private String spId ;
private String serviceId;
private String content;
private String[] destTermIds = new String[0];
public int destTermIdType = 0;
private Date validTime = null;
private Date atTime=null;
private String chargeTermId;
private int chargTermType = 0;
private String srcId;
private boolean isReport = false;
public String linkId ;
public SubmitMessage(String spId,String serviceId,String content,String[] destTermIds, String chargeTermId,String srcId)
{
this(spId,serviceId,content,destTermIds,0,chargeTermId,0,srcId,"");
}
public SubmitMessage(String spId,String serviceId,String content,String[] destTermIds,int destTermType, String chargeTermId,int chargeTermType,String srcId,String linkId)
{
this.commandId = Message.SUBMIT_REQ;
this.sequenceId = Message.nextSeqId() ;
this.spId = spId;
this.serviceId = serviceId;
this.content = content;
this.destTermIds = destTermIds;
this.chargeTermId = chargeTermId;
this.srcId = srcId;
this.destTermIdType = destTermType;
this.chargTermType = chargeTermType;
this.linkId = linkId;
checkValid();
}
public SubmitMessage(String spId,String serviceId,String content,
String destTermId,String chargeTermId,String srcId)
{
this(spId,serviceId,content,new String[]
{destTermId},chargeTermId,srcId);
}
public void setValidTime(Date d)
{
this.validTime = d;
}
public void setAtTime(Date d)
{
this.atTime = d;
}
public byte[] toBytes()
{
ProtocolBuffer pb = ProtocolBuffer.create(totalLength);
pb.appendInt(this.totalLength);
pb.appendInt(this.commandId);
pb.appendInt(0);
pb.appendInt(sequenceId);
pb.appendString(this.spId,20);
pb.appendString(this.serviceId,20);
pb.appendByte((byte)(this.isReport?0:1));
if(this.validTime!=null)
{
pb.appendStringDate(validTime);
}
else
{
pb.appendBynary0(17);
}
if(this.atTime!=null)
{
pb.appendStringDate(atTime);
}
else
{
pb.appendBynary0(17);
}
pb.appendString(this.chargeTermId,32);
pb.appendByte((byte)this.chargTermType);
pb.appendString(this.srcId,21);
pb.appendByte((byte)this.destTermIds.length);
for(int i=0;i<destTermIds.length;i++)
{
pb.appendString(destTermIds[i],32);
}
pb.appendByte((byte)this.destTermIdType);
pb.appendByte((byte)content.getBytes().length);
pb.appendString(content);
pb.appendString(this.linkId,20);
//test
return pb.toBytes();
}
private void checkValid()
{
if(content.length()>254) throw new IllegalArgumentException("内容长度过长");
if(destTermIds.length>100) throw new IllegalArgumentException("destTermIds larger that 100");
//this.totalLength = 112+21+destTermIds.length *21+1+content.getBytes().length;
this.totalLength = 168+destTermIds.length *32+content.getBytes().length;
}
public static void main(String[] args)
{
// SubmitMessage submitMessage1 = new SubmitMessage();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -