@@ -266,8 +266,10 @@ def __init__(self,
266
266
'VARIABLE-ACCESS' : self ._read_variable_access ,
267
267
'EXECUTABLE-ENTITY-ACTIVATION-REASON' : self ._read_executable_entity_activation_reason ,
268
268
'EXCLUSIVE-AREA-REF-CONDITIONAL' : self ._read_exclusive_area_ref_conditional ,
269
+ 'DISABLED-MODE-IREF' : self ._read_rmode_in_atomic_swc_instance_ref ,
269
270
'SWC-INTERNAL-BEHAVIOR' : self ._read_swc_internal_behavior ,
270
271
'RUNNABLE-ENTITY' : self ._read_runnable_entity ,
272
+ 'INIT-EVENT' : self ._read_init_event ,
271
273
}
272
274
self .switcher_all = {}
273
275
self .switcher_all .update (self .switcher_collectable )
@@ -2606,6 +2608,28 @@ def _read_exclusive_area_nesting_order_ref(self,
2606
2608
dest_enum = ar_enum .xml_to_enum ('IdentifiableSubTypes' , data ['dest' ], self .schema_version )
2607
2609
return ar_element .ExclusiveAreaNestingOrderRef (xml_elem .text , dest_enum )
2608
2610
2611
+ def _read_abstract_required_port_prototype_ref (self ,
2612
+ xml_elem : ElementTree .Element
2613
+ ) -> ar_element .AbstractRequiredPortPrototypeRef :
2614
+ """
2615
+ Reads references to AR:ABSTRACT-REQUIRED-PORT-PROTOTYPE--SUBTYPES-ENUM
2616
+ """
2617
+ data = {}
2618
+ self ._read_base_ref_attributes (xml_elem .attrib , data )
2619
+ dest_enum = ar_enum .xml_to_enum ('IdentifiableSubTypes' , data ['dest' ], self .schema_version )
2620
+ return ar_element .AbstractRequiredPortPrototypeRef (xml_elem .text , dest_enum )
2621
+
2622
+ def _read_runnable_entity_ref (self ,
2623
+ xml_elem : ElementTree .Element
2624
+ ) -> ar_element .RunnableEntityRef :
2625
+ """
2626
+ Reads references to RUNNABLE-ENTITY--SUBTYPES-ENUM
2627
+ """
2628
+ data = {}
2629
+ self ._read_base_ref_attributes (xml_elem .attrib , data )
2630
+ dest_enum = ar_enum .xml_to_enum ('IdentifiableSubTypes' , data ['dest' ], self .schema_version )
2631
+ return ar_element .RunnableEntityRef (xml_elem .text , dest_enum )
2632
+
2609
2633
# --- Constant and value specifications
2610
2634
2611
2635
def _read_text_value_specification (self ,
@@ -4252,6 +4276,28 @@ def _read_swc_implementation_group(self, child_elements: ChildElementMap, data:
4252
4276
if xml_child is not None :
4253
4277
data ["required_rte_vendor" ] = xml_child .text
4254
4278
4279
+ def _read_rmode_in_atomic_swc_instance_ref (self ,
4280
+ xml_element : ElementTree .Element
4281
+ ) -> ar_element .RModeInAtomicSwcInstanceRef :
4282
+ """
4283
+ Reads complex type AR:R-MODE-IN-ATOMIC-SWC-INSTANCE-REF
4284
+ Tag variants: 'DISABLED-MODE-IREF' | 'MODE-IREF'
4285
+ """
4286
+ data = {}
4287
+ child_elements = ChildElementMap (xml_element )
4288
+ xml_child = child_elements .get ("CONTEXT-PORT-REF" )
4289
+ if xml_child is not None :
4290
+ data ["context_port_ref" ] = self ._read_abstract_required_port_prototype_ref (xml_child )
4291
+ xml_child = child_elements .get ("CONTEXT-MODE-DECLARATION-GROUP-PROTOTYPE-REF" )
4292
+ if xml_child is not None :
4293
+ child_element = self ._read_mode_declaration_group_prototype_ref (xml_child )
4294
+ data ["context_mode_declaration_group_prototype_ref" ] = child_element
4295
+ xml_child = child_elements .get ("TARGET-MODE-DECLARATION-REF" )
4296
+ if xml_child is not None :
4297
+ data ["target_mode_declaration_ref" ] = self ._read_mode_declaration_ref (xml_child )
4298
+ self ._report_unprocessed_elements (child_elements )
4299
+ return ar_element .RModeInAtomicSwcInstanceRef (** data )
4300
+
4255
4301
# --- Internal Behavior elements
4256
4302
4257
4303
def _read_variable_in_impl_data_instance_ref (self ,
@@ -4502,6 +4548,37 @@ def _read_runnable_entity_group(self, child_elements: ChildElementMap, data: dic
4502
4548
child_elements .skip ("WRITTEN-LOCAL-VARIABLES" )
4503
4549
child_elements .skip ("VARIATION-POINT" )
4504
4550
4551
+ def _read_rte_event (self , child_elements : ChildElementMap , data : dict ) -> None :
4552
+ """
4553
+ Reads group AR:RTE-EVENT
4554
+ """
4555
+ xml_child = child_elements .get ("DISABLED-MODE-IREFS" )
4556
+ if xml_child is not None :
4557
+ disabled_modes = []
4558
+ for xml_grand_child in xml_child .findall ("./DISABLED-MODE-IREF" ):
4559
+ disabled_modes .append (self ._read_rmode_in_atomic_swc_instance_ref (xml_grand_child ))
4560
+ data ["disabled_modes" ] = disabled_modes
4561
+ xml_child = child_elements .get ("START-ON-EVENT-REF" )
4562
+ if xml_child is not None :
4563
+ data ["start_on_event" ] = self ._read_runnable_entity_ref (xml_child )
4564
+ child_elements .skip ("VARIATION-POINT" ) # Not supported
4565
+
4566
+ def _read_init_event (self ,
4567
+ xml_element : ElementTree .Element
4568
+ ) -> ar_element .InitEvent :
4569
+ """
4570
+ Reads complex Type AR:INIT-EVENT
4571
+ Tag variants: 'INIT-EVENT''
4572
+ """
4573
+ data = {}
4574
+ child_elements = ChildElementMap (xml_element )
4575
+ self ._read_referrable (child_elements , data )
4576
+ self ._read_multi_language_referrable (child_elements , data )
4577
+ self ._read_identifiable (child_elements , xml_element .attrib , data )
4578
+ self ._read_rte_event (child_elements , data )
4579
+ self ._report_unprocessed_elements (child_elements )
4580
+ return ar_element .InitEvent (** data )
4581
+
4505
4582
def _read_swc_internal_behavior (self , xml_element : ElementTree .Element ) -> ar_element .SwcInternalBehavior :
4506
4583
"""
4507
4584
Reads complex type AR:SWC-INTERNAL-BEHAVIOR
0 commit comments