"""
mmclass_nt.py - Generated named tuples corresponding to each MM class
"""


from collections import namedtuple


# Each tuple below defines the name of a class and its attributes that must
# be filled in to insert an instance of that class in the db.
#
# The _i part means "instance".
#
# The list of attributes of each tuple matches the corresponding .xcm file in
# the metamodel directory. Do not edit this file as it is automatically generated each
# time the metamodel is rebuilt.




# Computation subsystem
Computation_Action_i = namedtuple('Computation_Action_i', 'ID Activity Domain Operator')
Operand_i = namedtuple('Operand_i', 'Flow Activity Domain Computation')
Computed_Result_i = namedtuple('Computed_Result_i', 'Computation Activity Domain Flow')

# Class And Attribute subsystem
Alias_i = namedtuple('Alias_i', 'Name Class Domain')
Attribute_i = namedtuple('Attribute_i', 'Name Class Domain Scalar')
Attribute_In_Derivation_i = namedtuple('Attribute_In_Derivation_i', 'Source_attribute Source_class Target_attribute Target_class Domain')
Attribute_Reference_i = namedtuple('Attribute_Reference_i', 'From_attribute From_class To_attribute To_class Domain To_identifier Ref Rnum')
Class_i = namedtuple('Class_i', 'Name Cnum Domain')
Classifier_Attribute_i = namedtuple('Classifier_Attribute_i', 'Type Superclass Generalization Identifier Attribute Domain')
Derived_Attribute_i = namedtuple('Derived_Attribute_i', 'Name Class Domain')
Identifier_i = namedtuple('Identifier_i', 'Number Class Domain')
Identifier_Attribute_i = namedtuple('Identifier_Attribute_i', 'Identifier Attribute Class Domain')
Irreducible_Identifier_i = namedtuple('Irreducible_Identifier_i', 'Number Class Domain')
Non_Derived_Attribute_i = namedtuple('Non_Derived_Attribute_i', 'Name Class Domain')
Subclass_Classification_Value_i = namedtuple('Subclass_Classification_Value_i', 'Value Superclass Subclass Generalization Domain')
Super_Identifier_i = namedtuple('Super_Identifier_i', 'Number Class Domain')

# Type subsystem
Model_Attribute_i = namedtuple('Model_Attribute_i', 'Name Non_scalar_type Domain')
Scalar_i = namedtuple('Scalar_i', 'Name Domain')
Table_i = namedtuple('Table_i', 'Name Domain')
Table_Attribute_i = namedtuple('Table_Attribute_i', 'Name Table Domain Scalar')
Type_i = namedtuple('Type_i', 'Name Domain')

# Navigation subsystem
Association_Hop_i = namedtuple('Association_Hop_i', 'Number Path Domain')
Asymmetric_Circular_Hop_i = namedtuple('Asymmetric_Circular_Hop_i', 'Number Path Domain')
Circular_Hop_i = namedtuple('Circular_Hop_i', 'Number Path Domain Aggregation')
From_Asymmetric_Association_Class_Hop_i = namedtuple('From_Asymmetric_Association_Class_Hop_i', 'Number Path Domain')
Association_Class_Hop_i = namedtuple('Association_Class_Hop_i', 'Number Path Domain')
From_Symmetric_Association_Class_Hop_i = namedtuple('From_Symmetric_Association_Class_Hop_i', 'Number Path Domain')
Generalization_Hop_i = namedtuple('Generalization_Hop_i', 'Number Path Domain')
Hop_i = namedtuple('Hop_i', 'Number Path Domain Rnum Class_step')
Ordinal_Hop_i = namedtuple('Ordinal_Hop_i', 'Number Path Domain Ascending')
Path_i = namedtuple('Path_i', 'Name Domain Dest_class')
Perspective_Hop_i = namedtuple('Perspective_Hop_i', 'Number Path Domain Side Rnum')
Straight_Hop_i = namedtuple('Straight_Hop_i', 'Number Path Domain')
To_Subclass_Hop_i = namedtuple('To_Subclass_Hop_i', 'Number Path Domain')
To_Superclass_Hop_i = namedtuple('To_Superclass_Hop_i', 'Number Path Domain')
Symmetric_Hop_i = namedtuple('Symmetric_Hop_i', 'Number Path Domain')
To_Association_Class_Hop_i = namedtuple('To_Association_Class_Hop_i', 'Number Path Domain')
Traverse_Action_i = namedtuple('Traverse_Action_i', 'ID Activity Domain Path Source_flow Destination_flow')

# Action subsystem
Action_i = namedtuple('Action_i', 'ID Activity Domain Type')
Flow_Dependency_i = namedtuple('Flow_Dependency_i', 'From_action To_action Activity Domain Flow')
Wave_i = namedtuple('Wave_i', 'Number Activity Domain')
Wave_Assignment_i = namedtuple('Wave_Assignment_i', 'Action Activity Domain Wave')

# Relationship subsystem
Association_i = namedtuple('Association_i', 'Rnum Domain')
Association_Class_i = namedtuple('Association_Class_i', 'Rnum Class Domain Multiplicity')
Asymmetric_Perspective_i = namedtuple('Asymmetric_Perspective_i', 'Side Rnum Domain')
Binary_Association_i = namedtuple('Binary_Association_i', 'Rnum Domain')
Class_In_Lineage_i = namedtuple('Class_In_Lineage_i', 'Class Lnum Domain')
Constrained_Loop_i = namedtuple('Constrained_Loop_i', 'CLnum Domain')
Facet_i = namedtuple('Facet_i', 'Rnum Class Domain')
Generalization_i = namedtuple('Generalization_i', 'Rnum Domain Superclass')
Lineage_i = namedtuple('Lineage_i', 'Lnum Domain')
Loop_Segment_i = namedtuple('Loop_Segment_i', 'Loop Rnum Domain')
Minimal_Partition_i = namedtuple('Minimal_Partition_i', 'Rnum Domain A_subclass B_subclass')
Ordinal_Relationship_i = namedtuple('Ordinal_Relationship_i', 'Rnum Domain Ranked_class Ranking_attribute Ranking_identifier Ascending_perspective Descending_perspective')
P_Perspective_i = namedtuple('P_Perspective_i', 'Side Rnum Domain')
Perspective_i = namedtuple('Perspective_i', 'Side Rnum Domain Viewed_class Phrase Conditional Multiplicity')
Relationship_i = namedtuple('Relationship_i', 'Rnum Domain')
Subclass_i = namedtuple('Subclass_i', 'Rnum Class Domain')
Superclass_i = namedtuple('Superclass_i', 'Rnum Domain Class')
Symmetric_Perspective_i = namedtuple('Symmetric_Perspective_i', 'Side Rnum Domain')
T_Perspective_i = namedtuple('T_Perspective_i', 'Side Rnum Domain')
Unary_Association_i = namedtuple('Unary_Association_i', 'Rnum Domain')

# Domain subsystem
Domain_i = namedtuple('Domain_i', 'Name Alias')
Domain_Partition_i = namedtuple('Domain_Partition_i', 'Number Domain')
Element_i = namedtuple('Element_i', 'Label Domain')
Modeled_Domain_i = namedtuple('Modeled_Domain_i', 'Name')
Realized_Domain_i = namedtuple('Realized_Domain_i', 'Name')
Spanning_Element_i = namedtuple('Spanning_Element_i', 'Label Domain')
Subsystem_i = namedtuple('Subsystem_i', 'Name First_element_number Domain Alias')
Subsystem_Element_i = namedtuple('Subsystem_Element_i', 'Label Domain Subsystem')
System_i = namedtuple('System_i', 'Name')

# Select Action subsystem
Identifier_Select_i = namedtuple('Identifier_Select_i', 'ID Activity Domain Identifier Class')
Many_Select_i = namedtuple('Many_Select_i', 'ID Activity Domain Output_flow')
Select_Action_i = namedtuple('Select_Action_i', 'ID Activity Domain Input_flow')
Single_Select_i = namedtuple('Single_Select_i', 'ID Activity Domain Output_flow')
Zero_One_Cardinality_Select_i = namedtuple('Zero_One_Cardinality_Select_i', 'ID Activity Domain')

# Event subsystem
Delegated_Event_i = namedtuple('Delegated_Event_i', 'Name Class Domain')
Delegation_On_Generalization_i = namedtuple('Delegation_On_Generalization_i', 'Delegated_event Superclass Domain Generalization')
Effective_Event_i = namedtuple('Effective_Event_i', 'Name State_model Domain')
Event_i = namedtuple('Event_i', 'Name State_model Domain')
Event_Specification_i = namedtuple('Event_Specification_i', 'Name State_model Domain State_signature')
Forwarded_Delegated_Event_i = namedtuple('Forwarded_Delegated_Event_i', 'Name Class Domain')
Forwarded_Effective_Event_i = namedtuple('Forwarded_Effective_Event_i', 'Name Class Domain')
Forwarded_Event_i = namedtuple('Forwarded_Event_i', 'Name Subclass Domain Superclass Generalization')
Monomorphic_Event_i = namedtuple('Monomorphic_Event_i', 'Name State_model Domain')
Monomorphic_Event_Specification_i = namedtuple('Monomorphic_Event_Specification_i', 'Name State_model Domain')
Polymorphic_Event_Specification_i = namedtuple('Polymorphic_Event_Specification_i', 'Name Class Domain')
Root_Delegated_Event_i = namedtuple('Root_Delegated_Event_i', 'Name Class Domain')

# Flow subsystem
Class_Accessor_i = namedtuple('Class_Accessor_i', 'Class Activity Domain Output_flow')
Control_Flow_i = namedtuple('Control_Flow_i', 'ID Activity Domain')
Data_Flow_i = namedtuple('Data_Flow_i', 'ID Activity Domain')
Flow_i = namedtuple('Flow_i', 'ID Activity Domain')
Gate_Action_i = namedtuple('Gate_Action_i', 'ID Activity Domain Output_flow')
Gate_Input_i = namedtuple('Gate_Input_i', 'Gate_action Input_flow Activity Domain')
Instance_Flow_i = namedtuple('Instance_Flow_i', 'ID Activity Domain Class')
Labeled_Flow_i = namedtuple('Labeled_Flow_i', 'ID Activity Domain Name')
Multiple_Instance_Flow_i = namedtuple('Multiple_Instance_Flow_i', 'ID Activity Domain')
Non_Scalar_Flow_i = namedtuple('Non_Scalar_Flow_i', 'ID Activity Domain')
Table_Flow_i = namedtuple('Table_Flow_i', 'ID Activity Domain')
Scalar_Flow_i = namedtuple('Scalar_Flow_i', 'ID Activity Domain Type')
Single_Instance_Flow_i = namedtuple('Single_Instance_Flow_i', 'ID Activity Domain')
Relation_Flow_i = namedtuple('Relation_Flow_i', 'ID Activity Domain Type')
Tuple_Flow_i = namedtuple('Tuple_Flow_i', 'ID Activity Domain')
Unlabeled_Flow_i = namedtuple('Unlabeled_Flow_i', 'ID Activity Domain')

# Attribute Access subsystem
Attribute_Read_Access_i = namedtuple('Attribute_Read_Access_i', 'Attribute Class Read_action Activity Domain Output_flow')
Attribute_Write_Access_i = namedtuple('Attribute_Write_Access_i', 'Attribute Class Write_action Activity Domain Input_flow')
Read_Action_i = namedtuple('Read_Action_i', 'ID Activity Domain Instance_flow')
Write_Action_i = namedtuple('Write_Action_i', 'ID Activity Domain Instance_flow')

# Formalization subsystem
Association_Class_Reference_i = namedtuple('Association_Class_Reference_i', 'Ref_type Association_class Participating_class Rnum Domain')
Association_Reference_i = namedtuple('Association_Reference_i', 'Ref_type From_class To_class Rnum Domain Perspective')
Formalizing_Class_Role_i = namedtuple('Formalizing_Class_Role_i', 'Rnum Class Domain')
Generalization_Reference_i = namedtuple('Generalization_Reference_i', 'Subclass Superclass Rnum Domain Ref_type')
Referring_Class_i = namedtuple('Referring_Class_i', 'Rnum Class Domain')
Reference_i = namedtuple('Reference_i', 'Ref From_class To_class Rnum Domain')
Simple_Association_Reference_i = namedtuple('Simple_Association_Reference_i', 'From_class To_class Rnum Domain Ref_type')
P_Reference_i = namedtuple('P_Reference_i', 'Association_class Participating_class Rnum Domain Ref_type')
T_Reference_i = namedtuple('T_Reference_i', 'Association_class Participating_class Rnum Domain Ref_type')

# Conditional Logic subsystem
Case_i = namedtuple('Case_i', 'Flow Activity Domain Switch_action')
Control_Dependency_i = namedtuple('Control_Dependency_i', 'Control_flow Action Activity Domain')
Decision_Action_i = namedtuple('Decision_Action_i', 'ID Activity Domain Predicate')
Decision_Input_i = namedtuple('Decision_Input_i', 'Decision_action Flow Activity Domain')
Emitter_i = namedtuple('Emitter_i', 'Output_flow Activity Domain')
Emitter_Input_i = namedtuple('Emitter_Input_i', 'Input_flow Output_flow Activity Domain')
Match_Value_i = namedtuple('Match_Value_i', 'Case_flow Activity Domain Value')
Result_i = namedtuple('Result_i', 'Decision Decision_action Flow Activity Domain')
Scalar_Switch_Action_i = namedtuple('Scalar_Switch_Action_i', 'ID Activity Domain Scalar_input')
Sequence_Flow_i = namedtuple('Sequence_Flow_i', 'Source_action Flow Activity Domain')
Subclass_Switch_Action_i = namedtuple('Subclass_Switch_Action_i', 'ID Activity Domain Superclass_instance Generalization')
Switch_Action_i = namedtuple('Switch_Action_i', 'ID Activity Domain')

# Activity subsystem
Activity_i = namedtuple('Activity_i', 'Anum Domain')
Asynchronous_Activity_i = namedtuple('Asynchronous_Activity_i', 'Anum Domain')
Method_i = namedtuple('Method_i', 'Anum Name Class Domain Executing_instance_flow')
Method_Signature_i = namedtuple('Method_Signature_i', 'SIGnum Method Class Domain')
Operation_Signature_i = namedtuple('Operation_Signature_i', 'SIGnum EE Operation Domain')
Parameter_i = namedtuple('Parameter_i', 'Name Signature Domain Input_flow Activity Type')
Signature_i = namedtuple('Signature_i', 'SIGnum Domain')
State_Activity_i = namedtuple('State_Activity_i', 'Anum State State_model Domain')
Synchronous_Activity_i = namedtuple('Synchronous_Activity_i', 'Anum Domain')
Synchronous_Output_i = namedtuple('Synchronous_Output_i', 'Anum Domain Output_flow Type')

# Relational Action subsystem
Class_Restriction_Condition_i = namedtuple('Class_Restriction_Condition_i', 'Select_action Activity Domain')
Criterion_i = namedtuple('Criterion_i', 'ID Action Activity Domain Attribute Non_scalar_type')
Comparison_Criterion_i = namedtuple('Comparison_Criterion_i', 'ID Action Activity Attribute Domain Value Comparison')
Equivalence_Criterion_i = namedtuple('Equivalence_Criterion_i', 'ID Action Activity Attribute Domain Operation Value Scalar')
Extend_Action_i = namedtuple('Extend_Action_i', 'ID Activity Domain Added_attribute Table Result')
Extract_Action_i = namedtuple('Extract_Action_i', 'ID Activity Domain Input_tuple Table Attribute Output_scalar')
Project_Action_i = namedtuple('Project_Action_i', 'ID Activity Domain')
Projected_Attribute_i = namedtuple('Projected_Attribute_i', 'Attribute Non_scalar_type Project_action Activity Domain')
Rank_Restrict_Action_i = namedtuple('Rank_Restrict_Action_i', 'ID Activity Domain Attribute Non_scalar_type Selection_cardinality Extent')
Relational_Action_i = namedtuple('Relational_Action_i', 'ID Activity Domain')
Rename_Action_i = namedtuple('Rename_Action_i', 'ID Activity Domain From_attribute From_non_scalar_type To_attribute To_table')
Restrict_Action_i = namedtuple('Restrict_Action_i', 'ID Activity Domain')
Restriction_Condition_i = namedtuple('Restriction_Condition_i', 'Action Activity Domain Expression Selection_cardinality')
Set_Action_i = namedtuple('Set_Action_i', 'ID Operation Activity Domain Input_b_flow')
Source_Tuple_Attribute_Access_i = namedtuple('Source_Tuple_Attribute_Access_i', 'Extend_action Model_attribute Non_scalar_type Activity Domain Flow')
Table_Action_i = namedtuple('Table_Action_i', 'ID Activity Domain Input_a_flow Output_flow')
Table_Restriction_Condition_i = namedtuple('Table_Restriction_Condition_i', 'Restrict_action Activity Domain')

# External Entity subsystem
Asynchronous_Operation_i = namedtuple('Asynchronous_Operation_i', 'Name EE Domain Anum')
External_Entity_i = namedtuple('External_Entity_i', 'EEnum Name Class Domain')
Operation_i = namedtuple('Operation_i', 'Name EE Domain Direction')
Synchronous_Operation_i = namedtuple('Synchronous_Operation_i', 'Name EE Domain Anum')

# State subsystem
Assigner_i = namedtuple('Assigner_i', 'Rnum Domain')
Deletion_State_i = namedtuple('Deletion_State_i', 'Name Class Domain')
Event_Response_i = namedtuple('Event_Response_i', 'State Event State_model Domain')
Initial_Pseudo_State_i = namedtuple('Initial_Pseudo_State_i', 'Name Class Domain')
Initial_Transition_i = namedtuple('Initial_Transition_i', 'From_state Class Domain Event')
Lifecycle_i = namedtuple('Lifecycle_i', 'Class Domain')
Multiple_Assigner_i = namedtuple('Multiple_Assigner_i', 'Rnum Domain Partitioning_class')
Non_Deletion_State_i = namedtuple('Non_Deletion_State_i', 'Name State_model Domain')
Non_Transition_i = namedtuple('Non_Transition_i', 'State Event State_model Domain Behavior Reason')
Real_State_i = namedtuple('Real_State_i', 'Name State_model Domain Signature Activity')
Single_Assigner_i = namedtuple('Single_Assigner_i', 'Rnum Domain')
State_i = namedtuple('State_i', 'Name State_model Domain')
State_Model_i = namedtuple('State_Model_i', 'Name Domain')
State_Signature_i = namedtuple('State_Signature_i', 'SIGnum State_model Domain')
Transition_i = namedtuple('Transition_i', 'From_state Event State_model Domain To_state')