You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

393 lines
17 KiB

= 类图
== 引擎配置实体类图
=== 数据字典
[plantuml, diagram-classes-dictionary, svg]
....
skinparam handwritten false
class "DictionaryEntity\n(数据字典)" as DictionaryEntity {
id 唯一标识
code 代码
name 名称
...
parent 父
children 子集合
}
class "FolderDictionaryEntity\n(文件夹)" as FolderDictionaryEntity
class "JavaClassDictionaryEntity\n(Java类数据字典)" as JavaClassDictionaryEntity
class "UserDefinedJavaClassDictionaryEntity\n(用户自定义Java类数据字典)" as UserDefinedJavaClassDictionaryEntity
class "EnumDictionaryEntity\n(枚举数据字典)" as EnumDictionaryEntity
class "UserDefinedJavaClassFieldEntity\n(用于自定义Java类字段)" as UserDefinedJavaClassFieldEntity
class "EnumItemEntity\n(枚举项)" as EnumItemEntity
FolderDictionaryEntity -up-|> DictionaryEntity
JavaClassDictionaryEntity -up-|> DictionaryEntity
UserDefinedJavaClassDictionaryEntity -up-|> DictionaryEntity
EnumDictionaryEntity -up-|> DictionaryEntity
UserDefinedJavaClassDictionaryEntity "1" *-down-> "N" UserDefinedJavaClassFieldEntity
EnumDictionaryEntity "1" *-down-> "N" EnumItemEntity
....
=== 库
[plantuml, diagram-classes-lib, svg]
....
skinparam handwritten false
class "DictionaryEntity\n(数据字典)" as DictionaryEntity {
id 唯一标识
code 代码
name 名称
...
parent 父
children 子集合
}
class "LibEntity\n(库)" as LibEntity {
id 唯一标识
...
parent 父
children 子集合
testCases 测试用例集合
}
class "FolderLibEntity\n(文件夹)" as FolderLibEntity
class "IndicatorLibEntity(指标库)" as IndicatorLibEntity{
indicators 指标集合
}
class "IndicatorEntity\n(指标)" as IndicatorEntity{
valueType 值类型
valueTypeVersion 值类型版本
lib 所属指标库
validators 验证器集合
processors 处理器集合
}
class "InterfaceIndicatorEntity\n(接口指标)" as InterfaceIndicatorEntity
class "IndicatorIndicatorEntity\n(计算指标)" as IndicatorIndicatorEntity
class "IndicatorValidatorEntity\n(指标验证器)" as IndicatorValidatorEntity #green
class "IndicatorProcessorEntity\n(指标处理器)" as IndicatorProcessorEntity #green
IndicatorEntity "N" -right-> "1" DictionaryEntity : 引用 >
IndicatorLibEntity "1" -right-> "N" IndicatorEntity : 包含 >
InterfaceIndicatorEntity "1" *-down-> "N" IndicatorValidatorEntity : 包含 >
IndicatorIndicatorEntity "1" *-down-> "N" IndicatorProcessorEntity : 包含 >
LibEntity "1" -right-> "N" LibTestCaseEntity : 包含 >
LibEntity <|-down- FolderLibEntity
LibEntity <|-down- IndicatorLibEntity
IndicatorEntity <|-down- InterfaceIndicatorEntity
IndicatorEntity <|-down- IndicatorIndicatorEntity
FolderLibEntity -right[hidden]- IndicatorLibEntity
....
=== 指标验证器
[plantuml, diagram-classes-indicator-validator, svg]
....
skinparam handwritten false
class "IndicatorValidatorEntity\n(指标验证器)" as IndicatorValidatorEntity #green
class "DateRangeIndicatorValidatorEntity\n(日期范围指标验证器)" as DateRangeIndicatorValidatorEntity
class "DecimalRangeIndicatorValidatorEntity\n(小数范围指标验证器)" as DecimalRangeIndicatorValidatorEntity
class "EmailIndicatorValidatorEntity\n(邮件地址指标验证器)" as EmailIndicatorValidatorEntity
class "EmptyIndicatorValidatorEntity\n(空指标验证器)" as EmptyIndicatorValidatorEntity
class "FalseIndicatorValidatorEntity\n(假指标验证器)" as FalseIndicatorValidatorEntity
class "IntegerRangeIndicatorValidatorEntity\n(整数范围指标验证器)" as IntegerRangeIndicatorValidatorEntity
class "LengthRangeIndicatorValidatorEntity\n(长度范围指标验证器)" as LengthRangeIndicatorValidatorEntity
class "NotEmptyIndicatorValidatorEntity\n(非空指标验证器)" as NotEmptyIndicatorValidatorEntity
class "PatternIndicatorValidatorEntity\n(正则表达式指标验证器)" as PatternIndicatorValidatorEntity
class "TrueIndicatorValidatorEntity\n(真指标验证器)" as TrueIndicatorValidatorEntity
IndicatorValidatorEntity <|-up- DateRangeIndicatorValidatorEntity
IndicatorValidatorEntity <|-up- DecimalRangeIndicatorValidatorEntity
IndicatorValidatorEntity <|-up- EmailIndicatorValidatorEntity
IndicatorValidatorEntity <|-up- EmptyIndicatorValidatorEntity
IndicatorValidatorEntity <|-up- FalseIndicatorValidatorEntity
IndicatorValidatorEntity <|-down- IntegerRangeIndicatorValidatorEntity
IndicatorValidatorEntity <|-down- LengthRangeIndicatorValidatorEntity
IndicatorValidatorEntity <|-down- NotEmptyIndicatorValidatorEntity
IndicatorValidatorEntity <|-down- PatternIndicatorValidatorEntity
IndicatorValidatorEntity <|-down- TrueIndicatorValidatorEntity
....
=== 指标处理器
[plantuml, diagram-classes-indicator-processor, svg]
....
skinparam handwritten false
class "IndicatorProcessorEntity\n(指标处理器)" as IndicatorProcessorEntity #green
class "EmptyIndicatorProcessorEntity\n(空处理器)" as EmptyIndicatorProcessorEntity
class "TernaryIndicatorProcessorEntity\n(三元运算处理器)" as TernaryIndicatorProcessorEntity
class "ArithmeticIndicatorProcessorEntity\n(算数运算处理器)" as ArithmeticIndicatorProcessorEntity
class "WhenThenIndicatorProcessorEntity\n(When-Then处理器)" as WhenThenIndicatorProcessorEntity
class "NumberRangeIndicatorProcessorEntity\n(数值分段处理器)" as NumberRangeIndicatorProcessorEntity
class "ConditionRangeIndicatorProcessorEntity\n(条件分段处理器)" as ConditionRangeIndicatorProcessorEntity
class "GroovyScriptIndicatorProcessorEntity\n(Groovy 脚本处理器)" as GroovyScriptIndicatorProcessorEntity
IndicatorProcessorEntity <|-up- EmptyIndicatorProcessorEntity
IndicatorProcessorEntity <|-up- TernaryIndicatorProcessorEntity
IndicatorProcessorEntity <|-up- ArithmeticIndicatorProcessorEntity
IndicatorProcessorEntity <|-down- WhenThenIndicatorProcessorEntity
IndicatorProcessorEntity <|-down- NumberRangeIndicatorProcessorEntity
IndicatorProcessorEntity <|-down- ConditionRangeIndicatorProcessorEntity
IndicatorProcessorEntity <|-down- GroovyScriptIndicatorProcessorEntity
....
=== 资源模型
[plantuml, diagram-classes-resource, svg]
....
skinparam handwritten false
class "ResourceEntity\n(资源)" as ResourceEntity
class "ReleasableResourceEntity\n(可发布的资源)" as ReleasableResourceEntity
class "FolderResourceEntity\n(文件夹)" as FolderResourceEntity
class "ModelResourceEntity\n(模型)" as ModelResourceEntity
class "ScoreCardResourceEntity\n(评分卡)" as ScoreCardResourceEntity
class "ResourceTestCaseEntity\n(资源测试用例)" as ResourceTestCaseEntity
class "ModelEntity\n(模型)" as ModelEntity{
id 唯一标识
code 代码
name 名称
...
parent 父
children 子集合
}
class "ParameterEntity\n(参数)" as ParameterEntity #green
class "ParameterValidatorEntity\n(参数验证器)" as ParameterValidatorEntity #green
class "ParameterProcessorEntity\n(参数处理器)" as ParameterProcessorEntity #green
ResourceEntity <|-down- FolderResourceEntity
ResourceEntity <|-down- ReleasableResourceEntity
ReleasableResourceEntity <|-down- ModelResourceEntity
ReleasableResourceEntity <|-down- ScoreCardResourceEntity
ResourceEntity "1" -right-> "N" ResourceTestCaseEntity : 包含 >
ModelResourceEntity "1" -down-> "1" ModelEntity : 包含
ModelEntity "1" -down-> "N" ParameterEntity : 包含
ParameterEntity "1" *-left-> "N" ParameterValidatorEntity : 包含
ParameterEntity "1" *-right-> "N" ParameterProcessorEntity : 包含
FolderResourceEntity -right[hidden]- ReleasableResourceEntity
....
=== 模型参数
[plantuml, diagram-classes-parameter, svg]
....
skinparam handwritten false
class "ParameterEntity\n(参数)" as ParameterEntity #green
class "ConstantParameterEntity\n(常量)" as ConstantParameterEntity
class "IndicatorParameterEntity\n(指标)" as IndicatorParameterEntity
class "InParameterEntity\n(输入值)" as InParameterEntity
class "InOptionParameterEntity\n(输入选项)" as InOptionParameterEntity
class "InSubOutParameterEntity\n(子模型输出)" as InSubOutParameterEntity
class "IntermediateParameterEntity\n(中间值)" as IntermediateParameterEntity
class "RuleResultParameterEntity\n(规则结果)" as RuleResultParameterEntity
class "SingleRuleResultParameterEntity\n(单规则结果)" as SingleRuleResultParameterEntity
class "OutParameterEntity\n(结果值)" as OutParameterEntity
ParameterEntity <|-up- ConstantParameterEntity
ParameterEntity <|-up- IndicatorParameterEntity
ParameterEntity <|-up- InParameterEntity
ParameterEntity <|-up- InOptionParameterEntity
ParameterEntity <|-left- InSubOutParameterEntity
ParameterEntity <|-right- IntermediateParameterEntity
ParameterEntity <|-down- RuleResultParameterEntity
ParameterEntity <|-down- SingleRuleResultParameterEntit
ParameterEntity <|-down- OutParameterEntity
....
=== 参数验证器
[plantuml, diagram-classes-parameter-validator, svg]
....
skinparam handwritten false
class "ParameterValidatorEntity\n(参数验证器)" as ParameterValidatorEntity #green
class "DateRangeParameterValidatorEntity\n(日期范围指标验证器)" as DateRangeParameterValidatorEntity
class "DecimalRangeParameterValidatorEntity\n(小数范围指标验证器)" as DecimalRangeParameterValidatorEntity
class "EmailParameterValidatorEntity\n(邮件地址指标验证器)" as EmailParameterValidatorEntity
class "EmptyParameterValidatorEntity\n(空指标验证器)" as EmptyParameterValidatorEntity
class "FalseParameterValidatorEntity\n(假指标验证器)" as FalseParameterValidatorEntity
class "IntegerRangeParameterValidatorEntity\n(整数范围指标验证器)" as IntegerRangeParameterValidatorEntity
class "LengthRangeParameterValidatorEntity\n(长度范围指标验证器)" as LengthRangeParameterValidatorEntity
class "NotEmptyParameterValidatorEntity\n(非空指标验证器)" as NotEmptyParameterValidatorEntity
class "PatternParameterValidatorEntity\n(正则表达式指标验证器)" as PatternParameterValidatorEntity
class "TrueParameterValidatorEntity\n(真指标验证器)" as TrueParameterValidatorEntity
ParameterValidatorEntity <|-up- DateRangeParameterValidatorEntity
ParameterValidatorEntity <|-up- DecimalRangeParameterValidatorEntity
ParameterValidatorEntity <|-up- EmailParameterValidatorEntity
ParameterValidatorEntity <|-up- EmptyParameterValidatorEntity
ParameterValidatorEntity <|-left- FalseParameterValidatorEntity
ParameterValidatorEntity <|-right- IntegerRangeParameterValidatorEntity
ParameterValidatorEntity <|-down- LengthRangeParameterValidatorEntity
ParameterValidatorEntity <|-down- NotEmptyParameterValidatorEntity
ParameterValidatorEntity <|-down- PatternParameterValidatorEntity
ParameterValidatorEntity <|-down- TrueParameterValidatorEntity
....
=== 参数处理器
[plantuml, diagram-classes-parameter-processor, svg]
....
skinparam handwritten false
class "ParameterProcessorEntity\n(参数处理器)" as ParameterProcessorEntity #green
class "OptionValueParameterProcessorEntity\n(选项值处理器)" as OptionValueParameterProcessorEntity
class "ArithmeticParameterProcessorEntity\n(算数操作处理器)" as ArithmeticParameterProcessorEntity
class "ConditionRangeParameterProcessorEntity\n(条件范围处理器)" as ConditionRangeParameterProcessorEntity
class "DecisionTable2CParameterProcessorEntity\n(简单决策表处理器)" as DecisionTable2CParameterProcessorEntity
class "DecisionTableParameterProcessorEntity\n(决策表处理器)" as DecisionTableParameterProcessorEntity
class "DecisionTreeParameterProcessorEntity\n(决策树处理器)" as DecisionTreeParameterProcessorEntity
class "EmptyParameterProcessorEntity\n(空处理器)" as EmptyParameterProcessorEntity
class "ExecutionFlowParameterProcessorEntity\n(执行流处理器)" as ExecutionFlowParameterProcessorEntity
class "NumberRangeParameterProcessorEntity\n(数值范围处理器)" as NumberRangeParameterProcessorEntity
class "PmmlParameterProcessorEntity\n(PMML处理器)" as PmmlParameterProcessorEntity
class "GroovyScriptParameterProcessorEntity\n(脚本代码处理器)" as GroovyScriptParameterProcessorEntity
class "TernaryParameterProcessorEntity\n(三元操作处理器)" as TernaryParameterProcessorEntity
class "WhenThenParameterProcessorEntity\n(When-Then 操作处理器)" as WhenThenParameterProcessorEntity
class "RuleParameterProcessorEntity\n(规则处理器)" as RuleParameterProcessorEntity
class "SingleRuleParameterProcessorEntity.\n(单规则处理器)" as SingleRuleParameterProcessorEntity
ParameterProcessorEntity <|-up- OptionValueParameterProcessorEntity
ParameterProcessorEntity <|-up- ArithmeticParameterProcessorEntity
ParameterProcessorEntity <|-up- ConditionRangeParameterProcessorEntity
ParameterProcessorEntity <|-up- DecisionTable2CParameterProcessorEntity
ParameterProcessorEntity <|-up- DecisionTableParameterProcessorEntity
ParameterProcessorEntity <|-up- DecisionTreeParameterProcessorEntity
ParameterProcessorEntity <|-left- EmptyParameterProcessorEntity
ParameterProcessorEntity <|-right- ExecutionFlowParameterProcessorEntity
ParameterProcessorEntity <|-down- NumberRangeParameterProcessorEntity
ParameterProcessorEntity <|-down- PmmlParameterProcessorEntity
ParameterProcessorEntity <|-down- GroovyScriptParameterProcessorEntity
ParameterProcessorEntity <|-down- TernaryParameterProcessorEntity
ParameterProcessorEntity <|-down- WhenThenParameterProcessorEntity
ParameterProcessorEntity <|-down- RuleParameterProcessorEntity
ParameterProcessorEntity <|-down- SingleRuleParameterProcessorEntity
....
=== 评分卡
[plantuml, diagram-classes-scorecard, svg]
....
skinparam handwritten false
class "ScoreCardResourceEntity\n(评分卡)" as ScoreCardResourceEntity
class "ScoreCardVarEntity\n(评分卡变量)" as ScoreCardVarEntity
class "NumberRangeScoreCardVarEntity\n(数值范围评分卡变量)" as NumberRangeScoreCardVarEntity
class "OptionScoreCardVarEntity\n(选项评分卡变量)" as OptionScoreCardVarEntity
class "ScoreCardIndicatorVarEntity\n(评分卡变量(指标))" as ScoreCardIndicatorVarEntity
class "NumberRangeScoreCardIndicatorVarEntity\n(数值范围评分卡变量(指标))" as NumberRangeScoreCardIndicatorVarEntity
class "OptionScoreCardIndicatorVarEntity\n(选项评分卡变量(指标))" as OptionScoreCardIndicatorVarEntity
class "ScoreCardIndicatorValueVarEntity\n(评分卡值变量(指标))" as ScoreCardIndicatorValueVarEntity
ScoreCardResourceEntity "1" *-down-> "N" ScoreCardVarEntity
ScoreCardVarEntity <|-down- ScoreCardIndicatorVarEntity
ScoreCardVarEntity <|-down- NumberRangeScoreCardVarEntity
ScoreCardVarEntity <|-down- OptionScoreCardVarEntity
ScoreCardIndicatorVarEntity <|-down- NumberRangeScoreCardIndicatorVarEntity
ScoreCardIndicatorVarEntity <|-down- OptionScoreCardIndicatorVarEntity
ScoreCardIndicatorVarEntity <|-down- ScoreCardIndicatorValueVarEntity
....
=== 测试用例
[plantuml, diagram-classes-testcase, svg]
....
class "TestCaseEntity\n(测试用例)" as TestCaseEntity
class "ResourceTestCaseEntity\n(资源测试用例)" as ResourceTestCaseEntity
class "ModelTestCaseEntity\n(模型资源测试用例)" as ModelTestCaseEntity
class "ScoreCardTestCaseEntity\n(评分卡资源测试用例)" as ScoreCardTestCaseEntity
class "LibTestCaseEntity\n(库测试用例)" as LibTestCaseEntity
class "TestCaseParameterEntity\n(测试用例参数)" as TestCaseParameterEntity
TestCaseEntity "1" -right-> "N" TestCaseParameterEntity : 包含 >
TestCaseEntity <|-down- ResourceTestCaseEntity
TestCaseEntity <|-down- LibTestCaseEntity
ResourceTestCaseEntity <|-down- ModelTestCaseEntity
ResourceTestCaseEntity <|-down- ScoreCardTestCaseEntity
....
== 客户端接口与实现
[plantuml, diagram-classes-client, svg]
....
package "org.wsp.engine.rule.client" {
interface "Executor\n(执行器)" as Executor {
compileById()
compileByCode()
executeById()
executeByCode()
getLoader()
}
interface "Loader\n(加载器)" as Loader {
getResourceById()
getResourceByCode()
getAllReleasableResourceAbstract()
cleanCache()
}
Executor "1" -right-> "1" Loader : 包含 >
}
package "org.wsp.engine.rule.client.local" {
class "LocalExecutor\n(本地执行器)" as LocalExecutor
class LocalExecutor implements Executor
}
package "org.wsp.engine.rule.client.remote" {
class "RemoteExecutor\n(本地执行器)" as RemoteExecutor
class "RemoteLoader\n(远程加载器)" as RemoteLoader
class RemoteExecutor implements Executor
class RemoteLoader implements Loader
}
package "org.wsp.engine.rule.client.spring.service" {
interface "LocalLoader\n(Spring 本地加载器)" as LocalLoader
interface LocalLoader extends Loader
interface "ExecutorFactoryService\n(Spring 执行器工厂服务)" as ExecutorFactoryService {
getExecutor()
}
}
package "org.wsp.engine.rule.client.spring.service.impl" {
class "LocalLoaderImpl(Spring 本地加载器实现)" as LocalLoaderImpl
class "ExecutorFactoryServiceImpl(Spring 执行器工厂服务实现)" as ExecutorFactoryServiceImpl
class LocalLoaderImpl implements LocalLoader
class ExecutorFactoryServiceImpl implements ExecutorFactoryService
}
....