一种基于特性数据模型的数据配置方法技术

技术编号:35857999 阅读:24 留言:0更新日期:2022-12-07 10:46
本发明专利技术公开了一种基于特性数据模型的数据配置方法,涉及数据处理技术领域。本发明专利技术的数据配置方法,对于指定格式的输入文件,会调用MetaFlySerializeClassGenerator可执行文件生成其注入有特性attribute的模型文件,然后通过注入在模型上的自定义检查特性实现数据装载模块前的数据检查,检查通过后调用FileLoader.Load接口实现数据装载,然后根据数据自身规则生成中间数据后,在数据输出模块构造注入有Serialization相关特性的数据模型,调用FileSerializer.Serialize输出指定格式的文件。本发明专利技术的配置方法,使得工具开发人员从繁琐的数据IO处理中解脱出来,只需要关注其具体的逻辑规则处理,提高了工作效率。提高了工作效率。提高了工作效率。

【技术实现步骤摘要】
一种基于特性数据模型的数据配置方法


[0001]本专利技术涉及数据处理
,更具体地说涉及一种基于特性数据模型的数据配置方法,实现数据装载、数据检查和数据输出。

技术介绍

[0002]当前轨道交通行业,很多实时的监控调度系统在运行,其有很多数据需要事先完成相关配置,这些配置数据的完成一般是通过数据配置工具进行完成的。数据配置工具的处理过程如下(参见说明书附图1):根据提供的输入数据接口文件,利用语言提供的数据流API读取特定的接口文件,然后根据自己的开发习惯定义特定的数据结构,装载接口文件数据到内存数据结构中,并对数据正确性进行相关防御性检查,检查通过后根据自身数据规则处理数据得到中间数据,再定义输出文件对应的数据结构,调用相关文件输出流API生成文件。
[0003]现有的数据配置工具逻辑功能处理因人而异、后续维护人员开发成本高,工作任务性质重复繁琐,效率低,不能及时的完成数据处理工具的开发工作。

技术实现思路

[0004]为了克服上述现有技术中存在的缺陷和不足,本专利技术提供了一种基于特性数据模型的数据配置方法,本专利技术的专利技术目的在于解决现有的数据配置工具逻辑功能处理因人而异、后续维护人员开发成本高,工作任务性质重复繁琐,效率低,不能及时的完成数据处理工具的开发工作的问题。本专利技术针对当前数据配置工作存在的问题,提出了一种基于特性数据模型的数据配置方法,将指定格式输入文件输入到模型生成模块中,模型生成模块调用MetaFlySerializeClassGenerator可执行文件生成其注入有特性attribute的模型文件;输入的指定格式文件和模型生成模块生成的模型文件一起被输入到数据检查模块,数据检查模块通过注入在模型上得自定义检查特性进行数据检查;检查通过后,输入的指定格式文件和模型生成模块生成的模型文件一起被输入到数据装载模块中;数据装载模块调用FileLoader.Load接口实现数据装载,然后根据数据自身规则生成中间数据后,在数据输出模块构造注入有Serialization相关特性的数据模型,调用FileSerializer.Serialize输出指定格式的文件。本专利技术的配置方法,使得工具开发人员从繁琐的数据IO处理中解脱出来,只需要关注其具体的逻辑规则处理,提高了工作效率。可以根据需求在任意粒度的目标元素上进行注入,具有很高的拓展性,用户在模型上追加特性十分简单,使用非常简单,学习成本低。模型上自定义特性的声明与实现不会影响原来的程序对数据的处理,拓展性高。
[0005]为了解决上述现有技术中存在的问题,本专利技术是通过下述技术方案实现的。
[0006]本专利技术提供了一种基于特性数据模型的数据配置方法,该方法包括以下步骤:S1、将指定格式的输入文件输入到数据配置工具中;S2、数据配置工具中的模型生成模块接收到输入文件后,调用
MetaFlySerializeClassGenerator可执行文件生成与输入文件对应的注入有特性attribute的模型文件;S3、数据配置工具中的数据检查模块接收到输入文件和模型生成模块生成的模型文件,通过注入在模型文件上的自定义检查特性实现数据装载模块前的数据检查;S4、数据配置工具中的数据装载模块接收经数据检查模块检查通过的输入文件和模型文件,调用FileLoader.Load接口实现数据装载,然后根据数据自身规则生成中间数据,在数据输出模块构造注入有Serialization相关特性的数据模型,调用FileSerializer.Serialize输出指定格式的输出文件。
[0007]进一步优选的,模型生成模块获取到输入文件后,判断输入文件的文件类型,然后根据文件类型判断该输入文件的节点类型,根据节点类型判断结果,得到其节点数据结构,在其对应元素上注入对应特性信息,然后组装数据结构,输出生成对应CS模型文件。
[0008]进一步优选的,数据检查模块对输入文件和模型文件的数据检查是在Load接口中完成的,通过利用反射装载对应输入文件,根据自身模型定义的继承自PropertyTaskAttribute任务特性的目标元素,对对应节点数据进行检查,并自定义检查逻辑,检查通过后Load装载数据生成Model实体数据。
[0009]进一步优选的,所述数据装载模块,通过在模型文件根节点上注入MappingFile特性,反射获取注入在模型类Type类型上的特性信息,获取输入文件信息;执行FileLoader.Load<T>()方法,反射获取T泛型类型信息,将输入文件对应节点同名的节点数据装载纸模型类型数据节点上,完成对应输入文件的装载。
[0010]进一步优选的,根据实际想要输出的文件类型以及文件信息,构造可配置化的输出模型。
[0011]具体处理过程为,通过注入在输出模型根节点上得SerializeFile特性,获取输出文件类型以及文件名称;根据文件类型,执行GetFileSerializerImp方法,利用工厂模式,获取对应类型文件的序列化器;根据多态性,执行各自的Serialize方法,完成对应文件的序列化输出。
[0012]以par文件为例,执行GetFileSerializerImp方法得到ParSerializer实例对象,执行其Serialize方法,具体为:构造输出字符串StringBuilder对象stringBulider,执行ParPreCommentGeneration方法,判断target类型上注入的ParPreComment特性,获取其Comment信息,组装成注释信息输出。
[0013]遍历追加在target属性集合,当集合上注入ParSerializeAttribute以及其子类特性时,获取对应特性对象parAttr,根据多态性,当parAttr为ParTable特性实例时,构造其表头信息追加至stringBulider对象中,执行Serialize方法,对追加在其属性集合上的ParColumn特性,利用反射执行GetValue方法,获取模型节点数据,追加至stringBulider对象中,最终输出字符串stringBulider至对应文件中。
[0014]S1步骤中指定格式的输入文件包括ini格式输入文件、par格式输入文件、csv格式输入文件和xml格式输入文件。
[0015]在模型生成模块中,当输入文件为ini格式时,会构造出IniClassBuilder实例,然后执行其Load方法装载输入文件模型,ini文件具有根注释节点、章节点、setion节点、普通
注释节点和键值对节点,其总结为两大类:叶子节点跟非叶子节点;在其对应元素上分别注CommentAttribute、ChapterAttribute、SetionAttribute、ParameterElementAttribute,通过这些节点信息去标识一个ini文件,组装ini文件的数据结构,然后输出生成CS模型文件。
[0016]在模型生成模块中,当输入文件为par格式时,会构造本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于特性数据模型的数据配置方法,其特征在于,该方法包括以下步骤:S1、将指定格式的输入文件输入到数据配置工具中;S2、数据配置工具中的模型生成模块接收到输入文件后,调用MetaFlySerializeClassGenerator可执行文件生成与输入文件对应的注入有特性attribute的模型文件;S3、数据配置工具中的数据检查模块接收到输入文件和模型生成模块生成的模型文件,通过注入在模型文件上的自定义检查特性实现数据装载模块前的数据检查;S4、数据配置工具中的数据装载模块接收经数据检查模块检查通过的输入文件和模型文件,调用FileLoader.Load接口实现数据装载,然后根据数据自身规则生成中间数据,在数据输出模块构造注入有Serialization相关特性的数据模型,调用FileSerializer.Serialize输出指定格式的输出文件。2.如权利要求1所述的一种基于特性数据模型的数据配置方法,其特征在于:模型生成模块获取到输入文件后,判断输入文件的文件类型,然后根据文件类型判断该输入文件的节点类型,根据节点类型判断结果,得到其节点数据结构,在其对应元素上注入对应特性信息,然后组装数据结构,输出生成对应CS模型文件。3.如权利要求1所述的一种基于特性数据模型的数据配置方法,其特征在于:数据检查模块对输入文件和模型文件的数据检查是在Load接口中完成的,通过利用反射装载对应输入文件,根据自身模型定义的继承自PropertyTaskAttribute任务特性的目标元素,对对应节点数据进行检查,并自定义检查逻辑,检查通过后Load装载数据生成Model实体数据。4.如权利要求1所述的一种基于特性数据模型的数据配置方法,其特征在于:所述数据装载模块,通过在模型文件根节点上注入MappingFile特性,反射获取注入在模型类Type类型上的特性信息,获取输入文件信息;执行FileLoader.Load<T>()方法,反射获取T泛型类型信息,将输入文件对应节点同名的节点数据装载纸模型类型数据节点上,完成对应输入文件的装载。5.如权利要求1所述的一种基于特性数据模型的数据配置方法,其特征在于:根据实际想要输出的文件类型以及文件信息,构造可配置化的输出模型。6.如权利要求5所述的一种基于特性数据模型的数据配置方法,其特征在于:具体处理过程为,通过注入在输出模型根节点上得SerializeFile特性,获取输出文件类型以及文件名称;根据文件类型,执行GetFileSerializerImp方法,利用工厂模式,获取对应类型文件的序列化器;根据多态性,执行各自的Serialize方法,完成对应文件的序列化输出。7.如权利要求1

6任意一项所述的一种基于特性数据模型的数据配置方法,其特征在于:S1步骤中指定格式的输入文件包括ini格式输入文件、par格式输入文件、csv格式输入文件和xml格式输入文件。8.如权利要求7所述的一种基于特性数据模型的数据配置方法,其特征在于:在模型生成模块中,当输入文件为ini格式时,会构造出IniClassBuilder实例,然后执行其Load方法装载输入文件模型,ini文件具有根注释节点、章节点、setion节点、普通注释节点和键值对节点,其总结为两大类:叶子节点跟非叶子节点;在其对应元素上分别注
CommentAttribute、ChapterAttribute、SetionAttribute、ParameterElementAttribute,通过这些节点信息去标识一个ini文件,组装ini文件的数据结构,然后输出生成CS模型文件。9.如权利要求7所述的...

【专利技术属性】
技术研发人员:李能为陈进晏伟辛春辉万娇黄鹏唐武梅向飞
申请(专利权)人:卡斯柯信号成都有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1