Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gjjs-bd-common
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
s_guodong
gjjs-bd-common
Commits
9cddcd4b
Commit
9cddcd4b
authored
Nov 01, 2023
by
s_guodong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
替换文件中File.separator 为 //
parent
b14012a7
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
92 additions
and
91 deletions
+92
-91
MdaUtils.java
...in/java/com/brilliance/mda/runtime/mda/util/MdaUtils.java
+92
-91
No files found.
gjjs-bd-runtime/src/main/java/com/brilliance/mda/runtime/mda/util/MdaUtils.java
View file @
9cddcd4b
package
com
.
brilliance
.
mda
.
runtime
.
mda
.
util
;
package
com
.
brilliance
.
mda
.
runtime
.
mda
.
util
;
import
com.brilliance.mda.runtime.mda.*
;
import
com.brilliance.mda.runtime.mda.*
;
import
com.brilliance.mda.runtime.mda.impl.ModuleList
;
import
com.brilliance.mda.runtime.mda.driver.I18NImpl
;
import
com.brilliance.mda.runtime.mda.driver.I18NImpl
;
import
com.brilliance.mda.runtime.mda.driver.MdaDriver
;
import
com.brilliance.mda.runtime.mda.driver.MdaDriver
;
import
com.brilliance.mda.runtime.mda.driver.MdaEnv
;
import
com.brilliance.mda.runtime.mda.driver.MdaEnv
;
import
com.brilliance.mda.runtime.mda.impl.Argument
;
import
com.brilliance.mda.runtime.mda.impl.Argument
;
import
com.brilliance.mda.runtime.mda.impl.AttributeValue
;
import
com.brilliance.mda.runtime.mda.impl.AttributeValue
;
import
com.brilliance.mda.runtime.mda.impl.ModuleList
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
oracle.sql.TIMESTAMP
;
import
oracle.sql.TIMESTAMP
;
import
org.apache.commons.beanutils.MethodUtils
;
import
org.apache.commons.beanutils.MethodUtils
;
...
@@ -46,17 +46,19 @@ import static com.brilliance.mda.runtime.mda.Constants.NO_ERROR;
...
@@ -46,17 +46,19 @@ import static com.brilliance.mda.runtime.mda.Constants.NO_ERROR;
public
class
MdaUtils
{
public
class
MdaUtils
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
MdaUtils
.
class
);
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
MdaUtils
.
class
);
public
static
final
int
MAX
=
200
;
// 防止StackOver Overflow
public
static
final
int
MAX
=
200
;
// 防止StackOver Overflow
private
static
final
String
FORMATDATE
=
"yyyyMMddHHmmssSSS"
;
private
static
final
String
FORMATDATE
=
"yyyyMMddHHmmssSSS"
;
private
static
final
String
FORMATINT
=
"0.00"
;
private
static
final
String
FORMATINT
=
"0.00"
;
private
static
final
char
CR
=
'\r'
;
private
static
final
char
CR
=
'\r'
;
private
static
final
char
STRING
=
'S'
;
private
static
final
char
STRING
=
'S'
;
private
static
final
char
INTEGER
=
'I'
;
private
static
final
char
INTEGER
=
'I'
;
private
static
final
char
BIGDECIMAL
=
'B'
;
private
static
final
char
BIGDECIMAL
=
'B'
;
private
static
final
char
DATE
=
'D'
;
private
static
final
char
DATE
=
'D'
;
private
static
final
char
MODULELIST
=
'M'
;
private
static
final
char
MODULELIST
=
'M'
;
private
static
final
char
EQUALS
=
'='
;
private
static
final
char
EQUALS
=
'='
;
private
static
final
char
DATA
=
'#'
;
private
static
final
char
DATA
=
'#'
;
private
static
final
String
SPLIT
=
"//"
;
static
final
Format
format
=
new
DecimalFormat
(
"#.######"
);
static
final
Format
format
=
new
DecimalFormat
(
"#.######"
);
static
final
Format
dateFormat
=
new
SimpleDateFormat
(
"yyyy/MM/dd"
);
static
final
Format
dateFormat
=
new
SimpleDateFormat
(
"yyyy/MM/dd"
);
...
@@ -968,6 +970,7 @@ public class MdaUtils {
...
@@ -968,6 +970,7 @@ public class MdaUtils {
log
.
error
(
"模型序列化异常"
,
e
);
log
.
error
(
"模型序列化异常"
,
e
);
}
}
}
}
/**
/**
* 模板数据保存
* 模板数据保存
**/
**/
...
@@ -976,55 +979,54 @@ public class MdaUtils {
...
@@ -976,55 +979,54 @@ public class MdaUtils {
// os.insertLine(0,module.getName());
// os.insertLine(0,module.getName());
try
{
try
{
os
.
getOutputStream
().
write
((
module
.
getName
()
+
CR
).
getBytes
(
StandardCharsets
.
UTF_8
));
os
.
getOutputStream
().
write
((
module
.
getName
()
+
CR
).
getBytes
(
StandardCharsets
.
UTF_8
));
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
log
.
error
(
"流数据写入失败"
);
log
.
error
(
"流数据写入失败"
);
}
}
writeData
(
""
,
module
,
os
,
0
);
writeData
(
""
,
module
,
os
,
0
);
}
}
/**
/**
* 递归保存模型中的叶子节点
* 递归保存模型中的叶子节点
**/
**/
private
static
int
writeData
(
String
parentDir
,
IModule
module
,
IStream
os
,
int
deep
)
{
private
static
int
writeData
(
String
parentDir
,
IModule
module
,
IStream
os
,
int
deep
)
{
String
thisDir
=
""
;
String
thisDir
=
""
;
if
(
parentDir
.
length
()
!=
0
)
{
if
(
parentDir
.
length
()
!=
0
)
{
thisDir
=
parentDir
+
File
.
separator
;
thisDir
=
parentDir
+
SPLIT
;
}
}
String
moduleName
=
module
.
getClass
().
getName
();
String
moduleName
=
module
.
getClass
().
getName
();
Class
moduleClass
=
module
.
getClass
();
Class
moduleClass
=
module
.
getClass
();
Field
[]
fields
=
moduleClass
.
getDeclaredFields
();
Field
[]
fields
=
moduleClass
.
getDeclaredFields
();
String
fieldName
=
""
;
String
fieldName
=
""
;
String
getMethodName
=
""
;
String
getMethodName
=
""
;
Object
fieldVal
=
null
;
Object
fieldVal
=
null
;
Method
method
=
null
;
Method
method
=
null
;
for
(
Field
field:
fields
)
{
for
(
Field
field
:
fields
)
{
fieldName
=
field
.
getName
();
fieldName
=
field
.
getName
();
if
(
fieldName
.
equalsIgnoreCase
(
"log"
))
{
if
(
fieldName
.
equalsIgnoreCase
(
"log"
))
{
continue
;
continue
;
}
}
getMethodName
=
"get"
+
fieldName
.
substring
(
0
,
1
).
toUpperCase
()
+
fieldName
.
substring
(
1
);
getMethodName
=
"get"
+
fieldName
.
substring
(
0
,
1
).
toUpperCase
()
+
fieldName
.
substring
(
1
);
try
{
try
{
method
=
moduleClass
.
getDeclaredMethod
(
getMethodName
);
method
=
moduleClass
.
getDeclaredMethod
(
getMethodName
);
fieldVal
=
method
.
invoke
(
module
);
fieldVal
=
method
.
invoke
(
module
);
if
(!
MdaUtils
.
isEmpty
(
fieldVal
)
&&
!(
fieldVal
instanceof
IControl
))
{
if
(!
MdaUtils
.
isEmpty
(
fieldVal
)
&&
!(
fieldVal
instanceof
IControl
))
{
//如果是IMODULE 属性 ,递归获取
//如果是IMODULE 属性 ,递归获取
if
(
fieldVal
instanceof
IModule
&&
!(
fieldVal
instanceof
IModuleList
))
{
if
(
fieldVal
instanceof
IModule
&&
!(
fieldVal
instanceof
IModuleList
))
{
String
subDir
=
thisDir
+
fieldName
;
String
subDir
=
thisDir
+
fieldName
;
deep
=
writeData
(
subDir
,
(
IModule
)
fieldVal
,
os
,
deep
);
deep
=
writeData
(
subDir
,
(
IModule
)
fieldVal
,
os
,
deep
);
}
else
{
}
else
{
//如果是ModuleList
//如果是ModuleList
if
(
field
.
getType
().
getName
().
equals
(
"com.brilliance.mda.runtime.mda.impl.ModuleList"
))
{
if
(
field
.
getType
().
getName
().
equals
(
"com.brilliance.mda.runtime.mda.impl.ModuleList"
))
{
IModuleList
<
IModule
>
list
=
(
IModuleList
)
fieldVal
;
IModuleList
<
IModule
>
list
=
(
IModuleList
)
fieldVal
;
if
(!
list
.
isEmpty
()
&&
list
.
size
()
>
0
)
if
(!
list
.
isEmpty
()
&&
list
.
size
()
>
0
)
{
{
String
subDir
=
thisDir
+
fieldName
;
String
subDir
=
thisDir
+
fieldName
;
String
line
=
thisDir
+
fieldName
+
EQUALS
+
MODULELIST
+
list
.
size
();
String
line
=
thisDir
+
fieldName
+
EQUALS
+
MODULELIST
+
list
.
size
();
try
{
try
{
os
.
getOutputStream
().
write
((
line
+
CR
).
getBytes
(
StandardCharsets
.
UTF_8
));
os
.
getOutputStream
().
write
((
line
+
CR
).
getBytes
(
StandardCharsets
.
UTF_8
));
deep
++;
deep
++;
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
log
.
error
(
"流数据写入失败"
);
log
.
error
(
"流数据写入失败"
);
}
}
deep
=
0
;
// 设置ModuleList可将读取栈清空
deep
=
0
;
// 设置ModuleList可将读取栈清空
...
@@ -1034,46 +1036,45 @@ public class MdaUtils {
...
@@ -1034,46 +1036,45 @@ public class MdaUtils {
}
}
}
}
//叶子节点
//叶子节点
}
else
if
(
fieldVal
instanceof
String
||
fieldVal
instanceof
Number
||
fieldVal
instanceof
Date
)
{
}
else
if
(
fieldVal
instanceof
String
||
fieldVal
instanceof
Number
||
fieldVal
instanceof
Date
)
{
String
newFieldVal
=
""
;
String
newFieldVal
=
""
;
//数值类型 ,值为0的 不保存
//数值类型 ,值为0的 不保存
if
(
fieldVal
instanceof
Number
&&
((
Number
)
fieldVal
).
doubleValue
()
==
0
)
{
if
(
fieldVal
instanceof
Number
&&
((
Number
)
fieldVal
).
doubleValue
()
==
0
)
{
return
deep
;
return
deep
;
}
}
if
(
field
.
getType
().
getName
().
equals
(
"java.util.Date"
))
{
if
(
field
.
getType
().
getName
().
equals
(
"java.util.Date"
))
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
FORMATDATE
);
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
FORMATDATE
);
newFieldVal
=
DATE
+
simpleDateFormat
.
format
((
Date
)
fieldVal
)
;
newFieldVal
=
DATE
+
simpleDateFormat
.
format
((
Date
)
fieldVal
)
;
}
else
if
(
field
.
getType
().
getName
().
equals
(
"java.lang.Integer"
))
{
}
else
if
(
field
.
getType
().
getName
().
equals
(
"java.lang.Integer"
))
{
newFieldVal
=
INTEGER
+
fieldVal
.
toString
();
newFieldVal
=
INTEGER
+
fieldVal
.
toString
();
}
else
if
(
field
.
getType
().
getName
().
equals
(
"java.math.BigDecimal"
))
{
}
else
if
(
field
.
getType
().
getName
().
equals
(
"java.math.BigDecimal"
))
{
newFieldVal
=
BIGDECIMAL
+
new
DecimalFormat
(
FORMATINT
).
format
(
new
BigDecimal
(
fieldVal
.
toString
()));
newFieldVal
=
BIGDECIMAL
+
new
DecimalFormat
(
FORMATINT
).
format
(
new
BigDecimal
(
fieldVal
.
toString
()));
}
else
if
(
field
.
getType
().
getName
().
equals
(
"java.lang.String"
))
{
}
else
if
(
field
.
getType
().
getName
().
equals
(
"java.lang.String"
))
{
newFieldVal
=
STRING
+
fieldVal
.
toString
().
replaceAll
(
"(\r\n)|\r|\n"
,
"\r"
+
DATA
);
newFieldVal
=
STRING
+
fieldVal
.
toString
().
replaceAll
(
"(\r\n)|\r|\n"
,
"\r"
+
DATA
);
}
}
String
line
=
thisDir
+
fieldName
+
EQUALS
+
newFieldVal
;
String
line
=
thisDir
+
fieldName
+
EQUALS
+
newFieldVal
;
try
{
try
{
os
.
getOutputStream
().
write
((
line
+
CR
).
getBytes
(
StandardCharsets
.
UTF_8
));
os
.
getOutputStream
().
write
((
line
+
CR
).
getBytes
(
StandardCharsets
.
UTF_8
));
deep
++;
deep
++;
if
(
deep
==
MAX
)
if
(
deep
==
MAX
)
{
{
os
.
getOutputStream
().
write
(
CR
);
// 多写一个回车便于LoadModule为退出loadline的循环调用
os
.
getOutputStream
().
write
(
CR
);
// 多写一个回车便于LoadModule为退出loadline的循环调用
deep
=
0
;
deep
=
0
;
}
}
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
log
.
error
(
"流数据写入失败"
);
log
.
error
(
"流数据写入失败"
);
}
}
}
else
{
}
else
{
deep
=
0
;
deep
=
0
;
continue
;
continue
;
}
}
}
}
}
}
}
catch
(
IllegalAccessException
e
)
{
}
catch
(
IllegalAccessException
e
)
{
log
.
error
(
"模型{}中执行方法{}时出错"
,
moduleName
,
getMethodName
);
log
.
error
(
"模型{}中执行方法{}时出错"
,
moduleName
,
getMethodName
);
}
catch
(
InvocationTargetException
e
)
{
}
catch
(
InvocationTargetException
e
)
{
log
.
error
(
"模型{}中执行方法{}时出错"
,
moduleName
,
getMethodName
);
log
.
error
(
"模型{}中执行方法{}时出错"
,
moduleName
,
getMethodName
);
}
catch
(
NoSuchMethodException
e
)
{
}
catch
(
NoSuchMethodException
e
)
{
log
.
error
(
"方法{}未找到"
,
getMethodName
);
log
.
error
(
"方法{}未找到"
,
getMethodName
);
}
}
}
}
return
deep
;
return
deep
;
...
@@ -1085,40 +1086,40 @@ public class MdaUtils {
...
@@ -1085,40 +1086,40 @@ public class MdaUtils {
return
Codetables
.
getCodetableLabel
(
key
,
codetable
,
locale
.
getLanguage
());
return
Codetables
.
getCodetableLabel
(
key
,
codetable
,
locale
.
getLanguage
());
}
}
public
static
void
loadData
(
IModule
module
,
IStream
stream
)
{
public
static
void
loadData
(
IModule
module
,
IStream
stream
)
{
module
.
clear
();
module
.
clear
();
String
[]
lines
=
null
;
String
[]
lines
=
null
;
try
{
try
{
lines
=
stream
.
getOutputStream
().
toString
().
split
(
"\r"
);
lines
=
stream
.
getOutputStream
().
toString
().
split
(
"\r"
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"获取流数据失败"
);
log
.
error
(
"获取流数据失败"
);
}
}
boolean
isLoading
=
false
;
boolean
isLoading
=
false
;
if
(
lines
.
length
>
0
)
{
if
(
lines
.
length
>
0
)
{
Class
moduleClass
=
module
.
getClass
();
Class
moduleClass
=
module
.
getClass
();
for
(
String
line
:
lines
)
{
for
(
String
line
:
lines
)
{
//去除空格
//去除空格
line
.
trim
();
line
.
trim
();
//空行和#开头的注释行 跳过
//空行和#开头的注释行 跳过
if
(
line
.
length
()
==
0
||
line
.
indexOf
(
DATA
)
==
0
)
{
if
(
line
.
length
()
==
0
||
line
.
indexOf
(
DATA
)
==
0
)
{
continue
;
continue
;
}
}
//读取到本模型模型名相同数据的行,开始获取模型数据
//读取到本模型模型名相同数据的行,开始获取模型数据
if
(
moduleClass
.
getName
().
toUpperCase
().
indexOf
(
line
.
toUpperCase
())
!=
-
1
)
{
if
(
moduleClass
.
getName
().
toUpperCase
().
indexOf
(
line
.
toUpperCase
())
!=
-
1
)
{
//开始获取模型数据标识
//开始获取模型数据标识
isLoading
=
true
;
isLoading
=
true
;
continue
;
continue
;
}
}
if
(
isLoading
)
{
if
(
isLoading
)
{
//读取到下一个模型(不包含"="好的列为模型名),跳出循环
//读取到下一个模型(不包含"="好的列为模型名),跳出循环
if
(
line
.
indexOf
(
"="
)
==
-
1
)
{
if
(
line
.
indexOf
(
"="
)
==
-
1
)
{
break
;
break
;
}
}
//获取模型数据
//获取模型数据
String
val
=
line
.
split
(
"="
)[
1
].
trim
();
String
val
=
line
.
split
(
"="
)[
1
].
trim
();
String
key
=
line
.
split
(
"="
)[
0
].
trim
();
String
key
=
line
.
split
(
"="
)[
0
].
trim
();
readData
(
module
,
key
,
val
);
readData
(
module
,
key
,
val
);
}
}
}
}
}
}
...
@@ -1128,10 +1129,10 @@ public class MdaUtils {
...
@@ -1128,10 +1129,10 @@ public class MdaUtils {
String
fieldName
=
""
;
String
fieldName
=
""
;
Class
moduleClass
=
module
.
getClass
();
Class
moduleClass
=
module
.
getClass
();
String
moduleName
=
moduleClass
.
getName
();
String
moduleName
=
moduleClass
.
getName
();
Method
getMethod
=
null
;
Method
getMethod
=
null
;
Method
setMethod
=
null
;
Method
setMethod
=
null
;
//叶子节点赋值
//叶子节点赋值
if
(
key
.
indexOf
(
File
.
separator
)
==
-
1
)
{
if
(
key
.
indexOf
(
SPLIT
)
==
-
1
)
{
//获取setXXX方法名
//获取setXXX方法名
fieldName
=
key
;
fieldName
=
key
;
String
setMethodName
=
"set"
+
fieldName
.
substring
(
0
,
1
).
toUpperCase
()
+
fieldName
.
substring
(
1
);
String
setMethodName
=
"set"
+
fieldName
.
substring
(
0
,
1
).
toUpperCase
()
+
fieldName
.
substring
(
1
);
...
@@ -1139,79 +1140,79 @@ public class MdaUtils {
...
@@ -1139,79 +1140,79 @@ public class MdaUtils {
Field
field
=
moduleClass
.
getDeclaredField
(
fieldName
);
Field
field
=
moduleClass
.
getDeclaredField
(
fieldName
);
Class
fieldTyp
=
field
.
getType
();
Class
fieldTyp
=
field
.
getType
();
//获取setXXX方法
//获取setXXX方法
setMethod
=
moduleClass
.
getDeclaredMethod
(
setMethodName
,
field
.
getType
());
setMethod
=
moduleClass
.
getDeclaredMethod
(
setMethodName
,
field
.
getType
());
//根据类型 对数据进行处理
//根据类型 对数据进行处理
Object
val
=
null
;
Object
val
=
null
;
if
(
oldval
.
indexOf
(
MODULELIST
)==
0
)
{
if
(
oldval
.
indexOf
(
MODULELIST
)
==
0
)
{
return
;
return
;
}
}
if
(
oldval
.
indexOf
(
BIGDECIMAL
)
==
0
)
{
if
(
oldval
.
indexOf
(
BIGDECIMAL
)
==
0
)
{
val
=
new
BigDecimal
(
oldval
.
substring
(
1
));
val
=
new
BigDecimal
(
oldval
.
substring
(
1
));
}
else
if
(
oldval
.
indexOf
(
DATE
)
==
0
)
{
}
else
if
(
oldval
.
indexOf
(
DATE
)
==
0
)
{
//String转Date
//String转Date
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
FORMATDATE
);
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
FORMATDATE
);
try
{
try
{
val
=
simpleDateFormat
.
parse
(
oldval
.
substring
(
1
));
val
=
simpleDateFormat
.
parse
(
oldval
.
substring
(
1
));
}
catch
(
ParseException
e
)
{
}
catch
(
ParseException
e
)
{
log
.
error
(
"日期{}格式不正确"
,
oldval
);
log
.
error
(
"日期{}格式不正确"
,
oldval
);
}
}
}
else
if
(
oldval
.
indexOf
(
INTEGER
)
==
0
)
{
}
else
if
(
oldval
.
indexOf
(
INTEGER
)
==
0
)
{
val
=
new
Integer
(
oldval
.
substring
(
1
));
val
=
new
Integer
(
oldval
.
substring
(
1
));
}
else
if
(
oldval
.
indexOf
(
STRING
)
==
0
)
{
}
else
if
(
oldval
.
indexOf
(
STRING
)
==
0
)
{
val
=
oldval
.
substring
(
1
).
toString
();
val
=
oldval
.
substring
(
1
).
toString
();
}
}
setMethod
.
invoke
(
module
,
val
);
setMethod
.
invoke
(
module
,
val
);
}
catch
(
NoSuchMethodException
e
)
{
}
catch
(
NoSuchMethodException
e
)
{
log
.
error
(
"方法{}未找到"
,
setMethodName
);
log
.
error
(
"方法{}未找到"
,
setMethodName
);
}
catch
(
IllegalAccessException
e
)
{
}
catch
(
IllegalAccessException
e
)
{
log
.
error
(
"模型{}中执行方法{}时出错"
,
moduleName
,
setMethodName
);
log
.
error
(
"模型{}中执行方法{}时出错"
,
moduleName
,
setMethodName
);
}
catch
(
InvocationTargetException
e
)
{
}
catch
(
InvocationTargetException
e
)
{
log
.
error
(
"模型{}中执行方法{}时出错"
,
moduleName
,
setMethodName
);
log
.
error
(
"模型{}中执行方法{}时出错"
,
moduleName
,
setMethodName
);
}
catch
(
NoSuchFieldException
e
)
{
}
catch
(
NoSuchFieldException
e
)
{
log
.
error
(
"模型{}中属性{}未找到"
,
moduleName
,
fieldName
);
log
.
error
(
"模型{}中属性{}未找到"
,
moduleName
,
fieldName
);
}
}
}
else
{
//非叶子节点继续迭代
}
else
{
//非叶子节点继续迭代
//获取setXXX方法名
//获取setXXX方法名
fieldName
=
key
.
substring
(
0
,
key
.
indexOf
(
File
.
separator
));
fieldName
=
key
.
substring
(
0
,
key
.
indexOf
(
SPLIT
));
//moduleList 的数据包含 [?]
//moduleList 的数据包含 [?]
int
index
=
-
1
;
int
index
=
-
1
;
if
(
fieldName
.
indexOf
(
"["
)
>
0
)
{
if
(
fieldName
.
indexOf
(
"["
)
>
0
)
{
String
[]
fieldNameArr
=
fieldName
.
split
(
"\\["
);
String
[]
fieldNameArr
=
fieldName
.
split
(
"\\["
);
fieldName
=
fieldNameArr
[
0
];
fieldName
=
fieldNameArr
[
0
];
index
=
Integer
.
parseInt
(
fieldNameArr
[
1
].
replace
(
"]"
,
""
));
index
=
Integer
.
parseInt
(
fieldNameArr
[
1
].
replace
(
"]"
,
""
));
}
}
String
newKey
=
key
.
substring
(
key
.
indexOf
(
File
.
separator
)+
1
);
String
newKey
=
key
.
substring
(
key
.
indexOf
(
SPLIT
)
+
1
);
String
getMethodName
=
"get"
+
fieldName
.
substring
(
0
,
1
).
toUpperCase
()
+
fieldName
.
substring
(
1
);
String
getMethodName
=
"get"
+
fieldName
.
substring
(
0
,
1
).
toUpperCase
()
+
fieldName
.
substring
(
1
);
try
{
try
{
//查询getXXX方法
//查询getXXX方法
getMethod
=
moduleClass
.
getDeclaredMethod
(
getMethodName
);
getMethod
=
moduleClass
.
getDeclaredMethod
(
getMethodName
);
//获取下次递归的模型
//获取下次递归的模型
IModule
subModule
=
(
IModule
)
getMethod
.
invoke
(
module
);
IModule
subModule
=
(
IModule
)
getMethod
.
invoke
(
module
);
if
(
subModule
instanceof
ModuleList
)
{
if
(
subModule
instanceof
ModuleList
)
{
if
(
subModule
==
null
)
{
if
(
subModule
==
null
)
{
subModule
=
new
ModuleList
();
subModule
=
new
ModuleList
();
}
}
IModuleList
<
IModule
>
list
=
(
IModuleList
)
subModule
;
IModuleList
<
IModule
>
list
=
(
IModuleList
)
subModule
;
if
(
list
.
size
()
-
1
<
index
)
{
if
(
list
.
size
()
-
1
<
index
)
{
try
{
try
{
list
.
add
(((
ModuleList
<?>)
subModule
).
getDataClass
().
newInstance
());
list
.
add
(((
ModuleList
<?>)
subModule
).
getDataClass
().
newInstance
());
}
catch
(
InstantiationException
e
)
{
}
catch
(
InstantiationException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
}
}
readData
(
list
.
get
(
index
),
newKey
,
oldval
);
readData
(
list
.
get
(
index
),
newKey
,
oldval
);
}
else
{
}
else
{
readData
(
subModule
,
newKey
,
oldval
);
readData
(
subModule
,
newKey
,
oldval
);
}
}
}
catch
(
IllegalAccessException
e
)
{
}
catch
(
IllegalAccessException
e
)
{
log
.
error
(
"模型{}中执行方法{}时出错"
,
moduleName
,
getMethodName
);
log
.
error
(
"模型{}中执行方法{}时出错"
,
moduleName
,
getMethodName
);
}
catch
(
InvocationTargetException
e
)
{
}
catch
(
InvocationTargetException
e
)
{
log
.
error
(
"模型{}中执行方法{}时出错"
,
moduleName
,
getMethodName
);
log
.
error
(
"模型{}中执行方法{}时出错"
,
moduleName
,
getMethodName
);
}
catch
(
NoSuchMethodException
e
)
{
}
catch
(
NoSuchMethodException
e
)
{
log
.
error
(
"模型{}方法{}未找到"
,
moduleName
,
getMethodName
);
log
.
error
(
"模型{}方法{}未找到"
,
moduleName
,
getMethodName
);
}
}
}
}
...
...
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