⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 message.java

📁 xml生成javabean,基于dom的解析xml
💻 JAVA
字号:
package com.jpmorgan.neo.neoclient.mds.slcv5.parser;


/**
 * The super class of all GL Message types, a GL message is a string of variable length in<br>
 * ASCII 8-bit format that must adhere to the following format:<br>
 * <br>
 * |----|--------|---------|--------|
 * | LG | HEADER |  DATA   | FOOTER |
 * |----|--------|---------|--------|
 * 
 */
public abstract class Message {

	//total message length, including LG,Header,Data,Footer.
	protected LG lg;

	//General message information.
	protected Header header;

	//end of message.
	protected Footer footer;

	/**
	 * the request number is define in sub class.
	 * @param requestNubmer not use
	 */
	public Message(String requestNubmer) {
		lg = new LG();
		header = new Header(requestNubmer);
		footer = new Footer();
	}

	/**
	 * return bytes array.
	 * @return byte array
	 */
	public byte[] getBytes() {
		StringBuffer buffer = new StringBuffer();
		byte[] aheader = header.getBytes();
		byte[] abody = this.getBodyBytes();
		byte[] afooter = footer.getBytes();
		buffer.append(new String(aheader));
		buffer.append(new String(abody));
		buffer.append(new String(afooter));
		
		//total of bytes
		int total = buffer.toString().length()+2;
				
		buffer = new StringBuffer();
		lg.setBytes(ByteUtil.int2Byte(total));			
		buffer.append(new String(lg.getBytes()));
		buffer.append(new String(aheader));
		buffer.append(new String(abody));
		buffer.append(new String(afooter));
		
		return buffer.toString().getBytes();
	}

	/**
	 * put in byte array it will fill fields automatism.
	 * @param bytes
	 */
	public void setBytes(byte[] ascii) {						
		parseHeader(ascii);
		parseBody(ByteUtil.subBytes(ascii, 32, ascii.length - 3));
	}
	
	
	/**
	 * pasre bytes to header.
	 * @param bytes
	 */
	public void parseHeader(byte[] bytes){
		header.setBytes(ByteUtil.subBytes(bytes, 0, 32));
	}
	
	/**
	 * parse byte array to fill fields
	 * @param ascii it must be a ascii code byte
	 */
	protected void parseBody(byte[] ascii) {
		//parse byte fill fields
		MessageParser.getInstance().parseBytesToField(this, ascii);
	}

	/**
	 * parse fields to bytes array
	 * @return
	 */
	protected byte[] getBodyBytes(){
		//parse fields to bytes
		return MessageParser.getInstance().parseFieldsToBytes(this);
	}

	/**
	 * return reply request number that need + 1 to mapping xml file config.
	 * @return request number
	 */ 
	public String getReplyNumber(){
		int number = Integer.parseInt(header.getRequestNumber()) + 1;
		return ByteUtil.fillZeroBefore(number,5);
	}
	
	public String getRequestNumber(){
		return header.getRequestNumber();
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -