Commit b987c3e8 by WeiCong

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

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