Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
swifteditor_java
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fukai
swifteditor_java
Commits
599cf024
Commit
599cf024
authored
Nov 20, 2019
by
WeiCong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化性能减少不必要的判断;修复循环域之后的域的值填充
parent
d8ac5a73
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
136 additions
and
117 deletions
+136
-117
AbstractMessageArea.java
...rilliace/swifteditor/tag/message/AbstractMessageArea.java
+68
-59
CYC.java
src/main/java/com/brilliace/swifteditor/tag/message/CYC.java
+16
-15
MessageFormat.java
.../com/brilliace/swifteditor/tag/message/MessageFormat.java
+0
-0
SEQ.java
src/main/java/com/brilliace/swifteditor/tag/message/SEQ.java
+17
-15
SWFMessage.java
...ava/com/brilliace/swifteditor/tag/message/SWFMessage.java
+21
-28
ParseSwiftTest.java
src/test/java/com/brilliace/swifteditor/ParseSwiftTest.java
+14
-0
No files found.
src/main/java/com/brilliace/swifteditor/tag/message/AbstractMessageArea.java
View file @
599cf024
...
...
@@ -5,63 +5,72 @@ import java.util.List;
public
abstract
class
AbstractMessageArea
implements
MessageArea
{
private
List
<
MessageArea
>
fields
=
new
ArrayList
<
MessageArea
>();
private
String
name
;
private
String
anlyReg
;
private
String
desp
;
public
String
getDesp
()
{
return
desp
;
}
public
void
setDesp
(
String
desp
)
{
this
.
desp
=
desp
;
}
public
void
toSwfMessage
(
StringBuilder
sb
)
{
for
(
MessageArea
field
:
fields
)
field
.
toSwfMessage
(
sb
);
}
public
String
getName
()
{
// TODO Auto-generated method stub
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
List
<
MessageArea
>
getFields
()
{
return
fields
;
}
public
void
addSubArea
(
MessageArea
sub
)
{
// TODO Auto-generated method stub
fields
.
add
(
sub
);
}
public
MessageArea
clone
()
{
return
null
;
}
public
boolean
isEnd
()
{
return
false
;
}
private
MessageArea
pattern
;
public
void
setPattern
(
MessageArea
pattern
)
{
this
.
pattern
=
pattern
;
}
public
MessageArea
getPattern
()
{
return
this
.
pattern
;
}
public
String
getAnlyReg
()
{
return
anlyReg
;
}
public
void
setAnlyReg
(
String
anlyReg
)
{
this
.
anlyReg
=
anlyReg
;
}
private
List
<
MessageArea
>
fields
=
new
ArrayList
<
MessageArea
>();
private
String
name
;
private
String
anlyReg
;
private
String
desp
;
private
MessageArea
pattern
;
public
int
begNo
=
Integer
.
MAX_VALUE
;
public
int
endNo
=
Integer
.
MIN_VALUE
;
public
boolean
withIn
(
int
index
){
AbstractMessageArea
ama
=((
AbstractMessageArea
)
this
.
fields
.
get
(
0
));
return
index
>=
ama
.
begNo
&&
index
<=
ama
.
endNo
;
}
public
String
getDesp
()
{
return
desp
;
}
public
void
setDesp
(
String
desp
)
{
this
.
desp
=
desp
;
}
public
void
toSwfMessage
(
StringBuilder
sb
)
{
for
(
MessageArea
field
:
fields
)
field
.
toSwfMessage
(
sb
);
}
public
String
getName
()
{
// TODO Auto-generated method stub
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
List
<
MessageArea
>
getFields
()
{
return
fields
;
}
public
void
addSubArea
(
MessageArea
sub
)
{
// TODO Auto-generated method stub
fields
.
add
(
sub
);
}
public
MessageArea
clone
()
{
return
null
;
}
public
boolean
isEnd
()
{
return
false
;
}
public
MessageArea
getPattern
()
{
return
this
.
pattern
;
}
public
void
setPattern
(
MessageArea
pattern
)
{
this
.
pattern
=
pattern
;
}
public
String
getAnlyReg
()
{
return
anlyReg
;
}
public
void
setAnlyReg
(
String
anlyReg
)
{
this
.
anlyReg
=
anlyReg
;
}
}
src/main/java/com/brilliace/swifteditor/tag/message/CYC.java
View file @
599cf024
...
...
@@ -3,22 +3,23 @@ package com.brilliace.swifteditor.tag.message;
import
java.util.List
;
public
class
CYC
extends
AbstractMessageArea
{
private
final
int
type
=
CYC
;
private
final
int
type
=
CYC
;
public
MessageArea
clone
()
{
CYC
cp
=
new
CYC
();
cp
.
setName
(
this
.
getName
());
List
<
MessageArea
>
fields
=
this
.
getFields
();
for
(
MessageArea
field
:
fields
)
cp
.
addSubArea
(
field
.
clone
());
cp
.
setAnlyReg
(
this
.
getAnlyReg
());
return
cp
;
}
public
MessageArea
clone
()
{
CYC
cp
=
new
CYC
();
cp
.
setName
(
this
.
getName
());
List
<
MessageArea
>
fields
=
this
.
getFields
();
for
(
MessageArea
field
:
fields
)
cp
.
addSubArea
(
field
.
clone
());
cp
.
setAnlyReg
(
this
.
getAnlyReg
());
cp
.
begNo
=
this
.
begNo
;
cp
.
endNo
=
this
.
endNo
;
return
cp
;
}
public
int
getType
()
{
return
type
;
}
public
int
getType
()
{
return
type
;
}
}
src/main/java/com/brilliace/swifteditor/tag/message/MessageFormat.java
View file @
599cf024
This diff is collapsed.
Click to expand it.
src/main/java/com/brilliace/swifteditor/tag/message/SEQ.java
View file @
599cf024
...
...
@@ -3,21 +3,23 @@ package com.brilliace.swifteditor.tag.message;
import
java.util.List
;
public
class
SEQ
extends
AbstractMessageArea
{
private
final
int
type
=
SEQ
;
public
class
SEQ
extends
AbstractMessageArea
{
public
MessageArea
clone
()
{
SEQ
cp
=
new
SEQ
();
cp
.
setName
(
this
.
getName
());
List
<
MessageArea
>
fields
=
this
.
getFields
();
for
(
MessageArea
field
:
fields
)
cp
.
addSubArea
(
field
.
clone
());
cp
.
setAnlyReg
(
this
.
getAnlyReg
());
return
cp
;
}
private
final
int
type
=
SEQ
;
public
int
getType
()
{
return
type
;
}
public
MessageArea
clone
()
{
SEQ
cp
=
new
SEQ
();
cp
.
setName
(
this
.
getName
());
List
<
MessageArea
>
fields
=
this
.
getFields
();
for
(
MessageArea
field
:
fields
)
cp
.
addSubArea
(
field
.
clone
());
cp
.
setAnlyReg
(
this
.
getAnlyReg
());
cp
.
begNo
=
this
.
begNo
;
cp
.
endNo
=
this
.
endNo
;
return
cp
;
}
public
int
getType
()
{
return
type
;
}
}
src/main/java/com/brilliace/swifteditor/tag/message/SWFMessage.java
View file @
599cf024
...
...
@@ -289,6 +289,9 @@ public class SWFMessage extends AbstractMessageArea {
return
true
;
}
}
else
{
if
((
item
.
getType
()
==
MessageArea
.
CYCLIST
||
item
.
getType
()
==
MessageArea
.
SEQLIST
)
&&
!((
AbstractMessageArea
)
item
).
withIn
(
ano
))
{
continue
;
}
if
(
parent
.
getType
()
==
MessageArea
.
SEQ
?
setGenericRepetitive
((
AbstractMessageArea
)
item
,
index
,
ano
,
(
List
)
rs
.
get
(
cnt
),
0
)
:
setGenericRepetitive
((
AbstractMessageArea
)
item
,
index
,
ano
,
rs
,
cnt
))
{
...
...
@@ -296,35 +299,22 @@ public class SWFMessage extends AbstractMessageArea {
}
}
}
}
else
if
(
parent
.
getType
()
==
MessageArea
.
CYCLIST
)
{
MessageArea
cp
=
((
AbstractMessageArea
)
parent
).
getFields
().
get
(
0
);
//默认有一个组项
do
{
setGenericRepetitive
((
AbstractMessageArea
)
cp
,
index
,
ano
,
rs
,
cnt
++);
if
(
rs
.
size
()
<=
cnt
)
return
true
;
try
{
cp
=
((
AbstractMessageArea
)
parent
).
getFields
().
get
(
cnt
);
}
catch
(
Exception
e
)
{
cp
=
((
AbstractMessageArea
)
parent
).
getPattern
().
clone
();
parent
.
addSubArea
(
cp
);
}
}
while
(
true
);
}
else
if
(
parent
.
getType
()
==
MessageArea
.
SEQLIST
)
{
MessageArea
cp
=
((
AbstractMessageArea
)
parent
).
getFields
().
get
(
0
);
//默认有一个组项
do
{
SEQList
tmp
=
(
SEQList
)
parent
;
setGenericRepetitive
((
AbstractMessageArea
)
cp
,
index
,
ano
,
rs
,
cnt
);
if
(
rs
.
size
()
<=
++
cnt
)
return
true
;
try
{
cp
=
((
AbstractMessageArea
)
parent
).
getFields
().
get
(
cnt
);
}
catch
(
Exception
e
)
{
cp
=
((
AbstractMessageArea
)
parent
).
getPattern
().
clone
();
parent
.
addSubArea
(
cp
);
}
else
if
(
parent
.
getType
()
==
MessageArea
.
CYCLIST
||
parent
.
getType
()
==
MessageArea
.
SEQLIST
)
{
if
(((
AbstractMessageArea
)
parent
).
withIn
(
ano
))
{
MessageArea
cp
=
((
AbstractMessageArea
)
parent
).
getFields
().
get
(
0
);
//默认有一个组项
do
{
setGenericRepetitive
((
AbstractMessageArea
)
cp
,
index
,
ano
,
rs
,
cnt
++);
if
(
rs
.
size
()
<=
cnt
)
return
true
;
try
{
cp
=
((
AbstractMessageArea
)
parent
).
getFields
().
get
(
cnt
);
}
catch
(
Exception
e
)
{
cp
=
((
AbstractMessageArea
)
parent
).
getPattern
().
clone
();
parent
.
addSubArea
(
cp
);
}
}
while
(
true
);
}
while
(
true
);
}
return
false
;
}
...
...
@@ -452,7 +442,10 @@ public class SWFMessage extends AbstractMessageArea {
}
else
if
(((
TagLine
)
item
).
getTno
()
>
ano
)
{
break
;
}
}
else
if
(
item
.
getType
()
==
MessageArea
.
CYCLIST
)
{
}
else
if
(
item
.
getType
()
==
MessageArea
.
CYCLIST
||
item
.
getType
()
==
MessageArea
.
SEQLIST
)
{
if
(!((
AbstractMessageArea
)
item
).
withIn
(
ano
))
{
continue
;
}
if
(
parent
.
getType
()
==
MessageArea
.
SEQ
)
{
List
<
Object
>
sec
=
new
LinkedList
<>();
rs
.
add
(
sec
);
...
...
src/test/java/com/brilliace/swifteditor/ParseSwiftTest.java
View file @
599cf024
...
...
@@ -37,6 +37,7 @@ public class ParseSwiftTest extends TestCase {
System
.
out
.
println
(
"获取3域第二部分(不可循环的Sequence A的28D域)="
+
swf
.
getGenericByNo
(
"3.1"
));
System
.
out
.
println
(
"获取10域(循环的Sequence B的21域)="
+
swf
.
getGenericByNo
(
"10"
));
System
.
out
.
println
(
"获取12域(循环的Sequence B下的循环部分的23E域)="
+
swf
.
getGenericByNo
(
"12"
));
System
.
out
.
println
(
"获取13域(循环的Sequence B的32B域)="
+
swf
.
getGenericByNo
(
"13"
));
}
public
void
testGetGenericByTag
()
{
...
...
@@ -54,6 +55,7 @@ public class ParseSwiftTest extends TestCase {
assertEquals
(
swf
.
getGenericByTag
(
"21"
),
swf
.
getGenericByNo
(
"10"
));
assertEquals
(
swf
.
getGenericByTag
(
"23E"
),
swf
.
getGenericByNo
(
"12"
));
assertEquals
(
swf
.
getGenericByTag
(
"59"
),
swf
.
getGenericByNo
(
"19"
));
assertEquals
(
swf
.
getGenericByTag
(
"32B"
),
swf
.
getGenericByNo
(
"13"
));
}
public
void
testGetGenericByNoWithIndexs
()
{
...
...
@@ -68,6 +70,8 @@ public class ParseSwiftTest extends TestCase {
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
));
System
.
out
.
println
(
"获取Sequence B下的循环部分的32B域的第一个sequence成员的第一个币种部分="
+
swf
.
getGenericByTag
(
"32B.0"
,
0
));
}
public
void
testGetGenericByTagWithIndexs
()
{
...
...
@@ -138,6 +142,11 @@ public class ParseSwiftTest extends TestCase {
comList
.
add
(
one
);
swf
.
setGenericByNo
(
"12"
,
comList
);
assertEquals
(
swf
.
getGenericByNo
(
"12"
),
comList
);
comList
=
new
LinkedList
<>();
comList
.
add
(
"USD80000,"
);
comList
.
add
(
"USD12322,11"
);
swf
.
setGenericByNo
(
"13"
,
comList
);
assertEquals
(
swf
.
getGenericByNo
(
"13"
),
comList
);
}
public
void
testSetGenericByTag
()
{
...
...
@@ -196,5 +205,10 @@ public class ParseSwiftTest extends TestCase {
comList
.
add
(
one
);
swf
.
setGenericByTag
(
"23E"
,
comList
);
assertEquals
(
swf
.
getGenericByTag
(
"23E"
),
comList
);
comList
=
new
LinkedList
<>();
comList
.
add
(
"USD80000,"
);
comList
.
add
(
"USD12322,11"
);
swf
.
setGenericByTag
(
"32B"
,
comList
);
assertEquals
(
swf
.
getGenericByTag
(
"32B"
),
comList
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment