44# This module contains definition of FileChecker class, which is
55# responsible for checking of model module content from .exml file.
66#
7- # COPYRIGHT: Copyright (C) 2021-2023 Kamil Deć github.com/deckamil
8- # DATE: 7 SEP 2023
7+ # COPYRIGHT: Copyright (C) 2021-2024 Kamil Deć github.com/deckamil
8+ # DATE: 26 FEB 2024
99#
1010# LICENSE:
1111# This file is part of Mod Code Generator (MCG).
@@ -55,7 +55,8 @@ class FileChecker(object):
5555 def __init__ (self , file_reader_list ):
5656
5757 # initialize object data
58- self .connection_list = file_reader_list [FileReader .CONNECTION_LIST_INDEX ]
58+ self .diagram_layer = file_reader_list [FileReader .DIAGRAM_LAYER_INDEX ]
59+ self .condition_layer_list = file_reader_list [FileReader .CONDITION_LAYER_LIST_INDEX ]
5960 self .input_interface_list = file_reader_list [FileReader .INPUT_INTERFACE_LIST_INDEX ]
6061 self .output_interface_list = file_reader_list [FileReader .OUTPUT_INTERFACE_LIST_INDEX ]
6162 self .local_interface_list = file_reader_list [FileReader .LOCAL_INTERFACE_LIST_INDEX ]
@@ -65,10 +66,28 @@ def __init__(self, file_reader_list):
6566 def check_connection_errors (self ):
6667
6768 # record info
68- Logger .save_in_log_file ("FileChecker" , "Looking for connection errors in .exml file " , False )
69+ Logger .save_in_log_file ("FileChecker" , "Looking for diagram layer connection errors " , False )
6970
70- # check action types in connections
71- for connection in self .connection_list :
71+ # search for connection errors under diagram layer
72+ FileChecker .check_connection_actions_from_layer (self .diagram_layer )
73+
74+ # record info
75+ Logger .save_in_log_file ("FileChecker" , "Looking for clause layer connection errors" , False )
76+
77+ # search for connection errors under clause layer
78+ for condition_layer in self .condition_layer_list :
79+ Logger .save_in_log_file ("FileChecker" , "Looking under " + str (condition_layer ) + " layer" , False )
80+ for clause_layer in condition_layer .clause_layer_list :
81+ Logger .save_in_log_file ("FileChecker" , "Looking under " + str (clause_layer ) + " layer" , False )
82+ FileChecker .check_connection_actions_from_layer (clause_layer )
83+
84+ # Description:
85+ # This method looks for connection errors related with actions from given layer.
86+ @staticmethod
87+ def check_connection_actions_from_layer (layer ):
88+
89+ # check action types
90+ for connection in layer .connection_list :
7291 # if action is connection source
7392 if connection .source_type == ActivityConnection .ACTION :
7493
@@ -116,7 +135,7 @@ def check_action_type(action_type_ref):
116135 def check_interface_errors (self ):
117136
118137 # record info
119- Logger .save_in_log_file ("FileChecker" , "Looking for interface errors in .exml file " , False )
138+ Logger .save_in_log_file ("FileChecker" , "Looking for module interface errors" , False )
120139
121140 # check interface element types in input interface
122141 for interface_element in self .input_interface_list :
0 commit comments