• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3# Copyright (c) 2023 Huawei Device Co., Ltd.
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#     http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
16import enum
17
18operation_mark_dict = {
19    'ADD_FILE': '新增文件',
20    'REDUCE_FILE': '删除文件',
21    'ADD_API': '新增API',
22    'REDUCE_API': '删除API',
23    'ADD_DOC': '增加doc',
24    'REDUCE_DOC': '删除doc',
25    'ADD_DOC_TAG': '增加注释标签',
26    'REDUCE_DOC_TAG': '删除注释标签',
27    'FUNCTION_PARAM_POS_CHANGE': '函数参数位置改变',
28
29    'DEFINE_NAME_CHANGE': '修改宏名',
30    'DEFINE_TEXT_CHANGE': '修改宏文本',
31
32    'FUNCTION_NAME_CHANGE': '修改函数名',
33    'FUNCTION_RETURN_CHANGE': '修改函数返回值',
34    'FUNCTION_PARAM_NAME_CHANGE': '修改函数参数名',
35    'FUNCTION_PARAM_TYPE_CHANGE': '修改函数参数类型',
36    'FUNCTION_PARAM_ADD': '增加函数参数',
37    'FUNCTION_PARAM_REDUCE': '删除函数参数',
38
39    'STRUCT_NAME_CHANGE': '修改结构体名',
40    'STRUCT_MEMBER_NAME_CHANGE': '修改结构体成员名',
41    'STRUCT_MEMBER_TYPE_CHANGE': '修改结构体成员类型',
42    'STRUCT_MEMBER_ADD': '增加结构体成员',
43    'STRUCT_MEMBER_REDUCE': '删除结构体成员',
44
45    'UNION_NAME_CHANGE': '修改联合体名',
46    'UNION_MEMBER_NAME_CHANGE': '修改联合体成员名',
47    'UNION_MEMBER_TYPE_CHANGE': '修改联合体成员类型',
48    'UNION_MEMBER_ADD': '增加联合体成员',
49    'UNION_MEMBER_REDUCE': '删除联合体成员',
50
51    'ENUM_NAME_CHANGE': '修改枚举名',
52    'ENUM_MEMBER_NAME_CHANGE': '修改枚举成员名',
53    'ENUM_MEMBER_VALUE_CHANGE': '修改枚举值',
54    'ENUM_MEMBER_ADD': '增加枚举成员',
55    'ENUM_MEMBER_REDUCE': '删除枚举成员',
56
57    'VARIABLE_NAME_CHANGE': '修改变量名',
58    'VARIABLE_TYPE_CHANGE': '修改变量类型',
59    'VARIABLE_VALUE_CHANGE': '修改变量值',
60    'VARIABLE_CHANGE_TO_CONSTANT': '修改变量为常量',
61
62    'CONSTANT_NAME_CHANGE': '修改常量名',
63    'CONSTANT_TYPE_CHANGE': '修改常量类型',
64    'CONSTANT_VALUE_CHANGE': '修改常量值',
65    'CONSTANT_CHANGE_TO_VARIABLE': '修改常量为变量',
66
67    'TYPEDEF_NAME_TYPE_CHANGE': '修改重命名的名',
68
69    'DOC_TAG_ADDTOGROUP_NA_TO_HAVE': '增加addtogroup标签',
70    'DOC_TAG_ADDTOGROUP_HAVE_TO_NA': '删除addtogroup标签',
71    'DOC_TAG_ADDTOGROUP_A_TO_B': '修改addtogroup标签',
72    'DOC_TAG_BRIEF_NA_TO_HAVE': '增加brief标签',
73    'DOC_TAG_BRIEF_HAVE_TO_NA': '删除brief标签',
74    'DOC_TAG_BRIEF_A_TO_B': '修改brief标签',
75    'DOC_TAG_DEPRECATED_NA_TO_HAVE': '增加deprecated标签',
76    'DOC_TAG_DEPRECATED_HAVE_TO_NA': '删除deprecated标签',
77    'DOC_TAG_DEPRECATED_A_TO_B': '修改deprecated标签',
78    'DOC_TAG_FILE_NA_TO_HAVE': '增加file标签',
79    'DOC_TAG_FILE_HAVE_TO_NA': '删除file标签',
80    'DOC_TAG_FILE_A_TO_B': '修改file标签',
81    'DOC_TAG_LIBRARY_NA_TO_HAVE': '增加library标签',
82    'DOC_TAG_LIBRARY_HAVE_TO_NA': '删除library标签',
83    'DOC_TAG_LIBRARY_A_TO_B': '修改library标签',
84    'DOC_TAG_PARAM_NA_TO_HAVE': '增加param标签',
85    'DOC_TAG_PARAM_HAVE_TO_NA': '删除param标签',
86    'DOC_TAG_PARAM_NAME_A_TO_B': '修改param标签',
87    'DOC_TAG_PARAM_A_TO_B': '修改param标签值',
88    'DOC_TAG_PERMISSION_NA_TO_HAVE': '增加permission标签',
89    'DOC_TAG_PERMISSION_HAVE_TO_NA': '删除permission标签',
90    'DOC_TAG_PERMISSION_RANGE_BIGGER': '权限变大',
91    'DOC_TAG_PERMISSION_RANGE_SMALLER': '权限变小',
92    'DOC_TAG_PERMISSION_RANGE_CHANGE': '修改权限',
93    'DOC_TAG_SINCE_NA_TO_HAVE': '增加since标签',
94    'DOC_TAG_SINCE_HAVE_TO_NA': '删除since标签',
95    'DOC_TAG_SINCE_A_TO_B': '修改since标签',
96    'DOC_TAG_SYSCAP_NA_TO_HAVE': '增加syscap标签',
97    'DOC_TAG_SYSCAP_HAVE_TO_NA': '删除syscap标签',
98    'DOC_TAG_SYSCAP_A_TO_B': '修改syscap标签',
99    'DOC_TAG_LEFT_BRACE_NA_TO_HAVE': '增加{标签',
100    'DOC_TAG_LEFT_BRACE_HAVE_TO_NA': '删除{标签',
101    'DOC_TAG_RIGHT_BRACE_NA_TO_HAVE': '增加}标签',
102    'DOC_TAG_RIGHT_BRACE_HAVE_TO_NA': '删除}标签',
103    'DOC_TAG_ADDTOGROUP_INCREASE': '文件有addtogroup标签, 增加addtogroup标签',
104    'DOC_TAG_ADDTOGROUP_DECREASE': '文件有多个addtogroup标签,删除addtogroup标签',
105    'DOC_TAG_FILE_INCREASE': '文件有file标签, 增加file标签',
106    'DOC_TAG_FILE_DECREASE': '文件有多个file标签,删除file标签',
107}
108
109
110class Scene(enum.Enum):
111    FUNCTION_DECL = 'FUNCTION_DECL'
112    MACRO_DEFINITION = 'MACRO_DEFINITION'
113    STRUCT_DECL = 'STRUCT_DECL'
114    UNION_DECL = 'UNION_DECL'
115    ENUM_DECL = 'ENUM_DECL'
116    VAR_DECL = 'VAR_DECL'
117    TYPEDEF_DECL = 'TYPEDEF_DECL'
118    TRANSLATION_UNIT = 'TRANSLATION_UNIT'
119
120
121class TAGS(enum.Enum):
122    ADD_TO_GROUP = 'addtogroup'
123    BRIEF = 'brief'
124    DEPRECATED = 'deprecated'
125    FILE = 'file'
126    LIBRARY = 'library'
127    PARAM = 'param'
128    PERMISSION = 'permission'
129    RETURN = 'return'
130    SINCE = 'since'
131    SYSCAP = 'syscap'
132    LEFT_BRACE = '{'
133    RIGHT_BRACE = '}'
134
135
136class DiffType(enum.Enum):
137    DEFAULT = ''
138    ADD_FILE = 'add file'
139    REDUCE_FILE = 'delete file'
140    ADD_API = 'add api'
141    REDUCE_API = 'delete api'
142    ADD_DOC = 'add doc'
143    REDUCE_DOC = 'delete doc'
144    ADD_DOC_TAG = 'add doc tag'
145    REDUCE_DOC_TAG = 'delete doc tag'
146    FUNCTION_PARAM_POS_CHANGE = 'change param site in function'
147
148    DEFINE_NAME_CHANGE = 'change define name'
149    DEFINE_TEXT_CHANGE = 'change define text'
150
151    FUNCTION_NAME_CHANGE = 'change function name'
152    FUNCTION_RETURN_CHANGE = 'change function return value'
153    FUNCTION_PARAM_NAME_CHANGE = 'change param name in function'
154    FUNCTION_PARAM_TYPE_CHANGE = 'change param type in function'
155    FUNCTION_PARAM_ADD = 'add param in function'
156    FUNCTION_PARAM_REDUCE = 'delete param in function'
157
158    STRUCT_NAME_CHANGE = 'change struct name'
159    STRUCT_MEMBER_NAME_CHANGE = 'change member name in struct'
160    STRUCT_MEMBER_TYPE_CHANGE = 'change member type in struct'
161    STRUCT_MEMBER_ADD = 'add member in struct'
162    STRUCT_MEMBER_REDUCE = 'delete member in struct'
163
164    UNION_NAME_CHANGE = 'change union name'
165    UNION_MEMBER_NAME_CHANGE = 'change member name in union'
166    UNION_MEMBER_TYPE_CHANGE = 'change member type in union'
167    UNION_MEMBER_ADD = 'add member in union'
168    UNION_MEMBER_REDUCE = 'delete member in union'
169
170    ENUM_NAME_CHANGE = 'change enum name'
171    ENUM_MEMBER_NAME_CHANGE = 'change member name in enum'
172    ENUM_MEMBER_VALUE_CHANGE = 'change member value in enum'
173    ENUM_MEMBER_ADD = 'add member in enum'
174    ENUM_MEMBER_REDUCE = 'delete member in enum'
175
176    VARIABLE_NAME_CHANGE = 'change variable name'
177    VARIABLE_TYPE_CHANGE = 'change variable type'
178    VARIABLE_VALUE_CHANGE = 'change variable value'
179    VARIABLE_CHANGE_TO_CONSTANT = 'change variable to constant'
180
181    CONSTANT_NAME_CHANGE = 'change constant name'
182    CONSTANT_TYPE_CHANGE = 'change constant type'
183    CONSTANT_VALUE_CHANGE = 'change constant value'
184    CONSTANT_CHANGE_TO_VARIABLE = 'change constant to variable'
185
186    TYPEDEF_NAME_TYPE_CHANGE = 'change typedef name type'
187
188    DOC_TAG_ADDTOGROUP_NA_TO_HAVE = 'add addtogroup tag'
189    DOC_TAG_ADDTOGROUP_HAVE_TO_NA = 'delete addtogroup tag'
190    DOC_TAG_ADDTOGROUP_A_TO_B = 'change addtogroup tag'
191    DOC_TAG_BRIEF_NA_TO_HAVE = 'add brief tag'
192    DOC_TAG_BRIEF_HAVE_TO_NA = 'delete brief tag'
193    DOC_TAG_BRIEF_A_TO_B = 'change brief tag'
194    DOC_TAG_DEPRECATED_NA_TO_HAVE = 'add deprecated tag'
195    DOC_TAG_DEPRECATED_HAVE_TO_NA = 'delete deprecated tag'
196    DOC_TAG_DEPRECATED_A_TO_B = 'change deprecated tag'
197    DOC_TAG_FILE_NA_TO_HAVE = 'add file tag'
198    DOC_TAG_FILE_HAVE_TO_NA = 'delete file tag'
199    DOC_TAG_FILE_A_TO_B = 'change file tag'
200    DOC_TAG_LIBRARY_NA_TO_HAVE = 'add library tag'
201    DOC_TAG_LIBRARY_HAVE_TO_NA = 'delete library tag'
202    DOC_TAG_LIBRARY_A_TO_B = 'change library tag'
203    DOC_TAG_PARAM_NA_TO_HAVE = 'add param tag'
204    DOC_TAG_PARAM_HAVE_TO_NA = 'delete param tag'
205    DOC_TAG_PARAM_NAME_A_TO_B = 'change param tag name'
206    DOC_TAG_PARAM_A_TO_B = 'change param tag value'
207    DOC_TAG_PERMISSION_NA_TO_HAVE = 'add permission tag'
208    DOC_TAG_PERMISSION_HAVE_TO_NA = 'delete permission tag'
209    DOC_TAG_PERMISSION_RANGE_BIGGER = 'increased permissions, ex: add "or" or remove "and"'
210    DOC_TAG_PERMISSION_RANGE_SMALLER = 'reduced permissions, ex: add "and" or remove "or"'
211    DOC_TAG_PERMISSION_RANGE_CHANGE = 'change permissions, before not included after and after not included before'
212    DOC_TAG_SINCE_NA_TO_HAVE = 'add since tag'
213    DOC_TAG_SINCE_HAVE_TO_NA = 'delete since tag'
214    DOC_TAG_SINCE_A_TO_B = 'change since tag'
215    DOC_TAG_SYSCAP_NA_TO_HAVE = 'add syscap tag'
216    DOC_TAG_SYSCAP_HAVE_TO_NA = 'delete syscap tag'
217    DOC_TAG_SYSCAP_A_TO_B = 'change syscap tag'
218    DOC_TAG_LEFT_BRACE_NA_TO_HAVE = 'add { tag'
219    DOC_TAG_LEFT_BRACE_HAVE_TO_NA = 'delete { tag'
220    DOC_TAG_RIGHT_BRACE_NA_TO_HAVE = 'add } tag'
221    DOC_TAG_RIGHT_BRACE_HAVE_TO_NA = 'delete } tag'
222    DOC_TAG_ADDTOGROUP_INCREASE = 'The file has addtogroup tag, add the addtogroup tag'
223    DOC_TAG_ADDTOGROUP_DECREASE = 'The file has multiple addtogroup tags. Delete the addtogroup tag'
224    DOC_TAG_FILE_INCREASE = 'The file has file tag, add the file tag'
225    DOC_TAG_FILE_DECREASE = 'The file has multiple file tags. Delete the file tag'
226
227
228compatible_list = [
229    DiffType.ADD_API,
230    DiffType.ADD_DOC,
231    DiffType.ADD_DOC_TAG,
232    DiffType.FUNCTION_PARAM_NAME_CHANGE,
233    DiffType.DOC_TAG_ADDTOGROUP_NA_TO_HAVE,
234    DiffType.DOC_TAG_ADDTOGROUP_HAVE_TO_NA,
235    DiffType.DOC_TAG_ADDTOGROUP_A_TO_B,
236    DiffType.DOC_TAG_BRIEF_NA_TO_HAVE,
237    DiffType.DOC_TAG_BRIEF_HAVE_TO_NA,
238    DiffType.DOC_TAG_BRIEF_A_TO_B,
239    DiffType.DOC_TAG_DEPRECATED_NA_TO_HAVE,
240    DiffType.DOC_TAG_DEPRECATED_HAVE_TO_NA,
241    DiffType.DOC_TAG_DEPRECATED_A_TO_B,
242    DiffType.DOC_TAG_FILE_NA_TO_HAVE,
243    DiffType.DOC_TAG_FILE_HAVE_TO_NA,
244    DiffType.DOC_TAG_FILE_A_TO_B,
245    DiffType.DOC_TAG_PARAM_A_TO_B,
246    DiffType.DOC_TAG_PERMISSION_HAVE_TO_NA,
247    DiffType.DOC_TAG_PERMISSION_RANGE_BIGGER,
248    DiffType.DOC_TAG_SINCE_NA_TO_HAVE,
249    DiffType.DOC_TAG_SINCE_A_TO_B,
250    DiffType.DOC_TAG_LEFT_BRACE_NA_TO_HAVE,
251    DiffType.DOC_TAG_LEFT_BRACE_HAVE_TO_NA,
252    DiffType.DOC_TAG_RIGHT_BRACE_NA_TO_HAVE,
253    DiffType.DOC_TAG_RIGHT_BRACE_HAVE_TO_NA,
254    DiffType.DOC_TAG_ADDTOGROUP_DECREASE,
255    DiffType.DOC_TAG_ADDTOGROUP_INCREASE,
256    DiffType.DOC_TAG_FILE_DECREASE,
257    DiffType.DOC_TAG_FILE_INCREASE
258]
259
260api_new_list = [DiffType.ADD_API]
261
262api_delete_list = [DiffType.REDUCE_API]
263
264non_api_change_list = [
265    DiffType.ADD_DOC,
266    DiffType.REDUCE_DOC,
267    DiffType.ADD_DOC_TAG,
268    DiffType.REDUCE_DOC_TAG
269]
270
271api_prototype_change_list = [
272    DiffType.DEFINE_NAME_CHANGE,
273    DiffType.DEFINE_TEXT_CHANGE,
274    DiffType.FUNCTION_PARAM_POS_CHANGE,
275    DiffType.FUNCTION_NAME_CHANGE,
276    DiffType.FUNCTION_RETURN_CHANGE,
277    DiffType.FUNCTION_PARAM_NAME_CHANGE,
278    DiffType.FUNCTION_PARAM_TYPE_CHANGE,
279    DiffType.FUNCTION_PARAM_REDUCE,
280    DiffType.FUNCTION_PARAM_ADD,
281    DiffType.STRUCT_NAME_CHANGE,
282    DiffType.STRUCT_MEMBER_TYPE_CHANGE,
283    DiffType.STRUCT_MEMBER_NAME_CHANGE,
284    DiffType.STRUCT_MEMBER_ADD,
285    DiffType.STRUCT_MEMBER_REDUCE,
286    DiffType.UNION_MEMBER_TYPE_CHANGE,
287    DiffType.UNION_MEMBER_NAME_CHANGE,
288    DiffType.UNION_NAME_CHANGE,
289    DiffType.UNION_MEMBER_ADD,
290    DiffType.UNION_MEMBER_REDUCE,
291    DiffType.ENUM_NAME_CHANGE,
292    DiffType.ENUM_MEMBER_NAME_CHANGE,
293    DiffType.ENUM_MEMBER_VALUE_CHANGE,
294    DiffType.ENUM_MEMBER_ADD,
295    DiffType.ENUM_MEMBER_REDUCE,
296    DiffType.VARIABLE_NAME_CHANGE,
297    DiffType.VARIABLE_TYPE_CHANGE,
298    DiffType.VARIABLE_VALUE_CHANGE,
299    DiffType.VARIABLE_CHANGE_TO_CONSTANT,
300    DiffType.CONSTANT_NAME_CHANGE,
301    DiffType.CONSTANT_TYPE_CHANGE,
302    DiffType.CONSTANT_VALUE_CHANGE,
303    DiffType.CONSTANT_CHANGE_TO_VARIABLE,
304    DiffType.TYPEDEF_NAME_TYPE_CHANGE
305]
306
307api_constraint_change_list = [
308    DiffType.DOC_TAG_ADDTOGROUP_NA_TO_HAVE,
309    DiffType.DOC_TAG_ADDTOGROUP_HAVE_TO_NA,
310    DiffType.DOC_TAG_ADDTOGROUP_A_TO_B,
311    DiffType.DOC_TAG_BRIEF_NA_TO_HAVE,
312    DiffType.DOC_TAG_BRIEF_HAVE_TO_NA,
313    DiffType.DOC_TAG_BRIEF_A_TO_B,
314    DiffType.DOC_TAG_DEPRECATED_NA_TO_HAVE,
315    DiffType.DOC_TAG_DEPRECATED_HAVE_TO_NA,
316    DiffType.DOC_TAG_DEPRECATED_A_TO_B,
317    DiffType.DOC_TAG_FILE_NA_TO_HAVE,
318    DiffType.DOC_TAG_FILE_HAVE_TO_NA,
319    DiffType.DOC_TAG_FILE_A_TO_B,
320    DiffType.DOC_TAG_LIBRARY_NA_TO_HAVE,
321    DiffType.DOC_TAG_LIBRARY_HAVE_TO_NA,
322    DiffType.DOC_TAG_LIBRARY_A_TO_B,
323    DiffType.DOC_TAG_PARAM_NA_TO_HAVE,
324    DiffType.DOC_TAG_PARAM_HAVE_TO_NA,
325    DiffType.DOC_TAG_PARAM_NAME_A_TO_B,
326    DiffType.DOC_TAG_PARAM_A_TO_B,
327    DiffType.DOC_TAG_PERMISSION_NA_TO_HAVE,
328    DiffType.DOC_TAG_PERMISSION_HAVE_TO_NA,
329    DiffType.DOC_TAG_PERMISSION_RANGE_BIGGER,
330    DiffType.DOC_TAG_PERMISSION_RANGE_SMALLER,
331    DiffType.DOC_TAG_PERMISSION_RANGE_CHANGE,
332    DiffType.DOC_TAG_SINCE_NA_TO_HAVE,
333    DiffType.DOC_TAG_SINCE_A_TO_B,
334    DiffType.DOC_TAG_SYSCAP_NA_TO_HAVE,
335    DiffType.DOC_TAG_SYSCAP_HAVE_TO_NA,
336    DiffType.DOC_TAG_SYSCAP_A_TO_B,
337    DiffType.DOC_TAG_LEFT_BRACE_NA_TO_HAVE,
338    DiffType.DOC_TAG_LEFT_BRACE_HAVE_TO_NA,
339    DiffType.DOC_TAG_RIGHT_BRACE_NA_TO_HAVE,
340    DiffType.DOC_TAG_RIGHT_BRACE_HAVE_TO_NA,
341    DiffType.DOC_TAG_ADDTOGROUP_DECREASE,
342    DiffType.DOC_TAG_ADDTOGROUP_INCREASE,
343    DiffType.DOC_TAG_FILE_DECREASE,
344    DiffType.DOC_TAG_FILE_INCREASE
345]
346
347api_modification_type_dict = {
348    'api_new_list': 'API新增',
349    'api_delete_list': 'API删除',
350    'non_api_change_list': '非API变更',
351    'api_prototype_change_list': 'API修改(原型修改)',
352    'api_constraint_change_list': 'API修改(约束变化)'
353}
354
355
356class ApiInfo:
357    is_api_change = False
358
359    def set_is_api_change(self, is_api_change):
360        self.is_api_change = is_api_change
361
362    def get_is_api_change(self):
363        return self.is_api_change
364
365
366class DiffInfo:
367    api_name: str = ''
368    api_type: str = ''
369    diff_type: DiffType = DiffType.DEFAULT
370    diff_message: str = ''
371    old_api_full_text: str = ''
372    new_api_full_text: str = ''
373    api_line: int = 0
374    api_column: int = 0
375    api_file_path: str = ''
376    is_compatible = False
377    is_api_change = False
378    api_modification_type = ''
379    kit_name = ''
380    sub_system = ''
381    class_name = ''
382    api_node_name = ''
383    unique_id = ''
384    current_api_unique_id = ''
385    is_system_api = False
386    operation_diff_type: str = ''
387    old_differ_content: str = ''
388    new_differ_content: str = ''
389
390    def __init__(self, diff_type: DiffType, old_differ_content, new_differ_content):
391        self.diff_type = diff_type
392        self.diff_message = diff_type.value
393        self.set_diff_type(diff_type)
394        self.set_api_modification_type(diff_type)
395        self.set_operation_diff_type(diff_type)
396        self.old_differ_content = old_differ_content
397        self.new_differ_content = new_differ_content
398
399    def set_api_line(self, api_line):
400        self.api_line = api_line
401
402    def get_api_line(self):
403        return self.api_line
404
405    def set_api_column(self, api_column):
406        self.api_column = api_column
407
408    def get_api_column(self):
409        return self.api_column
410
411    def set_api_file_path(self, api_file_path):
412        self.api_file_path = api_file_path
413
414    def get_api_file_path(self):
415        return self.api_file_path
416
417    def set_api_name(self, api_name):
418        self.api_name = api_name
419
420    def get_api_name(self):
421        return self.api_name
422
423    def set_api_type(self, api_type):
424        self.api_type = api_type
425
426    def get_api_type(self):
427        return self.api_type
428
429    def set_diff_type(self, diff_type):
430        if diff_type in compatible_list:
431            self.is_compatible = True
432        self.diff_type = diff_type
433
434    def get_diff_type(self):
435        return self.diff_type
436
437    def set_diff_message(self, diff_message):
438        self.diff_message = diff_message
439
440    def get_diff_message(self):
441        return self.diff_message
442
443    def set_old_api_full_text(self, old_api_full_text):
444        self.old_api_full_text = old_api_full_text
445
446    def get_old_api_full_text(self):
447        return self.old_api_full_text
448
449    def set_new_api_full_text(self, new_api_full_text):
450        self.new_api_full_text = new_api_full_text
451
452    def get_new_api_full_text(self):
453        return self.new_api_full_text
454
455    def set_is_compatible(self, is_compatible):
456        self.is_compatible = is_compatible
457
458    def get_is_compatible(self):
459        return self.is_compatible
460
461    def set_is_api_change(self, is_api_change):
462        self.is_api_change = is_api_change
463
464    def get_is_api_change(self):
465        return self.is_api_change
466
467    def set_api_modification_type(self, diff_type):
468        if diff_type in api_new_list:
469            self.api_modification_type = api_modification_type_dict.get('api_new_list')
470        elif diff_type in api_delete_list:
471            self.api_modification_type = api_modification_type_dict.get('api_delete_list')
472        elif diff_type in non_api_change_list:
473            self.api_modification_type = api_modification_type_dict.get('non_api_change_list')
474        elif diff_type in api_prototype_change_list:
475            self.api_modification_type = api_modification_type_dict.get('api_prototype_change_list')
476        elif diff_type in api_constraint_change_list:
477            self.api_modification_type = api_modification_type_dict.get('api_constraint_change_list')
478
479    def get_api_modification_type(self):
480        return self.api_modification_type
481
482    def set_kit_name(self, kit_name):
483        self.kit_name = kit_name
484
485    def get_kit_name(self):
486        return self.kit_name
487
488    def set_sub_system(self, sub_system):
489        self.sub_system = sub_system
490
491    def get_sub_system(self):
492        return self.sub_system
493
494    def set_class_name(self, class_name):
495        self.class_name = class_name
496
497    def get_class_name(self):
498        return self.class_name
499
500    def set_api_node_name(self, api_node_name):
501        self.api_node_name = api_node_name
502
503    def get_api_node_name(self):
504        return self.api_node_name
505
506    def set_unique_id(self, unique_id):
507        self.unique_id = unique_id
508
509    def get_unique_id(self):
510        return self.unique_id
511
512    def set_current_api_unique_id(self, current_api_unique_id):
513        self.current_api_unique_id = current_api_unique_id
514
515    def get_current_api_unique_id(self):
516        return self.current_api_unique_id
517
518    def set_is_system_api(self, is_system_api):
519        self.is_system_api = is_system_api
520
521    def get_is_system_api(self):
522        return self.is_system_api
523
524    def set_operation_diff_type(self, diff_type):
525        if diff_type.name in operation_mark_dict:
526            self.operation_diff_type = operation_mark_dict.get(diff_type.name)
527
528    def get_operation_diff_type(self):
529        return self.operation_diff_type
530
531    def set_old_differ_content(self, old_differ_content):
532        self.old_differ_content = old_differ_content
533
534    def get_old_differ_content(self):
535        return self.old_differ_content
536
537    def set_new_differ_content(self, new_differ_content):
538        self.new_differ_content = new_differ_content
539
540    def get_new_differ_content(self):
541        return self.new_differ_content
542
543
544class OutputJson:
545    api_name: str = ''
546    api_type: str = ''
547    diff_type: str = ''
548    diff_message: str = ''
549    old_api_full_text: str = ''
550    new_api_full_text: str = ''
551    api_line: int = 0
552    api_column: int = 0
553    api_file_path: str = ''
554    is_compatible = False
555    is_api_change = False
556    api_modification_type = ''
557    kit_name = ''
558    sub_system = ''
559    class_name = ''
560    unique_id = ''
561    is_system_api = False
562
563    def __init__(self, diff_info):
564        self.api_name = diff_info.api_name
565        self.api_type = diff_info.api_type
566        self.diff_type = diff_info.operation_diff_type
567        self.diff_message = diff_info.diff_message
568        self.old_api_full_text = diff_info.old_api_full_text
569        self.new_api_full_text = diff_info.new_api_full_text
570        self.api_line = diff_info.api_line
571        self.api_column = diff_info.api_column
572        self.api_file_path = diff_info.api_file_path
573        self.is_compatible = diff_info.is_compatible
574        self.is_api_change = diff_info.is_api_change
575        self.api_modification_type = diff_info.api_modification_type
576        self.kit_name = diff_info.kit_name
577        self.sub_system = diff_info.sub_system
578        self.class_name = diff_info.class_name
579        self.unique_id = diff_info.unique_id
580        self.is_system_api = diff_info.is_system_api
581
582
583class ApiChangeData:
584    api_name: str = ''
585    kit_name: str = ''
586    sub_system: str = ''
587    is_api_change = False
588    class_name: str = ''
589    diff_type: str = ''
590    change_type: str = ''
591    compatible = {}
592    change_num = {}
593    old_all_text: str = ''
594    new_all_text: str = ''
595    compatible_total = False
596    unique_id: str = ''
597    is_system_api = False
598
599    def set_api_name(self, api_name):
600        self.api_name = api_name
601
602    def get_api_name(self):
603        return self.api_name
604
605    def set_kit_name(self, kit_name):
606        self.kit_name = kit_name
607
608    def get_kit_name(self):
609        return self.kit_name
610
611    def set_sub_system(self, sub_system):
612        self.sub_system = sub_system
613
614    def get_sub_system(self):
615        return self.sub_system
616
617    def set_is_api_change(self, is_api_change):
618        self.is_api_change = is_api_change
619
620    def get_is_api_change(self):
621        return self.is_api_change
622
623    def set_class_name(self, class_name):
624        self.class_name = class_name
625
626    def get_class_name(self):
627        return self.class_name
628
629    def set_diff_type(self, diff_type):
630        self.diff_type = diff_type
631
632    def get_diff_type(self):
633        return self.diff_type
634
635    def set_change_type(self, change_type):
636        self.change_type = change_type
637
638    def get_change_type(self):
639        return self.change_type
640
641    def set_compatible(self, compatible):
642        self.compatible = compatible
643
644    def get_compatible(self):
645        return self.compatible
646
647    def set_change_num(self, change_num):
648        self.change_num = change_num
649
650    def get_change_num(self):
651        return self.change_num
652
653    def set_old_all_text(self, old_all_text):
654        self.old_all_text = old_all_text
655
656    def get_old_all_text(self):
657        return self.old_all_text
658
659    def set_new_all_text(self, new_all_text):
660        self.new_all_text = new_all_text
661
662    def get_new_all_text(self):
663        return self.new_all_text
664
665    def set_compatible_total(self, compatible_total):
666        self.compatible_total = compatible_total
667
668    def get_compatible_total(self):
669        return self.compatible_total
670
671    def set_unique_id(self, unique_id):
672        self.unique_id = unique_id
673
674    def get_unique_id(self):
675        return self.unique_id
676
677    def set_is_system_api(self, is_system_api):
678        self.is_system_api = is_system_api
679
680    def get_is_system_api(self):
681        return self.is_system_api
682