Commit b987c3e8 by WeiCong

1.优化对外统一提供API;2.提供使用说明文档

parent ba017932
......@@ -24,12 +24,18 @@ public class SWFMessage extends AbstractMessageArea {
private Map<String, Integer> tag2No = new HashMap<>();
private Map<String, String> bscInfo;
private volatile String body;
private String sndbic;
private String rcvbic;
protected SWFMessage() {
}
public static SWFMessage loadSwiftMessage(String message) {
return MessageAnalyzer.loadSwiftMessage(message);
}
public static SWFMessage getSWFMessage(String mtType) {
return MessageFormat.getSWFMessage(mtType);
}
public static SWFMessage loadMTTemp(String mt) {
return null;
}
......@@ -90,14 +96,6 @@ public class SWFMessage extends AbstractMessageArea {
sb.append("]");
}
public void setSndbic(String sndbic) {
this.sndbic = sndbic;
}
public void setRcvbic(String rcvbic) {
this.rcvbic = rcvbic;
}
public Map<Integer, String> getHeaders() {
return headers;
}
......@@ -634,8 +632,11 @@ public class SWFMessage extends AbstractMessageArea {
/**
* 获取swift报文体
* @param sndbic 发报行BIC
* @param rcvbic 收报行BIC
* @return
*/
public String getMsg() {
public String getMsg(String sndbic,String rcvbic) {
if (body != null) {
return body;
}
......
......@@ -28,7 +28,7 @@ public class ParseSwiftTest extends TestCase {
public void testGetGenericByNo() {
String path = ParseSwiftTest.class.getClassLoader().getResource("950.sf2").getPath();
String msg = MessageAnalyzer.readFull(path);
SWFMessage swf = MessageAnalyzer.loadSwiftMessage(msg);
SWFMessage swf = SWFMessage.loadSwiftMessage(msg);
System.out.println("获取4域(60F)=" + swf.getGenericByNo("4"));
System.out.println("获取4域第二部分(60F的<DATE2>部分)=" + swf.getGenericByNo("4.1"));
System.out.println("获取循环域5(61)=" + swf.getGenericByNo("5"));
......@@ -36,7 +36,7 @@ public class ParseSwiftTest extends TestCase {
path = ParseSwiftTest.class.getClassLoader().getResource("101.sf2").getPath();
msg = MessageAnalyzer.readFull(path);
swf = MessageAnalyzer.loadSwiftMessage(msg);
swf = SWFMessage.loadSwiftMessage(msg);
System.out.println("获取1域(不可循环的Sequence A的20域)=" + swf.getGenericByNo("1"));
System.out.println("获取3域第二部分(不可循环的Sequence A的28D域)=" + swf.getGenericByNo("3.1"));
System.out.println("获取10域(循环的Sequence B的21域)=" + swf.getGenericByNo("10"));
......@@ -50,14 +50,14 @@ public class ParseSwiftTest extends TestCase {
public void testGetGenericByTag() {
String path = ParseSwiftTest.class.getClassLoader().getResource("950.sf2").getPath();
String msg = MessageAnalyzer.readFull(path);
SWFMessage swf = MessageAnalyzer.loadSwiftMessage(msg);
SWFMessage swf = SWFMessage.loadSwiftMessage(msg);
assertEquals(swf.getGenericByTag("60F"), swf.getGenericByNo("4"));
assertEquals(swf.getGenericByTag("60F.1"), swf.getGenericByNo("4.1"));
assertEquals(swf.getGenericByTag("61.0"), swf.getGenericByNo("5.0"));
path = ParseSwiftTest.class.getClassLoader().getResource("101.sf2").getPath();
msg = MessageAnalyzer.readFull(path);
swf = MessageAnalyzer.loadSwiftMessage(msg);
swf = SWFMessage.loadSwiftMessage(msg);
assertEquals(swf.getGenericByTag("20"), swf.getGenericByNo("1"));
assertEquals(swf.getGenericByTag("21"), swf.getGenericByNo("10"));
assertEquals(swf.getGenericByTag("23E"), swf.getGenericByNo("12"));
......@@ -71,12 +71,12 @@ public class ParseSwiftTest extends TestCase {
public void testGetGenericByNoWithIndexs() {
String path = ParseSwiftTest.class.getClassLoader().getResource("950.sf2").getPath();
String msg = MessageAnalyzer.readFull(path);
SWFMessage swf = MessageAnalyzer.loadSwiftMessage(msg);
SWFMessage swf = SWFMessage.loadSwiftMessage(msg);
System.out.println("获取循环域5(61)的第二个成员=" + swf.getGenericByNo("5", 1));
System.out.println("获取循环域5第一域块(61的6!n)的第二个成员=" + swf.getGenericByNo("5.0", 1));
path = ParseSwiftTest.class.getClassLoader().getResource("101.sf2").getPath();
msg = MessageAnalyzer.readFull(path);
swf = MessageAnalyzer.loadSwiftMessage(msg);
swf = SWFMessage.loadSwiftMessage(msg);
System.out.println("获取10域(循环的Sequence B的21域)的第一个Sequence部分=" + swf.getGenericByNo("10", 0));
System.out.println("获取12域(循环的Sequence B下的循环部分的23E域)的第二个sequence的第三个成员="
+ swf.getGenericByNo("12", 1, 2));
......@@ -90,12 +90,12 @@ public class ParseSwiftTest extends TestCase {
public void testGetGenericByTagWithIndexs() {
String path = ParseSwiftTest.class.getClassLoader().getResource("950.sf2").getPath();
String msg = MessageAnalyzer.readFull(path);
SWFMessage swf = MessageAnalyzer.loadSwiftMessage(msg);
SWFMessage swf = SWFMessage.loadSwiftMessage(msg);
assertEquals(swf.getGenericByTag("61",1), swf.getGenericByNo("5",1));
assertEquals(swf.getGenericByTag("61.0",1), swf.getGenericByNo("5.0",1));
path = ParseSwiftTest.class.getClassLoader().getResource("101.sf2").getPath();
msg = MessageAnalyzer.readFull(path);
swf = MessageAnalyzer.loadSwiftMessage(msg);
swf = SWFMessage.loadSwiftMessage(msg);
assertEquals(swf.getGenericByTag("23E",1,2), swf.getGenericByNo("12",1,2));
}
......@@ -103,7 +103,7 @@ public class ParseSwiftTest extends TestCase {
* 利用序号设置域或域模块的值
*/
public void testSetGenericByNo() {
SWFMessage swf = MessageFormat.getSWFMessage("950");
SWFMessage swf = SWFMessage.getSWFMessage("950");
//填充950的20域
swf.setGenericByNo("1", "STMMDL129058636E");
assertEquals(swf.getGenericByNo("1"), "STMMDL129058636E");
......@@ -124,7 +124,7 @@ public class ParseSwiftTest extends TestCase {
swf.setGenericByNo("5", sixtyone);
assertEquals(swf.getGenericByNo("5"), sixtyone);
//填充950的61域第5部分,Amount
swf = MessageFormat.getSWFMessage("950");
swf = SWFMessage.getSWFMessage("950");
List<String> sixtyone_amount = new LinkedList<String>();
sixtyone_amount.add("10000.25");
sixtyone_amount.add("30000.55");
......@@ -132,7 +132,7 @@ public class ParseSwiftTest extends TestCase {
swf.setGenericByNo("5.4", sixtyone_amount);
assertEquals(swf.getGenericByNo("5.4"), sixtyone_amount);
//填充101的不可循环的Sequence A的20域
swf = MessageFormat.getSWFMessage("101");
swf = SWFMessage.getSWFMessage("101");
swf.setGenericByNo("1", "STMMDL129058636E");
assertEquals(swf.getGenericByNo("1"), "STMMDL129058636E");
//填充101的循环的Sequence B的21域
......@@ -165,7 +165,7 @@ public class ParseSwiftTest extends TestCase {
* 利用域名设置域或域模块的值
*/
public void testSetGenericByTag() {
SWFMessage swf = MessageFormat.getSWFMessage("950");
SWFMessage swf = SWFMessage.getSWFMessage("950");
//填充950的20域
swf.setGenericByTag("20", "STMMDL129058636E");
assertEquals(swf.getGenericByTag("20"), "STMMDL129058636E");
......@@ -193,7 +193,7 @@ public class ParseSwiftTest extends TestCase {
"FENG EFFE");
assertEquals(swf.getGenericByTag("61"), sixtyone);
//填充950的61域第5部分,Amount
swf = MessageFormat.getSWFMessage("950");
swf = SWFMessage.getSWFMessage("950");
List<String> sixtyone_amount = new LinkedList<String>();
sixtyone_amount.add("10000.25");
sixtyone_amount.add("30000.55");
......@@ -201,7 +201,7 @@ public class ParseSwiftTest extends TestCase {
swf.setGenericByTag("61.4", sixtyone_amount);
assertEquals(swf.getGenericByTag("61.4"), sixtyone_amount);
//填充101的不可循环的Sequence A的20域
swf = MessageFormat.getSWFMessage("101");
swf = SWFMessage.getSWFMessage("101");
swf.setGenericByTag("20", "STMMDL129058636E");
assertEquals(swf.getGenericByTag("20"), "STMMDL129058636E");
//填充101的循环的Sequence B的21域
......@@ -234,7 +234,7 @@ public class ParseSwiftTest extends TestCase {
* 利用域名设置域或域模块的值,最后组成950 swift报文
*/
public void testGetMsgBodyFor950() {
SWFMessage swf = MessageFormat.getSWFMessage("950");
SWFMessage swf = SWFMessage.getSWFMessage("950");
swf.setGenericByTag("20", "STMMDL129058636E");
swf.setGenericByTag("25", "68446375");
swf.setGenericByTag("28C.0", "00066");
......@@ -259,9 +259,7 @@ public class ParseSwiftTest extends TestCase {
swf.setGenericByTag("64", "C120402GBP14739.84");
System.out.println("开始生成950报文");
//设置收发报行
swf.setSndbic("NYCBCNSH");
swf.setRcvbic("ICBKGB2LAAAA");
System.out.println(swf.getMsg());
System.out.println(swf.getMsg("NYCBCNSH","ICBKGB2LAAAA"));
System.out.println("结束生成950报文");
}
......@@ -269,7 +267,7 @@ public class ParseSwiftTest extends TestCase {
* 利用域名设置域或域模块的值,最后组成101 swift报文
*/
public void testGetMsgBodyFor101() {
SWFMessage swf = MessageFormat.getSWFMessage("101");
SWFMessage swf = SWFMessage.getSWFMessage("101");
swf.setGenericByTag("20", "STMMDL129058636E");
swf.setGenericByTag("28D.0", "1");
swf.setGenericByTag("28D.1", "10");
......@@ -310,15 +308,13 @@ public class ParseSwiftTest extends TestCase {
b71.add("OUR");
swf.setGenericByTag("71A", b71);
//设置收发报行
swf.setSndbic("NYCBCNSH");
swf.setRcvbic("ICBKGB2LAAAA");
System.out.println("开始生成101报文");
System.out.println(swf.getMsg());
System.out.println(swf.getMsg("NYCBCNSH","ICBKGB2LAAAA"));
System.out.println("结束生成101报文");
}
public void testSetGenericByTagAdv() {
SWFMessage swf = MessageFormat.getSWFMessage("101");
SWFMessage swf = SWFMessage.getSWFMessage("101");
swf.setGenericByTag("20", "STMMDL129058636E");
swf.setGenericByTag("28D.0", "1");
swf.setGenericByTag("28D.1", "10");
......@@ -341,10 +337,8 @@ public class ParseSwiftTest extends TestCase {
swf.setGenericByTag("71A", "BEN",0);
swf.setGenericByTag("71A", "OUR",1);
//设置收发报行
swf.setSndbic("NYCBCNSH");
swf.setRcvbic("ICBKGB2LAAAA");
System.out.println("开始生成101报文");
System.out.println(swf.getMsg());
System.out.println(swf.getMsg("NYCBCNSH","ICBKGB2LAAAA"));
System.out.println("结束生成101报文");
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment