CN114895987B - 消息处理方法、装置、设备及计算机存储介质 - Google Patents
消息处理方法、装置、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN114895987B CN114895987B CN202210797930.9A CN202210797930A CN114895987B CN 114895987 B CN114895987 B CN 114895987B CN 202210797930 A CN202210797930 A CN 202210797930A CN 114895987 B CN114895987 B CN 114895987B
- Authority
- CN
- China
- Prior art keywords
- message
- identifier
- message identifier
- content
- document
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
Abstract
本申请公开了一种消息处理方法、装置、设备及计算机存储介质。方法包括:分别获取第一文档和第一配置文件中的消息标识符及其对应的消息内容;根据获取到的消息标识符及其对应的消息内容,执行第一操作;第一操作包括:将第一消息标识符及其对应的消息内容注册到第一配置文件中,第一消息标识符为存在于第一文档但不存在于第一配置文件的消息标识符;将第一配置文件中第二消息标识符对应的消息内容更新为第二消息标识符在第一文档中对应的消息内容,第二消息标识符为在第一文档对应的消息内容和其在第一配置文件对应的消息内容不一致的消息标识符。本申请可以自主检查和更新消息标识符和消息内容,无需人工操作,从而可提高一致性实现的可靠性。
Description
技术领域
本申请属于电子设计自动化领域,尤其涉及一种消息处理方法、装置、设备及计算机存储介质。
背景技术
在电子设计自动化(Electronic Design Automation, EDA)领域,具有软件(配置文件及代码)与相关文档(需求文档和用户手册)中的消息标识符(MessageID)与消息主体(MessageBody)应当保持一致的要求。
然而,相关文档(需求文档或用户手册)的变动或加入新的测试用例(代码或配置文件)都有可能导致二者消息不一致的情况。目前,通过人工操作保持两者的一致性,容易出现操作延时或人工拼写错误等问题,可见,通过人工操作实现一致性的可靠性较低。
发明内容
本申请实施例提供一种在消息处理方法、装置、设备及计算机存储介质,能够解决现有技术中因通过人工操作保持软件与相关文档一致,造成一致性实现的可靠性较低的问题。
第一方面,本申请实施例提供一种消息处理方法,方法包括:
分别获取第一文档和第一配置文件中的消息标识符及其对应的消息内容,所述第一配置文件为所述第一文档对应的配置文件,所述消息内容包括以下至少一项:消息主体、消息的严重程度、消息的公开程度、消息的最大打印次数;
根据获取到的消息标识符及其对应的消息内容,执行第一操作;
其中,将第一消息标识符及其对应的消息内容注册到所述第一配置文件中,所述第一消息标识符为存在于所述第一文档但不存在于所述第一配置文件的消息标识符;
将所述第一配置文件中第二消息标识符对应的消息内容更新为所述第二消息标识符在所述第一文档中对应的消息内容,所述第二消息标识符为存在于所述第一文档和所述第一配置文件的消息标识符,但其在所述第一文档对应的消息内容和其在所述第一配置文件对应的消息内容不一致。
第二方面,本申请实施例提供了一种消息处理装置,装置包括:
第一获取模块,用于分别获取第一文档和第一配置文件中的消息标识符及其对应的消息内容,所述第一配置文件为所述第一文档对应的配置文件,所述消息内容包括以下至少一项:消息主体、消息的严重程度、消息的公开程度、消息的最大打印次数;
执行模块,用于根据获取到的消息标识符及其对应的消息内容,执行第一操作;
其中,所述第一操作包括:
将第一消息标识符及其对应的消息内容注册到所述第一配置文件中,所述第一消息标识符为存在于所述第一文档但不存在于所述第一配置文件的消息标识符;
将所述第一配置文件中第二消息标识符对应的消息内容更新为所述第二消息标识符在所述第一文档中对应的消息内容,所述第二消息标识符为存在于所述第一文档和所述第一配置文件的消息标识符,但其在所述第一文档对应的消息内容和其在所述第一配置文件对应的消息内容不一致。
第三方面,本申请实施例提供了一种消息处理设备,设备包括:处理器以及存储有计算机程序指令的存储器;所述处理器执行所述计算机程序指令时实现如第一方面所述的消息处理方法。
第四方面,本申请实施例提供了一种计算机存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如第一方面所述的消息处理方法。
第五方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如第一方面所述的消息处理方法。
在本申请实施例中,可以通过分别自主解析需要保持一致性的第一文档和第一配置文件,以分别获取所述第一文档和所述第一配置文件中的消息标识符及其消息内容。之后,可以利用存在于所述第一文档但不存在于所述第一配置文件的第一消息标识符,以及存在于所述第一文档和所述第一配置文件,在所述第一文档对应的消息内容和在所述第一配置文件对应的消息内容不一致的第二消息标识符,更新所述第一配置文件,具体地,可以将所述第一消息标识符及其消息内容注册到所述第一配置文件中,将所述第一配置文件中所述第二消息标识符对应的消息内容更新为所述第二消息标识符在所述第一文档中对应的消息内容,如此,可以实现第一文档和第一配置文件的消息标识符和消息内容的一致性。可见,本申请实施例可以根据需要保持一致性的文档和配置文件自主检查和更新消息标识符和消息内容,无需人工操作,从而可以避免因人工操作导致的操作延时或人工拼写错误等问题,可以提高一致性实现的可靠性。
附图说明
图1是本申请实施例提供的消息处理方法的流程示意图之一;
图2是本申请实施例提供的消息处理方法的流程示意图之二;
图3是本申请实施例提供的新消息处理设备的结构示意图之一;
图4是本申请实施例提供的消息处理装置的结构示意图;
图5是本申请实施例提供的消息处理设备的结构示意图之二。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了方便理解,以下对本申请实施例涉及的一些内容进行说明:
本申请实施例的消息处理方法可以法应用于EDA,EDA是指利用计算机辅助设计(CAD)软件,来完成超大规模集成电路(VLSI)芯片的功能设计、综合、验证、物理设计(包括布局、布线、版图、设计规则检查等)等流程的设计方式。
集成电路EDA技术可以应用于集成电路设计和验证的各个环节,帮助用户进行设计自动转换、调试和纠错等。EDA检查出的错误或警告会以固定的消息标识符形式展现给用户,方便用户使用。
在EDA软件领域,具有软件(配置文件及代码)与相关文档(需求文档和用户手册)中的消息标识符与消息主体应当保持一致的要求。然而,相关文档(需求文档或用户手册)的变动以及加入新的测试用例(代码或配置文件)都有可能导致二者消息不一致的情况。
目前,通过人工浏览代码和文档并比较两者的一致性,或者在测试用例中通过获取日志内容来解析消息主体并构建与文档一致的消息主体进行比较。但上述方式存在如下缺点:
人工浏览花费时间多,且需求文档或用户手册变更后,若没有及时更新代码和检查,容易造成不一致,且容易出现人工拼写错误。
在测试用例中添加消息主体进行测试时,一旦消息主体格式大规模更新变化,会导致测试用例更新较多,且这些更新与软件功能毫无关系,浪费研发和测试人员时间。
为解决上述问题,本申请实施例提供了一种消息处理方法、装置、设备及计算机存储介质,能够自动检查和更新消息标识符和消息内容,确保文档与软件中的消息内容和消息标识符始终保持一致。在本申请实施例中,所述消息内容可以包括以下至少一项:消息主体、消息的严重程度(警告、错误等)、消息的公开程度(内部或公开)、消息的最大打印次数。
下面结合附图,通过一些实施例及其应用场景对本申请实施例提供的消息处理方法进行详细地说明。
参见图1,图1是本申请实施例提供的消息处理方法的流程示意图之一。如图1所示,本申请提供一种消息处理方法,该方法应用于电子设计自动化软件(EDA软件),可以包括以下步骤:
步骤101、分别获取第一文档和第一配置文件中的消息标识符及其对应的消息内容,所述第一配置文件为所述第一文档对应的配置文件。
具体实现时,可以通过解析所述第一文档,获取所述第一文档中的消息。在本申请实施例中,消息至少包括消息标识符和消息内容,消息标识符用于标识消息,消息内容包括以下至少一项:消息主体、消息的严重程度、消息的公开程度、消息的最大打印次数。同一消息的消息标识符和消息内容具有对应关系。
可以通过解析所述第一配置文件,获取所述第一配置文件中的消息。
可以理解地是,所述第一文档和所述第一配置文件为需要保持一致性的文档和配置文件。文档可包括前述的需求文档和用户手册中的至少一项。
步骤102、根据获取到的消息标识符及其对应的消息内容,执行第一操作。
所述第一操作用于实现所述第一文档和所述第一配置文件的一致性。在本申请实施例中,所述第一操作可以但不仅限于包括:
将第一消息标识符及其对应的消息内容注册到所述第一配置文件中,所述第一消息标识符为存在于所述第一文档但不存在于所述第一配置文件的消息标识符;
将所述第一配置文件中第二消息标识符对应的消息内容更新为所述第二消息标识符在所述第一文档中对应的消息内容,所述第二消息标识符为存在于所述第一文档和所述第一配置文件的消息标识符,但其在所述第一文档对应的消息内容和其在所述第一配置文件对应的消息内容不一致。
在本申请实施例中,所述第一消息标识符为存在于所述第一文档但不存在于所述第一配置文件的消息标识符,即所述第一文档包括所述第一消息标识符,所述第一配置文件不包括所述第一消息标识符,可以视所述第一消息标识符为两者中所述第一文档独有的消息标识符。
所述第二消息标识符为存在于所述第一文档和所述第一配置文件,即所述第一文档和所述第一配置文件均包括所述第二消息标识符,可以视所述第二消息标识符为两者共同拥有的消息标识符。进一步地,所述第二消息标识符在所述第一文档对应的消息内容和在所述第一配置文件对应的消息内容不一致。
可以理解地是,所述第一消息标识符和所述第二消息标识符均可以包括至少一个消息标识符。
对于第一消息标识符,由于其当前为所述第一文档独有,可以将所述第一消息标识符及其对应的消息内容注册到所述第一配置文件中,进一步地,可以将所述第一消息标识符对应的消息注册到所述第一配置文件中,使得所述第一配置文件和所述第一文档均包含有所述第一消息标识符对应的消息,从而可以实现两者消息的一致性。
对于第二消息标识符,可以更新其在所述第一配置文件中对应的消息内容,使得其在所述第一配置文件中对应的消息内容与其在所述第一文档中对应的消息内容保持一致,从而实现两者消息的一致性。
在一些实施例中,消息处理设备可以直接比较从所述第一文档中获取到的消息标识符,以及从所述第一配置文件中获取到的消息标识符,筛选出两者中所述第一文档独有的消息标识符,即第一消息标识符,以及两者共同拥有的消息标识符。 对于共同拥有的消息标识符,可以通过检查其在所述第一文档对应的消息内容与其在所述第一配置文件中对应的消息内容是否一致,筛选出第二消息标识符。之后,根据所述第一消息标识符和所述第二消息标识符,执行第一操作。
在另一些实施例中,消息处理设备可以先根据获取到的消息标识符及其对应的消息内容,创建目标信息,之后,根据所述目标信息,执行第一操作,实现两者消息的一致性。所述目标信息可为:下述的第一列表和第二列表;或,下述的P个对象,具体可参见下述相关描述,此处不作描述。
可以理解地是,消息内容中的各项可以通过相同的方式进行更新。
本实施例的消息处理方法,可以通过分别自主解析需要保持一致性的第一文档和第一配置文件,以分别获取所述第一文档和所述第一配置文件中的消息标识符及其消息内容。之后,可以利用存在于所述第一文档但不存在于所述第一配置文件的第一消息标识符,以及存在于所述第一文档和所述第一配置文件,在所述第一文档对应的消息内容和在所述第一配置文件对应的消息内容不一致的第二消息标识符,更新所述第一配置文件,具体地,可以将所述第一消息标识符及其消息内容注册到所述第一配置文件中,将所述第一配置文件中所述第二消息标识符对应的消息内容更新为所述第二消息标识符在所述第一文档中对应的消息内容,如此,可以实现第一文档和第一配置文件的消息标识符和消息内容的一致性。可见,本申请实施例可以根据需要保持一致性的文档和配置文件自主检查和更新消息标识符和消息内容,无需人工操作,从而可以避免因人工操作导致的操作延时或人工拼写错误等问题,可以提高一致性实现的可靠性。
在一些实施例中,所述根据获取到的消息标识符及其对应的消息内容,执行第一操作可以包括:
根据获取到的消息标识符及其对应的消息内容,创建第一列表和第二列表,所述第一列表包括从所述第一文档中获取到的消息标识符及其消息内容,所述第二列表包括从所述第一配置文件中获取到的消息标识符及其消息内容;
根据所述第一列表和所述第二列表,执行第一操作。
在本实施例中,消息处理设备可基于第一列表和第二列表,自动检查和更新消息标识符和消息内容,从而可提高两者消息一致性时间的可靠性。
所述第一列表可称为文档消息列表(DocMessageList),所述第二列表可以称为代码消息列表(CodeMessageList)。
一种可选实现方式中,可以比较所述第一列表和所述第二列表,筛选出第一消息标识符和第二消息标识符,执行第一操作。
另一种可选实现方式中,为方便理解,假设所述第一列表包括N个消息标识符,所述第二列表包括M个消息标识符,N和M均为正整数。即所述第一文档包括N个消息标识符,所述第一配置文件包括M个消息标识符,N和M均为正整数。所述根据所述第一列表和所述第二列表,执行第一操作,可包括:
根据所述第二列表,执行与所述N个消息标识符一一对应的N次迭代检查;
其中,所述N次迭代检查中与第i个消息标识符对应的第i次迭代检查包括:
检查所述第i个消息标识符在所述第二列表中是否存在,i为大于或等于1,小于或等于N的整数;
在所述第i个消息标识符在所述第二列表中不存在的情况下,将所述第i个消息标识符及其对应的消息内容注册到所述第一配置文件中;
在所述第i个消息标识符在所述第二列表中存在的情况下,检查所述第i个消息标识符在所述第一列表中对应的消息内容与其在所述第二列表中对应的消息内容是否一致;在所述第i个消息标识符在所述第一列表中对应的消息内容与其在所述第二列表中对应的消息内容不一致的情况下,将所述第i个消息标识符在所述第二列表中对应的消息内容更新为其在所述第一列表中对应的消息内容。
在本实现方式中,消息处理设备可以遍历所述第一列表中的各消息标识符,检查其在所述第二列表中是否存在。
若不存在,可以将该消息标识符对应的消息注册到所述第一配置文件中,以使两者包括的消息一致。
若存在,检查该消息标识符在两者中对应的消息内容是否一致,若不一致,则更新该消息标识符在所述第一配置文件中的消息内容,以使两者中同一消息标识符对应的消息内容一致。
在另一些实施例中,所述根据获取到的消息标识符及其对应的消息内容,执行第一操作,可以包括:
根据获取到的消息标识符及其对应的消息内容,创建与获取到的P个消息标识符一一对应的P个对象,P为正整数;
根据所述P个对象,执行第一操作;
其中,每个所述对象包括:
消息标识符字段,用于填写其对应的消息标识符;
第一消息内容字段,用于填写其对应的消息标识符在所述第一文档中的消息内容;
第二消息内容字段,用于填写其对应的消息标识符在所述第一配置文件中的消息内容。
在本实施例中,消息处理设备可以基于创建的对象,自动检查和更新消息标识符和消息内容,从而可提高两者消息一致性时间的可靠性。
以下对第一操作的执行进行说明。
在一些实现方式中,所述根据所述P个对象,执行第一操作,可包括:
执行与所述P个对象一一对应的P个迭代检查;
其中,所述P个迭代检查中与第t个对象对应的第t个迭代检查包括:
检查所述第t个对象的所述第二消息内容字段是否为空,t为大于或等于1,小于或等于P的整数;
在所述第t个对象的所述第二消息内容字段为空的情况下,将所述第t个对象的所述消息标识符字段和所述第一消息内容字段中的内容注册到所述第一配置文件中;
在所述第t个对象的所述第二消息内容字段不为空的情况下,检查所述第t个对象的所述第一消息内容字段中的内容与所述第二消息内容字段中的内容是否一致;在所述第t个对象的所述第一消息内容字段中的内容与所述第二消息内容字段中的内容不一致的情况下,将所述第一配置文件中第t消息标识符对应的消息内容更新为所述第t个对象的所述第一消息内容字段中的内容,所述第t消息标识符为所述第t个对象对应的消息标识符。
在情况二中,消息处理设备可以通过检查各对象的所述第一消息内容字段和所述第二消息内容字段中的内容,实现两者消息的一致性。
具体实现时,消息处理设备可以遍历所述P个对象中的各对象,检查各对象的第二消息内容字段是否为空。
若为空,说明该对象对应的消息在所述第一配置文件中不存在,可将该对象对应的消息注册到所述第一配置文件中,以实现两者消息的一致性。
若不为空,说明该对象对应的消息在所述第一配置文件中存在。进而可以检查该对象的第一消息内容字段和第二消息内容字段中的内容是否一致。
若一致,说明该对象对应的消息标识符在两者中对应的消息内容一致,可以继续下一个对象的迭代检查。
若不一致,说明该对象对应的消息标识符在两者中对应的消息内容不一致,可以更新该对象对应的消息标识符在所述第一配置文件中的消息内容,以使两者中同一消息标识符对应的消息内容一致。
以下对对象的创建进行说明。
在一些实现方式中,所述根据获取到的消息标识符及其对应的消息内容,创建与获取到的P个消息标识符一一对应的P个对象,可以包括:
创建与所述N个消息标识符一一对应的N个对象,并将所述N个消息标识符及其对应的消息内容分别填写至其对应的对象的所述消息标识符字段和所述第一消息内容字段中;
根据所述N个对象,执行与所述M个消息标识符一一对应的M次第一迭代检查;
其中,所述M次第一迭代检查中与第k个消息标识符对应的第k次第一迭代检查包括:
检查所述N个对象中是否存在所述第k个消息标识符对应的第k对象,k为大于或等于1,小于或等于M的整数;
在所述N个对象中存在所述第k对象的情况下,将所述第一配置文件中所述第k个消息标识符对应的消息内容填写至所述第k对象的所述第二消息内容字段中;
在所述N个对象中不存在所述第k对象的情况下,创建所述第k对象,并将所述第k个消息标识符及其对应的消息内容填写至所述第k对象的所述消息标识符字段和所述第二消息内容字段中。
在本实施例中,消息处理设备可以先基于所述第一文档中获取到的N个消息标识符创建N个对象。之后,根据所述N个对象,根据所述N个对象,执行与所述M个消息标识符一一对应的M次第一迭代检查,以完善所述N个对象,或,创建新的对象。
具体地,遍历所述M个消息标识符中的各消息标识符,确定所述N个对象中是否存在其对应的对象。
若存在,则可以将该消息标识符在所述第一配置文件中的消息内容填写至对应对象的第二消息内容中,以完善对应对象。
若不存在,则可以创建该消息标识符对应的对象。
可以理解地是,所述P个对象包括所述N个对象以及新创建的对象,这样,可以使得所述P个对象准确反映两者的消息情况,从而可以进一步提高两者一致性实现的可靠性。
需要说明的是,所述N个对象可以分别创建或同时创建,如:一种可选实现方式中,可以每获取所述第一文档中的一个消息标识符,即创建一个对象。另一种可选实施方式中,可以在获取完所述第一文档中的全部消息标识符之后,同时创建所述N个对象。
另外,在其他实施例中,消息处理设备也可以先基于所述第一配置文件中获取到的M个消息标识符创建M个对象。之后,根据所述M个对象,根据所述第二列表,执行与所述N个消息标识符一一对应的N次迭代检查,以完善所述N个对象,或,创建新的对象,具体实现与上述实施例类似,此处不再赘述。
在本申请的一些实施例中,所述第一操作还可以包括:
获取在所述第一文档中未定义的第三消息标识符,所述第三消息标识符为存在于所述第一配置文件但不存在于所述第一文档的消息标识符;
获取在第一代码中未使用的第四消息标识符,所述第四消息标识符为存在于所述第一文档或所述第一配置文件,但不存在于所述第一代码的第四消息标识符,所述第一代码为所述第一文档对应的代码。
所述第三消息标识符和所述第四消息标识符的获取方式可以与所述第一消息标识符和所述第二消息标识符的获取方式类似,具体可参见下述相关描述,此处不作描述。
另外,在本申请的一些实施例中,所述根据获取到的消息标识符及其对应的消息内容,执行第一操作之后,所述方法还可以包括:
输出所述第一文档对应的第一报告,所述第一报告可以包括:
更新记录,包括所述第一消息标识符和所述第二消息标识符;
未定义记录,包括所述第三消息标识符;
未使用记录,包括所述第一消息标识符和所述第四消息标识符。
具体实现时,上述各记录可以仅包括消息标识符,也可以包括消息标识符对应的消息,具体可根据实际需求设定,本申请实施例对此不做限定。
这样,一方面,用户可以基于所述第一报告中的更新记录,知晓为实现两者消息一致自动更新的消息;另一方面,用户可以基于所述第一报告中的未定义记录,知晓在第一配置文件中存在或在第一代码中使用,但是未在第一文档中未定义的消息,进而可以决定是否修改第一文档、第一配置文件或第一代码,使得在第一配置文件中存在或在第一代码中使用的消息在第一文档中定义,从而提高两者消息一致性的实现;再一方面,用户可以基于所述第一报告的未使用记录,知晓未在所述第一代码中使用的消息,进而可决定后续是否使用这些消息,从而提高两者消息一致性的实现。
以下对所述第三消息标识符和所述第四消息标识符的获取,以及各消息标识符的属性(是否更新、是否定义或是否使用)的获取进行说明。
对于前述根据所述第一列表和所述第二列表,执行第一操作的实施例。
在一些实施例中,所述根据所述P个对象,执行第一操作,还可包括:
将所述第二列表中被第一代码使用的消息标识符标注为已使用,未被所述第一代码使用的消息标识标注为未使用,所述第一代码为所述第一文档对应的代码;
在所述将所述第i个消息标识符及其对应的消息内容注册到所述第一配置文件中之后,将所述第i个消息标识符标注为更新和未使用;
在所述将所述第i个消息标识符在所述第二列表中对应的消息内容更新为其在所述第一列表中对应的消息内容之后,将所述第i个消息标识符标注为更新;
根据所述第一列表,执行与所述M个消息标识符一一对应的M次第二迭代检查;
其中,所述M次第二迭代检查中与第j个消息标识符对应的第j次迭代检查包括:
检查所述第j个消息标识符在所述第一列表中是否存在,j为大于或等于1,小于或等于M的整数;
在所述第j个消息标识符在所述第一列表中不存在的情况下,将所述第j个消息标识符标注为未定义;
所述方法还包括:
将标注为更新的消息标识符记录到第一报告的更新记录中;
将标注为未使用的消息标识符记录到所述第一报告的未使用记录中;
将标注为未定义的消息标识符记录到所述第一报告的未定义记录中;
输出所述第一报告。
具体实现时,消息处理设备在生成所述第二列表之后,可以先将所述第二列表中的全部消息标识符标注为未使用(unused)。之后,可以解析第一代码中的消息标识符,这些消息标识符即为已使用的消息标识符,因此,可将所述第二列表中的这些消息标识符的标注修改为已使用(used)。至此,获取到所述第二列表中已使用的消息标识符和未使用的消息标识符。
消息处理设备在将所述第一列表中的至少一个消息标识符及其对应的消息内容注册到所述第一配置文件中之后,可以将所述第一列表中的所述至少一个消息标识符标注为更新(updated)和未使用(unused)。
另外,消息处理设备可以遍历所述第二列表中的各消息标识符,确定其在所述第一列表中是否存在。若不存在,说明该消息标识符在所述第一文档中未定义,可以将其标注为未定义(undefined)。
可以理解地是,标注为更新的消息标识符即为前述的第一消息标识符;标注为未使用的消息标识符包括前述的第一消息标识符和第四消息标识符;标注为未定义的消息标识符即为前述的第三消息标识符。
需要说明的是,在本实施例中,一种可选实现方式中,消息处理设备可以在标注某个消息标识符的属性之后,即可以将该消息标识符输入到对应的记录中。另一种可选实现方式中,消息处理设备可以在标注完两个列表中的所有消息标识符的属性之后,从两个列表中分别提取各属性的消息标识符输入到对应的记录中。具体实现可根据实际需求设定,本申请实施例对此不做限定。
对于前述根据所述P个对象,执行第一操作的实施例。
在一些实施例中,每个所述对象还可以包括:
使用字段,用于填写其对应的消息标识符是否在第一代码中使用,所述第一代码为所述第一文档对应的代码;
更新字段,用于填写其对应的消息标识符是否更新;
定义字段,用于填写其对应的消息标识符是否在所述第一文档中定义;
所述根据所述P个对象,执行第一操作,还包括:
将所述更新字段为真值的对象对应的消息标识符记录到第一报告的更新记录中;
将所述使用字段为假值的对象对应的消息标识符记录到所述第一报告的未使用记录中;
将所述定义字段为假值的对象对应的消息标识符记录到所述第一报告的未定义记录中;
输出所述第一报告。
在本实施例中,某对象的使用字段为真值(true),表示:该对象的对应的消息标识符在第一代码中使用。某对象的使用字段为假值(false),表示:该对象的对应的消息标识符在第一代码中未使用。
某对象的更新字段为true,表示:该对象对应的消息标识符更新,如:该对象对应的消息标识符及其在所述第一文档中的消息内容注册到第一配置文件中,或,该对象对应的消息标识符在第一配置文件中的消息内容更新为其在第一文档中的消息内容。某对象的更新字段为false,表示:该对象对应的消息标识符未更新。
某对象的定义字段为true,表示:该对象对应的消息标识符在第一文档中未定义。某对象的定义字段为false,表示:该对象对应的消息标识符在第一文档中定义。
可以理解地是,更新字段为真值的对象对应的消息标识符即为前述的第一消息标识符;使用字段为假值的对象对应的消息标识符包括前述的第一消息标识符和第四消息标识符;定义字段为假值的对象对应的消息标识符即为前述的第三消息标识符。
在一些实施例中,所述根据获取到的消息标识符及其对应的消息内容,创建与获取到的P个消息标识符一一对应的P个对象,还可以包括:
在所述创建与所述N个消息标识符一一对应的N个对象之后,将所述N个对象的所述定义字段设置为真值,所述使用字段和所述更新字段设置为假值;
在所述创建所述第k对象之后,将所述第k对象的所述定义字段、所述使用字段和所述更新字段均设置为假值;
将与所述第一代码中的消息标识符对应的对象的所述使用字段更新为真值;
在所述将所述第t个对象的所述消息标识符字段和所述第一消息内容字段中的内容注册到所述第一配置文件中之后,将所述第t个对象的所述更新字段更新为真值;
在所述将所述第一配置文件中第t消息标识符对应的消息内容更新为所述第t个对象的所述第一消息内容字段中的内容之后,将所述第t个对象的所述更新字段更新为真值。
具体实现时,每创建一个与所述第一文档中的消息标识符对应的对象之后,由于该对象与第一文档中的消息标识符对应,该消息标识符必定在所述第一文档中定义,因此,可以将该对象的定义字段设置为真值。对于该对象的使用字段和更新字段,可先设置为假值,后续根据实际情况更新。
每创建一个与所述第一配置文件中的消息标识符对应的对象之后,由于该对象的创建条件为所述N个对象中不存在与该消息标识符对应的对象,该消息标识符必定不在第一文档中存在因此,可以将该对象的定义字段设置为假值。对于该对象的使用字段和更新字段,可先设置为假值,后续根据实际情况更新。
后续,若某个对象对应的消息标识符更新,可以将该对象的更新字段更新为真值,否则保持假值。若某个对象对应的消息标识符存在于所述第一代码中,可以将该对象的使用字段更新为真值,否则保持假值。
消息处理设备可以解码所述第一代码中的消息标识符,将这些消息标识符对应的对象的使用字段更新为真值。
通过上述方式,可以使得各消息标识符对应的对象的使用字段、更新字段和定义字段准确反映各消息标识符的属性,从而可以进一步提高消息一致性实现的可靠性。
本申请实施例可以适用于唯一语言支持的消息,即需要实现消息一致性的文档和配置文件中消息的语言是相同的。
本申请实施例也可以适用于多语言支持的消息,在此情况下,文档需要标注使用的语言,文档对应的配置文件需要分语言实现多次注册,得到各语言种类对应的各配置文件。在此情况下,所述分别获取第一文档和第一配置文件中的消息标识符及其对应的消息内容之前,还可以包括:
获取第一文档对应的第一语言种类;
从至少两个配置文件中确定与所述第一语言种类对应的第一配置文件,其中,所述至少两个配置文件均为所述第一文档对应的配置文件,且所述至少两个配置文件对应的语言种类均不同。
即在解析第一文档对应的配置文件之前,先筛选出与所述第一文档同一语言种类的配置文件作为第一配置文件,进而实现所述第一文档和所述第一配置文件的消息一致性。
一种可选的实现方式中,在更新所述第一配置文件的消息的情况下,可以同步更新所述至少两个配置文件中的其他配置文件,但更新时使用的是各配置文件对应的语言种类。这样,可以实现第一文档与其对应的全部配置文件的消息一致性。
结合前述内容可知,本申请实施例可以:根据需求文档或者用户手册自动检查和更新配置文件中消息标识符和消息内容; 根据需求文档或用户手册,自动检查消息标识是否在代码中使用,自动检查代码中实现的额外消息,即文档中未定义的消息;自动输出报告。
一种可选的实施例中,如图2所示,消息处理方法的工作过程可如下:
步骤201、解析格式化的需求文档或用户手册,获取消息标识符和消息内容。
步骤202、解析配置文件和代码,获取配置文件中格式化的消息标识符和消息内容,获取代码中已使用的消息列表。
步骤203、遍历文档和配置文件中的消息标识符和消息内容,自动更新配置文件中对应消息标识符的消息内容,补充文档中新增的消息标识符和消息内容,记录文档中未出现未定义的消息标识符,记录代码中未使用的消息标识符。
步骤204、根据更新情况、代码中已使用的消息列表、代码中从未使用的消息列表等输出报告。
在本申请的一些实施例中,如图3所示,消息处理设备可以包括:文档解析器(DocParser)、代码解析器(CodeParser)、数据库(Database)、消息检查器(MessageChecker)和报告器(Reporter)。
具体实现时,文档的解析操作可以由文档解析器(DocParser)执行,解析结果可以存储于数据库;配置文件和文档的解析操作可以由代码解析器(CodeParser)执行,解析结果可以存储于数据库;所述第一操作的执行操作可以由消息检查器执行,执行结果可以存储于数据库。报告的输出可以由报告器执行。
一个可选的实施例中,文档解析器用于解析格式化文档,提取消息标识符和消息内容存储到Database中。
代码解析器(CodeParser)用于解析配置文件,提取配置文件中注册的消息标识符(MessageID)及其消息内容,获取代码中使用到的消息标识符(MessageID)列表,存储解析的内容到Database中。
消息检查器(MessageChecker)用于检查和更新消息(Message)。包括自动注册新增的消息标识符(MessageID)及其消息内容,更新仅消息内容变化的消息标识符(MessageID),获取在文档中未定义的消息标识符(MessageID)列表,获取在代码中未使用的消息标识符(MessageID),并将解析结果存储于数据库(Database)中。
报告器(Reporter)读取数据库(Database),输出检查报告,包括更新记录、文档中未定义消息标识符(MessageID)列表和代码未使用的消息标识符(MessageID)列表。
需要说明的是,本申请实施例中介绍的多种可选的实施方式,在彼此不冲突的情况下可以相互结合实现,也可以单独实现,对此本申请实施例不作限定。
为进一步理解本申请实施例,以下结合示例说明如下。
在下述示例中,以消息主体作为消息内容进行示例说明,但可以理解地是,对于其他消息内容,可以采用与消息主体相同的方式进行更新。
实施示例1:检查文档和代码中消息一致性,通过解析相关文档、代码和配置文件,实现对需要修订消息的筛选和标记。
步骤一、解析格式化输入文档,如固定格式的Word档、Markdown文档等,根据文件格式获取消息标识符(MessageID)和消息主体(MessageBody),记录为第一列表(DocMessageList)。
步骤二、解析输入路径下的所有代码和特定格式的配置文件(如JSON、XML等),获取配置文件中消息标识符(MessageID)和消息主体(MesageBody),记录为第二列表(CodeMessageList),全部标注为未使用(unused);解析代码,获取已使用的消息标识符(MessageID),并在第二列表(CodeMessageList)中标注为已使用(used)。
步骤三、遍历第一列表(DocMessageList),每次迭代检查消息标识符(MessageID)在第二列表( CodeMessageList)中是否存在,若不存在,则注册到配置文件中,并标记已更新(updated)和未使用(unused);若存在则检查消息主体(MessageBody)是否一致,若一致则继续下一个消息(Message),否则更新配置文件中的消息主体(MessageBody),并标记为已更新(updated)。
步骤四、遍历第二列表(CodeMessageList),每次迭代检查消息标识符(MessageID)是否在第一列表(DocMessageList)中存在,若存在继续下一个消息(Message),否则标注为未定义(undefined)。
步骤五、提取第一列表(DocMessageList)中标注已更新(updated)的消息(Message),输出为更新记录;提取第一列表(DocMessageList)和第二列表(CodeMessageList)中标注为未使用(unused)的消息(Message),输出到未使用的记录中;提取第二列表(CodeMessageList)中标注为未定义(undefined)的消息(Message),输出到未定义的记录中。
其中步骤三至步骤五,可以合并成两个步骤,一边解析一边输出:
步骤三、遍历第一列表(DocMessageList),每次迭代检查消息标识符(MessageID)在第二列表( CodeMessageList)中是否存在,若不存在,则注册到配置文件中,并输出到更新记录和未使用记录中;若存在则检查消息主体(MessageBody)是否一致,若一致则继续下一个消息(Message),否则更新消息主体(MessageBody),并输出到更新记录中。
步骤四、遍历第二列表(CodeMessageList),每次迭代检查消息标识符(MessageID)是否在第一列表(DocMessageList)中存在,若存在继续下一个消息(Message),否则输出到未定义记录中。
实施示例2:根据筛选出的条目进行更新或注册,让相关文档与代码消息一致。
设定Database中每个对象(Message)包括如下字段:
_id:消息标识符的字段;
_bodyInDoc:文档中的MessageBody的字段;
_bodyInCode:代码配置文件中的消息主体(MessageBody)的字段;
_used:是否在代码中使用;
_updated:是否更新;
_defined:是否在文档中有定义。
步骤一、解析格式化输入文档获取消息标识符(MessageID)和消息主体(MessageBody),为每个消息标识符(MessageID)新建对象并更新到数据库(Database)中,设置_defined为True,设置_used、_updated为False。
步骤二、解析输入路径下的所有代码和特定格式的配置文件,获取配置文件中消息标识符(MessageID)和消息主体(MesageBody),若消息标识符(MessageID)存在于数据库(Database)中,则更新_bodyInCode,否则新建对象到数据库(Database)中,并设置_defined、_used、_updated为False。解析代码,获取已使用的消息标识符(MessageID),更新_used为True。
步骤三、检查和注册,遍历Database中的Message:
若_bodyInCode为空,则注册Message到配置文件中,并设置_updated为True;
若_bodyInCode与_bodyInDoc不一致,则更新_bodyInDoc的到配置文件中,并设置_updated为True;
步骤四、输出报告,遍历数据库(Database)中的Message,若_updated为True,则输出到更新记录中;若_used为False,则输出到未使用或未实现记录中;若_defined为False,则输出到未定义或未出现记录中。
实施示例3:
若存在多语言支持的消息标识符(MessageID)和消息主体(MessageBody),与唯一语言的支持区别在于:输入文档要有标注使用的语言;代码的配置文件中要分语言实现多次注册。
因此,在解析输入文档时,可以检测出相应的语言种类,并在解析工程代码的配置文件时根据语言种类获取相应的配置文件或配置块。其它操作与单一语言一致。
基于上述实施例提供的消息处理方法,相应地,本申请还提供了消息处理装置的具体实现方式。请参见以下实施例。
参见图4,本申请实施例提供的消息处理装置可以包括:
第一获取模块401,用于分别获取第一文档和第一配置文件中的消息标识符及其对应的消息内容,所述第一配置文件为所述第一文档对应的配置文件,所述消息内容包括以下至少一项:消息主体、消息的严重程度、消息的公开程度、消息的最大打印次数;
执行模块402,用于根据获取到的消息标识符及其对应的消息内容,执行第一操作;
其中,所述第一操作包括将第一消息标识符及其对应的消息内容注册到所述第一配置文件中,所述第一消息标识符为存在于所述第一文档但不存在于所述第一配置文件的消息标识符;
将所述第一配置文件中第二消息标识符对应的消息内容更新为所述第二消息标识符在所述第一文档中对应的消息内容,所述第二消息标识符为存在于所述第一文档和所述第一配置文件的消息标识符,但其在所述第一文档对应的消息内容和其在所述第一配置文件对应的消息内容不一致。
在一些实施例中,所述执行模块,包括:
第一创建子模块,用于根据获取到的消息标识符及其对应的消息内容,创建第一列表和第二列表,所述第一列表包括从所述第一文档中获取到的消息标识符及其消息内容,所述第二列表包括从所述第一配置文件中获取到的消息标识符及其消息内容;
第一执行子模块,用于根据所述第一列表和所述第二列表,执行第一操作;
在一些实施例中,所述第一列表包括N个消息标识符,所述第二列表包括M个消息标识符,N和M均为正整数;
所述第一执行子模块,包括:
第一执行单元,用于根据所述第二列表,执行与所述N个消息标识符一一对应的N次迭代检查;
其中,所述N次迭代检查中与第i个消息标识符对应的第i次迭代检查包括:
检查所述第i个消息标识符在所述第二列表中是否存在,i为大于或等于1,小于或等于N的整数;
在所述第i个消息标识符在所述第二列表中不存在的情况下,将所述第i个消息标识符及其对应的消息内容注册到所述第一配置文件中;
在所述第i个消息标识符在所述第二列表中存在的情况下,检查所述第i个消息标识符在所述第一列表中对应的消息内容与其在所述第二列表中对应的消息内容是否一致;在所述第i个消息标识符在所述第一列表中对应的消息内容与其在所述第二列表中对应的消息内容不一致的情况下,将所述第i个消息标识符在所述第二列表中对应的消息内容更新为其在所述第一列表中对应的消息内容。
在一些实施例中,所述执行模块,包括:
第二创建子模块,用于根据获取到的消息标识符及其对应的消息内容,创建与获取到的P个消息标识符一一对应的P个对象,P为正整数;
第二执行子模块,用于根据所述P个对象,执行第一操作;
其中,每个所述对象包括:
消息标识符字段,用于填写其对应的消息标识符;
第一消息内容字段,用于填写其对应的消息标识符在所述第一文档中的消息内容;
第二消息内容字段,用于填写其对应的消息标识符在所述第一配置文件中的消息内容。
在一些实施例中,所述第二执行子模块,包括:
第二执行子单元,用于执行与所述P个对象一一对应的P个迭代检查;
其中,所述P个迭代检查中与第t个对象对应的第t个迭代检查包括:
检查所述第t个对象的所述第二消息内容字段是否为空,t为大于或等于1,小于或等于P的整数;
在所述第t个对象的所述第二消息内容字段为空的情况下,将所述第t个对象的所述消息标识符字段和所述第一消息内容字段中的内容注册到所述第一配置文件中;
在所述第t个对象的所述第二消息内容字段不为空的情况下,检查所述第t个对象的所述第一消息内容字段中的内容与所述第二消息内容字段中的内容是否一致;在所述第t个对象的所述第一消息内容字段中的内容与所述第二消息内容字段中的内容不一致的情况下,将所述第一配置文件中第t消息标识符对应的消息内容更新为所述第t个对象的所述第一消息内容字段中的内容,所述第t消息标识符为所述第t个对象对应的消息标识符。
在一些实施例中,所述第一文档包括N个消息标识符,所述第一配置文件包括M个消息标识符,N和M均为正整数;
所述第二创建子模块包括:
创建单元,用于创建与所述N个消息标识符一一对应的N个对象,并将所述N个消息标识符及其对应的消息内容分别填写至其对应的对象的所述消息标识符字段和所述第一消息内容字段中;
第三执行单元,用于根据所述N个对象,执行与所述M个消息标识符一一对应的M次第一迭代检查;
其中,所述M次第一迭代检查中与第k个消息标识符对应的第k次第一迭代检查包括:
检查所述N个对象中是否存在所述第k个消息标识符对应的第k对象,k为大于或等于1,小于或等于M的整数;
在所述N个对象中存在所述第k对象的情况下,将所述第一配置文件中所述第k个消息标识符对应的消息内容填写至所述第k对象的所述第二消息内容字段中;
在所述N个对象中不存在所述第k对象的情况下,创建所述第k对象,并将所述第k个消息标识符及其对应的消息内容填写至所述第k对象的所述消息标识符字段和所述第二消息内容字段中。
在一些实施例中,所述第一操作还包括:
获取在所述第一文档中未定义的第三消息标识符,所述第三消息标识符为存在于所述第一配置文件但不存在于所述第一文档的消息标识符;
获取在第一代码中未使用的第四消息标识符,所述第四消息标识符为存在于所述第一文档或所述第一配置文件,但不存在于所述第一代码的第四消息标识符,所述第一代码为所述第一文档对应的代码;
所述装置还包括:
第一输出模块,用于输出所述第一文档对应的第一报告,所述第一报告包括:
更新记录,包括所述第一消息标识符和所述第二消息标识符;
未定义记录,包括所述第三消息标识符;
未使用记录,包括所述第一消息标识符和所述第四消息标识符。
在一些实施例中,所述第一执行子模块,还包括:
第一标注单元,用于将所述第二列表中被第一代码使用的消息标识符标注为已使用,未被所述第一代码使用的消息标识标注为未使用,所述第一代码为所述第一文档对应的代码;
第二标注单元,用于在所述将所述第i个消息标识符及其对应的消息内容注册到所述第一配置文件中之后,将所述第i个消息标识符标注为更新和未使用;
第三标注单元,用于在所述将所述第i个消息标识符在所述第二列表中对应的消息内容更新为其在所述第一列表中对应的消息内容之后,将所述第i个消息标识符标注为更新;
第四执行单元,用于根据所述第一列表,执行与所述M个消息标识符一一对应的M次第二迭代检查;
其中,所述M次第二迭代检查中与第j个消息标识符对应的第j次迭代检查包括:
检查所述第j个消息标识符在所述第一列表中是否存在,j为大于或等于1,小于或等于M的整数;
在所述第j个消息标识符在所述第一列表中不存在的情况下,将所述第j个消息标识符标注为未定义;
所述装置还包括:
第一记录模块,用于将标注为更新的消息标识符记录到第一报告的更新记录中;
第二记录模块,用于将标注为未使用的消息标识符记录到所述第一报告的未使用记录中;
第三记录模块,用于将标注为未定义的消息标识符记录到所述第一报告的未定义记录中;
第二输出模块,用于输出所述第一报告。
在一些实施例中,每个所述对象还包括:
使用字段,用于填写其对应的消息标识符是否在第一代码中使用,所述第一代码为所述第一文档对应的代码;
更新字段,用于填写其对应的消息标识符是否更新;
定义字段,用于填写其对应的消息标识符是否在所述第一文档中定义;
所述装置还包括:
第四记录模块,用于将所述更新字段为真值的对象对应的消息标识符记录到第一报告的更新记录中;
第五记录模块,用于将所述使用字段为假值的对象对应的消息标识符记录到所述第一报告的未使用记录中;
第六记录模块,用于将所述定义字段为假值的对象对应的消息标识符记录到所述第一报告的未定义记录中;
第三输出模块,用于输出所述第一报告。
在一些实施例中,所述第二创建子模块还包括:
第一设置单元,用于在所述创建与所述N个消息标识符一一对应的N个对象之后,将所述N个对象的所述定义字段设置为真值,所述使用字段和所述更新字段设置为假值;
第二设置单元,用于在所述创建所述第k对象之后,将所述第k对象的所述定义字段、所述使用字段和所述更新字段均设置为假值;
第一更新单元,用于将与所述第一代码中的消息标识符对应的对象的所述使用字段更新为真值;
第二更新单元,用于在所述将所述第t个对象的所述消息标识符字段和所述第一消息内容字段中的内容注册到所述第一配置文件中之后,将所述第t个对象的所述更新字段更新为真值;
第三更新单元,用于在所述将所述第一配置文件中第t消息标识符对应的消息内容更新为所述第t个对象的所述第一消息内容字段中的内容之后,将所述第t个对象的所述更新字段更新为真值。
在一些实施例中,所述装置还包括:
第二获取模块,用于获取第一文档对应的第一语言种类;
确定模块,用于从至少两个配置文件中确定与所述第一语言种类对应的第一配置文件,其中,所述至少两个配置文件均为所述第一文档对应的配置文件,且所述至少两个配置文件对应的语言种类均不同。
本申请实施例提供的消息处理装置能够实现图1的方法实施例中消息处理装置实现的各个过程,为避免重复,这里不再赘述。
图5示出了本申请实施例提供的消息处理的硬件结构示意图。
在消息处理设备可以包括处理器501以及存储有计算机程序指令的存储器502。
具体地,上述处理器501可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit ,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器502可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器502可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器502可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器502可在综合网关容灾设备的内部或外部。在特定实施例中,存储器502是非易失性固态存储器。
存储器可包括只读存储器(Read-Only Memory, ROM),随机存取存储器(RandomAccess Memory,RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本公开的一方面的方法所描述的操作。
处理器501通过读取并执行存储器502中存储的计算机程序指令,以实现上述实施例中的任意一种消息处理方法。
在一个示例中,消息处理设备还可包括通信接口503和总线510。其中,如图5所示,处理器501、存储器502、通信接口503通过总线510连接并完成相互间的通信。
通信接口503,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。
总线510包括硬件、软件或两者,将消息处理设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线510可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
另外,结合上述实施例中的消息处理方法,本申请实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种消息处理方法。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上所述,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。
Claims (12)
1.一种消息处理方法,其特征在于,包括:
分别获取第一文档和第一配置文件中的消息标识符及其对应的消息内容,所述第一配置文件为所述第一文档对应的配置文件,所述消息内容包括以下至少一项:消息主体、消息的严重程度、消息的公开程度、消息的最大打印次数;
根据获取到的消息标识符及其对应的消息内容,执行第一操作;
其中,所述第一操作包括:
将第一消息标识符及其对应的消息内容注册到所述第一配置文件中,所述第一消息标识符为存在于所述第一文档但不存在于所述第一配置文件的消息标识符;
将所述第一配置文件中第二消息标识符对应的消息内容更新为所述第二消息标识符在所述第一文档中对应的消息内容,所述第二消息标识符为存在于所述第一文档和所述第一配置文件的消息标识符,但其在所述第一文档对应的消息内容和其在所述第一配置文件对应的消息内容不一致;
所述根据获取到的消息标识符及其对应的消息内容,执行第一操作包括:
根据获取到的消息标识符及其对应的消息内容,创建第一列表和第二列表,所述第一列表包括从所述第一文档中获取到的消息标识符及其消息内容,所述第二列表包括从所述第一配置文件中获取到的消息标识符及其消息内容;
根据所述第一列表和所述第二列表,执行第一操作;
或者,
所述根据获取到的消息标识符及其对应的消息内容,执行第一操作,包括:
根据获取到的消息标识符及其对应的消息内容,创建与获取到的P个消息标识符一一对应的P个对象,P为正整数;
根据所述P个对象,执行第一操作;
其中,每个所述对象包括:
消息标识符字段,用于填写其对应的消息标识符;
第一消息内容字段,用于填写其对应的消息标识符在所述第一文档中的消息内容;
第二消息内容字段,用于填写其对应的消息标识符在所述第一配置文件中的消息内容。
2.根据权利要求1所述的方法,其特征在于,所述第一列表包括N个消息标识符,所述第二列表包括M个消息标识符,N和M均为正整数;
所述根据所述第一列表和所述第二列表,执行第一操作,包括:
根据所述第二列表,执行与所述N个消息标识符一一对应的N次迭代检查;
其中,所述N次迭代检查中与第i个消息标识符对应的第i次迭代检查包括:
检查所述第i个消息标识符在所述第二列表中是否存在,i为大于或等于1,小于或等于N的整数;
在所述第i个消息标识符在所述第二列表中不存在的情况下,将所述第i个消息标识符及其对应的消息内容注册到所述第一配置文件中;
在所述第i个消息标识符在所述第二列表中存在的情况下,检查所述第i个消息标识符在所述第一列表中对应的消息内容与其在所述第二列表中对应的消息内容是否一致;在所述第i个消息标识符在所述第一列表中对应的消息内容与其在所述第二列表中对应的消息内容不一致的情况下,将所述第i个消息标识符在所述第二列表中对应的消息内容更新为其在所述第一列表中对应的消息内容。
3.根据权利要求1所述的方法,其特征在于,所述根据所述P个对象,执行第一操作,包括:
执行与所述P个对象一一对应的P个迭代检查;
其中,所述P个迭代检查中与第t个对象对应的第t个迭代检查包括:
检查所述第t个对象的所述第二消息内容字段是否为空,t为大于或等于1,小于或等于P的整数;
在所述第t个对象的所述第二消息内容字段为空的情况下,将所述第t个对象的所述消息标识符字段和所述第一消息内容字段中的内容注册到所述第一配置文件中;
在所述第t个对象的所述第二消息内容字段不为空的情况下,检查所述第t个对象的所述第一消息内容字段中的内容与所述第二消息内容字段中的内容是否一致;在所述第t个对象的所述第一消息内容字段中的内容与所述第二消息内容字段中的内容不一致的情况下,将所述第一配置文件中第t消息标识符对应的消息内容更新为所述第t个对象的所述第一消息内容字段中的内容,所述第t消息标识符为所述第t个对象对应的消息标识符。
4.根据权利要求3所述的方法,其特征在于,所述第一文档包括N个消息标识符,所述第一配置文件包括M个消息标识符,N和M均为正整数;
所述根据获取到的消息标识符及其对应的消息内容,创建与获取到的P个消息标识符一一对应的P个对象,包括:
创建与所述N个消息标识符一一对应的N个对象,并将所述N个消息标识符及其对应的消息内容分别填写至其对应的对象的所述消息标识符字段和所述第一消息内容字段中;
根据所述N个对象,执行与所述M个消息标识符一一对应的M次第一迭代检查;
其中,所述M次第一迭代检查中与第k个消息标识符对应的第k次第一迭代检查包括:
检查所述N个对象中是否存在所述第k个消息标识符对应的第k对象,k为大于或等于1,小于或等于M的整数;
在所述N个对象中存在所述第k对象的情况下,将所述第一配置文件中所述第k个消息标识符对应的消息内容填写至所述第k对象的所述第二消息内容字段中;
在所述N个对象中不存在所述第k对象的情况下,创建所述第k对象,并将所述第k个消息标识符及其对应的消息内容填写至所述第k对象的所述消息标识符字段和所述第二消息内容字段中。
5.根据权利要求1所述的方法,其特征在于,所述第一操作还包括:
获取在所述第一文档中未定义的第三消息标识符,所述第三消息标识符为存在于所述第一配置文件但不存在于所述第一文档的消息标识符;
获取在第一代码中未使用的第四消息标识符,所述第四消息标识符为存在于所述第一文档或所述第一配置文件,但不存在于所述第一代码的第四消息标识符,所述第一代码为所述第一文档对应的代码;
所述根据获取到的消息标识符及其对应的消息内容,执行第一操作之后,还包括:
输出所述第一文档对应的第一报告,所述第一报告包括:
更新记录,包括所述第一消息标识符和所述第二消息标识符;
未定义记录,包括所述第三消息标识符;
未使用记录,包括所述第一消息标识符和所述第四消息标识符。
6.根据权利要求2所述的方法,其特征在于,所述根据所述第一列表和所述第二列表,执行第一操作,还包括:
将所述第二列表中被第一代码使用的消息标识符标注为已使用,未被所述第一代码使用的消息标识标注为未使用,所述第一代码为所述第一文档对应的代码;
在所述将所述第i个消息标识符及其对应的消息内容注册到所述第一配置文件中之后,将所述第i个消息标识符标注为更新和未使用;
在所述将所述第i个消息标识符在所述第二列表中对应的消息内容更新为其在所述第一列表中对应的消息内容之后,将所述第i个消息标识符标注为更新;
根据所述第一列表,执行与所述M个消息标识符一一对应的M次第二迭代检查;
其中,所述M次迭代检查中与第j个消息标识符对应的第j次迭代检查包括:
检查所述第j个消息标识符在所述第一列表中是否存在,j为大于或等于1,小于或等于M的整数;
在所述第j个消息标识符在所述第一列表中不存在的情况下,将所述第j个消息标识符标注为未定义;
所述方法还包括:
将标注为更新的消息标识符记录到第一报告的更新记录中;
将标注为未使用的消息标识符记录到所述第一报告的未使用记录中;
将标注为未定义的消息标识符记录到所述第一报告的未定义记录中;
输出所述第一报告。
7.根据权利要求4所述的方法,其特征在于,每个所述对象还包括:
使用字段,用于填写其对应的消息标识符是否在第一代码中使用,所述第一代码为所述第一文档对应的代码;
更新字段,用于填写其对应的消息标识符是否更新;
定义字段,用于填写其对应的消息标识符是否在所述第一文档中定义;
所述根据所述P个对象,执行第一操作之后,还包括:
将所述更新字段为真值的对象对应的消息标识符记录到第一报告的更新记录中;
将所述使用字段为假值的对象对应的消息标识符记录到所述第一报告的未使用记录中;
将所述定义字段为假值的对象对应的消息标识符记录到所述第一报告的未定义记录中;
输出所述第一报告。
8.根据权利要求7所述的方法,其特征在于,所述根据获取到的消息标识符及其对应的消息内容,创建与获取到的P个消息标识符一一对应的P个对象,还包括:
在所述创建与所述N个消息标识符一一对应的N个对象之后,将所述N个对象的所述定义字段设置为真值,所述使用字段和所述更新字段设置为假值;
在所述创建所述第k对象之后,将所述第k对象的所述定义字段、所述使用字段和所述更新字段均设置为假值;
将与所述第一代码中的消息标识符对应的对象的所述使用字段更新为真值;
在所述将所述第t个对象的所述消息标识符字段和所述第一消息内容字段中的内容注册到所述第一配置文件中之后,将所述第t个对象的所述更新字段更新为真值;
在所述将所述第一配置文件中第t消息标识符对应的消息内容更新为所述第t个对象的所述第一消息内容字段中的内容之后,将所述第t个对象的所述更新字段更新为真值。
9.根据权利要求1所述的方法,其特征在于,所述分别获取第一文档和第一配置文件中的消息标识符及其对应的消息内容之前,还包括:
获取第一文档对应的第一语言种类;
从至少两个配置文件中确定与所述第一语言种类对应的第一配置文件,其中,所述至少两个配置文件均为所述第一文档对应的配置文件,且所述至少两个配置文件对应的语言种类均不同。
10.一种消息处理装置,其特征在于,所述装置包括:
第一获取模块,用于分别获取第一文档和第一配置文件中的消息标识符及其对应的消息内容,所述第一配置文件为所述第一文档对应的配置文件,所述消息内容包括以下至少一项:消息主体、消息的严重程度、消息的公开程度、消息的最大打印次数;
执行模块,用于根据获取到的消息标识符及其对应的消息内容,执行第一操作;
其中,所述第一操作包括将第一消息标识符及其对应的消息内容注册到所述第一配置文件中,所述第一消息标识符为存在于所述第一文档但不存在于所述第一配置文件的消息标识符;
将所述第一配置文件中第二消息标识符对应的消息内容更新为所述第二消息标识符在所述第一文档中对应的消息内容,所述第二消息标识符为存在于所述第一文档和所述第一配置文件的消息标识符,但其在所述第一文档对应的消息内容和其在所述第一配置文件对应的消息内容不一致;
所述执行模块,包括:
第一创建子模块,用于根据获取到的消息标识符及其对应的消息内容,创建第一列表和第二列表,所述第一列表包括从所述第一文档中获取到的消息标识符及其消息内容,所述第二列表包括从所述第一配置文件中获取到的消息标识符及其消息内容;
第一执行子模块,用于根据所述第一列表和所述第二列表,执行第一操作;
或者,
所述执行模块,包括:
第二创建子模块,用于根据获取到的消息标识符及其对应的消息内容,创建与获取到的P个消息标识符一一对应的P个对象,P为正整数;
第二执行子模块,用于根据所述P个对象,执行第一操作;
其中,每个所述对象包括:
消息标识符字段,用于填写其对应的消息标识符;
第一消息内容字段,用于填写其对应的消息标识符在所述第一文档中的消息内容;
第二消息内容字段,用于填写其对应的消息标识符在所述第一配置文件中的消息内容。
11.一种消息处理设备,其特征在于,所述设备包括:处理器以及存储有计算机程序指令的存储器;所述处理器执行所述计算机程序指令时实现如权利要求1至9中任意一项所述的消息处理方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1至9中任意一项所述的消息处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210797930.9A CN114895987B (zh) | 2022-07-08 | 2022-07-08 | 消息处理方法、装置、设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210797930.9A CN114895987B (zh) | 2022-07-08 | 2022-07-08 | 消息处理方法、装置、设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114895987A CN114895987A (zh) | 2022-08-12 |
CN114895987B true CN114895987B (zh) | 2022-09-30 |
Family
ID=82729624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210797930.9A Active CN114895987B (zh) | 2022-07-08 | 2022-07-08 | 消息处理方法、装置、设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114895987B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107835204A (zh) * | 2016-09-16 | 2018-03-23 | 苹果公司 | 配置文件策略规则的安全控制 |
CN110999264A (zh) * | 2017-07-13 | 2020-04-10 | 艾玛迪斯简易股份公司 | 用于将消息内容集成到目标数据处理设备中的系统和方法 |
CN111049729A (zh) * | 2019-11-29 | 2020-04-21 | 苏州浪潮智能科技有限公司 | 一种持久化消息传输方法与装置 |
CN111930543A (zh) * | 2020-09-23 | 2020-11-13 | 北京精准沟通传媒科技股份有限公司 | 项目管理中间件、项目管理方法以及计算机设备 |
CN113138864A (zh) * | 2020-01-19 | 2021-07-20 | 华为技术有限公司 | 消息通信方法、计算机系统及代理装置 |
CN113448809A (zh) * | 2020-03-24 | 2021-09-28 | 伊姆西Ip控股有限责任公司 | 管理应用系统中的消息的方法、设备和计算机程序产品 |
CN113986576A (zh) * | 2021-10-25 | 2022-01-28 | 珠海金山网络游戏科技有限公司 | 消息处理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10698793B2 (en) * | 2018-08-23 | 2020-06-30 | International Business Machines Corporation | Function-message oriented test case generation for supporting continuous globalization verification testing |
-
2022
- 2022-07-08 CN CN202210797930.9A patent/CN114895987B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107835204A (zh) * | 2016-09-16 | 2018-03-23 | 苹果公司 | 配置文件策略规则的安全控制 |
CN110999264A (zh) * | 2017-07-13 | 2020-04-10 | 艾玛迪斯简易股份公司 | 用于将消息内容集成到目标数据处理设备中的系统和方法 |
CN111049729A (zh) * | 2019-11-29 | 2020-04-21 | 苏州浪潮智能科技有限公司 | 一种持久化消息传输方法与装置 |
CN113138864A (zh) * | 2020-01-19 | 2021-07-20 | 华为技术有限公司 | 消息通信方法、计算机系统及代理装置 |
CN113448809A (zh) * | 2020-03-24 | 2021-09-28 | 伊姆西Ip控股有限责任公司 | 管理应用系统中的消息的方法、设备和计算机程序产品 |
CN111930543A (zh) * | 2020-09-23 | 2020-11-13 | 北京精准沟通传媒科技股份有限公司 | 项目管理中间件、项目管理方法以及计算机设备 |
CN113986576A (zh) * | 2021-10-25 | 2022-01-28 | 珠海金山网络游戏科技有限公司 | 消息处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114895987A (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111090641B (zh) | 数据处理方法及装置、电子设备、存储介质 | |
CN108536435B (zh) | 一种自动生成can通信代码的方法 | |
CN112084109A (zh) | 系统测试方法、装置、设备及介质 | |
CN115952760B (zh) | 一种数模电路仿真方法、装置、设备及计算机存储介质 | |
CN113190220A (zh) | Json文件差异化对比方法及装置 | |
CN111522741A (zh) | 接口测试代码生成方法、装置、电子设备及可读存储介质 | |
CN115630036A (zh) | 报错信息处理方法、装置、设备、存储介质和程序产品 | |
KR20120072130A (ko) | 오토사 메타 파일 기반 기본 소프트웨어 속성값 검사 장치 및 방법 | |
CN111400992A (zh) | 一种自动化验证装箱布局布线的测试方法及系统 | |
CN115269439A (zh) | 数据处理系统的测试方法、装置、设备和可读存储介质 | |
CN113392000B (zh) | 测试用例执行结果分析方法、装置、设备及存储介质 | |
CN114895987B (zh) | 消息处理方法、装置、设备及计算机存储介质 | |
CN113761879B (zh) | 报文格式校验方法、装置以及存储介质 | |
CN110543641B (zh) | 一种中外文信息对比方法及装置 | |
CN114510902B (zh) | 仿真结果的验证方法、装置、设备及计算机存储介质 | |
CN114201177A (zh) | 文件生成方法、装置、电子设备、介质和计算机程序产品 | |
CN112631852B (zh) | 宏检查方法、装置、电子设备和计算机可读存储介质 | |
CN112733199A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN114091391A (zh) | 芯片验证方法、装置、设备和存储介质 | |
CN107196789B (zh) | 一种校验基站参数的方法和装置 | |
CN117891500A (zh) | 接口文档的生成方法、装置、设备、存储介质及程序产品 | |
CN117827883A (zh) | Sql语句的检测方法、装置、设备、介质及程序产品 | |
CN112306961B (zh) | 日志处理方法、装置、设备及存储介质 | |
CN115826928B (zh) | 程序生成方法、系统、电子设备及计算机可读存储介质 | |
CN114168564A (zh) | 数据处理方法、装置、设备及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |