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
e0c4b428
Commit
e0c4b428
authored
Dec 05, 2022
by
s_guodong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bd整合gjjs-mda (注解增强,com.brilliance.mda.runtime.annotation包迁移)
parent
880890a7
Hide whitespace changes
Inline
Side-by-side
Showing
94 changed files
with
2840 additions
and
267 deletions
+2840
-267
BDSetterEnhance.java
...ce/annotation/processor/enhance/impl/BDSetterEnhance.java
+0
-160
Rcvp.java
...s/src/main/java/com/ceb/gjjs/mda/manager/module/Rcvp.java
+13
-22
pom.xml
gjjs-bd-runtime/pom.xml
+6
-0
pom.xml
gjjs-mda/pom.xml
+54
-13
AnnotationEnhanceUtils.java
...illiance/annotation/processor/AnnotationEnhanceUtils.java
+0
-0
BaseProcessor.java
...va/com/brilliance/annotation/processor/BaseProcessor.java
+0
-0
ModuleAnnotationTranslator.java
...ance/annotation/processor/ModuleAnnotationTranslator.java
+27
-27
ModuleProcessor.java
.../com/brilliance/annotation/processor/ModuleProcessor.java
+4
-3
PrimitiveEnums.java
...a/com/brilliance/annotation/processor/PrimitiveEnums.java
+0
-0
AbstractAnnotationEnhance.java
...notation/processor/enhance/AbstractAnnotationEnhance.java
+15
-2
AnnotationEnhance.java
...iance/annotation/processor/enhance/AnnotationEnhance.java
+0
-0
BDGetterEnhance.java
...ce/annotation/processor/enhance/impl/BDGetterEnhance.java
+26
-8
ModuleGetterEnhance.java
...nnotation/processor/enhance/impl/ModuleGetterEnhance.java
+2
-1
ModuleSetterEnhance.java
...nnotation/processor/enhance/impl/ModuleSetterEnhance.java
+0
-0
TDGetterEnhance.java
...ce/annotation/processor/enhance/impl/TDGetterEnhance.java
+24
-8
TDSetterEnhance.java
...ce/annotation/processor/enhance/impl/TDSetterEnhance.java
+2
-4
BDGetter.java
.../java/com/brilliance/mda/runtime/annotation/BDGetter.java
+0
-0
Check.java
...ain/java/com/brilliance/mda/runtime/annotation/Check.java
+19
-0
Default.java
...n/java/com/brilliance/mda/runtime/annotation/Default.java
+0
-0
Init.java
...main/java/com/brilliance/mda/runtime/annotation/Init.java
+17
-0
Module.java
...in/java/com/brilliance/mda/runtime/annotation/Module.java
+0
-0
Rule.java
...main/java/com/brilliance/mda/runtime/annotation/Rule.java
+8
-6
Setter.java
...in/java/com/brilliance/mda/runtime/annotation/Setter.java
+0
-0
SimpleType.java
...ava/com/brilliance/mda/runtime/annotation/SimpleType.java
+0
-0
TDGetter.java
.../java/com/brilliance/mda/runtime/annotation/TDGetter.java
+0
-0
TDMethod.java
.../java/com/brilliance/mda/runtime/annotation/TDMethod.java
+3
-3
TDSetter.java
.../java/com/brilliance/mda/runtime/annotation/TDSetter.java
+0
-0
TDStatic.java
.../java/com/brilliance/mda/runtime/annotation/TDStatic.java
+3
-7
Transaction.java
...va/com/brilliance/mda/runtime/annotation/Transaction.java
+6
-2
AttrType.java
...rc/main/java/com/brilliance/mda/runtime/mda/AttrType.java
+10
-0
CodeEntity.java
.../main/java/com/brilliance/mda/runtime/mda/CodeEntity.java
+14
-0
CodetableItem.java
...in/java/com/brilliance/mda/runtime/mda/CodetableItem.java
+51
-0
Constants.java
...c/main/java/com/brilliance/mda/runtime/mda/Constants.java
+376
-0
DecodeType.java
.../main/java/com/brilliance/mda/runtime/mda/DecodeType.java
+5
-0
DirType.java
...src/main/java/com/brilliance/mda/runtime/mda/DirType.java
+5
-0
EmptyVO.java
...src/main/java/com/brilliance/mda/runtime/mda/EmptyVO.java
+9
-0
FieldHolder.java
...main/java/com/brilliance/mda/runtime/mda/FieldHolder.java
+11
-0
I18n.java
...da/src/main/java/com/brilliance/mda/runtime/mda/I18n.java
+15
-0
IAuthInfo.java
...c/main/java/com/brilliance/mda/runtime/mda/IAuthInfo.java
+14
-0
IBaseObject.java
...main/java/com/brilliance/mda/runtime/mda/IBaseObject.java
+14
-0
IContext.java
...rc/main/java/com/brilliance/mda/runtime/mda/IContext.java
+100
-0
IControl.java
...rc/main/java/com/brilliance/mda/runtime/mda/IControl.java
+7
-0
IDaoSession.java
...main/java/com/brilliance/mda/runtime/mda/IDaoSession.java
+59
-0
IDataGrid.java
...c/main/java/com/brilliance/mda/runtime/mda/IDataGrid.java
+29
-0
IDatafield.java
.../main/java/com/brilliance/mda/runtime/mda/IDatafield.java
+9
-0
IDisplay.java
...rc/main/java/com/brilliance/mda/runtime/mda/IDisplay.java
+13
-0
ILocker.java
...src/main/java/com/brilliance/mda/runtime/mda/ILocker.java
+11
-0
ILoginContext.java
...in/java/com/brilliance/mda/runtime/mda/ILoginContext.java
+12
-0
IModule.java
...src/main/java/com/brilliance/mda/runtime/mda/IModule.java
+35
-0
IModuleList.java
...main/java/com/brilliance/mda/runtime/mda/IModuleList.java
+43
-0
IPanel.java
.../src/main/java/com/brilliance/mda/runtime/mda/IPanel.java
+8
-0
IRuleEmitter.java
...ain/java/com/brilliance/mda/runtime/mda/IRuleEmitter.java
+29
-0
ISqlTemplate.java
...ain/java/com/brilliance/mda/runtime/mda/ISqlTemplate.java
+8
-0
IStream.java
...src/main/java/com/brilliance/mda/runtime/mda/IStream.java
+24
-0
LockInfo.java
...rc/main/java/com/brilliance/mda/runtime/mda/LockInfo.java
+23
-0
ModuleHolder.java
...ain/java/com/brilliance/mda/runtime/mda/ModuleHolder.java
+9
-0
ModuleInfoGetter.java
...java/com/brilliance/mda/runtime/mda/ModuleInfoGetter.java
+5
-0
OpType.java
.../src/main/java/com/brilliance/mda/runtime/mda/OpType.java
+6
-0
Pagination.java
.../main/java/com/brilliance/mda/runtime/mda/Pagination.java
+8
-0
PrintSegment.java
...ain/java/com/brilliance/mda/runtime/mda/PrintSegment.java
+27
-0
RuleExecuteException.java
.../com/brilliance/mda/runtime/mda/RuleExecuteException.java
+8
-0
RuleExitException.java
...ava/com/brilliance/mda/runtime/mda/RuleExitException.java
+8
-0
RulePromptException.java
...a/com/brilliance/mda/runtime/mda/RulePromptException.java
+11
-0
RuleType.java
...rc/main/java/com/brilliance/mda/runtime/mda/RuleType.java
+17
-0
RuleWarnException.java
...ava/com/brilliance/mda/runtime/mda/RuleWarnException.java
+8
-0
Ruleable.java
...rc/main/java/com/brilliance/mda/runtime/mda/Ruleable.java
+6
-0
Bundle.java
...in/java/com/brilliance/mda/runtime/mda/config/Bundle.java
+94
-0
IniConfig.java
...java/com/brilliance/mda/runtime/mda/config/IniConfig.java
+88
-0
MdaScanner.java
...ava/com/brilliance/mda/runtime/mda/driver/MdaScanner.java
+112
-0
NamesMapper.java
...va/com/brilliance/mda/runtime/mda/driver/NamesMapper.java
+65
-0
StatusInfoConfig.java
...m/brilliance/mda/runtime/mda/driver/StatusInfoConfig.java
+73
-0
FieldInfo.java
...e/mda/runtime/mda/driver/compile/component/FieldInfo.java
+10
-0
ModuleRuleContext.java
...ntime/mda/driver/compile/component/ModuleRuleContext.java
+126
-0
RuleItem.java
...ce/mda/runtime/mda/driver/compile/component/RuleItem.java
+121
-0
Argument.java
...in/java/com/brilliance/mda/runtime/mda/impl/Argument.java
+161
-0
DataGrid.java
...in/java/com/brilliance/mda/runtime/mda/impl/DataGrid.java
+183
-0
EnvConfig.java
...n/java/com/brilliance/mda/runtime/mda/impl/EnvConfig.java
+64
-0
FieldConstantHolder.java
.../brilliance/mda/runtime/mda/impl/FieldConstantHolder.java
+28
-0
StreamImpl.java
.../java/com/brilliance/mda/runtime/mda/impl/StreamImpl.java
+101
-0
ApplicationContextHolder.java
...liance/mda/runtime/mda/util/ApplicationContextHolder.java
+35
-0
BaseVO.java
.../main/java/com/brilliance/mda/runtime/request/BaseVO.java
+50
-0
RequestSet.java
...n/java/com/brilliance/mda/runtime/request/RequestSet.java
+15
-0
ICache.java
...rc/main/java/com/brilliance/mda/support/cache/ICache.java
+27
-0
ICacheSerializer.java
...liance/mda/support/cache/serializer/ICacheSerializer.java
+10
-0
BigDecimalSerializeRate.java
...mda/support/jakson/serialize/BigDecimalSerializeRate.java
+46
-0
DateDeSerialized.java
...liance/mda/support/jakson/serialize/DateDeSerialized.java
+20
-0
DecimalLength.java
...rilliance/mda/support/jakson/serialize/DecimalLength.java
+15
-0
IStreamDeSerialized.java
...nce/mda/support/jakson/serialize/IStreamDeSerialized.java
+38
-0
AreaType.java
...src/main/java/com/brilliance/mda/support/td/AreaType.java
+11
-0
TDFieldInfo.java
.../main/java/com/brilliance/mda/support/td/TDFieldInfo.java
+24
-0
TDModuleInfo.java
...main/java/com/brilliance/mda/support/td/TDModuleInfo.java
+39
-0
moduleClassName.properties
...da/src/main/resources/META-INF/moduleClassName.properties
+7
-0
javax.annotation.processing.Processor
...s/META-INF/services/javax.annotation.processing.Processor
+0
-0
pom.xml
pom.xml
+1
-1
No files found.
gjjs-bd-annonation-enhance/src/main/java/com/brilliance/annotation/processor/enhance/impl/BDSetterEnhance.java
deleted
100644 → 0
View file @
880890a7
package
com
.
brilliance
.
annotation
.
processor
.
enhance
.
impl
;
import
com.brilliance.annotation.processor.AnnotationEnhanceUtils
;
import
com.brilliance.annotation.processor.PrimitiveEnums
;
import
com.brilliance.annotation.processor.enhance.AbstractAnnotationEnhance
;
import
com.brilliance.mda.runtime.mda.IStream
;
import
com.brilliance.mda.runtime.mda.impl.StreamImpl
;
import
com.sun.tools.javac.code.Flags
;
import
com.sun.tools.javac.code.TypeTag
;
import
com.sun.tools.javac.tree.JCTree
;
import
com.sun.tools.javac.util.ListBuffer
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* BDSetter注解增强实现类
*/
public
class
BDSetterEnhance
extends
AbstractAnnotationEnhance
{
@Override
public
String
getMethodName
(
JCTree
.
JCVariableDecl
variableDecl
)
{
String
variableName
=
variableDecl
.
name
.
toString
();
return
"set"
+
variableName
.
substring
(
0
,
1
).
toUpperCase
()
+
variableName
.
substring
(
1
);
}
@Override
public
JCTree
.
JCMethodDecl
findJCMethodDecl
(
JCTree
.
JCClassDecl
jcClassDecl
,
JCTree
.
JCVariableDecl
variableDecl
,
String
methodName
)
{
List
<
JCTree
.
JCMethodDecl
>
jcMethodDecls
=
jcClassDecl
.
defs
.
stream
().
filter
(
it
->
(
it
instanceof
JCTree
.
JCMethodDecl
))
.
map
(
it
->
(
JCTree
.
JCMethodDecl
)
it
)
.
collect
(
Collectors
.
toList
());
for
(
JCTree
.
JCMethodDecl
jcMethodDecl
:
jcMethodDecls
)
{
if
(
jcMethodDecl
.
name
.
toString
().
equals
(
methodName
)
&&
jcMethodDecl
.
params
.
size
()
==
1
&&
jcMethodDecl
.
params
.
get
(
0
).
vartype
.
type
.
toString
().
equals
(
variableDecl
.
vartype
.
type
.
toString
()))
{
return
jcMethodDecl
;
}
}
return
null
;
}
@Override
public
JCTree
.
JCMethodDecl
createJCMethodDecl
(
JCTree
.
JCClassDecl
jcClassDecl
,
JCTree
.
JCVariableDecl
variableDecl
,
String
methodName
,
List
<
JCTree
.
JCExpression
>
args
)
{
ListBuffer
<
JCTree
.
JCStatement
>
body
=
new
ListBuffer
<>();
boolean
isNotifyDefault
=
AnnotationEnhanceUtils
.
findAnnotationArguments
(
args
,
"notifyDefault"
,
"true"
).
equals
(
"true"
);
if
(
String
.
class
.
getName
().
equals
(
variableDecl
.
vartype
.
type
.
toString
()))
{
int
maxLength
=
AnnotationEnhanceUtils
.
findAnnotationArgumentsInt
(
args
,
"max"
,
0
);
body
.
append
(
treeMaker
.
VarDef
(
treeMaker
.
Modifiers
(
Flags
.
PARAMETER
),
names
.
fromString
(
"rs"
),
treeMaker
.
TypeApply
(
treeMaker
.
Ident
(
names
.
fromString
(
"Result"
)),
new
ListBuffer
<
JCTree
.
JCExpression
>().
append
(
variableDecl
.
vartype
).
toList
()),
treeMaker
.
Apply
(
com
.
sun
.
tools
.
javac
.
util
.
List
.
nil
(),
treeMaker
.
Select
(
treeMaker
.
Ident
(
names
.
fromString
(
"this"
)),
names
.
fromString
(
"compareAndGetStr"
)),
new
ListBuffer
<
JCTree
.
JCExpression
>()
.
append
(
treeMaker
.
Literal
(
variableDecl
.
name
.
toString
()))
.
append
(
treeMaker
.
Ident
(
names
.
fromString
(
variableDecl
.
name
.
toString
())))
.
append
(
treeMaker
.
Select
(
treeMaker
.
Ident
(
names
.
fromString
(
"this"
)),
variableDecl
.
name
))
.
append
(
treeMaker
.
Literal
(
maxLength
))
.
toList
()
)));
body
.
append
(
treeMaker
.
Exec
(
treeMaker
.
Assign
(
treeMaker
.
Select
(
treeMaker
.
Ident
(
names
.
fromString
(
"this"
)),
variableDecl
.
name
),
treeMaker
.
Select
(
treeMaker
.
Ident
(
names
.
fromString
(
"rs"
)),
names
.
fromString
(
"value"
)))));
if
(
isNotifyDefault
)
{
body
.
append
(
treeMaker
.
Exec
(
treeMaker
.
Apply
(
com
.
sun
.
tools
.
javac
.
util
.
List
.
nil
(),
treeMaker
.
Select
(
treeMaker
.
Ident
(
names
.
fromString
(
"rs"
)),
names
.
fromString
(
"notifyDefault"
)),
com
.
sun
.
tools
.
javac
.
util
.
List
.
nil
()
)
));
}
}
else
if
(
BigDecimal
.
class
.
getName
().
equals
(
variableDecl
.
vartype
.
type
.
toString
()))
{
int
scale
=
AnnotationEnhanceUtils
.
findAnnotationArgumentsInt
(
args
,
"scale"
,
2
);
body
.
append
(
treeMaker
.
VarDef
(
treeMaker
.
Modifiers
(
Flags
.
PARAMETER
),
names
.
fromString
(
"rs"
),
treeMaker
.
TypeApply
(
treeMaker
.
Ident
(
names
.
fromString
(
"Result"
)),
new
ListBuffer
<
JCTree
.
JCExpression
>().
append
(
variableDecl
.
vartype
).
toList
()),
treeMaker
.
Apply
(
com
.
sun
.
tools
.
javac
.
util
.
List
.
nil
(),
treeMaker
.
Select
(
treeMaker
.
Ident
(
names
.
fromString
(
"this"
)),
names
.
fromString
(
"compareAndGetDecimal"
)),
new
ListBuffer
<
JCTree
.
JCExpression
>()
.
append
(
treeMaker
.
Literal
(
variableDecl
.
name
.
toString
()))
.
append
(
treeMaker
.
Ident
(
names
.
fromString
(
variableDecl
.
name
.
toString
())))
.
append
(
treeMaker
.
Select
(
treeMaker
.
Ident
(
names
.
fromString
(
"this"
)),
variableDecl
.
name
))
.
append
(
treeMaker
.
Literal
(
scale
))
.
toList
()
)));
body
.
append
(
treeMaker
.
Exec
(
treeMaker
.
Assign
(
treeMaker
.
Select
(
treeMaker
.
Ident
(
names
.
fromString
(
"this"
)),
variableDecl
.
name
),
treeMaker
.
Select
(
treeMaker
.
Ident
(
names
.
fromString
(
"rs"
)),
names
.
fromString
(
"value"
)))));
if
(
isNotifyDefault
)
{
body
.
append
(
treeMaker
.
Exec
(
treeMaker
.
Apply
(
com
.
sun
.
tools
.
javac
.
util
.
List
.
nil
(),
treeMaker
.
Select
(
treeMaker
.
Ident
(
names
.
fromString
(
"rs"
)),
names
.
fromString
(
"notifyDefault"
)),
com
.
sun
.
tools
.
javac
.
util
.
List
.
nil
()
)
));
}
}
else
if
(
Date
.
class
.
getName
().
equals
(
variableDecl
.
vartype
.
type
.
toString
())
||
IStream
.
class
.
getName
().
equals
(
variableDecl
.
vartype
.
type
.
toString
())
||
StreamImpl
.
class
.
getName
().
equals
(
variableDecl
.
vartype
.
type
.
toString
())
||
variableDecl
.
vartype
.
type
.
isPrimitive
())
{
body
.
append
(
treeMaker
.
VarDef
(
treeMaker
.
Modifiers
(
Flags
.
PARAMETER
),
names
.
fromString
(
"rs"
),
treeMaker
.
TypeApply
(
treeMaker
.
Ident
(
names
.
fromString
(
"Result"
)),
variableDecl
.
vartype
.
type
.
isPrimitive
()
?
new
ListBuffer
<
JCTree
.
JCExpression
>().
append
(
treeMaker
.
Ident
(
names
.
fromString
(
PrimitiveEnums
.
getValues
(
variableDecl
.
vartype
.
toString
()).
getValue
()))).
toList
()
:
new
ListBuffer
<
JCTree
.
JCExpression
>().
append
(
variableDecl
.
vartype
).
toList
()
),
treeMaker
.
Apply
(
com
.
sun
.
tools
.
javac
.
util
.
List
.
nil
(),
treeMaker
.
Select
(
treeMaker
.
Ident
(
names
.
fromString
(
"this"
)),
names
.
fromString
(
"compareAndGet"
)),
new
ListBuffer
<
JCTree
.
JCExpression
>()
.
append
(
treeMaker
.
Literal
(
variableDecl
.
name
.
toString
()))
.
append
(
treeMaker
.
Ident
(
names
.
fromString
(
variableDecl
.
name
.
toString
())))
.
append
(
treeMaker
.
Select
(
treeMaker
.
Ident
(
names
.
fromString
(
"this"
)),
variableDecl
.
name
))
.
toList
()
)));
body
.
append
(
treeMaker
.
Exec
(
treeMaker
.
Assign
(
treeMaker
.
Select
(
treeMaker
.
Ident
(
names
.
fromString
(
"this"
)),
variableDecl
.
name
),
treeMaker
.
Select
(
treeMaker
.
Ident
(
names
.
fromString
(
"rs"
)),
names
.
fromString
(
"value"
)))));
if
(
isNotifyDefault
)
{
body
.
append
(
treeMaker
.
Exec
(
treeMaker
.
Apply
(
com
.
sun
.
tools
.
javac
.
util
.
List
.
nil
(),
treeMaker
.
Select
(
treeMaker
.
Ident
(
names
.
fromString
(
"rs"
)),
names
.
fromString
(
"notifyDefault"
)),
com
.
sun
.
tools
.
javac
.
util
.
List
.
nil
()
)
));
}
}
else
{
return
null
;
}
JCTree
.
JCBlock
jcBlock
=
treeMaker
.
Block
(
0
,
body
.
toList
());
return
treeMaker
.
MethodDef
(
treeMaker
.
Modifiers
(
Flags
.
PUBLIC
),
//方法可见性
names
.
fromString
(
methodName
),
//方法名称
treeMaker
.
TypeIdent
(
TypeTag
.
VOID
),
//方法返回值
com
.
sun
.
tools
.
javac
.
util
.
List
.
nil
(),
//泛型参数列表
new
ListBuffer
<
JCTree
.
JCVariableDecl
>()
.
append
(
treeMaker
.
VarDef
(
treeMaker
.
Modifiers
(
Flags
.
PARAMETER
),
variableDecl
.
name
,
variableDecl
.
vartype
,
null
))
.
toList
(),
com
.
sun
.
tools
.
javac
.
util
.
List
.
nil
(),
//抛出异常列表
jcBlock
,
null
);
}
}
gjjs-bd-business/src/main/java/com/ceb/gjjs/mda/manager/module/Rcvp.java
View file @
e0c4b428
package
com
.
ceb
.
gjjs
.
mda
.
manager
.
module
;
import
com.brilliance.mda.runtime.annotation.BDGetter
;
import
com.brilliance.mda.runtime.annotation.Check
;
import
com.brilliance.mda.runtime.annotation.Init
;
import
com.brilliance.mda.runtime.annotation.Rule
;
import
java.util.*
;
import
java.math.BigDecimal
;
import
com.brilliance.mda.runtime.mda.*
;
import
com.brilliance.mda.runtime.mda.driver.MdaDriver
;
import
com.brilliance.mda.runtime.mda.driver.MdaEnv
;
import
com.brilliance.mda.runtime.mda.impl.AbstractModule
;
import
com.brilliance.mda.runtime.mda.impl.Argument
;
import
com.brilliance.mda.runtime.mda.impl.StreamImpl
;
import
com.brilliance.mda.runtime.mda.util.MdaUtils
;
import
com.ceb.gjjs.mda.bo.Chn
;
import
com.ceb.gjjs.mda.bo.Wanrec
;
import
com.ceb.gjjs.mda.global.Platform
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.brilliance.mda.runtime.mda.impl.*
;
import
com.brilliance.mda.runtime.annotation.*
;
import
com.brilliance.mda.runtime.mda.driver.*
;
import
static
com
.
brilliance
.
mda
.
runtime
.
mda
.
Constants
.*;
import
com.brilliance.mda.runtime.mda.util.*
;
import
com.fasterxml.jackson.annotation.*
;
import
java.util.regex.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
com.ceb.gjjs.mda.bo.Wanrec
;
import
com.ceb.gjjs.mda.global.Platform
;
import
com.ceb.gjjs.mda.bo.Chn
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
import
static
com
.
brilliance
.
mda
.
runtime
.
mda
.
Constants
.*;
/**
*
*/
...
...
gjjs-bd-runtime/pom.xml
View file @
e0c4b428
...
...
@@ -15,6 +15,11 @@
<dependencies>
<dependency>
<groupId>
com.brilliance
</groupId>
<artifactId>
gjjs-mda
</artifactId>
<version>
0.0.1
</version>
</dependency>
<dependency>
<groupId>
com.fasterxml.jackson.core
</groupId>
<artifactId>
jackson-annotations
</artifactId>
</dependency>
...
...
@@ -83,6 +88,7 @@
<artifactId>
kryo5
</artifactId>
</dependency>
<dependency>
<groupId>
com.oracle
</groupId>
<artifactId>
ojdbc6
</artifactId>
...
...
gjjs-
bd-annonation-enhance
/pom.xml
→
gjjs-
mda
/pom.xml
View file @
e0c4b428
...
...
@@ -9,8 +9,7 @@
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
gjjs-bd-annonation-enhance
</artifactId>
<version>
0.0.1
</version>
<artifactId>
gjjs-mda
</artifactId>
<properties>
<maven.compiler.source>
8
</maven.compiler.source>
...
...
@@ -18,9 +17,30 @@
</properties>
<dependencies>
<dependency>
<groupId>
com.brilliance
</groupId>
<artifactId>
gjjs-bd-runtime
</artifactId>
<version>
0.0.1
</version>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
</dependency>
<dependency>
<groupId>
com.fasterxml.jackson.core
</groupId>
<artifactId>
jackson-databind
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
druid-spring-boot-starter
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-aop
</artifactId>
<exclusions>
<exclusion>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-logging
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
com.sun
</groupId>
...
...
@@ -37,15 +57,37 @@
<artifactId>
maven-compiler-plugin
</artifactId>
<version>
3.1
</version>
<configuration>
<source>
1.8
</source>
<target>
1.8
</target>
<encoding>
UTF-8
</encoding>
<compilerArgument>
-proc:none
</compilerArgument>
<source>
${java.version}
</source>
<target>
${java.version}
</target>
</configuration>
<executions>
<execution>
<id>
default-compile
</id>
<configuration>
<compilerArgument>
-proc:none
</compilerArgument>
<includes>
<include>
com/brilliance/annotation/processor/*.java
</include>
<include>
com/brilliance/annotation/processor/enhance/*.java
</include>
</includes>
</configuration>
</execution>
<execution>
<id>
compile-project
</id>
<phase>
compile
</phase>
<goals>
<goal>
compile
</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-surefire-plugin
</artifactId>
<version>
2.19.1
</version>
<configuration>
<skipTests>
true
</skipTests>
<!--默认关掉单元测试 -->
</configuration>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
gjjs-
bd-annonation-enhance
/src/main/java/com/brilliance/annotation/processor/AnnotationEnhanceUtils.java
→
gjjs-
mda
/src/main/java/com/brilliance/annotation/processor/AnnotationEnhanceUtils.java
View file @
e0c4b428
File moved
gjjs-
bd-annonation-enhance
/src/main/java/com/brilliance/annotation/processor/BaseProcessor.java
→
gjjs-
mda
/src/main/java/com/brilliance/annotation/processor/BaseProcessor.java
View file @
e0c4b428
File moved
gjjs-
bd-annonation-enhance
/src/main/java/com/brilliance/annotation/processor/ModuleAnnotationTranslator.java
→
gjjs-
mda
/src/main/java/com/brilliance/annotation/processor/ModuleAnnotationTranslator.java
View file @
e0c4b428
...
...
@@ -37,36 +37,36 @@ public class ModuleAnnotationTranslator extends TreeTranslator {
@Override
public
void
visitClassDef
(
JCTree
.
JCClassDecl
jcClassDecl
)
{
if
(
moduleName
.
toString
().
equals
(
"Txlp"
))
{
messager
.
printMessage
(
Diagnostic
.
Kind
.
NOTE
,
"
正在增强-----------------------
"
);
if
(
"AbstractModule"
.
equals
(
moduleName
.
toString
()
))
{
messager
.
printMessage
(
Diagnostic
.
Kind
.
NOTE
,
"
AbstractModule 不会被增强.
"
);
return
;
}
if
(
jcClassDecl
.
name
==
moduleName
)
{
for
(
JCTree
it
:
jcClassDecl
.
defs
)
{
if
(
it
.
getKind
()
==
Tree
.
Kind
.
VARIABLE
)
{
JCTree
.
JCVariableDecl
jcVariableDecl
=
(
JCTree
.
JCVariableDecl
)
it
;
JCTree
.
JCModifiers
modifiers
=
jcVariableDecl
.
getModifiers
();
List
<
JCTree
.
JCAnnotation
>
annotations
=
modifiers
.
getAnnotations
();
for
(
JCTree
.
JCAnnotation
annotation
:
annotations
)
{
AbstractAnnotationEnhance
annotationEnhance
=
getAnnotationEnhance
(
annotation
);
if
(
annotationEnhance
!=
null
)
{
processAnnotationEnhance
(
annotationEnhance
,
annotation
,
jcClassDecl
,
jcVariableDecl
);
jcClassDecl
.
defs
.
stream
().
filter
(
it
->
it
.
getKind
()
==
Tree
.
Kind
.
VARIABLE
)
.
map
(
it
->
(
JCTree
.
JCVariableDecl
)
it
)
.
forEach
(
it
->
{
JCTree
.
JCModifiers
modifiers
=
it
.
getModifiers
();
List
<
JCTree
.
JCAnnotation
>
annotations
=
modifiers
.
getAnnotations
();
for
(
JCTree
.
JCAnnotation
annotation
:
annotations
)
{
AbstractAnnotationEnhance
annotationEnhance
=
getAnnotationEnhance
(
annotation
);
if
(
annotationEnhance
!=
null
)
{
processAnnotationEnhance
(
annotationEnhance
,
annotation
,
jcClassDecl
,
it
);
}
}
}
if
(
needGenerateMethod
(
annotations
,
TDSetter
.
class
.
getName
())
&&
isValidField
(
jcVariableDecl
))
{
AbstractAnnotationEnhance
annotationEnhance
=
new
ModuleSetterEnhance
();
processAnnotationEnhance
(
annotationEnhance
,
null
,
jcClassDecl
,
jcVariableDecl
);
}
if
(
needGenerateMethod
(
annotations
,
TDGetter
.
class
.
getName
())
&&
isValidField
(
jcVariableDecl
))
{
AbstractAnnotationEnhance
annotationEnhance
=
new
ModuleGetterEnhance
();
processAnnotationEnhance
(
annotationEnhance
,
null
,
jcClassDecl
,
jcVariableDecl
);
}
if
(
needGenerateMethod
(
annotations
,
BDGetter
.
class
.
getName
())
&&
isValidField
(
jcVariableDecl
))
{
AbstractAnnotationEnhance
annotationEnhance
=
new
ModuleGetterEnhance
();
processAnnotationEnhance
(
annotationEnhance
,
null
,
jcClassDecl
,
jcVariableDecl
);
}
}
}
if
(
needGenerateMethod
(
annotations
,
TDSetter
.
class
.
getName
())
&&
isValidField
(
it
))
{
AbstractAnnotationEnhance
annotationEnhance
=
new
ModuleSetterEnhance
();
processAnnotationEnhance
(
annotationEnhance
,
null
,
jcClassDecl
,
it
);
}
if
(
needGenerateMethod
(
annotations
,
TDGetter
.
class
.
getName
())
&&
isValidField
(
it
))
{
AbstractAnnotationEnhance
annotationEnhance
=
new
ModuleGetterEnhance
();
processAnnotationEnhance
(
annotationEnhance
,
null
,
jcClassDecl
,
it
);
}
if
(
needGenerateMethod
(
annotations
,
BDGetter
.
class
.
getName
())
&&
isValidField
(
it
))
{
AbstractAnnotationEnhance
annotationEnhance
=
new
ModuleGetterEnhance
();
processAnnotationEnhance
(
annotationEnhance
,
null
,
jcClassDecl
,
it
);
}
});
}
super
.
visitClassDef
(
jcClassDecl
);
}
...
...
gjjs-
bd-annonation-enhance
/src/main/java/com/brilliance/annotation/processor/ModuleProcessor.java
→
gjjs-
mda
/src/main/java/com/brilliance/annotation/processor/ModuleProcessor.java
View file @
e0c4b428
...
...
@@ -16,7 +16,7 @@ import java.util.stream.Collectors;
@SupportedAnnotationTypes
(
"com.brilliance.mda.runtime.annotation.Module"
)
@SupportedSourceVersion
(
SourceVersion
.
RELEASE_8
)
public
class
ModuleProcessor
extends
BaseProcessor
{
public
class
ModuleProcessor
extends
BaseProcessor
{
@Override
public
boolean
process
(
Set
<?
extends
TypeElement
>
set
,
RoundEnvironment
roundEnvironment
)
{
...
...
@@ -43,9 +43,9 @@ public class ModuleProcessor extends BaseProcessor {
}
}
}
catch
(
Exception
e
)
{
messager
.
printMessage
(
Diagnostic
.
Kind
.
ERROR
,
"编译增强模型["
+
tmpTypeElement
.
getSimpleName
().
toString
()
+
"]发生错误, 错误原因 : "
+
e
.
getMessage
());
messager
.
printMessage
(
Diagnostic
.
Kind
.
ERROR
,
"编译增强模型["
+
tmpTypeElement
.
getSimpleName
().
toString
()+
"]发生错误, 错误原因 : "
+
e
.
getMessage
());
}
messager
.
printMessage
(
Diagnostic
.
Kind
.
NOTE
,
"结束编译增强"
);
messager
.
printMessage
(
Diagnostic
.
Kind
.
NOTE
,
"结束编译增强"
);
}
return
true
;
}
...
...
@@ -57,6 +57,7 @@ public class ModuleProcessor extends BaseProcessor {
private
void
addImport
(
JCTree
.
JCCompilationUnit
cu
)
{
addImport
(
cu
,
"com.brilliance.mda.runtime.mda.impl.PanelImpl"
,
"com.brilliance.mda.runtime.mda.impl.StreamImpl"
,
"com.brilliance.mda.runtime.mda.impl.ModuleList"
,
"com.brilliance.mda.runtime.mda.util.MdaUtils"
,
...
...
gjjs-
bd-annonation-enhance
/src/main/java/com/brilliance/annotation/processor/PrimitiveEnums.java
→
gjjs-
mda
/src/main/java/com/brilliance/annotation/processor/PrimitiveEnums.java
View file @
e0c4b428
File moved
gjjs-
bd-annonation-enhance
/src/main/java/com/brilliance/annotation/processor/enhance/AbstractAnnotationEnhance.java
→
gjjs-
mda
/src/main/java/com/brilliance/annotation/processor/enhance/AbstractAnnotationEnhance.java
View file @
e0c4b428
package
com
.
brilliance
.
annotation
.
processor
.
enhance
;
import
com.sun.tools.javac.tree.JCTree
;
import
com.sun.tools.javac.tree.TreeMaker
;
import
com.sun.tools.javac.util.Name
;
import
java.util.List
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.util.Properties
;
public
abstract
class
AbstractAnnotationEnhance
implements
AnnotationEnhance
{
...
...
@@ -19,4 +20,16 @@ public abstract class AbstractAnnotationEnhance implements AnnotationEnhance{
public
void
setTreeMaker
(
TreeMaker
treeMaker
)
{
this
.
treeMaker
=
treeMaker
;
}
public
static
Properties
moduleClassNameProperties
;
static
{
try
{
moduleClassNameProperties
=
new
Properties
();
InputStream
inputStream
=
AbstractAnnotationEnhance
.
class
.
getResourceAsStream
(
"/META-INF/moduleClassName.properties"
);
moduleClassNameProperties
.
load
(
inputStream
);
}
catch
(
IOException
e
)
{
}
}
}
gjjs-
bd-annonation-enhance
/src/main/java/com/brilliance/annotation/processor/enhance/AnnotationEnhance.java
→
gjjs-
mda
/src/main/java/com/brilliance/annotation/processor/enhance/AnnotationEnhance.java
View file @
e0c4b428
File moved
gjjs-
bd-annonation-enhance
/src/main/java/com/brilliance/annotation/processor/enhance/impl/BDGetterEnhance.java
→
gjjs-
mda
/src/main/java/com/brilliance/annotation/processor/enhance/impl/BDGetterEnhance.java
View file @
e0c4b428
...
...
@@ -2,10 +2,6 @@ package com.brilliance.annotation.processor.enhance.impl;
import
com.brilliance.annotation.processor.AnnotationEnhanceUtils
;
import
com.brilliance.annotation.processor.enhance.AbstractAnnotationEnhance
;
import
com.brilliance.mda.runtime.mda.IModuleList
;
import
com.brilliance.mda.runtime.mda.IStream
;
import
com.brilliance.mda.runtime.mda.impl.ModuleList
;
import
com.brilliance.mda.runtime.mda.impl.StreamImpl
;
import
com.sun.tools.javac.code.Flags
;
import
com.sun.tools.javac.code.TypeTag
;
import
com.sun.tools.javac.tree.JCTree
;
...
...
@@ -52,11 +48,12 @@ public class BDGetterEnhance extends AbstractAnnotationEnhance {
JCTree
.
JCNewClass
jcNewClass
=
null
;
if
(
variableDecl
.
vartype
.
type
.
toString
().
startsWith
(
IModuleList
.
class
.
getName
(
)
+
"<"
)
||
variableDecl
.
vartype
.
type
.
toString
().
startsWith
(
ModuleList
.
class
.
getName
(
)
+
"<"
))
{
if
(
variableDecl
.
vartype
.
type
.
toString
().
startsWith
(
moduleClassNameProperties
.
get
(
"IModuleList"
)
+
"<"
)
||
variableDecl
.
vartype
.
type
.
toString
().
startsWith
(
moduleClassNameProperties
.
get
(
"ModuleList"
)
+
"<"
))
{
JCTree
.
JCTypeApply
typeApply
=
(
JCTree
.
JCTypeApply
)
variableDecl
.
vartype
;
List
<
JCTree
.
JCExpression
>
argsuments
=
typeApply
.
arguments
;
String
tClass
=
argsuments
.
get
(
0
).
toString
();
int
initSize
=
AnnotationEnhanceUtils
.
findAnnotationArgumentsInt
(
args
,
"initSize"
,
0
);
jcNewClass
=
treeMaker
.
NewClass
(
null
,
com
.
sun
.
tools
.
javac
.
util
.
List
.
nil
(),
...
...
@@ -65,11 +62,32 @@ public class BDGetterEnhance extends AbstractAnnotationEnhance {
new
ListBuffer
<
JCTree
.
JCExpression
>()
.
append
(
treeMaker
.
Literal
(
variableDecl
.
name
.
toString
()))
.
append
(
treeMaker
.
Ident
(
names
.
fromString
(
"this"
)))
.
append
(
treeMaker
.
Literal
(
initSize
))
.
append
(
treeMaker
.
Select
(
treeMaker
.
Ident
(
names
.
fromString
(
tClass
)),
names
.
fromString
(
"class"
)))
.
toList
(),
null
);
}
else
if
(
IStream
.
class
.
getName
().
equals
(
variableDecl
.
vartype
.
type
.
toString
())
||
StreamImpl
.
class
.
getName
().
equals
(
variableDecl
.
vartype
.
type
.
toString
()))
{
}
else
if
(
variableDecl
.
vartype
.
type
.
toString
().
equals
(
moduleClassNameProperties
.
get
(
"IPanel"
))
||
variableDecl
.
vartype
.
type
.
toString
().
equals
(
moduleClassNameProperties
.
get
(
"PanelImpl"
)))
{
String
i18n
=
AnnotationEnhanceUtils
.
findAnnotationArguments
(
args
,
"i18n"
,
""
).
replaceAll
(
"\""
,
""
);
jcNewClass
=
treeMaker
.
NewClass
(
null
,
com
.
sun
.
tools
.
javac
.
util
.
List
.
nil
(),
treeMaker
.
Ident
(
names
.
fromString
(
"PanelImpl"
)),
new
ListBuffer
<
JCTree
.
JCExpression
>()
.
append
(
treeMaker
.
Literal
(
variableDecl
.
name
.
toString
()))
.
append
(
treeMaker
.
Apply
(
com
.
sun
.
tools
.
javac
.
util
.
List
.
nil
(),
treeMaker
.
Select
(
treeMaker
.
Ident
(
names
.
fromString
(
"MdaUtils"
)),
names
.
fromString
(
"getI18NString"
)),
new
ListBuffer
<
JCTree
.
JCExpression
>()
.
append
(
treeMaker
.
Ident
(
names
.
fromString
(
"this"
)))
.
append
(
treeMaker
.
Literal
(
TypeTag
.
CLASS
,
i18n
))
.
toList
()
))
.
append
(
treeMaker
.
Ident
(
names
.
fromString
(
"this"
)))
.
toList
(),
null
);
}
else
if
(
variableDecl
.
vartype
.
type
.
toString
().
equals
(
moduleClassNameProperties
.
get
(
"IStream"
))
||
variableDecl
.
vartype
.
type
.
toString
().
equals
(
moduleClassNameProperties
.
get
(
"StreamImpl"
)))
{
jcNewClass
=
treeMaker
.
NewClass
(
null
,
com
.
sun
.
tools
.
javac
.
util
.
List
.
nil
(),
treeMaker
.
Ident
(
names
.
fromString
(
"StreamImpl"
)),
...
...
gjjs-
bd-annonation-enhance
/src/main/java/com/brilliance/annotation/processor/enhance/impl/ModuleGetterEnhance.java
→
gjjs-
mda
/src/main/java/com/brilliance/annotation/processor/enhance/impl/ModuleGetterEnhance.java
View file @
e0c4b428
...
...
@@ -29,7 +29,8 @@ public class ModuleGetterEnhance extends AbstractAnnotationEnhance {
for
(
JCTree
.
JCMethodDecl
jcMethodDecl
:
jcMethodDecls
)
{
if
(
jcMethodDecl
.
name
.
toString
().
equals
(
methodName
)
&&
jcMethodDecl
.
params
.
size
()
==
0
)
{
&&
jcMethodDecl
.
params
.
size
()
==
0
&&
jcMethodDecl
.
restype
.
type
.
toString
().
equals
(
variableDecl
.
vartype
.
type
.
toString
()))
{
return
jcMethodDecl
;
}
}
...
...
gjjs-
bd-annonation-enhance
/src/main/java/com/brilliance/annotation/processor/enhance/impl/ModuleSetterEnhance.java
→
gjjs-
mda
/src/main/java/com/brilliance/annotation/processor/enhance/impl/ModuleSetterEnhance.java
View file @
e0c4b428
File moved
gjjs-
bd-annonation-enhance
/src/main/java/com/brilliance/annotation/processor/enhance/impl/TDGetterEnhance.java
→
gjjs-
mda
/src/main/java/com/brilliance/annotation/processor/enhance/impl/TDGetterEnhance.java
View file @
e0c4b428
...
...
@@ -2,10 +2,6 @@ package com.brilliance.annotation.processor.enhance.impl;
import
com.brilliance.annotation.processor.AnnotationEnhanceUtils
;
import
com.brilliance.annotation.processor.enhance.AbstractAnnotationEnhance
;
import
com.brilliance.mda.runtime.mda.IModuleList
;
import
com.brilliance.mda.runtime.mda.IStream
;
import
com.brilliance.mda.runtime.mda.impl.ModuleList
;
import
com.brilliance.mda.runtime.mda.impl.StreamImpl
;
import
com.sun.tools.javac.code.Flags
;
import
com.sun.tools.javac.code.TypeTag
;
import
com.sun.tools.javac.tree.JCTree
;
...
...
@@ -52,8 +48,8 @@ public class TDGetterEnhance extends AbstractAnnotationEnhance {
JCTree
.
JCNewClass
jcNewClass
=
null
;
if
(
variableDecl
.
vartype
.
type
.
toString
().
startsWith
(
IModuleList
.
class
.
getName
(
)
+
"<"
)
||
variableDecl
.
vartype
.
type
.
toString
().
startsWith
(
ModuleList
.
class
.
getName
(
)
+
"<"
))
{
if
(
variableDecl
.
vartype
.
type
.
toString
().
startsWith
(
moduleClassNameProperties
.
get
(
"IModuleList"
)
+
"<"
)
||
variableDecl
.
vartype
.
type
.
toString
().
startsWith
(
moduleClassNameProperties
.
get
(
"ModuleList"
)
+
"<"
))
{
JCTree
.
JCTypeApply
typeApply
=
(
JCTree
.
JCTypeApply
)
variableDecl
.
vartype
;
List
<
JCTree
.
JCExpression
>
argsuments
=
typeApply
.
arguments
;
String
tClass
=
argsuments
.
get
(
0
).
toString
();
...
...
@@ -70,8 +66,28 @@ public class TDGetterEnhance extends AbstractAnnotationEnhance {
.
append
(
treeMaker
.
Select
(
treeMaker
.
Ident
(
names
.
fromString
(
tClass
)),
names
.
fromString
(
"class"
)))
.
toList
(),
null
);
}
else
if
(
IStream
.
class
.
getName
().
equals
(
variableDecl
.
vartype
.
type
.
toString
())
||
StreamImpl
.
class
.
getName
().
equals
(
variableDecl
.
vartype
.
type
.
toString
()))
{
}
else
if
(
variableDecl
.
vartype
.
type
.
toString
().
equals
(
moduleClassNameProperties
.
get
(
"IPanel"
))
||
variableDecl
.
vartype
.
type
.
toString
().
equals
(
moduleClassNameProperties
.
get
(
"PanelImpl"
)))
{
String
i18n
=
AnnotationEnhanceUtils
.
findAnnotationArguments
(
args
,
"i18n"
,
""
).
replaceAll
(
"\""
,
""
);
jcNewClass
=
treeMaker
.
NewClass
(
null
,
com
.
sun
.
tools
.
javac
.
util
.
List
.
nil
(),
treeMaker
.
Ident
(
names
.
fromString
(
"PanelImpl"
)),
new
ListBuffer
<
JCTree
.
JCExpression
>()
.
append
(
treeMaker
.
Literal
(
variableDecl
.
name
.
toString
()))
.
append
(
treeMaker
.
Apply
(
com
.
sun
.
tools
.
javac
.
util
.
List
.
nil
(),
treeMaker
.
Select
(
treeMaker
.
Ident
(
names
.
fromString
(
"MdaUtils"
)),
names
.
fromString
(
"getI18NString"
)),
new
ListBuffer
<
JCTree
.
JCExpression
>()
.
append
(
treeMaker
.
Ident
(
names
.
fromString
(
"this"
)))
.
append
(
treeMaker
.
Literal
(
TypeTag
.
CLASS
,
i18n
))
.
toList
()
))
.
append
(
treeMaker
.
Ident
(
names
.
fromString
(
"this"
)))
.
toList
(),
null
);
}
else
if
(
variableDecl
.
vartype
.
type
.
toString
().
equals
(
moduleClassNameProperties
.
get
(
"IStream"
))
||
variableDecl
.
vartype
.
type
.
toString
().
equals
(
moduleClassNameProperties
.
get
(
"StreamImpl"
)))
{
jcNewClass
=
treeMaker
.
NewClass
(
null
,
com
.
sun
.
tools
.
javac
.
util
.
List
.
nil
(),
treeMaker
.
Ident
(
names
.
fromString
(
"StreamImpl"
)),
...
...
gjjs-
bd-annonation-enhance
/src/main/java/com/brilliance/annotation/processor/enhance/impl/TDSetterEnhance.java
→
gjjs-
mda
/src/main/java/com/brilliance/annotation/processor/enhance/impl/TDSetterEnhance.java
View file @
e0c4b428
...
...
@@ -3,8 +3,6 @@ package com.brilliance.annotation.processor.enhance.impl;
import
com.brilliance.annotation.processor.AnnotationEnhanceUtils
;
import
com.brilliance.annotation.processor.PrimitiveEnums
;
import
com.brilliance.annotation.processor.enhance.AbstractAnnotationEnhance
;
import
com.brilliance.mda.runtime.mda.IStream
;
import
com.brilliance.mda.runtime.mda.impl.StreamImpl
;
import
com.sun.tools.javac.code.Flags
;
import
com.sun.tools.javac.code.TypeTag
;
import
com.sun.tools.javac.tree.JCTree
;
...
...
@@ -108,8 +106,8 @@ public class TDSetterEnhance extends AbstractAnnotationEnhance {
));
}
}
else
if
(
Date
.
class
.
getName
().
equals
(
variableDecl
.
vartype
.
type
.
toString
())
||
IStream
.
class
.
getName
(
).
equals
(
variableDecl
.
vartype
.
type
.
toString
())
||
StreamImpl
.
class
.
getName
(
).
equals
(
variableDecl
.
vartype
.
type
.
toString
())
||
moduleClassNameProperties
.
get
(
"IStream"
).
equals
(
variableDecl
.
vartype
.
type
.
toString
())
||
moduleClassNameProperties
.
get
(
"StreamImpl"
).
equals
(
variableDecl
.
vartype
.
type
.
toString
())
||
variableDecl
.
vartype
.
type
.
isPrimitive
())
{
body
.
append
(
treeMaker
.
VarDef
(
treeMaker
.
Modifiers
(
Flags
.
PARAMETER
),
...
...
gjjs-
bd-runtime
/src/main/java/com/brilliance/mda/runtime/annotation/BDGetter.java
→
gjjs-
mda
/src/main/java/com/brilliance/mda/runtime/annotation/BDGetter.java
View file @
e0c4b428
File moved
gjjs-mda/src/main/java/com/brilliance/mda/runtime/annotation/Check.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
annotation
;
import
java.lang.annotation.Documented
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.Target
;
/**
* check函数
*/
@Documented
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Target
(
ElementType
.
METHOD
)
public
@interface
Check
{
int
order
()
default
100
;
String
target
()
default
""
;
String
[]
value
()
default
{};
}
gjjs-
bd-runtime
/src/main/java/com/brilliance/mda/runtime/annotation/Default.java
→
gjjs-
mda
/src/main/java/com/brilliance/mda/runtime/annotation/Default.java
View file @
e0c4b428
File moved
gjjs-mda/src/main/java/com/brilliance/mda/runtime/annotation/Init.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
annotation
;
import
java.lang.annotation.Documented
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
/**
* 初始化函数
*/
@Documented
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Target
(
ElementType
.
METHOD
)
public
@interface
Init
{
int
order
()
default
100
;
}
gjjs-
bd-runtime
/src/main/java/com/brilliance/mda/runtime/annotation/Module.java
→
gjjs-
mda
/src/main/java/com/brilliance/mda/runtime/annotation/Module.java
View file @
e0c4b428
File moved
gjjs-
bd-runtime
/src/main/java/com/brilliance/mda/runtime/annotation/Rule.java
→
gjjs-
mda
/src/main/java/com/brilliance/mda/runtime/annotation/Rule.java
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
annotation
;
import
java.lang.annotation.*
;
import
java.lang.annotation.Documented
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
/**
* 事件函数
...
...
@@ -9,9 +13,7 @@ import java.lang.annotation.*;
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Target
(
ElementType
.
METHOD
)
public
@interface
Rule
{
String
target
();
int
order
();
String
[]
value
()
default
{};
String
target
()
default
""
;
int
order
()
default
100
;
String
[]
value
()
default
{};
}
gjjs-
bd-runtime
/src/main/java/com/brilliance/mda/runtime/annotation/Setter.java
→
gjjs-
mda
/src/main/java/com/brilliance/mda/runtime/annotation/Setter.java
View file @
e0c4b428
File moved
gjjs-
bd-runtime
/src/main/java/com/brilliance/mda/runtime/annotation/SimpleType.java
→
gjjs-
mda
/src/main/java/com/brilliance/mda/runtime/annotation/SimpleType.java
View file @
e0c4b428
File moved
gjjs-
bd-runtime
/src/main/java/com/brilliance/mda/runtime/annotation/TDGetter.java
→
gjjs-
mda
/src/main/java/com/brilliance/mda/runtime/annotation/TDGetter.java
View file @
e0c4b428
File moved
gjjs-
bd-runtime/src/main/java/com/brilliance/mda/runtime/annotation/Init
.java
→
gjjs-
mda/src/main/java/com/brilliance/mda/runtime/annotation/TDMethod
.java
View file @
e0c4b428
...
...
@@ -3,11 +3,11 @@ package com.brilliance.mda.runtime.annotation;
import
java.lang.annotation.*
;
/**
*
初始化函数
*
标记为TD的Method
*/
@Documented
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Target
(
ElementType
.
METHOD
)
public
@interface
Init
{
int
order
()
;
public
@interface
TDMethod
{
boolean
value
()
default
true
;
}
gjjs-
bd-runtime
/src/main/java/com/brilliance/mda/runtime/annotation/TDSetter.java
→
gjjs-
mda
/src/main/java/com/brilliance/mda/runtime/annotation/TDSetter.java
View file @
e0c4b428
File moved
gjjs-
bd-runtime/src/main/java/com/brilliance/mda/runtime/annotation/Check
.java
→
gjjs-
mda/src/main/java/com/brilliance/mda/runtime/annotation/TDStatic
.java
View file @
e0c4b428
...
...
@@ -3,15 +3,11 @@ package com.brilliance.mda.runtime.annotation;
import
java.lang.annotation.*
;
/**
*
check函数
*
标记为TD的Static方法
*/
@Documented
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Target
(
ElementType
.
METHOD
)
public
@interface
Check
{
int
order
();
String
target
();
String
[]
value
()
default
{};
public
@interface
TDStatic
{
boolean
value
()
default
true
;
}
gjjs-
bd-runtime
/src/main/java/com/brilliance/mda/runtime/annotation/Transaction.java
→
gjjs-
mda
/src/main/java/com/brilliance/mda/runtime/annotation/Transaction.java
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
annotation
;
import
com.brilliance.mda.runtime.mda.EmptyVO
;
import
java.lang.annotation.Documented
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
import
java.lang.annotation.*
;
import
com.brilliance.mda.runtime.mda.EmptyVO
;
/**
* 交易注解
...
...
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/AttrType.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
public
enum
AttrType
{
ATTRIBUTE
,
MODIFIED
,
ENABLED
,
VALUES
,
VISIABLE
;
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/CodeEntity.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
import
lombok.AllArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
@AllArgsConstructor
@NoArgsConstructor
public
class
CodeEntity
{
public
String
path
;
public
List
<
String
>
values
;
public
boolean
visited
;
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/CodetableItem.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
public
class
CodetableItem
{
private
String
label
;
private
String
value
;
private
String
description
;
public
CodetableItem
(
String
label
,
String
value
,
String
description
)
{
this
.
label
=
label
;
this
.
value
=
value
;
this
.
description
=
description
;
}
public
CodetableItem
(
String
label
,
String
value
)
{
this
.
label
=
label
;
this
.
value
=
value
;
}
public
String
getLabel
()
{
return
this
.
label
;
}
public
void
setLabel
(
String
label
)
{
this
.
label
=
label
;
}
public
String
getValue
()
{
return
this
.
value
;
}
public
void
setValue
(
String
value
)
{
this
.
value
=
value
;
}
public
String
getDescription
()
{
return
this
.
description
;
}
public
void
setDescription
(
String
description
)
{
this
.
description
=
description
;
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/Constants.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
import
com.brilliance.mda.runtime.mda.impl.StreamImpl
;
import
org.springframework.util.ResourceUtils
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.Properties
;
public
class
Constants
{
public
static
final
String
NULLSTR
=
""
;
public
static
final
Date
NULLDATE
=
null
;
public
static
final
Date
NULLDATETIME
=
null
;
public
static
final
String
CRLF
=
"\r\n"
;
public
static
Date
EMPDATE
=
null
;
public
static
Class
<?>
Dynamic_class
;
public
static
Class
<?>
Platform_class
;
public
static
Properties
packageInfo
;
private
static
String
GLOBAL_PACK_KEY
=
"global.package"
;
static
{
packageInfo
=
new
Properties
();
try
{
packageInfo
.
load
(
ResourceUtils
.
getURL
(
"classpath:package-info.properties"
).
openStream
());
String
busipack
=
packageInfo
.
getProperty
(
GLOBAL_PACK_KEY
,
""
);
Dynamic_class
=
Class
.
forName
(
busipack
+
".Dynamic"
);
Platform_class
=
Class
.
forName
(
busipack
+
".Platform"
);
EMPDATE
=
new
SimpleDateFormat
(
"yyyyMMdd"
).
parse
(
"19900806"
);
}
catch
(
Exception
e
){
e
.
printStackTrace
(
System
.
err
);
System
.
exit
(-
1
);
}
}
public
static
final
int
NO_SUCH_FIELD
=
27
;
public
static
final
int
NO_ERROR
=
0
;
public
static
final
int
NO_MORE_ROW
=
228
;
public
static
final
int
GLOBAL_CURSOR_NOT_SET
=
249
;
public
static
final
int
NO_NAN
=
-
37
;
public
static
final
int
ARGUMENT_COUNT_ERROR
=
205
;
public
static
final
int
ERROR_SQL
=
200
;
public
static
final
int
ERROR_COLUMN
=
251
;
public
static
final
int
ERROR_LOCK
=
225
;
public
static
final
int
ERROR_LOCKED
=
226
;
public
static
final
int
DATE_DAY
=
5
;
public
static
final
int
DATE_HOUR
=
11
;
public
static
final
int
DATE_MINUTE
=
12
;
public
static
final
int
DATE_SECOND
=
13
;
public
static
final
String
TRUE
=
"X"
;
public
static
final
String
FALSE
=
""
;
public
static
final
String
CR
=
"\n"
;
public
static
final
String
TAB
=
"\t"
;
public
static
final
String
CALLER
=
""
;
public
static
final
String
FIRST
=
"_1st_"
;
public
static
final
String
LASTTAG
=
"_tag_"
;
public
static
final
OpType
EQ
=
OpType
.
EQ
;
public
static
final
OpType
NE
=
OpType
.
NE
;
public
static
final
OpType
GE
=
OpType
.
GE
;
public
static
final
OpType
LE
=
OpType
.
LE
;
public
static
final
OpType
GT
=
OpType
.
GT
;
public
static
final
OpType
LT
=
OpType
.
LT
;
public
static
final
OpType
IN
=
OpType
.
IN
;
public
static
final
OpType
LIKE
=
OpType
.
LIKE
;
public
static
final
OpType
NOTLIKE
=
OpType
.
NOTLIKE
;
public
static
final
OpType
BETWEEN
=
OpType
.
BETWEEN
;
public
static
final
OpType
OR
=
OpType
.
OR
;
public
static
final
OpType
AND
=
OpType
.
AND
;
public
static
final
OpType
NOT
=
OpType
.
NOT
;
public
static
final
OpType
ISNULL
=
OpType
.
ISNULL
;
public
static
final
OpType
ISNOTNULL
=
OpType
.
ISNOTNULL
;
public
static
final
OpType
DESC
=
OpType
.
DESC
;
public
static
final
OpType
ASC
=
OpType
.
ASC
;
public
static
final
RuleType
INIT
=
RuleType
.
INIT
;
public
static
final
RuleType
CHECK
=
RuleType
.
CHECK
;
public
static
final
RuleType
RULE
=
RuleType
.
RULE
;
public
static
final
DecodeType
DECODE_BASE64
=
DecodeType
.
DECODE_BASE64
;
public
static
final
DecodeType
DECODE_MD5
=
DecodeType
.
DECODE_MD5
;
public
static
final
DecodeType
DECODE_SHA
=
DecodeType
.
DECODE_SHA
;
public
static
final
DecodeType
DECODE_SHA256
=
DecodeType
.
DECODE_SHA256
;
public
static
final
DecodeType
DECODE_SHA384
=
DecodeType
.
DECODE_SHA384
;
public
static
final
DecodeType
DECODE_SHA512
=
DecodeType
.
DECODE_SHA512
;
public
static
final
String
SdbEtyColEntity
=
"ETYEXTKEY"
;
public
static
final
String
SdbEtyColEntityGroup
=
"ETGEXTKEY"
;
public
static
final
String
DbsTypeInformix
=
"Informix"
;
public
static
final
String
DbsTypeDB2
=
"DB2"
;
public
static
final
String
DbsTypeSqlServer
=
"SqlServer"
;
public
static
final
String
DbsTypeFirebird
=
"Firebird"
;
public
static
final
String
tdAttrKeyList
=
"KeyList"
;
public
static
final
int
maxDate
=
99991231
;
public
static
final
int
tdDataTypeNumeric
=
2
;
public
static
final
int
tdDataTypeText
=
1
;
public
static
final
int
tdDataTypeBlock
=
3
;
public
static
final
int
tdDataTypeDate
=
4
;
public
static
final
int
tdDataTypeStream
=
7
;
public
static
final
int
tdDataTypeDateTime
=
20
;
public
static
final
int
tdDataTypeControl
=
5
;
public
static
final
int
tdDataTypeNil
=
25
;
public
static
final
int
tdDataParentIsNull
=
111
;
public
static
final
int
tdDataDateOutOfBoundary
=
36
;
public
static
final
int
tdDataDateStreamLineError
=
117
;
public
static
final
int
tdViewTypeDateTime
=
30
;
public
static
final
int
tdViewTypeButton
=
6
;
public
static
final
int
tdViewTypeEdit
=
0
;
public
static
final
int
tdViewTypeTime
=
26
;
public
static
final
int
tdViewTypeLabel
=
5
;
public
static
final
int
tdStrBase36Encoding
=
173
;
public
static
final
int
tdOdbcLocked
=
227
;
public
static
final
int
tdOdbcHeld
=
247
;
public
static
final
int
tdOdbcNotFound
=
228
;
public
static
final
int
tdOdbcNotUnique
=-
229
;
public
static
final
int
tdOdbcNotSelected
=-
230
;
public
static
final
int
TdOdbcSelectGridEmpty
=-
231
;
public
static
final
int
tdCacheNotFound
=
166
;
public
static
final
int
tdOdbcDuplicateKey
=
229
;
public
static
final
int
tdOdbcRowNotLocked
=
242
;
public
static
final
int
tdOdbcNoTable
=
0
;
//getModuleInfoStream
// update by wgc 2021-07-08 from 0 to 2
public
static
int
tdModuleDatafields
=
1
;
public
static
int
tdModuleModules
=
2
;
public
static
int
tdModuleRules
=
3
;
public
static
int
tdModulePanels
=
4
;
public
static
int
tdModuleAllDatafields
=
5
;
public
static
int
tdModuleMenus
=
6
;
public
static
int
tdModuleVisiblePanels
=
7
;
public
static
int
tdModuleSearchDatafields
=
8
;
public
static
int
tdModuleAllModules
=
9
;
public
static
int
tdModuleDBIndexes
=
10
;
public
static
int
tdModuleLockFields
=
11
;
public
static
int
tdModuleAllMethods
=
12
;
public
static
int
tdModuleAllModifiedFields
=
13
;
public
static
int
tdModuleModifiedFields
=
14
;
// public static int tdModuleModules = 2;
// public static int tdModuleLockFields = 0;
// public static int tdModuleAllModules = 0;
// public static int tdModuleAllModifiedFields = 13 ;
// public static int tdModuleVisiblePanels = 7 ;
// public static int tdModuleAllMethods = 12 ;
// public static int tdModuleDatafields = 1 ;
// public static int tdModulePanels = 199 ;
//getModuleInfo
public
static
final
int
tdModuleInfoClass
=
1
;
public
static
final
int
tdModuleInfoFullName
=
2
;
public
static
final
String
tdAttrFullName
=
"0"
;
public
static
final
String
tdAttrModified
=
"MODIFIED"
;
public
static
final
String
tdStringTRUE
=
"TRUE"
;
public
static
final
String
tdAttrLines
=
"tdAttrLines"
;
public
static
final
String
tdAttrLength
=
"tdAttrLength"
;
public
static
final
String
tdAttrContent
=
"tdAttrContent"
;
public
static
final
String
tdPanelFullName
=
"tdPanelFullName"
;
public
static
final
String
tdPanelName
=
"tdPanelName"
;
public
static
final
String
tdAttrConstant
=
"tdAttrConstant"
;
public
static
final
String
tdAttrEmpty
=
"tdAttrEmpty"
;
public
static
final
String
tdAttrDatatype
=
"tdAttrDatatype"
;
public
static
final
String
tdAttrViewtype
=
"tdAttrViewtype"
;
public
static
final
String
tdAttrCalendar
=
"tdAttrCalendar"
;
public
static
final
String
tdAttrEnabled
=
"tdAttrEnabled"
;
public
static
final
String
tdAttrCodeValues
=
"tdAttrCodeValues"
;
public
static
final
String
tdAttrName
=
"tdAttrName"
;
public
static
final
String
tdAttrDecpos
=
"tdAttrDecpos"
;
public
static
final
String
tdAttrFirstValue
=
"tdAttrFirstValue"
;
public
static
final
String
tdAttrCurrency
=
"tdAttrCurrency"
;
public
static
final
String
tdAttrFieldViewtype
=
"tdAttrFieldViewtype"
;
public
static
final
String
tdAttrInfo
=
"tdAttrInfo"
;
public
static
final
String
tdContextAPPLICATIONSTATUS
=
"tdContextAPPLICATIONSTATUS"
;
public
static
final
String
tdUnit
=
"tdUnit"
;
public
static
final
String
tdUnitmm
=
"tdUnitmm"
;
public
static
final
String
tdUnitem
=
"tdUnitem"
;
public
static
final
String
tdPosCurrent
=
"R"
;
public
static
final
String
tdContextCLIENTSERVER
=
"tdContextCLIENTSERVER"
;
public
static
final
String
tdStringFALSE
=
"tdStringFALSE"
;
public
static
final
String
tdContextDBSERVICENAME
=
"tdContextDBSERVICENAME"
;
public
static
final
String
tdContextLANGUAGE
=
"tdContextLANGUAGE"
;
public
static
final
String
tdContextPOPUPTRIGGER
=
"tdContextPOPUPTRIGGER"
;
public
static
final
String
tdContextHTMLBASEURL
=
"tdContextHTMLBASEURL"
;
public
static
final
String
tdContextBATCHMODE
=
"tdContextBATCHMODE"
;
public
static
final
String
tdContextRETURNCODE
=
"tdContextRETURNCODE"
;
public
static
final
String
tdContextDSPGENMODE
=
"tdContextDSPGENMODE"
;
public
static
final
String
tdContextSERVERTYPE
=
"tdContextSERVERTYPE"
;
public
static
final
String
tdContextLASTEXECRESULT
=
"tdContextLASTEXECRESULT"
;
public
static
final
String
tdContextCOMMANDLINE
=
"tdContextCOMMANDLINE"
;
public
static
final
String
tdContextPOSTQUEUE
=
"tdContextPOSTQUEUE"
;
public
static
final
String
tdContextFILEVERSIONINFO
=
"tdContextFILEVERSIONINFO"
;
public
static
final
String
tdContextSERVERPROGVER
=
"tdContextSERVERPROGVER"
;
public
static
final
String
tdContextPROFILE
=
"tdContextPROFILE"
;
public
static
final
String
tdContextPOPUPPANEL
=
"tdContextPOPUPPANEL"
;
public
static
final
String
tdContextPAPERBINS
=
"tdContextPAPERBINS"
;
public
static
final
String
tdContextDEBUGLEVEL_PROF
=
"tdContextDEBUGLEVEL_PROF"
;
public
static
final
String
tdContextDEBUGLEVEL_COMM
=
"tdContextDEBUGLEVEL_COMM"
;
public
static
final
String
tdContextDEBUGLEVEL_SQL
=
"tdContextDEBUGLEVEL_SQL"
;
public
static
final
String
tdContextDEBUGLEVEL_RULES
=
"tdContextDEBUGLEVEL_RULES"
;
public
static
final
String
tdContextDEBUGLEVEL_USER
=
"tdContextDEBUGLEVEL_USER"
;
public
static
final
String
tdContextDEBUGLEVEL_BUILTIN
=
"tdContextDEBUGLEVEL_BUILTIN"
;
public
static
final
String
tdContextDEBUGLEVEL_BASEXEC
=
"tdContextDEBUGLEVEL_BASEXEC"
;
public
static
final
String
tdContextDEBUGLEVEL_FLOW
=
"tdContextDEBUGLEVEL_FLOW"
;
public
static
final
String
tdContextDEBUGLEVEL_SQLDATA
=
"tdContextDEBUGLEVEL_SQLDATA"
;
public
static
final
String
tdContextDEBUGLEVEL_APPLICATION
=
"tdContextDEBUGLEVEL_APPLICATION"
;
public
static
final
String
tdContextDEBUGLEVEL_INFO
=
"tdContextDEBUGLEVEL_INFO"
;
public
static
final
String
tdContextDBTransactionInfo
=
"tdContextDBTransactionInfo"
;
//public static final String tdContextTZSYSTEM = "tdContextTZSYSTEM";
public
static
final
String
tdContextTZUSER
=
"tdContextTZUSER"
;
public
static
final
String
tdContextTDVCSFILE
=
"tdContextTDVCSFILE"
;
public
static
final
String
tdContextSERVERID
=
"tdContextSERVERID"
;
public
static
final
String
tdContextDISTRIBUTIONFILE
=
"tdContextDISTRIBUTIONFILE"
;
public
static
final
String
tdContextMAXSTEPCOUNT
=
"tdContextMAXSTEPCOUNT"
;
public
static
final
String
tdContextSWIFTEMPTYLINE
=
"tdContextSWIFTEMPTYLINE"
;
public
static
final
String
tdContextSETTODAY
=
"tdContextSETTODAY"
;
public
static
final
String
tdContextSAVEDATASKIPEMPTY
=
"SAVEDATASKIPEMPTY"
;
public
static
final
String
OitDontShow
=
"OitDontShow"
;
public
static
final
String
GetLockUID
=
"GetLockUID"
;
public
static
final
String
GetLockDate
=
"GetLockDate"
;
public
static
final
double
GetLockTime
=
0
d
;
public
static
final
String
GetLockDateTime
=
"GetLockDateTime"
;
public
static
final
String
tdContextSESSIONNUMBER
=
"tdContextSESSIONNUMBER"
;
public
static
final
String
tdContextSERVERPID
=
"tdContextSERVERPID"
;
public
static
final
String
tdContextCLIENTID
=
"tdContextCLIENTID"
;
public
static
final
String
tdContextCLIENTPID
=
"tdContextCLIENTPID"
;
public
static
final
String
tdContextUSERID
=
"tdContextUSERID"
;
public
static
final
String
tdContextDBDRIVERNAME
=
"tdContextDBDRIVERNAME"
;
public
static
final
String
tdContextTRIGGER
=
"tdContextTRIGGER"
;
public
static
final
String
tdContextCALLSTACK
=
"CALLSTACK"
;
public
static
final
String
tdContextLASTUSERACTIONTIME
=
"tdContextLASTUSERACTIONTIME"
;
public
static
int
tdEventButtonPress
=
0
;
public
static
int
tdEventMouseLeave
=
1
;
public
static
int
tdEventTabLeave
=
2
;
public
static
int
tdEventHotkey
=
3
;
public
static
int
tdEventSelChange
=
4
;
public
static
int
tdEventGridSel
=
5
;
public
static
int
tdEventDragDrop
=
6
;
public
static
int
tdEventDragPrepare
=
7
;
public
static
int
tdEventGridDelete
=
8
;
public
static
int
tdEventGridInsert
=
9
;
public
static
int
tdEventFieldUpdate
=
10
;
public
static
int
tdEventPosted
=
11
;
public
static
int
tdEventPanelClose
=
12
;
public
static
int
tdEventPanelCreate
=
13
;
public
static
final
String
tdPnlXML
=
"tdPnlXML"
;
//public static String tdContextTZSYSTEM = "tdContextTZSYSTEM";
public
static
String
tdContextTZSYSTEM
=
"TZSYSTEM"
;
public
static
String
tdContextAUTHUSERINFO
=
"TZSYSTEM"
;
public
static
String
tdContextEXENAME
=
"EXENAME"
;
public
static
final
int
tdPromptOK
=
1
;
//1
public
static
final
int
tdPromptCancel
=
2
;
//2
public
static
final
int
tdPromptYes
=
1
;
//1
public
static
final
int
tdPromptNo
=
0
;
//0
public
static
boolean
IsDesigner
=
true
;
public
static
boolean
IsAdministrator
=
false
;
public
static
final
String
tdAttrSelectedIdx
=
"tdAttrSelectedIdx"
;
public
static
final
String
tdAttrSelected
=
"tdAttrSelected"
;
public
static
final
String
tdAttrChecked
=
"tdAttrChecked"
;
public
static
final
String
tdAttrCheckSwift
=
"tdAttrCheckSwift"
;
public
static
final
String
tdAttrExpandedIdx
=
"tdAttrExpandedIdx"
;
public
static
final
String
tdAttrCodetable
=
"tdAttrCodetable"
;
public
static
final
int
tdViewTypeCombobox
=
2
;
public
static
final
int
tdViewTypeDate
=
7
;
public
static
final
int
tdViewTypeAmount
=
8
;
public
static
final
int
tdViewTypeCheckbox
=
3
;
public
static
final
int
tdViewTypeFormatted
=
20
;
public
static
final
int
SRVTRNNoLock
=
0
;
public
static
final
int
SRVTRNLockOnly
=
1
;
public
static
final
int
SRVTRNUpdate
=
2
;
public
static
final
String
NtfTypWarning
=
"5"
;
public
static
final
String
PanStaEdit
=
"E"
;
public
static
final
String
PanStaInquiry
=
"I"
;
public
static
final
String
PanStaDelete
=
"D"
;
public
static
final
String
PanStaAdd
=
"A"
;
public
static
final
String
PanStaHide
=
"H"
;
public
static
final
String
PanStaShow
=
"S"
;
public
static
final
String
PanStaLog
=
"L"
;
public
static
final
String
SYSWRNTypeFinal
=
"F"
;
public
static
final
String
SYSWRNTypeWarning
=
"W"
;
public
static
final
String
SYSWRNTypeInfo
=
"I"
;
public
static
final
String
SYSWRNTypeStartup
=
"S"
;
public
static
final
String
SYSWRNTypeStartupInfo
=
"C"
;
//public static int tdPromptNo=0;
//public static int tdPromptOK=1;
public
static
final
String
SptWaitForIncoming
=
"INC"
;
public
static
final
String
SptWaitForAutoExec
=
"AUT"
;
public
static
final
String
SptWaitForRecalculation
=
"EXE"
;
public
static
final
String
SptAfterSentToRepair
=
"COR"
;
public
static
final
String
SptAfterRejection
=
"REJ"
;
public
static
final
String
SptAfterBreak
=
"PEN"
;
public
static
final
String
SptWaitForProcessing
=
"PUP"
;
public
static
final
String
ClientTypeHtml
=
"ClientTypeHtml"
;
public
static
final
String
ClientTypeAjax
=
"ClientTypeAjax"
;
public
static
final
String
TrnmodCancelExitWithPrompt
=
"TrnmodCancelExitWithPrompt"
;
public
static
final
String
LogmodInfo
=
"LogmodInfo"
;
public
static
final
String
LogmodWarning
=
"LogmodWarning"
;
public
static
final
String
LogmodError
=
"LogmodError"
;
public
static
final
String
Quote
=
"\""
;
public
static
final
String
NtfTypError
=
"NtfTypError"
;
public
static
final
String
tdContextDBOpenCursors
=
"tdContextDBOpenCursors"
;
public
static
final
String
tdContextSQLCURSOR
=
"tdContextSQLCURSOR"
;
public
static
final
String
SptWaitForRelease
=
"SptWaitForRelease"
;
public
static
final
String
AppIniFile
=
"AppIniFile"
;
public
static
final
String
tdPaperbin1
=
"tdPaperbin1"
;
public
static
final
String
tdPaperbin2
=
"tdPaperbin2"
;
public
static
final
String
TrnmodCancelExitWithoutPrompt
=
"TrnmodCancelExitWithoutPrompt"
;
public
static
final
String
LscRejected
=
"LscRejected"
;
public
static
final
String
LscPending
=
"LscPending"
;
public
static
final
String
LscAccepted
=
"LscAccepted"
;
public
static
final
String
tdPageFirst
=
"tdPageFirst"
;
public
static
final
String
tdPage
=
"tdPage"
;
public
static
final
String
tdContextCLIENTPROGVER
=
"v505"
;
public
static
final
String
ClientTypeFat
=
"F"
;
public
static
final
String
ClientTypeWin32
=
"W"
;
public
static
final
String
ClientTypeJava
=
"J"
;
public
static
final
String
SptWaitingIncoming
=
"INC"
;
public
static
final
String
SptWaitingRegistration
=
"SptWaitingRegistration"
;
public
static
final
String
SptWaitForManExec
=
"SptWaitForManExec"
;
public
static
final
String
tdContextSTARTTRANSACTION
=
"tdContextSTARTTRANSACTION"
;
public
static
final
String
DiaToWrite
=
"DiaToWrite"
;
public
static
final
String
DiaToReplace
=
"DiaToReplace"
;
public
static
final
String
UilSwift
=
"UilSwift"
;
public
static
final
boolean
SptIsexeLoaded
=
false
;
// public static final AttrGetter tdAttrCheckedIdx = new AttrGetter.DefaultAttrGetter();
public
static
final
String
tdAttrCheckedIdx
=
"tdAttrCheckedIdx"
;
public
static
IStream
DDRSTREAM
=
new
StreamImpl
();
public
static
String
DbsTypeAccess
=
"DbsTypeAccess"
;
public
static
final
String
FF
=
"\r\n<FF/>\r\n"
;
public
static
final
String
tdPosAbsolute
=
"tdPosAbsolute"
;
public
static
final
String
tdPosition
=
"tdPosition"
;
public
static
final
String
tdAttrVisible
=
"tdAttrVisible"
;
public
static
final
String
OitStopPayment
=
"2"
;
public
static
final
String
tdContextFORM
=
"tdContextFORM"
;
public
static
final
String
tdPnlFrame
=
"tdPnlFrame"
;
public
static
final
String
tdPnlDoc
=
"tdPnlDoc"
;
public
static
final
String
ATTR_CODE_VALUES
=
"ATTR_CODE_VALUES"
;
/** MX 转 MT 后 XML文件存放的文件夹名 */
public
static
final
String
MX_BAK_DIR
=
"MX"
;
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/DecodeType.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
public
enum
DecodeType
{
DECODE_BASE64
,
DECODE_MD5
,
DECODE_SHA
,
DECODE_SHA256
,
DECODE_SHA384
,
DECODE_SHA512
;
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/DirType.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
public
enum
DirType
{
IN
,
OUT
,
BOTH
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/EmptyVO.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
/**
* 标记无VO
* @author fukai
*
*/
public
class
EmptyVO
{
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/FieldHolder.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
import
com.fasterxml.jackson.annotation.JsonIgnoreType
;
@JsonIgnoreType
public
interface
FieldHolder
<
T
>
{
void
setValue
(
T
t
);
T
getValue
();
String
getPath
();
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/I18n.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
import
java.util.Locale
;
public
interface
I18n
{
public
static
final
String
I18N_IDENT
=
"/"
;
String
getString
(
Locale
paramLocale
,
String
paramString1
,
String
paramString2
,
int
paramInt
);
String
getString
(
Locale
paramLocale
,
String
paramString1
,
String
paramString2
);
String
getString
(
Locale
paramLocale
,
String
paramString
,
int
paramInt
);
String
getString
(
Locale
paramLocale
,
String
paramString
);
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/IAuthInfo.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
public
interface
IAuthInfo
{
//获取当前用户登录ID
String
getUserId
();
IStream
getSysStream
();
IStream
getDdsStream
();
IStream
getKeepAuthInfo
();
void
recoveryAuthInfo
();
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/IBaseObject.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
import
java.io.Serializable
;
public
interface
IBaseObject
extends
Serializable
{
String
getName
();
IModule
getParent
();
String
getPath
();
void
clear
();
String
separator
=
"\\"
;
default
String
getDescription
(){
return
""
;
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/IContext.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
import
com.brilliance.mda.runtime.mda.impl.EnvConfig
;
import
java.io.Serializable
;
import
java.util.Locale
;
import
java.util.Map
;
public
interface
IContext
extends
Serializable
{
int
ErrorHandled
=
0
,
ErrorUnHandled
=
1
;
String
DISPLAY_KEY
=
"DISPLAY_KEY"
;
String
getTransName
();
Map
<
String
,
Object
>
getModified
();
Map
<
String
,
String
>
getFieldErrors
();
String
getMessage
();
String
getErrorNo
();
void
setModified
(
String
path
,
Object
value
);
//Platform.setModified()
void
setFieldError
(
IModule
m
,
String
path
,
String
errMsg
);
//Platform.error()
void
setFieldError
(
IModule
m
,
String
path
,
String
format
,
Object
...
obj
);
//Platform.error()
void
setFieldError
(
IBaseObject
baseobj
,
String
errMsg
);
//Platform.error()
void
setFieldError
(
IBaseObject
baseobj
,
String
format
,
Object
...
obj
);
//Platform.error()
void
setMessage
(
String
errorNo
,
String
message
);
//Platform.message()
IModule
getRoot
();
boolean
checkAll
(
IModule
module
);
boolean
postRule
(
RuleType
ruleType
,
String
target
);
boolean
postInit
();
boolean
postRule
(
IModule
m
,
String
target
);
boolean
postRule
(
IModule
m
,
String
target
,
boolean
isInModuleList
);
boolean
postRule
(
IBaseObject
baseObject
);
boolean
postCheck
(
String
target
);
Map
<
String
,
CodeEntity
>
getValuesSet
();
void
visitValues
();
Map
<
String
,
Object
>
getRetMap
();
IDaoSession
getDaoSession
()
;
Pagination
getPagination
(
String
path
);
void
storeCacheData
(
String
key
,
Object
data
);
void
deleteCacheData
(
String
key
);
void
clearCacheData
();
Object
restoreCacheData
(
String
key
);
EnvConfig
getEnvConfig
();
boolean
saveDisplay
(
String
fileName
);
int
getErrorCode
();
void
setErrorCode
(
int
errorCode
);
void
setErrorCode
(
int
errorCode
,
String
message
);
void
setErrorMessage
(
String
errorMessage
);
void
setErrorMessage
(
String
format
,
Object
...
values
);
void
setMessage
(
String
format
,
Object
...
values
);
String
getErrorMessage
();
ILocker
getLocker
();
Locale
getLocale
();
void
setLocale
(
Locale
locale
);
void
setEmitter
(
IRuleEmitter
emitter
);
IRuleEmitter
getEmitter
();
void
logout
();
<
T
>
T
getVo
();
void
setVo
(
Object
vo
);
<
T
>
void
setAttribute
(
Object
parent
,
String
prop
,
String
ATTR
,
T
val
);
<
T
>
T
getAttribute
(
Object
parent
,
String
prop
,
String
ATTR
);
void
mallocPrintBuffer
();
String
releasePrintBuffer
();
StringBuilder
getCurPrintBuffer
();
PrintSegment
getCurPrintSegment
();
void
pushEventPath
(
String
path
);
String
getEventPath
();
void
popEventPath
();
void
setError
(
IDatafield
t
);
void
setError
(
String
str
);
void
reraise
();
int
getErrorState
();
void
resetErrorState
();
void
clearEntireError
();
void
setConcurrentCallStack
(
String
path
);
String
getConcurrentCallStack
();
<
T
>
T
absGet
(
Class
<
T
>
clazz
);
<
T
>
T
absGet
(
Class
<
T
>
clazz
,
String
instName
);
Object
restoreData
(
String
key
);
void
storeData
(
String
key
,
Object
data
);
void
deleteData
(
String
key
);
void
clearData
();
<
T
>
T
getParam
(
String
key
);
<
T
>
void
setParam
(
String
key
,
T
t
);
void
resetParams
(
Map
<
String
,
Object
>
params
);
int
assignSerialNo
();
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/IControl.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
import
com.fasterxml.jackson.annotation.JsonIgnoreType
;
@JsonIgnoreType
public
interface
IControl
extends
IBaseObject
{
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/IDaoSession.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
import
com.brilliance.mda.runtime.mda.impl.Argument
;
import
java.util.Date
;
public
interface
IDaoSession
{
void
dbBegin
();
void
dbCommit
();
void
dbRollback
();
void
putDao
(
Class
<?>
key
,
Object
dao
);
int
dbCounter
(
String
seqname
);
int
dbInsert
(
IModule
modull
);
int
dbUpdate
(
IModule
module
,
Object
v1
,
String
whereCol1
);
int
dbUpdate
(
IModule
module
,
Object
v1
,
String
whereCol1
,
Object
v2
,
String
whereCol2
);
int
dbDelete
(
IModule
module
);
int
dbDelete
(
IModule
module
,
Object
val
,
String
col
);
int
dbDelete
(
IModule
module
,
Object
val
,
String
col
,
Object
val2
,
String
col2
);
int
dbDelete
(
IModule
module
,
Argument
<?
extends
Object
>...
args
);
<
T
extends
IModule
>
T
dbRead
(
T
module
,
Object
...
args
);
<
T
extends
IModule
>
T
dbReadNoData
(
T
module
,
Object
...
args
);
<
T
extends
IModule
>
T
dbReadByArguments
(
T
module
,
Argument
<?
extends
Object
>...
args
);
<
T
extends
IModule
>
T
dbReadHold
(
T
module
,
Object
...
args
);
<
T
extends
IModule
>
int
dbReadSet
(
IModuleList
<
T
>
list
,
Object
...
args
);
<
T
extends
IModule
>
int
dbReadSetByArguments
(
IModuleList
<
T
>
list
,
Argument
<?
extends
Object
>...
args
);
void
dbExecuteSQL
(
IStream
stm
);
void
dbExecuteSQL
(
IStream
sql
,
IStream
retstream
);
void
dbExecuteSQL
(
String
sql
,
Object
...
params
);
void
dbFetch
(
IModule
module
);
void
dbFetchStream
(
IStream
args
);
void
dbFetchFields
(
Object
...
args
);
void
dbFetchFields
(
Argument
<?
extends
Object
>...
arguments
);
void
dbCloseCursor
();
String
dbSqlDate
(
Date
endDat
);
//TODO 待实现
void
dbFreeAll
();
void
setWaitCursor
();
void
dbHold
(
IModule
module
);
void
dbFree
(
IModule
module
);
void
dbSelect
(
IModule
module
,
String
string
,
String
sql
,
Object
...
val
);
void
DBOpen
(
IModule
module
);
void
dbSelectCursor
(
IModule
module
,
String
whereSql
,
Object
...
params
);
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/IDataGrid.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
import
java.io.File
;
import
java.io.IOException
;
import
java.util.List
;
public
interface
IDataGrid
{
String
getLine
(
int
idx
);
String
deleteLine
(
int
idx
);
void
sortLines
();
int
countLines
();
int
searchLine
(
String
line
);
void
setRows
(
List
<
String
>
list
);
List
<
String
>
getRows
();
void
insertLine
(
int
idx
,
String
line
);
void
setLine
(
int
idx
,
String
line
);
void
clearLines
();
void
addLine
(
String
line
);
void
saveLines
(
File
file
)
throws
IOException
;
void
loadLines
(
File
file
)
throws
IOException
;
boolean
isLinesChanged
();
<
T
>
void
setAttribute
(
String
attr
,
T
t
);
<
T
>
T
getAttribute
(
String
attr
);
String
defaultColDelimiter
=
"\t"
;
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/IDatafield.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
public
interface
IDatafield
<
T
>
extends
IBaseObject
{
T
getValue
();
void
setValue
(
T
value
);
Class
<
T
>
getDataType
();
void
setAttribute
(
Object
k
,
Object
v
);
Object
getAttribute
(
Object
k
);
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/IDisplay.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
/**
* 快照保存接口,保存的东西,可以使文件路径/或者是文件保存key。具体实现由实施情况决定。
* 可以使保存至数据库/保存至NOSQL数据库/保存至文件存储器
* @author fukai
*
*/
public
interface
IDisplay
{
boolean
saveDisplay
(
String
filePathOrKey
,
String
data
);
String
readDisplay
(
String
filePathOrKey
);
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/ILocker.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
import
java.io.Serializable
;
public
interface
ILocker
{
boolean
lock
(
Serializable
key
);
boolean
lock
(
Serializable
key
,
int
expireflg
);
boolean
lock
(
Serializable
key
,
long
timeout
);
LockInfo
lock
(
String
userName
,
Serializable
key
);
boolean
unlock
(
Serializable
key
);
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/ILoginContext.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
/**
* TODO 认证实现类,实现登录签发Token,认证Token
* @author fukai
*
*/
public
interface
ILoginContext
{
Object
login
(
String
id
,
String
pwd
);
Object
auth
(
String
token
);
Object
logout
(
String
token
);
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/IModule.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.Map
;
public
interface
IModule
extends
IBaseObject
{
default
boolean
isEntity
()
{
return
false
;};
String
getSerialNum
();
void
assignSerialNum
();
void
copyValue
(
IModule
src
);
void
copyValues
(
IModule
src
);
Map
<
String
,
Object
>
getAttrMaps
();
default
String
getFieldPath
(
String
fieldName
)
{
return
null
;};
/**
* 废弃的方法,不要再使用了
* @return
*/
@Deprecated
default
Collection
<
IDatafield
>
getDatafields
(){
return
null
;};
/**
* 基于反射实现的,尽量不要用了
* @return
*/
@Deprecated
default
List
<
IModule
>
getModules
(){
return
null
;};
default
String
getTableName
()
{
return
null
;
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/IModuleList.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
import
java.util.List
;
public
interface
IModuleList
<
T
extends
IModule
>
extends
IModule
,
List
<
T
>
{
int
getFullDbSize
();
int
fullSize
();
Class
<
T
>
getDataClass
();
void
removeAll
();
@Override
default
String
getSerialNum
()
{
return
null
;
}
@Override
default
void
assignSerialNum
()
{};
/**
* 废弃的方法,不建议使用
* @param args IDatafield Argument 两项参数
*/
@Deprecated
T
add
(
Object
...
args
);
void
addElement
(
T
em
);
void
addElement
(
int
index
,
T
em
);
default
void
copyValues
(
IModule
src
){
}
default
void
copyValue
(
IModule
src
)
{
copyValues
(
src
);
}
boolean
executeInit
();
boolean
executeInit
(
int
idx
);
void
executeDefault
(
String
...
paths
);
void
executeDefault
(
int
idx
,
String
...
paths
);
void
executeCheckAll
();
}
\ No newline at end of file
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/IPanel.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
import
com.fasterxml.jackson.annotation.JsonIgnoreType
;
@JsonIgnoreType
public
interface
IPanel
extends
IBaseObject
{
String
getLanguage
();
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/IRuleEmitter.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
import
java.util.List
;
import
java.util.Map
;
public
interface
IRuleEmitter
{
String
EMITTER_PRE
=
"emitter2."
;
boolean
executeInit
();
boolean
executeInit
(
int
order
);
boolean
executeRule
(
String
target
);
boolean
executeCheck
(
String
target
);
boolean
executeRule
(
String
target
,
int
order
);
boolean
executeCheck
(
String
target
,
int
order
);
boolean
executeCheckAll
();
boolean
executeDefault
(
String
target
);
boolean
executeDefault
(
String
target
,
int
order
);
boolean
executeDefaultAfterInit
();
boolean
executeDefaultAll
();
// boolean executeDefaultAfterRule(String target);
Map
<
String
,
Object
>
getDefaultRuleQue
();
IModule
getRoot
();
String
getModuleName
();
Class
<?>
relatedTransaction
();
String
getRealPath
(
String
path
);
List
<
IModuleList
>
getAllModuleList
();
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/ISqlTemplate.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
import
java.util.List
;
import
java.util.Map
;
public
interface
ISqlTemplate
{
<
T
>
List
<
T
>
dbQuery
(
String
statement
,
Map
<
String
,
Object
>
params
);
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/IStream.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
import
com.brilliance.mda.support.jakson.serialize.IStreamDeSerialized
;
import
com.fasterxml.jackson.databind.annotation.JsonDeserialize
;
import
java.io.InputStream
;
import
java.io.OutputStream
;
import
java.io.Serializable
;
@JsonDeserialize
(
using
=
IStreamDeSerialized
.
class
)
public
interface
IStream
extends
IDataGrid
,
Serializable
{
InputStream
getInputStream
();
OutputStream
getOutputStream
();
void
close
();
boolean
isEmpty
();
void
setType
(
String
type
);
String
getType
();
void
setName
(
String
name
);
String
getName
();
String
setValue
(
String
value
);
String
getValue
();
boolean
isKeepsort
();
void
setKeepsort
(
boolean
keepsort
);
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/LockInfo.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
public
class
LockInfo
{
public
Date
date
;
public
String
name
;
public
LockInfo
(
Date
date
,
String
name
)
{
this
.
date
=
date
;
this
.
name
=
name
;
}
public
String
toString
()
{
return
String
.
format
(
"Lock by %s at %s"
,
new
Object
[]
{
this
.
name
,
new
SimpleDateFormat
(
"yyyy/MM/dd HH:mm:ss"
).
format
(
this
.
date
)
});
}
}
\ No newline at end of file
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/ModuleHolder.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
import
com.fasterxml.jackson.annotation.JsonIgnoreType
;
@JsonIgnoreType
@FunctionalInterface
public
interface
ModuleHolder
<
T
>
{
T
get
();
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/ModuleInfoGetter.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
public
interface
ModuleInfoGetter
{
String
get
(
IModule
module
);
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/OpType.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
public
enum
OpType
{
EQ
,
NE
,
GE
,
LE
,
GT
,
LT
,
IN
,
LIKE
,
NOTLIKE
,
BETWEEN
,
OR
,
AND
,
NOT
,
ISNULL
,
ISNOTNULL
,
ASC
,
DESC
;
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/Pagination.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
public
class
Pagination
{
public
String
dir
;
//排序方向
public
String
sortField
;
//排序字段
public
int
pageno
;
//从0开始计算
public
int
total
;
//总数量
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/PrintSegment.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
public
class
PrintSegment
{
private
StringBuilder
buffer
;
private
String
segname
;
public
PrintSegment
()
{
buffer
=
new
StringBuilder
();
}
public
StringBuilder
getBuffer
()
{
return
buffer
;
}
public
void
setBuffer
(
StringBuilder
buffer
)
{
this
.
buffer
=
buffer
;
}
public
String
getSegname
()
{
return
segname
;
}
public
void
setSegname
(
String
segname
)
{
this
.
segname
=
segname
;
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/RuleExecuteException.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
public
class
RuleExecuteException
extends
RuntimeException
{
public
RuleExecuteException
(
String
message
,
Throwable
e
)
{
super
(
message
,
e
);
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/RuleExitException.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
public
class
RuleExitException
extends
RuntimeException
{
public
RuleExitException
(
String
message
)
{
super
(
message
);
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/RulePromptException.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
/**
* 设置为弹出处理的异常
*/
public
class
RulePromptException
extends
RuntimeException
{
public
RulePromptException
(
String
message
)
{
super
(
message
);
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/RuleType.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
public
enum
RuleType
{
RULE
(
"RULE"
),
INIT
(
"INIT"
),
CHECK
(
"CHECK"
);
private
String
type
;
private
RuleType
(
String
type
){
this
.
type
=
type
;
}
public
String
toString
(){
return
this
.
type
;
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/RuleWarnException.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
public
class
RuleWarnException
extends
RuntimeException
{
public
RuleWarnException
(
String
message
)
{
super
(
message
);
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/Ruleable.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
;
@FunctionalInterface
public
interface
Ruleable
<
T
>
{
T
exec
();
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/config/Bundle.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
.
config
;
import
java.util.Properties
;
public
class
Bundle
extends
Properties
{
private
static
Bundle
bundle
=
new
Bundle
();
public
static
Bundle
get
()
{
return
bundle
;
}
private
static
final
long
serialVersionUID
=
1L
;
public
boolean
getBoolean
(
String
key
)
{
return
getBoolean
(
key
,
false
);
}
public
boolean
getBoolean
(
String
key
,
boolean
defaultValue
)
{
String
temp
=
getProperty
(
key
);
if
(
temp
==
null
||
temp
.
length
()
==
0
)
{
return
defaultValue
;
}
return
Boolean
.
parseBoolean
(
temp
);
}
public
double
getDouble
(
String
key
)
{
return
getDouble
(
key
,
0
);
}
public
double
getDouble
(
String
key
,
double
defaultValue
)
{
String
temp
=
getProperty
(
key
);
if
(
temp
==
null
||
temp
.
length
()
==
0
)
{
return
defaultValue
;
}
return
Double
.
parseDouble
(
temp
);
}
public
int
getInteger
(
String
key
)
{
return
getInteger
(
key
,
0
);
}
public
int
getInteger
(
String
key
,
int
defaultValue
)
{
String
temp
=
getProperty
(
key
);
if
(
temp
==
null
||
temp
.
length
()
==
0
)
{
return
defaultValue
;
}
return
Integer
.
parseInt
(
temp
);
}
public
long
getLong
(
String
key
)
{
return
getLong
(
key
,
0
);
}
public
long
getLong
(
String
key
,
long
defaultValue
)
{
String
temp
=
getProperty
(
key
);
if
(
temp
==
null
||
temp
.
length
()
==
0
)
{
return
defaultValue
;
}
return
Long
.
parseLong
(
temp
);
}
private
void
addLine
(
String
line
)
{
if
(
line
==
null
||
line
.
length
()
==
0
)
{
return
;
}
int
index
=
line
.
indexOf
(
"="
);
if
(
index
==
-
1
)
{
return
;
}
String
key
=
line
.
substring
(
0
,
index
);
String
value
=
line
.
substring
(
index
+
1
);
key
=
trim
(
key
);
value
=
trim
(
value
);
put
(
key
,
value
);
}
public
Properties
loadString
(
String
content
)
{
if
(
content
==
null
||
content
.
length
()
==
0
)
{
return
this
;
}
String
[]
lines
=
content
.
split
(
"\n"
);
for
(
String
line
:
lines
)
{
addLine
(
line
);
}
return
this
;
}
private
String
trim
(
String
value
)
{
return
value
.
trim
().
replace
(
"\r"
,
""
).
replace
(
"\t"
,
""
);
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/config/IniConfig.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
.
config
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.util.StringUtils
;
import
java.io.*
;
import
java.util.HashMap
;
import
java.util.Map
;
public
class
IniConfig
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
IniConfig
.
class
);
private
static
Map
<
String
,
IniConfig
>
iniConfigMap
=
new
HashMap
<>();
public
static
String
getIniConfig
(
String
iniName
,
String
block
,
String
key
){
//返回默认币种
if
(
key
!=
null
&&
(
key
.
equalsIgnoreCase
(
"SysCurrency"
)
||
key
.
equalsIgnoreCase
(
"RateBaseCurrency"
)
||
key
.
equalsIgnoreCase
(
"CURRENCY"
))){
return
"EUR"
;
}
//后续需要添加在trade.ini中
if
(
iniConfigMap
.
containsKey
(
iniName
.
toUpperCase
()))
return
iniConfigMap
.
get
(
iniName
.
toUpperCase
()).
get
(
block
.
toUpperCase
(),
key
.
toUpperCase
());
return
""
;
}
private
Map
<
String
,
Map
<
String
,
String
>>
data
=
new
HashMap
<>();
public
String
get
(
String
block
,
String
key
){
if
(
data
.
containsKey
(
block
))
return
data
.
get
(
block
).
get
(
key
);
return
null
;
}
public
void
set
(
String
block
,
String
key
,
String
value
){
if
(!
data
.
containsKey
(
block
))
data
.
put
(
block
,
new
HashMap
<>());
data
.
get
(
block
).
put
(
key
,
value
);
}
public
static
void
loadIni
(
File
file
){
IniConfig
config
=
new
IniConfig
();
try
(
BufferedReader
br
=
new
BufferedReader
(
new
InputStreamReader
(
new
FileInputStream
(
file
),
"gb2312"
)))
{
String
str
=
""
,
block
=
""
;
while
((
str
=
br
.
readLine
())
!=
null
){
if
(
StringUtils
.
isEmpty
(
str
))
continue
;
if
(
str
.
indexOf
(
'['
)==
0
){
if
(
str
.
indexOf
(
']'
)
<
0
){
block
=
str
.
substring
(
1
);
}
else
{
block
=
str
.
substring
(
1
,
str
.
indexOf
(
']'
));
}
block
=
block
.
toUpperCase
();
}
else
if
(
str
.
indexOf
(
'='
)>-
1
){
if
(
str
.
indexOf
(
';'
)
==
0
){
continue
;
}
if
(
str
.
indexOf
(
';'
)
>
0
){
str
=
str
.
substring
(
0
,
str
.
indexOf
(
';'
));
}
String
[]
ary
=
str
.
trim
().
split
(
"="
);
String
val
=
""
;
if
(
ary
.
length
>=
2
){
val
=
ary
[
1
];
}
config
.
set
(
block
,
ary
[
0
].
trim
().
toUpperCase
(),
val
);
}
}
}
catch
(
Exception
e
)
{
logger
.
error
(
String
.
format
(
"解析INI配置[%s]错误!"
,
file
.
getAbsolutePath
()));
System
.
exit
(-
1
);
}
iniConfigMap
.
put
(
file
.
getName
().
toUpperCase
(),
config
);
}
public
static
Map
<
String
,
IniConfig
>
getIniConfigMap
()
{
return
iniConfigMap
;
}
public
Map
<
String
,
Map
<
String
,
String
>>
getData
()
{
return
data
;
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/driver/MdaScanner.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
.
driver
;
import
java.io.IOException
;
import
java.lang.annotation.Annotation
;
import
java.util.HashSet
;
import
java.util.LinkedHashSet
;
import
java.util.Map
;
import
java.util.Set
;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeansException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.config.ConfigurableListableBeanFactory
;
import
org.springframework.beans.factory.support.BeanDefinitionRegistry
;
import
org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor
;
import
org.springframework.context.ResourceLoaderAware
;
import
org.springframework.core.io.Resource
;
import
org.springframework.core.io.ResourceLoader
;
import
org.springframework.core.io.support.ResourcePatternResolver
;
import
org.springframework.core.io.support.ResourcePatternUtils
;
import
org.springframework.core.type.classreading.CachingMetadataReaderFactory
;
import
org.springframework.core.type.classreading.MetadataReader
;
import
org.springframework.core.type.classreading.MetadataReaderFactory
;
import
org.springframework.stereotype.Component
;
/**
* 扫描包路径的交易类
* @author fukai
*
*/
@Component
@Data
@Slf4j
public
class
MdaScanner
implements
ResourceLoaderAware
,
BeanDefinitionRegistryPostProcessor
{
private
ResourceLoader
resourceLoader
;
private
BeanDefinitionRegistry
beanDefinitionRegistry
;
@Override
public
void
setResourceLoader
(
ResourceLoader
resourceLoader
)
{
this
.
resourceLoader
=
resourceLoader
;
}
@Override
public
void
postProcessBeanDefinitionRegistry
(
BeanDefinitionRegistry
beanDefinitionRegistry
)
throws
BeansException
{
this
.
beanDefinitionRegistry
=
beanDefinitionRegistry
;
}
/**
*
* @param packagePath 类路径,以"/"斜线分隔
* @return 该包下的添加了该注解的类
* @throws IOException
* @throws ClassNotFoundException
*/
public
Set
<
Class
<?>>
doScan
(
String
packagePath
,
Class
<?
extends
Annotation
>
anoclazz
)
throws
IOException
,
ClassNotFoundException
{
HashSet
<
Class
<?>>
set
=
new
HashSet
<
Class
<?>>();
ResourcePatternResolver
resolver
=
ResourcePatternUtils
.
getResourcePatternResolver
(
resourceLoader
);
MetadataReaderFactory
metaReader
=
new
CachingMetadataReaderFactory
(
resourceLoader
);
String
path
=
"classpath*:"
+
packagePath
+
"/**/*.class"
;
log
.
info
(
"MdaScanner doScan:{}"
,
path
);
Resource
[]
resources
=
resolver
.
getResources
(
path
);
for
(
Resource
r
:
resources
)
{
if
(!
r
.
isReadable
())
continue
;
MetadataReader
reader
=
metaReader
.
getMetadataReader
(
r
);
if
(!
reader
.
getClassMetadata
().
isConcrete
())
// 当类型不是抽象类或接口在添加到集合
continue
;
String
className
=
reader
.
getClassMetadata
().
getClassName
();
Class
<?>
clazz
=
Class
.
forName
(
className
);
if
(
clazz
.
isAnnotationPresent
(
anoclazz
))
{
set
.
add
(
clazz
);
}
}
return
set
;
}
public
Map
<
Class
<?>,
Set
<
Class
<?>>>
doScan
(
Map
<
Class
<?>,
Set
<
Class
<?>>>
map
,
String
packagePath
,
Class
<?
extends
Annotation
>...
annotationClasses
)
throws
IOException
,
ClassNotFoundException
{
ResourcePatternResolver
resolver
=
ResourcePatternUtils
.
getResourcePatternResolver
(
resourceLoader
);
MetadataReaderFactory
metaReader
=
new
CachingMetadataReaderFactory
(
resourceLoader
);
String
path
=
"classpath*:"
+
packagePath
+
"/**/*.class"
;
log
.
info
(
"MdaScanner doScan:{}"
,
path
);
Resource
[]
resources
=
resolver
.
getResources
(
path
);
for
(
Resource
r
:
resources
)
{
if
(!
r
.
isReadable
())
continue
;
MetadataReader
reader
=
metaReader
.
getMetadataReader
(
r
);
if
(!
reader
.
getClassMetadata
().
isConcrete
())
// 当类型不是抽象类或接口在添加到集合
continue
;
String
className
=
reader
.
getClassMetadata
().
getClassName
();
Class
<?>
clazz
=
Class
.
forName
(
className
);
for
(
Class
<?
extends
Annotation
>
annotationClass
:
annotationClasses
)
{
if
(
clazz
.
isAnnotationPresent
(
annotationClass
))
{
Set
<
Class
<?>>
set
=
map
.
computeIfAbsent
(
annotationClass
,
k
->
new
LinkedHashSet
<>());
set
.
add
(
Class
.
forName
(
className
));
}
}
}
return
map
;
}
@Override
public
void
postProcessBeanFactory
(
ConfigurableListableBeanFactory
configurableListableBeanFactory
)
throws
BeansException
{
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/driver/NamesMapper.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
.
driver
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
*
* @author fukai
* 扫描vo类、配置目录,实现VO长短类名检测
*/
public
class
NamesMapper
{
private
static
Map
<
String
,
Alias
>
trnAlias
=
new
HashMap
<
String
,
Alias
>();
public
static
Alias
genTransAlias
(
String
trnName
)
{
Alias
alias
=
trnAlias
.
get
(
trnName
);
if
(
alias
==
null
)
{
alias
=
new
Alias
(
trnName
);
trnAlias
.
put
(
trnName
,
alias
);
}
return
alias
;
}
public
static
Alias
getAlias
(
String
trnName
){
return
trnAlias
.
get
(
trnName
);
}
public
static
class
Alias
{
private
Map
<
String
,
String
>
pathAliasMap
=
new
HashMap
<
String
,
String
>();
private
Map
<
String
,
String
>
revertMap
=
new
HashMap
<
String
,
String
>();
private
String
trnName
;
public
Alias
(
String
trnName
)
{
this
.
trnName
=
trnName
;
}
public
Map
<
String
,
String
>
getPathAliasMap
()
{
return
pathAliasMap
;
}
public
void
setPathAliasMap
(
Map
<
String
,
String
>
pathAliasMap
)
{
this
.
pathAliasMap
=
pathAliasMap
;
}
public
Map
<
String
,
String
>
getRevertMap
()
{
return
revertMap
;
}
public
void
setRevertMap
(
Map
<
String
,
String
>
revertMap
)
{
this
.
revertMap
=
revertMap
;
}
public
String
getRelPath
(
String
alias
)
{
return
this
.
pathAliasMap
.
get
(
alias
);
}
public
String
getPathAlias
(
String
path
)
{
return
revertMap
.
get
(
path
);
}
public
String
getTrnName
()
{
return
trnName
;
}
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/driver/StatusInfoConfig.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
.
driver
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
lombok.Data
;
import
org.springframework.core.io.Resource
;
import
org.springframework.core.io.support.PathMatchingResourcePatternResolver
;
import
org.springframework.core.io.support.ResourcePatternResolver
;
import
java.io.InputStream
;
import
java.util.*
;
@Data
public
class
StatusInfoConfig
{
private
static
StatusInfoConfig
config
=
null
;
public
static
Map
<
String
,
Map
<
String
,
Set
<
String
>>>
statusInfoMap
=
new
HashMap
<>();
private
static
String
location
=
"classpath:statusInfo/*"
;
private
static
String
separator
=
"."
;
static
{
ResourcePatternResolver
resourceResolver
=
new
PathMatchingResourcePatternResolver
();
try
{
Resource
[]
resources
=
resourceResolver
.
getResources
(
location
);
for
(
Resource
resource
:
resources
)
{
statusInfoMap
.
put
(
Objects
.
requireNonNull
(
resource
.
getFilename
()).
substring
(
0
,
resource
.
getFilename
().
indexOf
(
"."
)),
collecSignleTranMap
(
resource
.
getInputStream
()));
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
private
static
Map
<
String
,
Set
<
String
>>
collecSignleTranMap
(
InputStream
inputStream
)
throws
Exception
{
ObjectMapper
om
=
new
ObjectMapper
();
Map
<
String
,
Object
>
map
=
om
.
readValue
(
inputStream
,
Map
.
class
);
Map
<
String
,
Set
<
String
>>
result
=
new
HashMap
<>();
collectMapInfo
(
""
,
map
,
result
);
return
result
;
}
private
static
void
collectMapInfo
(
String
path
,
Map
<
String
,
Object
>
map
,
Map
<
String
,
Set
<
String
>>
result
)
{
for
(
Map
.
Entry
<
String
,
Object
>
entry
:
map
.
entrySet
())
{
String
currPath
=
path
+
separator
+
entry
.
getKey
();
if
(
entry
.
getValue
()
instanceof
List
){
List
value
=
(
List
)
entry
.
getValue
();
String
[]
statusInfo_list
=
new
String
[]{
"visiable"
,
"modified"
,
"enabled"
};
//for (String status : MdaDriver.statusInfo_list) {
for
(
String
status
:
statusInfo_list
)
{
if
(
value
.
contains
(
status
)){
if
(!
result
.
containsKey
(
status
)){
result
.
put
(
status
,
new
HashSet
<>());
}
result
.
get
(
status
).
add
(
formatPath
(
currPath
));
}
}
}
else
{
collectMapInfo
(
currPath
,
(
Map
)
entry
.
getValue
(),
result
);
}
}
}
public
static
String
formatPath
(
String
path
){
if
(
path
.
isEmpty
()){
return
path
;
}
if
(
separator
.
equals
(
path
.
charAt
(
0
)+
""
)){
return
path
.
substring
(
1
);
}
return
path
;
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/driver/compile/component/FieldInfo.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
.
driver
.
compile
.
component
;
import
lombok.Data
;
@Data
public
class
FieldInfo
{
private
String
name
;
private
int
type
;
// 0 基本类型 1 模型 2 模型List 3 引用模型 4引用字段
private
String
typeName
;
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/driver/compile/component/ModuleRuleContext.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
.
driver
.
compile
.
component
;
import
lombok.Data
;
import
java.lang.reflect.Method
;
import
java.util.*
;
import
java.util.stream.Collectors
;
@Data
public
class
ModuleRuleContext
{
//RULE编译的层次
public
static
int
RULE_COMPILE_DEPTH
=
1
;
private
Map
<
String
,
List
<
RuleItem
>>
checkRule
=
new
LinkedHashMap
<>();
private
Map
<
String
,
List
<
RuleItem
>>
eventRule
=
new
LinkedHashMap
<>();
private
Map
<
String
,
List
<
RuleItem
>>
defaultRule
=
new
LinkedHashMap
<>();
private
List
<
RuleItem
>
initList
=
new
ArrayList
<>();
private
List
<
String
>
moduleList
=
new
ArrayList
<>();
private
Map
<
String
,
Method
>
globalMethod
=
new
HashMap
<>();
private
Map
<
String
,
RuleItem
>
staticMethod
=
new
HashMap
<>();
private
String
moduleName
;
private
boolean
useEmitter
;
private
boolean
isTrans
;
private
ModuleRuleContext
mergedContext
;
public
ModuleRuleContext
(
String
moduleName
){
this
.
moduleName
=
moduleName
;
this
.
useEmitter
=
false
;
}
public
ModuleRuleContext
(
String
moduleName
,
boolean
useEmitter
){
this
.
moduleName
=
moduleName
;
this
.
useEmitter
=
useEmitter
;
}
public
void
mergeChild
(
String
nodePath
,
ModuleRuleContext
nodeContext
){
nodeContext
.
moduleList
.
forEach
(
item
->
this
.
moduleList
.
add
(
nodePath
+
"."
+
item
));
nodeContext
.
initList
.
forEach
(
item
->{
RuleItem
newItem
=
item
.
clone
();
String
belongPath
=
nodePath
+
"."
+
newItem
.
getDotPath
();
//newItem.getBelongClass().push(this.moduleName);
newItem
.
initGetPath
(
belongPath
);
this
.
initList
.
add
(
newItem
);
});
mergeRuleMap
(
nodePath
,
this
.
checkRule
,
nodeContext
.
checkRule
);
mergeRuleMap
(
nodePath
,
this
.
defaultRule
,
nodeContext
.
defaultRule
);
mergeRuleMap
(
nodePath
,
this
.
eventRule
,
nodeContext
.
eventRule
);
nodeContext
.
staticMethod
.
forEach
((
key
,
ruleItem
)->{
RuleItem
newItem
=
ruleItem
.
clone
();
String
belongPath
=
nodePath
+
"."
+
newItem
.
getDotPath
();
newItem
.
initGetPath
(
belongPath
);
this
.
staticMethod
.
put
(
key
,
newItem
);
});
this
.
globalMethod
.
putAll
(
nodeContext
.
globalMethod
);
}
private
void
mergeRuleMap
(
String
nodePath
,
Map
<
String
,
List
<
RuleItem
>>
dest
,
Map
<
String
,
List
<
RuleItem
>>
src
){
src
.
entrySet
().
forEach
(
entry
->{
String
key
=
entry
.
getKey
();
if
(!
entry
.
getValue
().
isEmpty
()){
RuleItem
ruleItem
=
entry
.
getValue
().
get
(
0
);
if
(
ruleItem
.
getRuleType
().
equals
(
"CHECK"
)
&&
key
.
endsWith
(
"sdamod.dadsnd"
)){
return
;
}
}
//顶层交易模块,自动识别去除开始的.
// if(key.charAt(0) == '.' && useEmitter){
// key = key.substring(1);
// }
if
(
key
.
charAt
(
0
)
!=
'.'
)
{
//合并rule路径
key
=
nodePath
+
"."
+
key
;
}
List
<
RuleItem
>
ruleItemList
=
dest
.
get
(
key
);
if
(
ruleItemList
==
null
){
ruleItemList
=
new
ArrayList
<>();
dest
.
put
(
key
,
ruleItemList
);
}
List
<
RuleItem
>
finalRuleItemList
=
ruleItemList
;
String
entirePath
=
key
;
entry
.
getValue
().
forEach
(
item
->{
RuleItem
newItem
=
item
.
clone
();
String
belongPath
=
nodePath
+
"."
+
newItem
.
getDotPath
();
newItem
.
initGetPath
(
belongPath
);
newItem
.
setEntirePath
(
entirePath
);
//newItem.getBelongClass().push(this.moduleName);
finalRuleItemList
.
add
(
newItem
);
});
});
}
public
void
sortRule
(){
this
.
checkRule
.
values
().
stream
().
forEach
(
list
->
list
.
sort
(
new
RuleItem
.
RuleItemComparator
()));
this
.
eventRule
.
values
().
stream
().
forEach
(
list
->
list
.
sort
(
new
RuleItem
.
RuleItemComparator
()));
this
.
defaultRule
.
values
().
stream
().
forEach
(
list
->
list
.
sort
(
new
RuleItem
.
RuleItemComparator
()));
List
<
RuleItem
>
nInitRule
=
new
ArrayList
<>();
//EnterTransaction
List
<
RuleItem
>
tempList
=
initList
.
stream
().
filter
(
a
->
a
.
getOrder
()>
9000000
).
sorted
(
Comparator
.
comparingInt
(
RuleItem:
:
getOrder
)).
collect
(
Collectors
.
toList
());
//InitTransaction
List
<
RuleItem
>
tempList2
=
initList
.
stream
().
filter
(
a
->
a
.
getOrder
()<
9000000
&&
a
.
getOrder
()>=
900000
).
sorted
(
Comparator
.
comparingInt
(
RuleItem:
:
getOrder
)).
collect
(
Collectors
.
toList
());
//ModuleTransaction
List
<
RuleItem
>
tempList3
=
initList
.
stream
().
filter
(
a
->
a
.
getOrder
()<
900000
).
collect
(
Collectors
.
toList
());
nInitRule
.
addAll
(
tempList
);
nInitRule
.
addAll
(
tempList3
);
nInitRule
.
addAll
(
tempList2
);
initList
=
nInitRule
;
}
public
boolean
isRuleEmpty
(){
return
checkRule
.
size
()
==
0
&&
defaultRule
.
size
()
==
0
&&
eventRule
.
size
()
==
0
&&
initList
.
size
()
==
0
;
}
public
void
putGlobalMethod
(
Method
method
){
String
key
=
getMethodKey
(
method
);
globalMethod
.
put
(
key
,
method
);
}
public
static
String
getMethodKey
(
Method
method
){
StringBuilder
key
=
new
StringBuilder
(
method
.
getName
());
for
(
Class
clazz
:
method
.
getParameterTypes
()){
key
.
append
(
","
).
append
(
clazz
.
getCanonicalName
());
}
key
.
append
(
","
).
append
(
method
.
getReturnType
().
getCanonicalName
());
return
key
.
toString
();
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/driver/compile/component/RuleItem.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
.
driver
.
compile
.
component
;
import
com.brilliance.mda.runtime.mda.Ruleable
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
lombok.Data
;
import
java.lang.reflect.Method
;
import
java.util.Comparator
;
@Data
public
class
RuleItem
{
public
static
final
String
INIT
=
"INIT"
;
public
static
final
String
RULE
=
"RULE"
;
public
static
final
String
CHECK
=
"CHECK"
;
public
static
final
String
DEFAULT
=
"DEFAULT"
;
public
static
final
String
STATIC
=
"STATIC"
;
public
static
final
String
LOCAL
=
"LOCAL"
;
public
static
final
String
GLOBAL
=
"GLOBAL"
;
public
static
final
String
LIST
=
"LIST"
;
// private String methodName;
//String or Method
@JsonIgnore
private
Object
method
;
private
int
order
;
@JsonIgnore
private
String
getPath
;
private
String
dotPath
;
@JsonIgnore
private
String
entirePath
;
@JsonIgnore
private
int
depth
;
@JsonIgnore
private
String
ruleType
;
@JsonIgnore
private
String
module
;
@JsonIgnore
private
String
transName
;
@JsonIgnore
private
Ruleable
<
Boolean
>
ruleableIns
;
//private Stack<String> belongClass = new Stack<>();
public
void
initGetPath
(
String
dotPath
)
{
if
(
dotPath
.
endsWith
(
"."
)){
dotPath
=
dotPath
.
substring
(
0
,
dotPath
.
length
()-
1
);
}
this
.
dotPath
=
dotPath
;
if
(
dotPath
.
length
()
==
0
)
{
this
.
getPath
=
""
;
this
.
depth
=
0
;
return
;
}
String
[]
pathArr
=
dotPath
.
split
(
"\\."
);
this
.
depth
=
pathArr
.
length
;
// StringBuilder sb = new StringBuilder();
// for(String item:pathArr)
// {
// sb.append(".get");
// sb.append(firstUpper(item));
// sb.append("()");
// }
// getPath = sb.toString();
}
private
String
firstUpper
(
String
s
){
if
(
s
.
length
()
==
1
)
return
s
.
toUpperCase
();
return
s
.
substring
(
0
,
1
).
toUpperCase
()+
s
.
substring
(
1
);
}
public
static
class
RuleItemComparator
implements
Comparator
<
RuleItem
>
{
@Override
public
int
compare
(
RuleItem
o1
,
RuleItem
o2
)
{
if
(
o1
.
getOrder
()
>
o2
.
getOrder
())
return
1
;
else
if
(
o1
.
getOrder
()
<
o2
.
getOrder
())
return
-
1
;
//TD的Rule执行顺序,由上到下,由里到外
if
(
o1
.
getDepth
()
>
o2
.
getDepth
())
return
-
1
;
else
if
(
o1
.
getDepth
()
<
o2
.
getDepth
())
return
1
;
return
0
;
}
}
public
String
getTransName
()
{
return
transName
;
}
public
void
setTransName
(
String
transName
)
{
this
.
transName
=
transName
;
}
public
RuleItem
clone
(){
RuleItem
clone
=
new
RuleItem
();
// clone.methodName = this.methodName;
clone
.
order
=
this
.
order
;
clone
.
getPath
=
this
.
getPath
;
clone
.
dotPath
=
this
.
dotPath
;
clone
.
entirePath
=
this
.
entirePath
;
clone
.
depth
=
this
.
depth
;
clone
.
ruleType
=
this
.
ruleType
;
clone
.
module
=
this
.
module
;
clone
.
transName
=
this
.
transName
;
clone
.
method
=
this
.
method
;
// Stack<String> belongClassStack = new Stack<>();
// belongClassStack.addAll(this.belongClass);
// clone.belongClass = belongClassStack;
return
clone
;
}
public
String
getMethodName
(){
if
(
method
instanceof
Method
)
return
((
Method
)
method
).
getName
();
return
(
String
)
method
;
}
}
\ No newline at end of file
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/impl/Argument.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
.
impl
;
import
com.brilliance.mda.runtime.mda.OpType
;
public
class
Argument
<
E
>
{
public
String
fieldName
;
public
OpType
opType
;
public
E
value
;
public
Object
attachField
;
public
Argument
(){
}
public
Argument
(
String
fieldName
)
{
this
.
fieldName
=
fieldName
;
}
public
Argument
(
String
fieldName
,
OpType
opType
,
E
value
)
{
this
.
fieldName
=
fieldName
;
this
.
opType
=
opType
;
this
.
value
=
value
;
}
public
Argument
(
String
fieldName
,
OpType
opType
)
{
this
.
fieldName
=
fieldName
;
this
.
opType
=
opType
;
this
.
value
=
null
;
}
public
Argument
(
String
fieldName
,
E
value
)
{
this
(
fieldName
,
OpType
.
EQ
,
value
);
}
public
Argument
(
OpType
opType
,
E
value
)
{
this
(
null
,
opType
,
value
);
}
@SuppressWarnings
({
"rawtypes"
,
"unchecked"
})
public
static
Argument
or
(
Argument
arg1
,
Argument
arg2
)
{
return
new
Argument
(
OpType
.
OR
,
new
Argument
[]
{
arg1
,
arg2
});
}
@SuppressWarnings
({
"rawtypes"
,
"unchecked"
})
public
static
Argument
and
(
Argument
arg1
,
Argument
arg2
)
{
return
new
Argument
(
OpType
.
AND
,
new
Argument
[]
{
arg1
,
arg2
});
}
@SuppressWarnings
({
"rawtypes"
,
"unchecked"
})
public
static
Argument
not
(
Argument
argument
)
{
return
new
Argument
(
OpType
.
NOT
,
argument
);
}
@SuppressWarnings
({
"rawtypes"
,
"unchecked"
})
public
static
Argument
in
(
String
column
,
Object
[]
values
)
{
return
new
Argument
(
column
,
OpType
.
IN
,
values
);
}
@SuppressWarnings
({
"rawtypes"
,
"unchecked"
})
public
static
Argument
between
(
String
column
,
Object
value1
,
Object
value2
)
{
return
new
Argument
(
column
,
OpType
.
BETWEEN
,
new
Object
[]
{
value1
,
value2
});
}
@SuppressWarnings
({
"rawtypes"
,
"unchecked"
})
public
static
Argument
eq
(
String
column
,
Object
value
)
{
return
new
Argument
(
column
,
value
);
}
@SuppressWarnings
({
"rawtypes"
,
"unchecked"
})
public
static
Argument
gt
(
String
column
,
Object
value
)
{
return
new
Argument
(
column
,
OpType
.
GT
,
value
);
}
@SuppressWarnings
({
"rawtypes"
,
"unchecked"
})
public
static
Argument
ge
(
String
column
,
Object
value
)
{
return
new
Argument
(
column
,
OpType
.
GE
,
value
);
}
@SuppressWarnings
({
"rawtypes"
,
"unchecked"
})
public
static
Argument
lt
(
String
column
,
Object
value
)
{
return
new
Argument
(
column
,
OpType
.
LT
,
value
);
}
@SuppressWarnings
({
"rawtypes"
,
"unchecked"
})
public
static
Argument
le
(
String
column
,
Object
value
)
{
return
new
Argument
(
column
,
OpType
.
LE
,
value
);
}
@SuppressWarnings
({
"rawtypes"
,
"unchecked"
})
public
static
Argument
isNotNull
(
String
column
)
{
return
new
Argument
(
column
,
OpType
.
ISNOTNULL
);
}
@SuppressWarnings
({
"rawtypes"
,
"unchecked"
})
public
static
Argument
isNull
(
String
column
)
{
return
new
Argument
(
column
,
OpType
.
ISNULL
);
}
@SuppressWarnings
({
"rawtypes"
,
"unchecked"
})
public
static
Argument
like
(
String
column
,
Object
value
)
{
return
new
Argument
(
column
,
OpType
.
LIKE
,
value
);
}
@SuppressWarnings
({
"rawtypes"
,
"unchecked"
})
public
static
Argument
notLike
(
String
column
,
Object
value
)
{
return
new
Argument
(
column
,
OpType
.
NOTLIKE
,
value
);
}
@SuppressWarnings
({
"rawtypes"
})
public
Argument
and
(
Argument
argument
)
{
return
this
.
opType
==
null
?
argument
:
and
(
this
,
argument
);
}
@SuppressWarnings
({
"rawtypes"
})
public
Argument
and
(
String
fieldName
,
Object
value
)
{
return
and
(
fieldName
,
OpType
.
EQ
,
value
);
}
@SuppressWarnings
({
"rawtypes"
,
"unchecked"
})
public
Argument
and
(
String
fieldName
,
OpType
opType
)
{
return
and
(
new
Argument
(
fieldName
,
opType
));
}
@SuppressWarnings
({
"rawtypes"
,
"unchecked"
})
public
Argument
and
(
String
fieldName
,
OpType
opType
,
Object
value
)
{
return
and
(
new
Argument
(
fieldName
,
opType
,
value
));
}
@SuppressWarnings
({
"rawtypes"
})
public
Argument
or
(
Argument
argument
)
{
return
this
.
opType
==
null
?
argument
:
or
(
this
,
argument
);
}
@SuppressWarnings
({
"rawtypes"
})
public
Argument
or
(
String
fieldName
,
Object
value
)
{
return
or
(
fieldName
,
OpType
.
EQ
,
value
);
}
@SuppressWarnings
({
"rawtypes"
,
"unchecked"
})
public
Argument
or
(
String
fieldName
,
OpType
opType
)
{
return
or
(
new
Argument
(
fieldName
,
opType
));
}
@SuppressWarnings
({
"rawtypes"
,
"unchecked"
})
public
Argument
or
(
String
fieldName
,
OpType
opType
,
Object
value
)
{
return
or
(
new
Argument
(
fieldName
,
opType
,
value
));
}
public
E
getValue
()
{
return
value
;
}
public
String
getFieldName
()
{
return
this
.
fieldName
;
}
public
static
<
T
>
Argument
<
T
>
box
(
T
value
){
return
new
Argument
<
T
>(
""
,
value
);
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/impl/DataGrid.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
.
impl
;
import
com.brilliance.mda.runtime.mda.IDataGrid
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
java.io.*
;
import
java.util.*
;
public
class
DataGrid
implements
IDataGrid
,
Serializable
{
protected
List
<
String
>
rows
=
new
ArrayList
<>();
protected
List
<
String
>
initRows
=
new
ArrayList
<>();
protected
Map
<
String
,
Object
>
attrs
=
new
HashMap
<>();
private
boolean
keepsort
;
@Override
public
void
insertLine
(
int
idx
,
String
line
)
{
if
(
idx
<=
0
||
idx
>
rows
.
size
())
{
rows
.
add
(
line
);
return
;
}
if
(
line
!=
null
)
rows
.
add
(--
idx
,
line
);
}
@JsonIgnore
public
String
getLine
(
int
idx
)
{
if
(
idx
==
0
)
idx
=
1
;
idx
--;
if
(
idx
>=
rows
.
size
())
return
""
;
return
rows
.
get
(
idx
);
}
@JsonIgnore
@Override
public
String
deleteLine
(
int
idx
)
{
if
(
idx
==
0
)
idx
=
1
;
return
rows
.
remove
(--
idx
);
}
@Override
public
void
sortLines
()
{
Collections
.
sort
(
rows
);
}
@Override
public
int
countLines
()
{
return
rows
.
size
();
}
@JsonIgnore
@Override
public
int
searchLine
(
String
line
)
{
if
(
line
==
null
)
return
0
;
for
(
int
i
=
0
;
i
<
rows
.
size
()
;
i
++)
{
if
(
rows
.
get
(
i
)
==
null
)
continue
;
if
(!
keepsort
&&
rows
.
get
(
i
).
toLowerCase
().
startsWith
(
line
.
toLowerCase
())){
return
i
+
1
;
}
if
(
keepsort
&&
rows
.
get
(
i
).
startsWith
(
line
)){
return
i
+
1
;
}
}
return
0
;
}
@Override
public
void
setRows
(
List
<
String
>
list
)
{
this
.
rows
.
clear
();
rows
.
addAll
(
list
);
}
@Override
public
List
<
String
>
getRows
()
{
return
rows
;
}
@Override
public
void
clearLines
()
{
this
.
rows
.
clear
();
}
@Override
public
void
addLine
(
String
line
)
{
if
(
line
!=
null
)
this
.
rows
.
add
(
line
);
}
@JsonIgnore
public
void
setLine
(
int
idx
,
String
line
)
{
if
(
idx
==
0
)
idx
=
1
;
if
(
line
==
null
){
return
;
}
//String[] lines = line.split("[\\r\\n]{1,2}");
String
[]
lines
=
new
String
[]{
line
};
//计算替换区间
int
endIdx
=
idx
+
lines
.
length
;
for
(
int
n
=
this
.
rows
.
size
()+
1
;
n
<
endIdx
;
n
++){
this
.
rows
.
add
(
""
);
}
for
(
int
n
=
idx
;
n
<
endIdx
;
n
++){
this
.
rows
.
set
(
n
-
1
,
lines
[
n
-
idx
]);
}
}
@JsonIgnore
public
void
loadLines
(
File
file
)
throws
IOException
{
BufferedReader
br
=
null
;
rows
.
clear
();
try
{
br
=
new
BufferedReader
(
new
FileReader
(
file
));
String
str
=
null
;
while
((
str
=
br
.
readLine
())!=
null
){
rows
.
add
(
str
);
}
}
catch
(
IOException
e
){
rows
.
clear
();
throw
e
;
}
finally
{
if
(
br
!=
null
){
br
.
close
();
}
}
}
@JsonIgnore
public
void
saveLines
(
File
file
)
throws
IOException
{
BufferedWriter
br
=
null
;
try
{
if
(!
file
.
exists
()){
file
.
createNewFile
();
}
br
=
new
BufferedWriter
(
new
FileWriter
(
file
));
for
(
String
s
:
rows
)
{
br
.
write
(
s
);
br
.
newLine
();
}
}
catch
(
Exception
e
){
rows
.
clear
();
throw
new
RuntimeException
(
e
);
}
finally
{
if
(
br
!=
null
){
br
.
close
();
}
}
}
@JsonIgnore
public
boolean
isLinesChanged
(){
if
(
rows
.
size
()
!=
initRows
.
size
())
return
true
;
for
(
int
i
=
0
;
i
<
initRows
.
size
();
i
++)
{
if
(!
initRows
.
get
(
i
).
equals
(
rows
.
get
(
i
))){
return
true
;
}
}
return
false
;
}
@JsonIgnore
public
<
T
>
void
setAttribute
(
String
attr
,
T
stream
){
this
.
attrs
.
put
(
attr
,
stream
);
}
@JsonIgnore
public
<
T
>
T
getAttribute
(
String
attr
){
return
(
T
)
this
.
attrs
.
get
(
attr
);
}
public
boolean
isKeepsort
()
{
return
keepsort
;
}
public
void
setKeepsort
(
boolean
keepsort
)
{
this
.
keepsort
=
keepsort
;
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/impl/EnvConfig.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
.
impl
;
import
com.brilliance.mda.runtime.mda.config.IniConfig
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Configuration
;
import
javax.annotation.PostConstruct
;
import
java.io.File
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* 放置环境参数
*/
@Configuration
public
class
EnvConfig
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
EnvConfig
.
class
);
private
static
Map
<
String
,
Object
>
config
=
new
HashMap
<>();
@Value
(
"${envConfig.rootPath}"
)
private
String
rootPath
;
public
String
getRootPath
()
{
return
rootPath
;
}
public
void
setRootPath
(
String
rootPath
)
{
this
.
rootPath
=
rootPath
;
}
@PostConstruct
public
void
init
(){
File
dir
=
new
File
(
rootPath
);
if
(!
dir
.
exists
()){
dir
.
mkdirs
();
}
else
{
recursionFile
(
dir
);
}
config
.
put
(
"rootPath"
,
rootPath
);
}
public
void
recursionFile
(
File
file
){
if
(
file
.
isFile
()){
parse
(
file
);
return
;
}
for
(
File
f:
file
.
listFiles
())
{
recursionFile
(
f
);
}
}
public
void
parse
(
File
file
){
String
lowerFileName
=
file
.
getName
().
toLowerCase
();
if
(
lowerFileName
.
endsWith
(
".ini"
)
||
lowerFileName
.
endsWith
(
".dof"
)){
IniConfig
.
loadIni
(
file
);
}
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/impl/FieldConstantHolder.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
.
impl
;
import
com.brilliance.mda.runtime.mda.FieldHolder
;
public
class
FieldConstantHolder
<
T
>
implements
FieldHolder
<
T
>
{
private
T
constantValue
;
public
FieldConstantHolder
(
T
constantValue
){
this
.
constantValue
=
constantValue
;
}
public
FieldConstantHolder
(){
this
(
null
);
}
public
void
setValue
(
T
o
)
{
this
.
constantValue
=
o
;
}
public
T
getValue
()
{
return
this
.
constantValue
;
}
@Override
public
String
getPath
()
{
return
null
;
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/impl/StreamImpl.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
.
impl
;
import
com.brilliance.mda.runtime.mda.IStream
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
java.io.*
;
import
java.util.Arrays
;
public
class
StreamImpl
extends
DataGrid
implements
IStream
,
Serializable
{
transient
ByteArrayOutputStream
bos
=
new
ByteArrayOutputStream
();
private
String
name
;
private
String
type
;
private
String
value
;
@JsonIgnore
public
InputStream
getInputStream
()
{
return
new
ByteArrayInputStream
(
this
.
bos
.
toByteArray
());
}
@JsonIgnore
public
OutputStream
getOutputStream
()
{
return
this
.
bos
;
}
public
boolean
isEmpty
()
{
for
(
String
row
:
getRows
())
{
if
(!
row
.
trim
().
isEmpty
()){
return
false
;
}
}
return
true
;
}
@JsonIgnore
public
String
getValue
()
{
StringBuilder
sb
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
rows
.
size
();
i
++)
{
sb
.
append
(
rows
.
get
(
i
));
if
(
i
<
rows
.
size
()
-
1
)
sb
.
append
(
"\r\n"
);
}
return
sb
.
toString
();
}
@JsonIgnore
public
Class
getDataType
()
{
return
String
.
class
;
}
@JsonIgnore
public
String
getName
()
{
return
this
.
name
;
}
@JsonIgnore
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
@JsonIgnore
public
String
getType
()
{
return
this
.
type
;
}
@JsonIgnore
public
void
setType
(
String
type
)
{
this
.
type
=
type
;
}
public
long
size
()
{
return
this
.
bos
.
size
();
}
public
void
close
()
{
this
.
bos
.
reset
();
this
.
clearLines
();
}
public
String
setValue
(
String
value
)
{
this
.
value
=
value
;
if
(
value
!=
null
&&
value
.
length
()
>
0
){
Arrays
.
stream
(
value
.
split
(
"\r\n"
)).
forEach
(
rows:
:
add
);
}
return
value
;
}
public
String
toString
(){
return
this
.
getValue
();
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/mda/util/ApplicationContextHolder.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
mda
.
util
;
import
org.springframework.beans.BeansException
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationContextAware
;
import
org.springframework.stereotype.Component
;
import
java.util.Optional
;
@Component
public
class
ApplicationContextHolder
implements
ApplicationContextAware
{
private
static
ApplicationContext
context
;
@Override
public
void
setApplicationContext
(
ApplicationContext
applicationContext
)
throws
BeansException
{
context
=
applicationContext
;
}
public
static
<
T
>
Optional
<
T
>
getBean
(
Class
<
T
>
type
){
if
(
context
==
null
){
return
Optional
.
empty
();
}
return
Optional
.
of
(
context
.
getBean
(
type
));
}
public
static
<
T
>
Optional
<
T
>
getBean
(
String
name
,
Class
<
T
>
type
){
if
(
context
==
null
){
return
Optional
.
empty
();
}
return
Optional
.
of
(
context
.
getBean
(
name
,
type
));
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/request/BaseVO.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
request
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
public
class
BaseVO
{
protected
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
protected
List
changes
;
protected
String
pageId
;
/**新增,用于记录码表,使快照上的码值能正确显示**/
protected
Map
<
String
,
List
<
String
>>
valuesSet
;
public
Map
<
String
,
Object
>
getParams
()
{
return
params
;
}
public
void
setParams
(
Map
<
String
,
Object
>
params
)
{
this
.
params
=
params
;
}
public
List
getChanges
()
{
return
changes
;
}
public
void
setChanges
(
List
changes
)
{
this
.
changes
=
changes
;
}
protected
Map
<
String
,
Map
<
String
,
Object
>>
statusInfo
=
new
HashMap
<>();
public
String
getPageId
()
{
return
pageId
;
}
public
void
setPageId
(
String
pageId
)
{
this
.
pageId
=
pageId
;
}
public
Map
<
String
,
Map
<
String
,
Object
>>
getStatusInfo
()
{
return
statusInfo
;
}
public
Map
<
String
,
List
<
String
>>
getValuesSet
()
{
return
valuesSet
;
}
public
void
setValuesSet
(
Map
<
String
,
List
<
String
>>
valuesSet
)
{
this
.
valuesSet
=
valuesSet
;
}
}
gjjs-mda/src/main/java/com/brilliance/mda/runtime/request/RequestSet.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
runtime
.
request
;
public
class
RequestSet
<
T
>
{
private
T
data
;
private
String
changes
;
public
Object
getData
(){
return
this
.
data
;
}
public
void
setData
(
T
data
)
{
this
.
data
=
data
;
}
}
gjjs-mda/src/main/java/com/brilliance/mda/support/cache/ICache.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
support
.
cache
;
public
interface
ICache
<
K
,
V
>
{
K
store
(
V
v
);
default
void
store
(
String
key
,
V
v
){
}
V
get
(
K
k
);
void
remove
(
K
k
);
String
generateKey
();
default
void
keeplive
(
K
key
){
get
(
key
);
}
default
void
cleanup
(){
};
default
boolean
contains
(
K
key
){
return
false
;
};
String
CTX_CACHE
=
"ctxCache"
;
String
AUTH_CACHE
=
"authCache"
;
}
gjjs-mda/src/main/java/com/brilliance/mda/support/cache/serializer/ICacheSerializer.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
support
.
cache
.
serializer
;
public
interface
ICacheSerializer
{
String
getName
();
<
T
>
byte
[]
writeToByteArray
(
T
obj
);
<
T
>
T
readFromByteArray
(
byte
[]
bytes
);
}
gjjs-mda/src/main/java/com/brilliance/mda/support/jakson/serialize/BigDecimalSerializeRate.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
support
.
jakson
.
serialize
;
import
com.fasterxml.jackson.core.JsonGenerator
;
import
com.fasterxml.jackson.databind.BeanProperty
;
import
com.fasterxml.jackson.databind.JsonMappingException
;
import
com.fasterxml.jackson.databind.JsonSerializer
;
import
com.fasterxml.jackson.databind.SerializerProvider
;
import
com.fasterxml.jackson.databind.ser.ContextualSerializer
;
import
java.io.IOException
;
import
java.math.BigDecimal
;
public
class
BigDecimalSerializeRate
extends
JsonSerializer
<
BigDecimal
>
implements
ContextualSerializer
{
public
BigDecimalSerializeRate
(){
}
private
int
decimal
;
public
BigDecimalSerializeRate
(
int
decimal
){
this
.
decimal
=
decimal
;
}
@Override
public
void
serialize
(
BigDecimal
value
,
JsonGenerator
gen
,
SerializerProvider
serializers
)
throws
IOException
{
if
(
null
!=
value
)
{
gen
.
writeString
(
value
.
setScale
(
decimal
,
BigDecimal
.
ROUND_HALF_UP
).
toPlainString
());
}
else
{
gen
.
writeString
(
""
);
}
}
@Override
public
JsonSerializer
<?>
createContextual
(
SerializerProvider
prov
,
BeanProperty
property
)
throws
JsonMappingException
{
int
decimal
=
0
;
DecimalLength
ann
=
null
;
if
(
property
!=
null
)
{
ann
=
property
.
getAnnotation
(
DecimalLength
.
class
);
}
if
(
ann
!=
null
)
{
decimal
=
ann
.
value
();
}
return
new
BigDecimalSerializeRate
(
decimal
);
}
}
gjjs-mda/src/main/java/com/brilliance/mda/support/jakson/serialize/DateDeSerialized.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
support
.
jakson
.
serialize
;
import
com.fasterxml.jackson.core.JsonParser
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.DeserializationContext
;
import
com.fasterxml.jackson.databind.JsonDeserializer
;
import
java.io.IOException
;
public
class
DateDeSerialized
extends
JsonDeserializer
{
@Override
public
Object
deserialize
(
JsonParser
p
,
DeserializationContext
ctxt
)
throws
IOException
,
JsonProcessingException
{
String
source
=
p
.
getText
().
trim
();
return
source
.
equals
(
"NULL"
)
||
source
.
equals
(
"null"
)
?
null
:
source
;
}
}
gjjs-mda/src/main/java/com/brilliance/mda/support/jakson/serialize/DecimalLength.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
support
.
jakson
.
serialize
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Inherited
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
@Inherited
@Target
(
ElementType
.
FIELD
)
@Retention
(
RetentionPolicy
.
RUNTIME
)
public
@interface
DecimalLength
{
public
int
value
()
default
0
;
}
gjjs-mda/src/main/java/com/brilliance/mda/support/jakson/serialize/IStreamDeSerialized.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
support
.
jakson
.
serialize
;
import
com.brilliance.mda.runtime.mda.IStream
;
import
com.brilliance.mda.runtime.mda.impl.StreamImpl
;
import
com.fasterxml.jackson.core.JsonParser
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.core.ObjectCodec
;
import
com.fasterxml.jackson.databind.DeserializationContext
;
import
com.fasterxml.jackson.databind.JsonNode
;
import
com.fasterxml.jackson.databind.deser.std.StdDeserializer
;
import
java.io.IOException
;
import
java.util.List
;
public
class
IStreamDeSerialized
extends
StdDeserializer
<
IStream
>
{
public
IStreamDeSerialized
()
{
this
(
null
);
}
protected
IStreamDeSerialized
(
Class
<?>
vc
)
{
super
(
vc
);
}
@Override
public
IStream
deserialize
(
JsonParser
jp
,
DeserializationContext
ctxt
)
throws
IOException
,
JsonProcessingException
{
ObjectCodec
codec
=
jp
.
getCodec
();
JsonNode
node
=
codec
.
readTree
(
jp
);
//IStream目前统一用StreamImpl构造,后续新增类型时,再逐步补充
StreamImpl
stream
=
new
StreamImpl
();
if
(
node
.
has
(
"rows"
))
{
JsonNode
s
=
node
.
get
(
"rows"
);
List
<
String
>
tempRows
=
codec
.
treeToValue
(
s
,
List
.
class
);
stream
.
getRows
().
addAll
(
tempRows
);
}
return
stream
;
}
}
gjjs-mda/src/main/java/com/brilliance/mda/support/td/AreaType.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
support
.
td
;
public
enum
AreaType
{
HEAD
(
"header"
),
BODY
(
"body"
),
FOOTER
(
"fotter"
);
private
String
value
;
private
AreaType
(
String
val
){
this
.
value
=
val
;
}
}
gjjs-mda/src/main/java/com/brilliance/mda/support/td/TDFieldInfo.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
support
.
td
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.lang.reflect.Field
;
import
java.lang.reflect.Method
;
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
TDFieldInfo
{
private
String
fieldName
;
private
Class
<?>
fieldType
;
private
Field
field
;
private
Method
getter
;
private
Method
setter
;
}
gjjs-mda/src/main/java/com/brilliance/mda/support/td/TDModuleInfo.java
0 → 100644
View file @
e0c4b428
package
com
.
brilliance
.
mda
.
support
.
td
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.lang.reflect.Method
;
import
java.util.List
;
import
java.util.Map
;
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
TDModuleInfo
{
private
String
moduleName
;
private
Class
<?>
moduleClass
;
private
Map
<
String
,
List
<
Method
>>
tdMethods
;
private
Map
<
String
,
List
<
Method
>>
allPublicMethods
;
private
Map
<
String
,
Method
>
allPublicLowerCaseMethods
;
private
Map
<
String
,
TDFieldInfo
>
tdModules
;
private
Map
<
String
,
TDFieldInfo
>
tdModuleLists
;
private
Map
<
String
,
TDFieldInfo
>
tdPrimitiveFields
;
private
Map
<
String
,
TDFieldInfo
>
tdStreamFields
;
private
Map
<
String
,
TDFieldInfo
>
tdPanelFields
;
private
Map
<
String
,
TDFieldInfo
>
tdModuleHolderFields
;
private
Map
<
String
,
TDFieldInfo
>
tdFieldHolderFields
;
}
gjjs-mda/src/main/resources/META-INF/moduleClassName.properties
0 → 100644
View file @
e0c4b428
IModuleList
=
com.brilliance.mda.runtime.mda.IModuleList
IPanel
=
com.brilliance.mda.runtime.mda.IPanel
IStream
=
com.brilliance.mda.runtime.mda.IStream
ModuleList
=
com.brilliance.mda.runtime.mda.impl.ModuleList
PanelImpl
=
com.brilliance.mda.runtime.mda.impl.PanelImpl
StreamImpl
=
com.brilliance.mda.runtime.mda.impl.StreamImpl
\ No newline at end of file
gjjs-
bd-annonation-enhance
/src/main/resources/META-INF/services/javax.annotation.processing.Processor
→
gjjs-
mda
/src/main/resources/META-INF/services/javax.annotation.processing.Processor
View file @
e0c4b428
File moved
pom.xml
View file @
e0c4b428
...
...
@@ -9,8 +9,8 @@
<version>
2.2.10.RELEASE
</version>
</parent>
<modules>
<module>
gjjs-mda
</module>
<module>
gjjs-bd-business
</module>
<module>
gjjs-bd-annonation-enhance
</module>
<module>
gjjs-bd-mybatis-support
</module>
<module>
gjjs-bd-runtime
</module>
</modules>
...
...
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