低代码开发平台的设计与实现:基于元数据模型
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3.2 initInst服务

initInst服务用于初始化实例,初始化工作依赖于Dna。服务原型为Inst initInst(CommonInfo commonInfo, String businessType, String dnaCode)。Dna本身是树形结构,在每一个树节点上,都有属性定义列表vds。initInst服务根据Dna创建实例及其下的Cell列表cells。Cell的创建依赖Dna的属性定义vds,为每一个属性定义创建属性值Va对象,放到Cell下的属性vas中。实例具体创建过程如下:

1)根据businessType和dnaCode得到Dna,然后创建实例。

2)调用DnaToo.dna2Cell创建实例下的Cell对象。方法dna2Cell从Dna中得到属性定义列表vds,遍历每一个Vd对象,创建对应的属性值Va对象,加入Cell的属性vas中。最后将Cell对象加入实例的属性cells中,关于dna2Cell的程序代码,前面已经介绍,这里不再赘述。

3)返回实例。

关于initInst服务的代码如下。initInst服务的第一个参数为CommonInfo commonInfo,这是一个公共参数,大部分服务将其作为第一个参数,CommonInfo中记录当前用户、权限、流程等信息,后台可以集中拦截将其记录在日志中,用于端到端的监控管理,它与元数据模型的逻辑关联不大,本书对CommonInfo相关处理不做详细介绍。

img