All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.ciera.tool.Core Maven / Gradle / Ivy

There is a newer version: 3.0.0-beta1
Show newest version
package io.ciera.tool;


import io.ciera.runtime.instanceloading.sql.util.SQL;
import io.ciera.runtime.instanceloading.sql.util.impl.SQLImpl;
import io.ciera.runtime.summit.application.IApplication;
import io.ciera.runtime.summit.application.IRunContext;
import io.ciera.runtime.summit.application.tasks.HaltExecutionTask;
import io.ciera.runtime.summit.classes.IModelInstance;
import io.ciera.runtime.summit.classes.IRelationshipSet;
import io.ciera.runtime.summit.classes.Relationship;
import io.ciera.runtime.summit.classes.RelationshipSet;
import io.ciera.runtime.summit.components.Component;
import io.ciera.runtime.summit.exceptions.BadArgumentException;
import io.ciera.runtime.summit.exceptions.EmptyInstanceException;
import io.ciera.runtime.summit.exceptions.ModelIntegrityException;
import io.ciera.runtime.summit.exceptions.XtumlException;
import io.ciera.runtime.summit.types.Date;
import io.ciera.runtime.summit.types.StringUtil;
import io.ciera.runtime.summit.types.UniqueId;
import io.ciera.runtime.summit.util.ARCH;
import io.ciera.runtime.summit.util.CMD;
import io.ciera.runtime.summit.util.LOG;
import io.ciera.runtime.summit.util.STRING;
import io.ciera.runtime.summit.util.TIM;
import io.ciera.runtime.summit.util.impl.ARCHImpl;
import io.ciera.runtime.summit.util.impl.CMDImpl;
import io.ciera.runtime.summit.util.impl.LOGImpl;
import io.ciera.runtime.summit.util.impl.STRINGImpl;
import io.ciera.runtime.summit.util.impl.TIMImpl;
import io.ciera.runtime.template.util.T;
import io.ciera.runtime.template.util.impl.TImpl;
import io.ciera.tool.core.architecture.application.Application;
import io.ciera.tool.core.architecture.application.ApplicationExecutor;
import io.ciera.tool.core.architecture.application.ApplicationExecutorSet;
import io.ciera.tool.core.architecture.application.ApplicationSet;
import io.ciera.tool.core.architecture.application.ComponentInstantiation;
import io.ciera.tool.core.architecture.application.ComponentInstantiationSet;
import io.ciera.tool.core.architecture.application.impl.ApplicationExecutorImpl;
import io.ciera.tool.core.architecture.application.impl.ApplicationExecutorSetImpl;
import io.ciera.tool.core.architecture.application.impl.ApplicationImpl;
import io.ciera.tool.core.architecture.application.impl.ApplicationSetImpl;
import io.ciera.tool.core.architecture.application.impl.ComponentInstantiationImpl;
import io.ciera.tool.core.architecture.application.impl.ComponentInstantiationSetImpl;
import io.ciera.tool.core.architecture.classes.Attribute;
import io.ciera.tool.core.architecture.classes.AttributeAccessor;
import io.ciera.tool.core.architecture.classes.AttributeAccessorSet;
import io.ciera.tool.core.architecture.classes.AttributeDerivation;
import io.ciera.tool.core.architecture.classes.AttributeDerivationSet;
import io.ciera.tool.core.architecture.classes.AttributeReference;
import io.ciera.tool.core.architecture.classes.AttributeReferenceSet;
import io.ciera.tool.core.architecture.classes.AttributeSet;
import io.ciera.tool.core.architecture.classes.ClassRelationship;
import io.ciera.tool.core.architecture.classes.ClassRelationshipSet;
import io.ciera.tool.core.architecture.classes.InstSet;
import io.ciera.tool.core.architecture.classes.InstSetSet;
import io.ciera.tool.core.architecture.classes.InstanceSelector;
import io.ciera.tool.core.architecture.classes.InstanceSelectorSet;
import io.ciera.tool.core.architecture.classes.ModelInst;
import io.ciera.tool.core.architecture.classes.ModelInstSet;
import io.ciera.tool.core.architecture.classes.Operation;
import io.ciera.tool.core.architecture.classes.OperationSet;
import io.ciera.tool.core.architecture.classes.Selector;
import io.ciera.tool.core.architecture.classes.SelectorSet;
import io.ciera.tool.core.architecture.classes.SetSelector;
import io.ciera.tool.core.architecture.classes.SetSelectorSet;
import io.ciera.tool.core.architecture.classes.impl.AttributeAccessorImpl;
import io.ciera.tool.core.architecture.classes.impl.AttributeAccessorSetImpl;
import io.ciera.tool.core.architecture.classes.impl.AttributeDerivationImpl;
import io.ciera.tool.core.architecture.classes.impl.AttributeDerivationSetImpl;
import io.ciera.tool.core.architecture.classes.impl.AttributeImpl;
import io.ciera.tool.core.architecture.classes.impl.AttributeReferenceImpl;
import io.ciera.tool.core.architecture.classes.impl.AttributeReferenceSetImpl;
import io.ciera.tool.core.architecture.classes.impl.AttributeSetImpl;
import io.ciera.tool.core.architecture.classes.impl.ClassRelationshipImpl;
import io.ciera.tool.core.architecture.classes.impl.ClassRelationshipSetImpl;
import io.ciera.tool.core.architecture.classes.impl.InstSetImpl;
import io.ciera.tool.core.architecture.classes.impl.InstSetSetImpl;
import io.ciera.tool.core.architecture.classes.impl.InstanceSelectorImpl;
import io.ciera.tool.core.architecture.classes.impl.InstanceSelectorSetImpl;
import io.ciera.tool.core.architecture.classes.impl.ModelInstImpl;
import io.ciera.tool.core.architecture.classes.impl.ModelInstSetImpl;
import io.ciera.tool.core.architecture.classes.impl.OperationImpl;
import io.ciera.tool.core.architecture.classes.impl.OperationSetImpl;
import io.ciera.tool.core.architecture.classes.impl.SelectorImpl;
import io.ciera.tool.core.architecture.classes.impl.SelectorSetImpl;
import io.ciera.tool.core.architecture.classes.impl.SetSelectorImpl;
import io.ciera.tool.core.architecture.classes.impl.SetSelectorSetImpl;
import io.ciera.tool.core.architecture.component.CardinalityCheck;
import io.ciera.tool.core.architecture.component.CardinalityCheckSet;
import io.ciera.tool.core.architecture.component.ComponentDefinition;
import io.ciera.tool.core.architecture.component.ComponentDefinitionSet;
import io.ciera.tool.core.architecture.component.Function;
import io.ciera.tool.core.architecture.component.FunctionSet;
import io.ciera.tool.core.architecture.component.InstancePopulationSelector;
import io.ciera.tool.core.architecture.component.InstancePopulationSelectorSet;
import io.ciera.tool.core.architecture.component.RelationshipPopulationSelector;
import io.ciera.tool.core.architecture.component.RelationshipPopulationSelectorSet;
import io.ciera.tool.core.architecture.component.Utility;
import io.ciera.tool.core.architecture.component.UtilityFunction;
import io.ciera.tool.core.architecture.component.UtilityFunctionSet;
import io.ciera.tool.core.architecture.component.UtilityReference;
import io.ciera.tool.core.architecture.component.UtilityReferenceSet;
import io.ciera.tool.core.architecture.component.UtilitySet;
import io.ciera.tool.core.architecture.component.impl.CardinalityCheckImpl;
import io.ciera.tool.core.architecture.component.impl.CardinalityCheckSetImpl;
import io.ciera.tool.core.architecture.component.impl.ComponentDefinitionImpl;
import io.ciera.tool.core.architecture.component.impl.ComponentDefinitionSetImpl;
import io.ciera.tool.core.architecture.component.impl.FunctionImpl;
import io.ciera.tool.core.architecture.component.impl.FunctionSetImpl;
import io.ciera.tool.core.architecture.component.impl.InstancePopulationSelectorImpl;
import io.ciera.tool.core.architecture.component.impl.InstancePopulationSelectorSetImpl;
import io.ciera.tool.core.architecture.component.impl.RelationshipPopulationSelectorImpl;
import io.ciera.tool.core.architecture.component.impl.RelationshipPopulationSelectorSetImpl;
import io.ciera.tool.core.architecture.component.impl.UtilityFunctionImpl;
import io.ciera.tool.core.architecture.component.impl.UtilityFunctionSetImpl;
import io.ciera.tool.core.architecture.component.impl.UtilityImpl;
import io.ciera.tool.core.architecture.component.impl.UtilityReferenceImpl;
import io.ciera.tool.core.architecture.component.impl.UtilityReferenceSetImpl;
import io.ciera.tool.core.architecture.component.impl.UtilitySetImpl;
import io.ciera.tool.core.architecture.expression.ActualParameter;
import io.ciera.tool.core.architecture.expression.ActualParameterSet;
import io.ciera.tool.core.architecture.expression.Any;
import io.ciera.tool.core.architecture.expression.AnySet;
import io.ciera.tool.core.architecture.expression.ArrayElementReference;
import io.ciera.tool.core.architecture.expression.ArrayElementReferenceSet;
import io.ciera.tool.core.architecture.expression.ArrayLengthAccess;
import io.ciera.tool.core.architecture.expression.ArrayLengthAccessSet;
import io.ciera.tool.core.architecture.expression.AttributeAccess;
import io.ciera.tool.core.architecture.expression.AttributeAccessSet;
import io.ciera.tool.core.architecture.expression.BinaryOperation;
import io.ciera.tool.core.architecture.expression.BinaryOperationSet;
import io.ciera.tool.core.architecture.expression.ConstantReference;
import io.ciera.tool.core.architecture.expression.ConstantReferenceSet;
import io.ciera.tool.core.architecture.expression.Creation;
import io.ciera.tool.core.architecture.expression.CreationSet;
import io.ciera.tool.core.architecture.expression.EnumeratorReference;
import io.ciera.tool.core.architecture.expression.EnumeratorReferenceSet;
import io.ciera.tool.core.architecture.expression.EventCreation;
import io.ciera.tool.core.architecture.expression.EventCreationSet;
import io.ciera.tool.core.architecture.expression.Expression;
import io.ciera.tool.core.architecture.expression.ExpressionSet;
import io.ciera.tool.core.architecture.expression.Invocation;
import io.ciera.tool.core.architecture.expression.InvocationSet;
import io.ciera.tool.core.architecture.expression.Literal;
import io.ciera.tool.core.architecture.expression.LiteralSet;
import io.ciera.tool.core.architecture.expression.MemberReference;
import io.ciera.tool.core.architecture.expression.MemberReferenceSet;
import io.ciera.tool.core.architecture.expression.NamedReference;
import io.ciera.tool.core.architecture.expression.NamedReferenceSet;
import io.ciera.tool.core.architecture.expression.ParameterReference;
import io.ciera.tool.core.architecture.expression.ParameterReferenceSet;
import io.ciera.tool.core.architecture.expression.ParenthesizedExpression;
import io.ciera.tool.core.architecture.expression.ParenthesizedExpressionSet;
import io.ciera.tool.core.architecture.expression.Promotion;
import io.ciera.tool.core.architecture.expression.PromotionSet;
import io.ciera.tool.core.architecture.expression.Select;
import io.ciera.tool.core.architecture.expression.SelectFromInstances;
import io.ciera.tool.core.architecture.expression.SelectFromInstancesSet;
import io.ciera.tool.core.architecture.expression.SelectRelated;
import io.ciera.tool.core.architecture.expression.SelectRelatedSet;
import io.ciera.tool.core.architecture.expression.SelectSet;
import io.ciera.tool.core.architecture.expression.Selected;
import io.ciera.tool.core.architecture.expression.SelectedSet;
import io.ciera.tool.core.architecture.expression.UnaryOperation;
import io.ciera.tool.core.architecture.expression.UnaryOperationSet;
import io.ciera.tool.core.architecture.expression.VariableReference;
import io.ciera.tool.core.architecture.expression.VariableReferenceSet;
import io.ciera.tool.core.architecture.expression.Where;
import io.ciera.tool.core.architecture.expression.WhereSet;
import io.ciera.tool.core.architecture.expression.impl.ActualParameterImpl;
import io.ciera.tool.core.architecture.expression.impl.ActualParameterSetImpl;
import io.ciera.tool.core.architecture.expression.impl.AnyImpl;
import io.ciera.tool.core.architecture.expression.impl.AnySetImpl;
import io.ciera.tool.core.architecture.expression.impl.ArrayElementReferenceImpl;
import io.ciera.tool.core.architecture.expression.impl.ArrayElementReferenceSetImpl;
import io.ciera.tool.core.architecture.expression.impl.ArrayLengthAccessImpl;
import io.ciera.tool.core.architecture.expression.impl.ArrayLengthAccessSetImpl;
import io.ciera.tool.core.architecture.expression.impl.AttributeAccessImpl;
import io.ciera.tool.core.architecture.expression.impl.AttributeAccessSetImpl;
import io.ciera.tool.core.architecture.expression.impl.BinaryOperationImpl;
import io.ciera.tool.core.architecture.expression.impl.BinaryOperationSetImpl;
import io.ciera.tool.core.architecture.expression.impl.ConstantReferenceImpl;
import io.ciera.tool.core.architecture.expression.impl.ConstantReferenceSetImpl;
import io.ciera.tool.core.architecture.expression.impl.CreationImpl;
import io.ciera.tool.core.architecture.expression.impl.CreationSetImpl;
import io.ciera.tool.core.architecture.expression.impl.EnumeratorReferenceImpl;
import io.ciera.tool.core.architecture.expression.impl.EnumeratorReferenceSetImpl;
import io.ciera.tool.core.architecture.expression.impl.EventCreationImpl;
import io.ciera.tool.core.architecture.expression.impl.EventCreationSetImpl;
import io.ciera.tool.core.architecture.expression.impl.ExpressionImpl;
import io.ciera.tool.core.architecture.expression.impl.ExpressionSetImpl;
import io.ciera.tool.core.architecture.expression.impl.InvocationImpl;
import io.ciera.tool.core.architecture.expression.impl.InvocationSetImpl;
import io.ciera.tool.core.architecture.expression.impl.LiteralImpl;
import io.ciera.tool.core.architecture.expression.impl.LiteralSetImpl;
import io.ciera.tool.core.architecture.expression.impl.MemberReferenceImpl;
import io.ciera.tool.core.architecture.expression.impl.MemberReferenceSetImpl;
import io.ciera.tool.core.architecture.expression.impl.NamedReferenceImpl;
import io.ciera.tool.core.architecture.expression.impl.NamedReferenceSetImpl;
import io.ciera.tool.core.architecture.expression.impl.ParameterReferenceImpl;
import io.ciera.tool.core.architecture.expression.impl.ParameterReferenceSetImpl;
import io.ciera.tool.core.architecture.expression.impl.ParenthesizedExpressionImpl;
import io.ciera.tool.core.architecture.expression.impl.ParenthesizedExpressionSetImpl;
import io.ciera.tool.core.architecture.expression.impl.PromotionImpl;
import io.ciera.tool.core.architecture.expression.impl.PromotionSetImpl;
import io.ciera.tool.core.architecture.expression.impl.SelectFromInstancesImpl;
import io.ciera.tool.core.architecture.expression.impl.SelectFromInstancesSetImpl;
import io.ciera.tool.core.architecture.expression.impl.SelectImpl;
import io.ciera.tool.core.architecture.expression.impl.SelectRelatedImpl;
import io.ciera.tool.core.architecture.expression.impl.SelectRelatedSetImpl;
import io.ciera.tool.core.architecture.expression.impl.SelectSetImpl;
import io.ciera.tool.core.architecture.expression.impl.SelectedImpl;
import io.ciera.tool.core.architecture.expression.impl.SelectedSetImpl;
import io.ciera.tool.core.architecture.expression.impl.UnaryOperationImpl;
import io.ciera.tool.core.architecture.expression.impl.UnaryOperationSetImpl;
import io.ciera.tool.core.architecture.expression.impl.VariableReferenceImpl;
import io.ciera.tool.core.architecture.expression.impl.VariableReferenceSetImpl;
import io.ciera.tool.core.architecture.expression.impl.WhereImpl;
import io.ciera.tool.core.architecture.expression.impl.WhereSetImpl;
import io.ciera.tool.core.architecture.file.File;
import io.ciera.tool.core.architecture.file.FileSet;
import io.ciera.tool.core.architecture.file.GeneralFile;
import io.ciera.tool.core.architecture.file.GeneralFileSet;
import io.ciera.tool.core.architecture.file.TypeImport;
import io.ciera.tool.core.architecture.file.TypeImportReference;
import io.ciera.tool.core.architecture.file.TypeImportReferenceSet;
import io.ciera.tool.core.architecture.file.TypeImportSet;
import io.ciera.tool.core.architecture.file.impl.FileImpl;
import io.ciera.tool.core.architecture.file.impl.FileSetImpl;
import io.ciera.tool.core.architecture.file.impl.GeneralFileImpl;
import io.ciera.tool.core.architecture.file.impl.GeneralFileSetImpl;
import io.ciera.tool.core.architecture.file.impl.TypeImportImpl;
import io.ciera.tool.core.architecture.file.impl.TypeImportReferenceImpl;
import io.ciera.tool.core.architecture.file.impl.TypeImportReferenceSetImpl;
import io.ciera.tool.core.architecture.file.impl.TypeImportSetImpl;
import io.ciera.tool.core.architecture.interfaces.Iface;
import io.ciera.tool.core.architecture.interfaces.IfaceSet;
import io.ciera.tool.core.architecture.interfaces.Message;
import io.ciera.tool.core.architecture.interfaces.MessageSet;
import io.ciera.tool.core.architecture.interfaces.Port;
import io.ciera.tool.core.architecture.interfaces.PortMessage;
import io.ciera.tool.core.architecture.interfaces.PortMessageSet;
import io.ciera.tool.core.architecture.interfaces.PortSet;
import io.ciera.tool.core.architecture.interfaces.impl.IfaceImpl;
import io.ciera.tool.core.architecture.interfaces.impl.IfaceSetImpl;
import io.ciera.tool.core.architecture.interfaces.impl.MessageImpl;
import io.ciera.tool.core.architecture.interfaces.impl.MessageSetImpl;
import io.ciera.tool.core.architecture.interfaces.impl.PortImpl;
import io.ciera.tool.core.architecture.interfaces.impl.PortMessageImpl;
import io.ciera.tool.core.architecture.interfaces.impl.PortMessageSetImpl;
import io.ciera.tool.core.architecture.interfaces.impl.PortSetImpl;
import io.ciera.tool.core.architecture.invocable.CodeBlock;
import io.ciera.tool.core.architecture.invocable.CodeBlockSet;
import io.ciera.tool.core.architecture.invocable.FormalParameter;
import io.ciera.tool.core.architecture.invocable.FormalParameterSet;
import io.ciera.tool.core.architecture.invocable.GenericInvocable;
import io.ciera.tool.core.architecture.invocable.GenericInvocableSet;
import io.ciera.tool.core.architecture.invocable.InvocableObject;
import io.ciera.tool.core.architecture.invocable.InvocableObjectSet;
import io.ciera.tool.core.architecture.invocable.impl.CodeBlockImpl;
import io.ciera.tool.core.architecture.invocable.impl.CodeBlockSetImpl;
import io.ciera.tool.core.architecture.invocable.impl.FormalParameterImpl;
import io.ciera.tool.core.architecture.invocable.impl.FormalParameterSetImpl;
import io.ciera.tool.core.architecture.invocable.impl.GenericInvocableImpl;
import io.ciera.tool.core.architecture.invocable.impl.GenericInvocableSetImpl;
import io.ciera.tool.core.architecture.invocable.impl.InvocableObjectImpl;
import io.ciera.tool.core.architecture.invocable.impl.InvocableObjectSetImpl;
import io.ciera.tool.core.architecture.statemachine.Event;
import io.ciera.tool.core.architecture.statemachine.EventSet;
import io.ciera.tool.core.architecture.statemachine.State;
import io.ciera.tool.core.architecture.statemachine.StateMachine;
import io.ciera.tool.core.architecture.statemachine.StateMachineSet;
import io.ciera.tool.core.architecture.statemachine.StateSet;
import io.ciera.tool.core.architecture.statemachine.StateTransition;
import io.ciera.tool.core.architecture.statemachine.StateTransitionSet;
import io.ciera.tool.core.architecture.statemachine.TransitionTableCell;
import io.ciera.tool.core.architecture.statemachine.TransitionTableCellSet;
import io.ciera.tool.core.architecture.statemachine.TransitionTableRow;
import io.ciera.tool.core.architecture.statemachine.TransitionTableRowSet;
import io.ciera.tool.core.architecture.statemachine.impl.EventImpl;
import io.ciera.tool.core.architecture.statemachine.impl.EventSetImpl;
import io.ciera.tool.core.architecture.statemachine.impl.StateImpl;
import io.ciera.tool.core.architecture.statemachine.impl.StateMachineImpl;
import io.ciera.tool.core.architecture.statemachine.impl.StateMachineSetImpl;
import io.ciera.tool.core.architecture.statemachine.impl.StateSetImpl;
import io.ciera.tool.core.architecture.statemachine.impl.StateTransitionImpl;
import io.ciera.tool.core.architecture.statemachine.impl.StateTransitionSetImpl;
import io.ciera.tool.core.architecture.statemachine.impl.TransitionTableCellImpl;
import io.ciera.tool.core.architecture.statemachine.impl.TransitionTableCellSetImpl;
import io.ciera.tool.core.architecture.statemachine.impl.TransitionTableRowImpl;
import io.ciera.tool.core.architecture.statemachine.impl.TransitionTableRowSetImpl;
import io.ciera.tool.core.architecture.statement.BreakSmt;
import io.ciera.tool.core.architecture.statement.BreakSmtSet;
import io.ciera.tool.core.architecture.statement.ContinueSmt;
import io.ciera.tool.core.architecture.statement.ContinueSmtSet;
import io.ciera.tool.core.architecture.statement.DeleteSmt;
import io.ciera.tool.core.architecture.statement.DeleteSmtSet;
import io.ciera.tool.core.architecture.statement.ExpressionAsStatement;
import io.ciera.tool.core.architecture.statement.ExpressionAsStatementSet;
import io.ciera.tool.core.architecture.statement.Finalization;
import io.ciera.tool.core.architecture.statement.FinalizationSet;
import io.ciera.tool.core.architecture.statement.ForSmt;
import io.ciera.tool.core.architecture.statement.ForSmtSet;
import io.ciera.tool.core.architecture.statement.Generate;
import io.ciera.tool.core.architecture.statement.GenerateSet;
import io.ciera.tool.core.architecture.statement.Halt;
import io.ciera.tool.core.architecture.statement.HaltSet;
import io.ciera.tool.core.architecture.statement.IfSmt;
import io.ciera.tool.core.architecture.statement.IfSmtSet;
import io.ciera.tool.core.architecture.statement.NullSmt;
import io.ciera.tool.core.architecture.statement.NullSmtSet;
import io.ciera.tool.core.architecture.statement.RelateSmt;
import io.ciera.tool.core.architecture.statement.RelateSmtSet;
import io.ciera.tool.core.architecture.statement.ReturnSmt;
import io.ciera.tool.core.architecture.statement.ReturnSmtSet;
import io.ciera.tool.core.architecture.statement.Statement;
import io.ciera.tool.core.architecture.statement.StatementSet;
import io.ciera.tool.core.architecture.statement.UnrelateSmt;
import io.ciera.tool.core.architecture.statement.UnrelateSmtSet;
import io.ciera.tool.core.architecture.statement.Variable;
import io.ciera.tool.core.architecture.statement.VariableInScope;
import io.ciera.tool.core.architecture.statement.VariableInScopeSet;
import io.ciera.tool.core.architecture.statement.VariableSet;
import io.ciera.tool.core.architecture.statement.WhileSmt;
import io.ciera.tool.core.architecture.statement.WhileSmtSet;
import io.ciera.tool.core.architecture.statement.impl.BreakSmtImpl;
import io.ciera.tool.core.architecture.statement.impl.BreakSmtSetImpl;
import io.ciera.tool.core.architecture.statement.impl.ContinueSmtImpl;
import io.ciera.tool.core.architecture.statement.impl.ContinueSmtSetImpl;
import io.ciera.tool.core.architecture.statement.impl.DeleteSmtImpl;
import io.ciera.tool.core.architecture.statement.impl.DeleteSmtSetImpl;
import io.ciera.tool.core.architecture.statement.impl.ExpressionAsStatementImpl;
import io.ciera.tool.core.architecture.statement.impl.ExpressionAsStatementSetImpl;
import io.ciera.tool.core.architecture.statement.impl.FinalizationImpl;
import io.ciera.tool.core.architecture.statement.impl.FinalizationSetImpl;
import io.ciera.tool.core.architecture.statement.impl.ForSmtImpl;
import io.ciera.tool.core.architecture.statement.impl.ForSmtSetImpl;
import io.ciera.tool.core.architecture.statement.impl.GenerateImpl;
import io.ciera.tool.core.architecture.statement.impl.GenerateSetImpl;
import io.ciera.tool.core.architecture.statement.impl.HaltImpl;
import io.ciera.tool.core.architecture.statement.impl.HaltSetImpl;
import io.ciera.tool.core.architecture.statement.impl.IfSmtImpl;
import io.ciera.tool.core.architecture.statement.impl.IfSmtSetImpl;
import io.ciera.tool.core.architecture.statement.impl.NullSmtImpl;
import io.ciera.tool.core.architecture.statement.impl.NullSmtSetImpl;
import io.ciera.tool.core.architecture.statement.impl.RelateSmtImpl;
import io.ciera.tool.core.architecture.statement.impl.RelateSmtSetImpl;
import io.ciera.tool.core.architecture.statement.impl.ReturnSmtImpl;
import io.ciera.tool.core.architecture.statement.impl.ReturnSmtSetImpl;
import io.ciera.tool.core.architecture.statement.impl.StatementImpl;
import io.ciera.tool.core.architecture.statement.impl.StatementSetImpl;
import io.ciera.tool.core.architecture.statement.impl.UnrelateSmtImpl;
import io.ciera.tool.core.architecture.statement.impl.UnrelateSmtSetImpl;
import io.ciera.tool.core.architecture.statement.impl.VariableImpl;
import io.ciera.tool.core.architecture.statement.impl.VariableInScopeImpl;
import io.ciera.tool.core.architecture.statement.impl.VariableInScopeSetImpl;
import io.ciera.tool.core.architecture.statement.impl.VariableSetImpl;
import io.ciera.tool.core.architecture.statement.impl.WhileSmtImpl;
import io.ciera.tool.core.architecture.statement.impl.WhileSmtSetImpl;
import io.ciera.tool.core.architecture.type.ArrayTypeReference;
import io.ciera.tool.core.architecture.type.ArrayTypeReferenceSet;
import io.ciera.tool.core.architecture.type.BasicTypeReference;
import io.ciera.tool.core.architecture.type.BasicTypeReferenceSet;
import io.ciera.tool.core.architecture.type.BuiltInType;
import io.ciera.tool.core.architecture.type.BuiltInTypeSet;
import io.ciera.tool.core.architecture.type.EnumeratedType;
import io.ciera.tool.core.architecture.type.EnumeratedTypeSet;
import io.ciera.tool.core.architecture.type.Enumerator;
import io.ciera.tool.core.architecture.type.EnumeratorSet;
import io.ciera.tool.core.architecture.type.Type;
import io.ciera.tool.core.architecture.type.TypeReference;
import io.ciera.tool.core.architecture.type.TypeReferenceSet;
import io.ciera.tool.core.architecture.type.TypeSet;
import io.ciera.tool.core.architecture.type.UnresolvedType;
import io.ciera.tool.core.architecture.type.UnresolvedTypeSet;
import io.ciera.tool.core.architecture.type.UserDefinedType;
import io.ciera.tool.core.architecture.type.UserDefinedTypeSet;
import io.ciera.tool.core.architecture.type.impl.ArrayTypeReferenceImpl;
import io.ciera.tool.core.architecture.type.impl.ArrayTypeReferenceSetImpl;
import io.ciera.tool.core.architecture.type.impl.BasicTypeReferenceImpl;
import io.ciera.tool.core.architecture.type.impl.BasicTypeReferenceSetImpl;
import io.ciera.tool.core.architecture.type.impl.BuiltInTypeImpl;
import io.ciera.tool.core.architecture.type.impl.BuiltInTypeSetImpl;
import io.ciera.tool.core.architecture.type.impl.EnumeratedTypeImpl;
import io.ciera.tool.core.architecture.type.impl.EnumeratedTypeSetImpl;
import io.ciera.tool.core.architecture.type.impl.EnumeratorImpl;
import io.ciera.tool.core.architecture.type.impl.EnumeratorSetImpl;
import io.ciera.tool.core.architecture.type.impl.TypeImpl;
import io.ciera.tool.core.architecture.type.impl.TypeReferenceImpl;
import io.ciera.tool.core.architecture.type.impl.TypeReferenceSetImpl;
import io.ciera.tool.core.architecture.type.impl.TypeSetImpl;
import io.ciera.tool.core.architecture.type.impl.UnresolvedTypeImpl;
import io.ciera.tool.core.architecture.type.impl.UnresolvedTypeSetImpl;
import io.ciera.tool.core.architecture.type.impl.UserDefinedTypeImpl;
import io.ciera.tool.core.architecture.type.impl.UserDefinedTypeSetImpl;
import io.ciera.tool.core.ees.C_UTIL;
import io.ciera.tool.core.ees.impl.C_UTILImpl;
import io.ciera.tool.core.ooaofmarking.CSV;
import io.ciera.tool.core.ooaofmarking.Feature;
import io.ciera.tool.core.ooaofmarking.FeatureSet;
import io.ciera.tool.core.ooaofmarking.Mark;
import io.ciera.tool.core.ooaofmarking.MarkSet;
import io.ciera.tool.core.ooaofmarking.MarkableElementType;
import io.ciera.tool.core.ooaofmarking.MarkableElementTypeSet;
import io.ciera.tool.core.ooaofmarking.impl.CSVImpl;
import io.ciera.tool.core.ooaofmarking.impl.FeatureImpl;
import io.ciera.tool.core.ooaofmarking.impl.FeatureSetImpl;
import io.ciera.tool.core.ooaofmarking.impl.MarkImpl;
import io.ciera.tool.core.ooaofmarking.impl.MarkSetImpl;
import io.ciera.tool.core.ooaofmarking.impl.MarkableElementTypeImpl;
import io.ciera.tool.core.ooaofmarking.impl.MarkableElementTypeSetImpl;
import io.ciera.tool.core.ooaofooa.activity.AcceptEvent;
import io.ciera.tool.core.ooaofooa.activity.AcceptEventAction;
import io.ciera.tool.core.ooaofooa.activity.AcceptEventActionSet;
import io.ciera.tool.core.ooaofooa.activity.AcceptEventSet;
import io.ciera.tool.core.ooaofooa.activity.AcceptTimeEventAction;
import io.ciera.tool.core.ooaofooa.activity.AcceptTimeEventActionSet;
import io.ciera.tool.core.ooaofooa.activity.ActionNode;
import io.ciera.tool.core.ooaofooa.activity.ActionNodeSet;
import io.ciera.tool.core.ooaofooa.activity.ActivityDiagramAction;
import io.ciera.tool.core.ooaofooa.activity.ActivityDiagramActionSet;
import io.ciera.tool.core.ooaofooa.activity.ActivityEdge;
import io.ciera.tool.core.ooaofooa.activity.ActivityEdgeSet;
import io.ciera.tool.core.ooaofooa.activity.ActivityFinalNode;
import io.ciera.tool.core.ooaofooa.activity.ActivityFinalNodeSet;
import io.ciera.tool.core.ooaofooa.activity.ActivityNode;
import io.ciera.tool.core.ooaofooa.activity.ActivityNodeSet;
import io.ciera.tool.core.ooaofooa.activity.ActivityPartition;
import io.ciera.tool.core.ooaofooa.activity.ActivityPartitionSet;
import io.ciera.tool.core.ooaofooa.activity.ControlNode;
import io.ciera.tool.core.ooaofooa.activity.ControlNodeSet;
import io.ciera.tool.core.ooaofooa.activity.DecisionMergeNode;
import io.ciera.tool.core.ooaofooa.activity.DecisionMergeNodeSet;
import io.ciera.tool.core.ooaofooa.activity.FlowFinalNode;
import io.ciera.tool.core.ooaofooa.activity.FlowFinalNodeSet;
import io.ciera.tool.core.ooaofooa.activity.ForkJoinNode;
import io.ciera.tool.core.ooaofooa.activity.ForkJoinNodeSet;
import io.ciera.tool.core.ooaofooa.activity.InitialNode;
import io.ciera.tool.core.ooaofooa.activity.InitialNodeSet;
import io.ciera.tool.core.ooaofooa.activity.ObjectNode;
import io.ciera.tool.core.ooaofooa.activity.ObjectNodeSet;
import io.ciera.tool.core.ooaofooa.activity.SendSignal;
import io.ciera.tool.core.ooaofooa.activity.SendSignalSet;
import io.ciera.tool.core.ooaofooa.activity.impl.AcceptEventActionImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.AcceptEventActionSetImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.AcceptEventImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.AcceptEventSetImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.AcceptTimeEventActionImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.AcceptTimeEventActionSetImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.ActionNodeImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.ActionNodeSetImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.ActivityDiagramActionImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.ActivityDiagramActionSetImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.ActivityEdgeImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.ActivityEdgeSetImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.ActivityFinalNodeImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.ActivityFinalNodeSetImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.ActivityNodeImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.ActivityNodeSetImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.ActivityPartitionImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.ActivityPartitionSetImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.ControlNodeImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.ControlNodeSetImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.DecisionMergeNodeImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.DecisionMergeNodeSetImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.FlowFinalNodeImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.FlowFinalNodeSetImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.ForkJoinNodeImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.ForkJoinNodeSetImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.InitialNodeImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.InitialNodeSetImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.ObjectNodeImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.ObjectNodeSetImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.SendSignalImpl;
import io.ciera.tool.core.ooaofooa.activity.impl.SendSignalSetImpl;
import io.ciera.tool.core.ooaofooa.association.Association;
import io.ciera.tool.core.ooaofooa.association.AssociationSet;
import io.ciera.tool.core.ooaofooa.association.ClassAsAssociatedOneSide;
import io.ciera.tool.core.ooaofooa.association.ClassAsAssociatedOneSideSet;
import io.ciera.tool.core.ooaofooa.association.ClassAsAssociatedOtherSide;
import io.ciera.tool.core.ooaofooa.association.ClassAsAssociatedOtherSideSet;
import io.ciera.tool.core.ooaofooa.association.ClassAsDerivedOneSide;
import io.ciera.tool.core.ooaofooa.association.ClassAsDerivedOneSideSet;
import io.ciera.tool.core.ooaofooa.association.ClassAsDerivedOtherSide;
import io.ciera.tool.core.ooaofooa.association.ClassAsDerivedOtherSideSet;
import io.ciera.tool.core.ooaofooa.association.ClassAsLink;
import io.ciera.tool.core.ooaofooa.association.ClassAsLinkSet;
import io.ciera.tool.core.ooaofooa.association.ClassAsSimpleFormalizer;
import io.ciera.tool.core.ooaofooa.association.ClassAsSimpleFormalizerSet;
import io.ciera.tool.core.ooaofooa.association.ClassAsSimpleParticipant;
import io.ciera.tool.core.ooaofooa.association.ClassAsSimpleParticipantSet;
import io.ciera.tool.core.ooaofooa.association.ClassAsSubtype;
import io.ciera.tool.core.ooaofooa.association.ClassAsSubtypeSet;
import io.ciera.tool.core.ooaofooa.association.ClassAsSupertype;
import io.ciera.tool.core.ooaofooa.association.ClassAsSupertypeSet;
import io.ciera.tool.core.ooaofooa.association.ClassInAssociation;
import io.ciera.tool.core.ooaofooa.association.ClassInAssociationSet;
import io.ciera.tool.core.ooaofooa.association.DerivedAssociation;
import io.ciera.tool.core.ooaofooa.association.DerivedAssociationSet;
import io.ciera.tool.core.ooaofooa.association.LinkedAssociation;
import io.ciera.tool.core.ooaofooa.association.LinkedAssociationSet;
import io.ciera.tool.core.ooaofooa.association.ReferredToClassInAssoc;
import io.ciera.tool.core.ooaofooa.association.ReferredToClassInAssocSet;
import io.ciera.tool.core.ooaofooa.association.ReferringClassInAssoc;
import io.ciera.tool.core.ooaofooa.association.ReferringClassInAssocSet;
import io.ciera.tool.core.ooaofooa.association.SimpleAssociation;
import io.ciera.tool.core.ooaofooa.association.SimpleAssociationSet;
import io.ciera.tool.core.ooaofooa.association.SubtypeSupertypeAssociation;
import io.ciera.tool.core.ooaofooa.association.SubtypeSupertypeAssociationSet;
import io.ciera.tool.core.ooaofooa.association.impl.AssociationImpl;
import io.ciera.tool.core.ooaofooa.association.impl.AssociationSetImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassAsAssociatedOneSideImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassAsAssociatedOneSideSetImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassAsAssociatedOtherSideImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassAsAssociatedOtherSideSetImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassAsDerivedOneSideImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassAsDerivedOneSideSetImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassAsDerivedOtherSideImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassAsDerivedOtherSideSetImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassAsLinkImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassAsLinkSetImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassAsSimpleFormalizerImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassAsSimpleFormalizerSetImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassAsSimpleParticipantImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassAsSimpleParticipantSetImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassAsSubtypeImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassAsSubtypeSetImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassAsSupertypeImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassAsSupertypeSetImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassInAssociationImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ClassInAssociationSetImpl;
import io.ciera.tool.core.ooaofooa.association.impl.DerivedAssociationImpl;
import io.ciera.tool.core.ooaofooa.association.impl.DerivedAssociationSetImpl;
import io.ciera.tool.core.ooaofooa.association.impl.LinkedAssociationImpl;
import io.ciera.tool.core.ooaofooa.association.impl.LinkedAssociationSetImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ReferredToClassInAssocImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ReferredToClassInAssocSetImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ReferringClassInAssocImpl;
import io.ciera.tool.core.ooaofooa.association.impl.ReferringClassInAssocSetImpl;
import io.ciera.tool.core.ooaofooa.association.impl.SimpleAssociationImpl;
import io.ciera.tool.core.ooaofooa.association.impl.SimpleAssociationSetImpl;
import io.ciera.tool.core.ooaofooa.association.impl.SubtypeSupertypeAssociationImpl;
import io.ciera.tool.core.ooaofooa.association.impl.SubtypeSupertypeAssociationSetImpl;
import io.ciera.tool.core.ooaofooa.body.ACT_BRK;
import io.ciera.tool.core.ooaofooa.body.ACT_BRKSet;
import io.ciera.tool.core.ooaofooa.body.ACT_CON;
import io.ciera.tool.core.ooaofooa.body.ACT_CONSet;
import io.ciera.tool.core.ooaofooa.body.ACT_SMT;
import io.ciera.tool.core.ooaofooa.body.ACT_SMTSet;
import io.ciera.tool.core.ooaofooa.body.Block;
import io.ciera.tool.core.ooaofooa.body.BlockSet;
import io.ciera.tool.core.ooaofooa.body.Body;
import io.ciera.tool.core.ooaofooa.body.BodyInComponent;
import io.ciera.tool.core.ooaofooa.body.BodyInComponentSet;
import io.ciera.tool.core.ooaofooa.body.BodyInElement;
import io.ciera.tool.core.ooaofooa.body.BodyInElementSet;
import io.ciera.tool.core.ooaofooa.body.BodySet;
import io.ciera.tool.core.ooaofooa.body.BridgeBody;
import io.ciera.tool.core.ooaofooa.body.BridgeBodySet;
import io.ciera.tool.core.ooaofooa.body.Control;
import io.ciera.tool.core.ooaofooa.body.ControlSet;
import io.ciera.tool.core.ooaofooa.body.DerivedAttributeBody;
import io.ciera.tool.core.ooaofooa.body.DerivedAttributeBodySet;
import io.ciera.tool.core.ooaofooa.body.ElseIfStmt;
import io.ciera.tool.core.ooaofooa.body.ElseIfStmtSet;
import io.ciera.tool.core.ooaofooa.body.ElseStmt;
import io.ciera.tool.core.ooaofooa.body.ElseStmtSet;
import io.ciera.tool.core.ooaofooa.body.ForStmt;
import io.ciera.tool.core.ooaofooa.body.ForStmtSet;
import io.ciera.tool.core.ooaofooa.body.FunctionBody;
import io.ciera.tool.core.ooaofooa.body.FunctionBodySet;
import io.ciera.tool.core.ooaofooa.body.IfStmt;
import io.ciera.tool.core.ooaofooa.body.IfStmtSet;
import io.ciera.tool.core.ooaofooa.body.OperationBody;
import io.ciera.tool.core.ooaofooa.body.OperationBodySet;
import io.ciera.tool.core.ooaofooa.body.ProvidedOperationBody;
import io.ciera.tool.core.ooaofooa.body.ProvidedOperationBodySet;
import io.ciera.tool.core.ooaofooa.body.ProvidedSignalBody;
import io.ciera.tool.core.ooaofooa.body.ProvidedSignalBodySet;
import io.ciera.tool.core.ooaofooa.body.RequiredOperationBody;
import io.ciera.tool.core.ooaofooa.body.RequiredOperationBodySet;
import io.ciera.tool.core.ooaofooa.body.RequiredSignalBody;
import io.ciera.tool.core.ooaofooa.body.RequiredSignalBodySet;
import io.ciera.tool.core.ooaofooa.body.StateActionBody;
import io.ciera.tool.core.ooaofooa.body.StateActionBodySet;
import io.ciera.tool.core.ooaofooa.body.TransitionActionBody;
import io.ciera.tool.core.ooaofooa.body.TransitionActionBodySet;
import io.ciera.tool.core.ooaofooa.body.WhileStmt;
import io.ciera.tool.core.ooaofooa.body.WhileStmtSet;
import io.ciera.tool.core.ooaofooa.body.impl.ACT_BRKImpl;
import io.ciera.tool.core.ooaofooa.body.impl.ACT_BRKSetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.ACT_CONImpl;
import io.ciera.tool.core.ooaofooa.body.impl.ACT_CONSetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.ACT_SMTImpl;
import io.ciera.tool.core.ooaofooa.body.impl.ACT_SMTSetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.BlockImpl;
import io.ciera.tool.core.ooaofooa.body.impl.BlockSetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.BodyImpl;
import io.ciera.tool.core.ooaofooa.body.impl.BodyInComponentImpl;
import io.ciera.tool.core.ooaofooa.body.impl.BodyInComponentSetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.BodyInElementImpl;
import io.ciera.tool.core.ooaofooa.body.impl.BodyInElementSetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.BodySetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.BridgeBodyImpl;
import io.ciera.tool.core.ooaofooa.body.impl.BridgeBodySetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.ControlImpl;
import io.ciera.tool.core.ooaofooa.body.impl.ControlSetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.DerivedAttributeBodyImpl;
import io.ciera.tool.core.ooaofooa.body.impl.DerivedAttributeBodySetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.ElseIfStmtImpl;
import io.ciera.tool.core.ooaofooa.body.impl.ElseIfStmtSetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.ElseStmtImpl;
import io.ciera.tool.core.ooaofooa.body.impl.ElseStmtSetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.ForStmtImpl;
import io.ciera.tool.core.ooaofooa.body.impl.ForStmtSetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.FunctionBodyImpl;
import io.ciera.tool.core.ooaofooa.body.impl.FunctionBodySetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.IfStmtImpl;
import io.ciera.tool.core.ooaofooa.body.impl.IfStmtSetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.OperationBodyImpl;
import io.ciera.tool.core.ooaofooa.body.impl.OperationBodySetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.ProvidedOperationBodyImpl;
import io.ciera.tool.core.ooaofooa.body.impl.ProvidedOperationBodySetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.ProvidedSignalBodyImpl;
import io.ciera.tool.core.ooaofooa.body.impl.ProvidedSignalBodySetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.RequiredOperationBodyImpl;
import io.ciera.tool.core.ooaofooa.body.impl.RequiredOperationBodySetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.RequiredSignalBodyImpl;
import io.ciera.tool.core.ooaofooa.body.impl.RequiredSignalBodySetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.StateActionBodyImpl;
import io.ciera.tool.core.ooaofooa.body.impl.StateActionBodySetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.TransitionActionBodyImpl;
import io.ciera.tool.core.ooaofooa.body.impl.TransitionActionBodySetImpl;
import io.ciera.tool.core.ooaofooa.body.impl.WhileStmtImpl;
import io.ciera.tool.core.ooaofooa.body.impl.WhileStmtSetImpl;
import io.ciera.tool.core.ooaofooa.communication.CommunicationLink;
import io.ciera.tool.core.ooaofooa.communication.CommunicationLinkSet;
import io.ciera.tool.core.ooaofooa.communication.impl.CommunicationLinkImpl;
import io.ciera.tool.core.ooaofooa.communication.impl.CommunicationLinkSetImpl;
import io.ciera.tool.core.ooaofooa.component.C_C;
import io.ciera.tool.core.ooaofooa.component.C_CSet;
import io.ciera.tool.core.ooaofooa.component.C_I;
import io.ciera.tool.core.ooaofooa.component.C_ISet;
import io.ciera.tool.core.ooaofooa.component.C_PO;
import io.ciera.tool.core.ooaofooa.component.C_POSet;
import io.ciera.tool.core.ooaofooa.component.Delegation;
import io.ciera.tool.core.ooaofooa.component.DelegationSet;
import io.ciera.tool.core.ooaofooa.component.ExecutableProperty;
import io.ciera.tool.core.ooaofooa.component.ExecutablePropertySet;
import io.ciera.tool.core.ooaofooa.component.InterfaceOperation;
import io.ciera.tool.core.ooaofooa.component.InterfaceOperationSet;
import io.ciera.tool.core.ooaofooa.component.InterfaceReference;
import io.ciera.tool.core.ooaofooa.component.InterfaceReferenceInDelegation;
import io.ciera.tool.core.ooaofooa.component.InterfaceReferenceInDelegationSet;
import io.ciera.tool.core.ooaofooa.component.InterfaceReferenceSet;
import io.ciera.tool.core.ooaofooa.component.InterfaceSignal;
import io.ciera.tool.core.ooaofooa.component.InterfaceSignalSet;
import io.ciera.tool.core.ooaofooa.component.PropertyParameter;
import io.ciera.tool.core.ooaofooa.component.PropertyParameterSet;
import io.ciera.tool.core.ooaofooa.component.Provision;
import io.ciera.tool.core.ooaofooa.component.ProvisionSet;
import io.ciera.tool.core.ooaofooa.component.Requirement;
import io.ciera.tool.core.ooaofooa.component.RequirementSet;
import io.ciera.tool.core.ooaofooa.component.Satisfaction;
import io.ciera.tool.core.ooaofooa.component.SatisfactionSet;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.ComponentReference;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.ComponentReferenceSet;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.ImportedProvision;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.ImportedProvisionInSatisfaction;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.ImportedProvisionInSatisfactionSet;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.ImportedProvisionSet;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.ImportedReference;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.ImportedReferenceSet;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.ImportedRequirement;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.ImportedRequirementSet;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.PortReference;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.PortReferenceSet;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.impl.ComponentReferenceImpl;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.impl.ComponentReferenceSetImpl;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.impl.ImportedProvisionImpl;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.impl.ImportedProvisionInSatisfactionImpl;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.impl.ImportedProvisionInSatisfactionSetImpl;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.impl.ImportedProvisionSetImpl;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.impl.ImportedReferenceImpl;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.impl.ImportedReferenceSetImpl;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.impl.ImportedRequirementImpl;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.impl.ImportedRequirementSetImpl;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.impl.PortReferenceImpl;
import io.ciera.tool.core.ooaofooa.component.componentlibrary.impl.PortReferenceSetImpl;
import io.ciera.tool.core.ooaofooa.component.impl.C_CImpl;
import io.ciera.tool.core.ooaofooa.component.impl.C_CSetImpl;
import io.ciera.tool.core.ooaofooa.component.impl.C_IImpl;
import io.ciera.tool.core.ooaofooa.component.impl.C_ISetImpl;
import io.ciera.tool.core.ooaofooa.component.impl.C_POImpl;
import io.ciera.tool.core.ooaofooa.component.impl.C_POSetImpl;
import io.ciera.tool.core.ooaofooa.component.impl.DelegationImpl;
import io.ciera.tool.core.ooaofooa.component.impl.DelegationSetImpl;
import io.ciera.tool.core.ooaofooa.component.impl.ExecutablePropertyImpl;
import io.ciera.tool.core.ooaofooa.component.impl.ExecutablePropertySetImpl;
import io.ciera.tool.core.ooaofooa.component.impl.InterfaceOperationImpl;
import io.ciera.tool.core.ooaofooa.component.impl.InterfaceOperationSetImpl;
import io.ciera.tool.core.ooaofooa.component.impl.InterfaceReferenceImpl;
import io.ciera.tool.core.ooaofooa.component.impl.InterfaceReferenceInDelegationImpl;
import io.ciera.tool.core.ooaofooa.component.impl.InterfaceReferenceInDelegationSetImpl;
import io.ciera.tool.core.ooaofooa.component.impl.InterfaceReferenceSetImpl;
import io.ciera.tool.core.ooaofooa.component.impl.InterfaceSignalImpl;
import io.ciera.tool.core.ooaofooa.component.impl.InterfaceSignalSetImpl;
import io.ciera.tool.core.ooaofooa.component.impl.PropertyParameterImpl;
import io.ciera.tool.core.ooaofooa.component.impl.PropertyParameterSetImpl;
import io.ciera.tool.core.ooaofooa.component.impl.ProvisionImpl;
import io.ciera.tool.core.ooaofooa.component.impl.ProvisionSetImpl;
import io.ciera.tool.core.ooaofooa.component.impl.RequirementImpl;
import io.ciera.tool.core.ooaofooa.component.impl.RequirementSetImpl;
import io.ciera.tool.core.ooaofooa.component.impl.SatisfactionImpl;
import io.ciera.tool.core.ooaofooa.component.impl.SatisfactionSetImpl;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.ProvidedExecutableProperty;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.ProvidedExecutablePropertySet;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.ProvidedOperation;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.ProvidedOperationSet;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.ProvidedSignal;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.ProvidedSignalSet;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.RequiredExecutableProperty;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.RequiredExecutablePropertySet;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.RequiredOperation;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.RequiredOperationSet;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.RequiredSignal;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.RequiredSignalSet;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.impl.ProvidedExecutablePropertyImpl;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.impl.ProvidedExecutablePropertySetImpl;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.impl.ProvidedOperationImpl;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.impl.ProvidedOperationSetImpl;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.impl.ProvidedSignalImpl;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.impl.ProvidedSignalSetImpl;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.impl.RequiredExecutablePropertyImpl;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.impl.RequiredExecutablePropertySetImpl;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.impl.RequiredOperationImpl;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.impl.RequiredOperationSetImpl;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.impl.RequiredSignalImpl;
import io.ciera.tool.core.ooaofooa.component.signalprovisionsandrequirements.impl.RequiredSignalSetImpl;
import io.ciera.tool.core.ooaofooa.constants.ConstantSpecification;
import io.ciera.tool.core.ooaofooa.constants.ConstantSpecificationSet;
import io.ciera.tool.core.ooaofooa.constants.LeafSymbolicConstant;
import io.ciera.tool.core.ooaofooa.constants.LeafSymbolicConstantSet;
import io.ciera.tool.core.ooaofooa.constants.LiteralSymbolicConstant;
import io.ciera.tool.core.ooaofooa.constants.LiteralSymbolicConstantSet;
import io.ciera.tool.core.ooaofooa.constants.SymbolicConstant;
import io.ciera.tool.core.ooaofooa.constants.SymbolicConstantSet;
import io.ciera.tool.core.ooaofooa.constants.impl.ConstantSpecificationImpl;
import io.ciera.tool.core.ooaofooa.constants.impl.ConstantSpecificationSetImpl;
import io.ciera.tool.core.ooaofooa.constants.impl.LeafSymbolicConstantImpl;
import io.ciera.tool.core.ooaofooa.constants.impl.LeafSymbolicConstantSetImpl;
import io.ciera.tool.core.ooaofooa.constants.impl.LiteralSymbolicConstantImpl;
import io.ciera.tool.core.ooaofooa.constants.impl.LiteralSymbolicConstantSetImpl;
import io.ciera.tool.core.ooaofooa.constants.impl.SymbolicConstantImpl;
import io.ciera.tool.core.ooaofooa.constants.impl.SymbolicConstantSetImpl;
import io.ciera.tool.core.ooaofooa.deployment.Deployment;
import io.ciera.tool.core.ooaofooa.deployment.DeploymentSet;
import io.ciera.tool.core.ooaofooa.deployment.ServiceInSequence;
import io.ciera.tool.core.ooaofooa.deployment.ServiceInSequenceSet;
import io.ciera.tool.core.ooaofooa.deployment.Terminator;
import io.ciera.tool.core.ooaofooa.deployment.TerminatorService;
import io.ciera.tool.core.ooaofooa.deployment.TerminatorServiceParameter;
import io.ciera.tool.core.ooaofooa.deployment.TerminatorServiceParameterSet;
import io.ciera.tool.core.ooaofooa.deployment.TerminatorServiceSequence;
import io.ciera.tool.core.ooaofooa.deployment.TerminatorServiceSequenceSet;
import io.ciera.tool.core.ooaofooa.deployment.TerminatorServiceSet;
import io.ciera.tool.core.ooaofooa.deployment.TerminatorSet;
import io.ciera.tool.core.ooaofooa.deployment.impl.DeploymentImpl;
import io.ciera.tool.core.ooaofooa.deployment.impl.DeploymentSetImpl;
import io.ciera.tool.core.ooaofooa.deployment.impl.ServiceInSequenceImpl;
import io.ciera.tool.core.ooaofooa.deployment.impl.ServiceInSequenceSetImpl;
import io.ciera.tool.core.ooaofooa.deployment.impl.TerminatorImpl;
import io.ciera.tool.core.ooaofooa.deployment.impl.TerminatorServiceImpl;
import io.ciera.tool.core.ooaofooa.deployment.impl.TerminatorServiceParameterImpl;
import io.ciera.tool.core.ooaofooa.deployment.impl.TerminatorServiceParameterSetImpl;
import io.ciera.tool.core.ooaofooa.deployment.impl.TerminatorServiceSequenceImpl;
import io.ciera.tool.core.ooaofooa.deployment.impl.TerminatorServiceSequenceSetImpl;
import io.ciera.tool.core.ooaofooa.deployment.impl.TerminatorServiceSetImpl;
import io.ciera.tool.core.ooaofooa.deployment.impl.TerminatorSetImpl;
import io.ciera.tool.core.ooaofooa.domain.Bridge;
import io.ciera.tool.core.ooaofooa.domain.BridgeParameter;
import io.ciera.tool.core.ooaofooa.domain.BridgeParameterSet;
import io.ciera.tool.core.ooaofooa.domain.BridgeSet;
import io.ciera.tool.core.ooaofooa.domain.CoreDataType;
import io.ciera.tool.core.ooaofooa.domain.CoreDataTypeSet;
import io.ciera.tool.core.ooaofooa.domain.DataType;
import io.ciera.tool.core.ooaofooa.domain.DataTypeSet;
import io.ciera.tool.core.ooaofooa.domain.Dimensions;
import io.ciera.tool.core.ooaofooa.domain.DimensionsSet;
import io.ciera.tool.core.ooaofooa.domain.EnumerationDataType;
import io.ciera.tool.core.ooaofooa.domain.EnumerationDataTypeSet;
import io.ciera.tool.core.ooaofooa.domain.Exception;
import io.ciera.tool.core.ooaofooa.domain.ExceptionSet;
import io.ciera.tool.core.ooaofooa.domain.ExternalEntity;
import io.ciera.tool.core.ooaofooa.domain.ExternalEntityInModel;
import io.ciera.tool.core.ooaofooa.domain.ExternalEntityInModelSet;
import io.ciera.tool.core.ooaofooa.domain.ExternalEntitySet;
import io.ciera.tool.core.ooaofooa.domain.FunctionParameter;
import io.ciera.tool.core.ooaofooa.domain.FunctionParameterSet;
import io.ciera.tool.core.ooaofooa.domain.InstanceReferenceDataType;
import io.ciera.tool.core.ooaofooa.domain.InstanceReferenceDataTypeSet;
import io.ciera.tool.core.ooaofooa.domain.Range;
import io.ciera.tool.core.ooaofooa.domain.RangeSet;
import io.ciera.tool.core.ooaofooa.domain.S_ENUM;
import io.ciera.tool.core.ooaofooa.domain.S_ENUMSet;
import io.ciera.tool.core.ooaofooa.domain.S_SYNC;
import io.ciera.tool.core.ooaofooa.domain.S_SYNCSet;
import io.ciera.tool.core.ooaofooa.domain.StructureMember;
import io.ciera.tool.core.ooaofooa.domain.StructureMemberSet;
import io.ciera.tool.core.ooaofooa.domain.StructuredDataType;
import io.ciera.tool.core.ooaofooa.domain.StructuredDataTypeSet;
import io.ciera.tool.core.ooaofooa.domain.SystemModel;
import io.ciera.tool.core.ooaofooa.domain.SystemModelSet;
import io.ciera.tool.core.ooaofooa.domain.UserDataType;
import io.ciera.tool.core.ooaofooa.domain.UserDataTypeSet;
import io.ciera.tool.core.ooaofooa.domain.impl.BridgeImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.BridgeParameterImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.BridgeParameterSetImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.BridgeSetImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.CoreDataTypeImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.CoreDataTypeSetImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.DataTypeImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.DataTypeSetImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.DimensionsImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.DimensionsSetImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.EnumerationDataTypeImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.EnumerationDataTypeSetImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.ExceptionImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.ExceptionSetImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.ExternalEntityImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.ExternalEntityInModelImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.ExternalEntityInModelSetImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.ExternalEntitySetImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.FunctionParameterImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.FunctionParameterSetImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.InstanceReferenceDataTypeImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.InstanceReferenceDataTypeSetImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.RangeImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.RangeSetImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.S_ENUMImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.S_ENUMSetImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.S_SYNCImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.S_SYNCSetImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.StructureMemberImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.StructureMemberSetImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.StructuredDataTypeImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.StructuredDataTypeSetImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.SystemModelImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.SystemModelSetImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.UserDataTypeImpl;
import io.ciera.tool.core.ooaofooa.domain.impl.UserDataTypeSetImpl;
import io.ciera.tool.core.ooaofooa.elementpackaging.EP_PKG;
import io.ciera.tool.core.ooaofooa.elementpackaging.EP_PKGSet;
import io.ciera.tool.core.ooaofooa.elementpackaging.PackageReference;
import io.ciera.tool.core.ooaofooa.elementpackaging.PackageReferenceSet;
import io.ciera.tool.core.ooaofooa.elementpackaging.impl.EP_PKGImpl;
import io.ciera.tool.core.ooaofooa.elementpackaging.impl.EP_PKGSetImpl;
import io.ciera.tool.core.ooaofooa.elementpackaging.impl.PackageReferenceImpl;
import io.ciera.tool.core.ooaofooa.elementpackaging.impl.PackageReferenceSetImpl;
import io.ciera.tool.core.ooaofooa.event.CreateEventStatement;
import io.ciera.tool.core.ooaofooa.event.CreateEventStatementSet;
import io.ciera.tool.core.ooaofooa.event.CreateEventToClass;
import io.ciera.tool.core.ooaofooa.event.CreateEventToClassSet;
import io.ciera.tool.core.ooaofooa.event.CreateEventToCreator;
import io.ciera.tool.core.ooaofooa.event.CreateEventToCreatorSet;
import io.ciera.tool.core.ooaofooa.event.CreateEventToInstance;
import io.ciera.tool.core.ooaofooa.event.CreateEventToInstanceSet;
import io.ciera.tool.core.ooaofooa.event.CreateSMEventStatement;
import io.ciera.tool.core.ooaofooa.event.CreateSMEventStatementSet;
import io.ciera.tool.core.ooaofooa.event.E_GEN;
import io.ciera.tool.core.ooaofooa.event.E_GENSet;
import io.ciera.tool.core.ooaofooa.event.EventSpecificationStatement;
import io.ciera.tool.core.ooaofooa.event.EventSpecificationStatementSet;
import io.ciera.tool.core.ooaofooa.event.GenerateEventStatement;
import io.ciera.tool.core.ooaofooa.event.GenerateEventStatementSet;
import io.ciera.tool.core.ooaofooa.event.GeneratePreexistingEvent;
import io.ciera.tool.core.ooaofooa.event.GeneratePreexistingEventSet;
import io.ciera.tool.core.ooaofooa.event.GenerateSMEventStatement;
import io.ciera.tool.core.ooaofooa.event.GenerateSMEventStatementSet;
import io.ciera.tool.core.ooaofooa.event.GenerateToClass;
import io.ciera.tool.core.ooaofooa.event.GenerateToClassSet;
import io.ciera.tool.core.ooaofooa.event.GenerateToCreator;
import io.ciera.tool.core.ooaofooa.event.GenerateToCreatorSet;
import io.ciera.tool.core.ooaofooa.event.impl.CreateEventStatementImpl;
import io.ciera.tool.core.ooaofooa.event.impl.CreateEventStatementSetImpl;
import io.ciera.tool.core.ooaofooa.event.impl.CreateEventToClassImpl;
import io.ciera.tool.core.ooaofooa.event.impl.CreateEventToClassSetImpl;
import io.ciera.tool.core.ooaofooa.event.impl.CreateEventToCreatorImpl;
import io.ciera.tool.core.ooaofooa.event.impl.CreateEventToCreatorSetImpl;
import io.ciera.tool.core.ooaofooa.event.impl.CreateEventToInstanceImpl;
import io.ciera.tool.core.ooaofooa.event.impl.CreateEventToInstanceSetImpl;
import io.ciera.tool.core.ooaofooa.event.impl.CreateSMEventStatementImpl;
import io.ciera.tool.core.ooaofooa.event.impl.CreateSMEventStatementSetImpl;
import io.ciera.tool.core.ooaofooa.event.impl.E_GENImpl;
import io.ciera.tool.core.ooaofooa.event.impl.E_GENSetImpl;
import io.ciera.tool.core.ooaofooa.event.impl.EventSpecificationStatementImpl;
import io.ciera.tool.core.ooaofooa.event.impl.EventSpecificationStatementSetImpl;
import io.ciera.tool.core.ooaofooa.event.impl.GenerateEventStatementImpl;
import io.ciera.tool.core.ooaofooa.event.impl.GenerateEventStatementSetImpl;
import io.ciera.tool.core.ooaofooa.event.impl.GeneratePreexistingEventImpl;
import io.ciera.tool.core.ooaofooa.event.impl.GeneratePreexistingEventSetImpl;
import io.ciera.tool.core.ooaofooa.event.impl.GenerateSMEventStatementImpl;
import io.ciera.tool.core.ooaofooa.event.impl.GenerateSMEventStatementSetImpl;
import io.ciera.tool.core.ooaofooa.event.impl.GenerateToClassImpl;
import io.ciera.tool.core.ooaofooa.event.impl.GenerateToClassSetImpl;
import io.ciera.tool.core.ooaofooa.event.impl.GenerateToCreatorImpl;
import io.ciera.tool.core.ooaofooa.event.impl.GenerateToCreatorSetImpl;
import io.ciera.tool.core.ooaofooa.globals.GlobalElementInSystem;
import io.ciera.tool.core.ooaofooa.globals.GlobalElementInSystemSet;
import io.ciera.tool.core.ooaofooa.globals.impl.GlobalElementInSystemImpl;
import io.ciera.tool.core.ooaofooa.globals.impl.GlobalElementInSystemSetImpl;
import io.ciera.tool.core.ooaofooa.instance.AttributeValue;
import io.ciera.tool.core.ooaofooa.instance.AttributeValueSet;
import io.ciera.tool.core.ooaofooa.instance.BlockInStackFrame;
import io.ciera.tool.core.ooaofooa.instance.BlockInStackFrameSet;
import io.ciera.tool.core.ooaofooa.instance.ComponentInstance;
import io.ciera.tool.core.ooaofooa.instance.ComponentInstanceContainer;
import io.ciera.tool.core.ooaofooa.instance.ComponentInstanceContainerSet;
import io.ciera.tool.core.ooaofooa.instance.ComponentInstanceSet;
import io.ciera.tool.core.ooaofooa.instance.DataItemValue;
import io.ciera.tool.core.ooaofooa.instance.DataItemValueSet;
import io.ciera.tool.core.ooaofooa.instance.EventQueueEntry;
import io.ciera.tool.core.ooaofooa.instance.EventQueueEntrySet;
import io.ciera.tool.core.ooaofooa.instance.I_INS;
import io.ciera.tool.core.ooaofooa.instance.I_INSSet;
import io.ciera.tool.core.ooaofooa.instance.IntercomponentQueueEntry;
import io.ciera.tool.core.ooaofooa.instance.IntercomponentQueueEntrySet;
import io.ciera.tool.core.ooaofooa.instance.Link;
import io.ciera.tool.core.ooaofooa.instance.LinkParticipation;
import io.ciera.tool.core.ooaofooa.instance.LinkParticipationSet;
import io.ciera.tool.core.ooaofooa.instance.LinkSet;
import io.ciera.tool.core.ooaofooa.instance.Monitor;
import io.ciera.tool.core.ooaofooa.instance.MonitorSet;
import io.ciera.tool.core.ooaofooa.instance.PendingEvent;
import io.ciera.tool.core.ooaofooa.instance.PendingEventSet;
import io.ciera.tool.core.ooaofooa.instance.RuntimeChannel;
import io.ciera.tool.core.ooaofooa.instance.RuntimeChannelSet;
import io.ciera.tool.core.ooaofooa.instance.SelfQueueEntry;
import io.ciera.tool.core.ooaofooa.instance.SelfQueueEntrySet;
import io.ciera.tool.core.ooaofooa.instance.Stack;
import io.ciera.tool.core.ooaofooa.instance.StackFrame;
import io.ciera.tool.core.ooaofooa.instance.StackFrameSet;
import io.ciera.tool.core.ooaofooa.instance.StackSet;
import io.ciera.tool.core.ooaofooa.instance.Timer;
import io.ciera.tool.core.ooaofooa.instance.TimerSet;
import io.ciera.tool.core.ooaofooa.instance.ValueInStackFrame;
import io.ciera.tool.core.ooaofooa.instance.ValueInStackFrameSet;
import io.ciera.tool.core.ooaofooa.instance.impl.AttributeValueImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.AttributeValueSetImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.BlockInStackFrameImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.BlockInStackFrameSetImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.ComponentInstanceContainerImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.ComponentInstanceContainerSetImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.ComponentInstanceImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.ComponentInstanceSetImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.DataItemValueImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.DataItemValueSetImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.EventQueueEntryImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.EventQueueEntrySetImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.I_INSImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.I_INSSetImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.IntercomponentQueueEntryImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.IntercomponentQueueEntrySetImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.LinkImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.LinkParticipationImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.LinkParticipationSetImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.LinkSetImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.MonitorImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.MonitorSetImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.PendingEventImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.PendingEventSetImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.RuntimeChannelImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.RuntimeChannelSetImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.SelfQueueEntryImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.SelfQueueEntrySetImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.StackFrameImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.StackFrameSetImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.StackImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.StackSetImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.TimerImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.TimerSetImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.ValueInStackFrameImpl;
import io.ciera.tool.core.ooaofooa.instance.impl.ValueInStackFrameSetImpl;
import io.ciera.tool.core.ooaofooa.instanceaccess.AssignToMember;
import io.ciera.tool.core.ooaofooa.instanceaccess.AssignToMemberSet;
import io.ciera.tool.core.ooaofooa.instanceaccess.Create;
import io.ciera.tool.core.ooaofooa.instanceaccess.CreateNoVariable;
import io.ciera.tool.core.ooaofooa.instanceaccess.CreateNoVariableSet;
import io.ciera.tool.core.ooaofooa.instanceaccess.CreateSet;
import io.ciera.tool.core.ooaofooa.instanceaccess.Delete;
import io.ciera.tool.core.ooaofooa.instanceaccess.DeleteSet;
import io.ciera.tool.core.ooaofooa.instanceaccess.impl.AssignToMemberImpl;
import io.ciera.tool.core.ooaofooa.instanceaccess.impl.AssignToMemberSetImpl;
import io.ciera.tool.core.ooaofooa.instanceaccess.impl.CreateImpl;
import io.ciera.tool.core.ooaofooa.instanceaccess.impl.CreateNoVariableImpl;
import io.ciera.tool.core.ooaofooa.instanceaccess.impl.CreateNoVariableSetImpl;
import io.ciera.tool.core.ooaofooa.instanceaccess.impl.CreateSetImpl;
import io.ciera.tool.core.ooaofooa.instanceaccess.impl.DeleteImpl;
import io.ciera.tool.core.ooaofooa.instanceaccess.impl.DeleteSetImpl;
import io.ciera.tool.core.ooaofooa.interaction.ActorParticipant;
import io.ciera.tool.core.ooaofooa.interaction.ActorParticipantSet;
import io.ciera.tool.core.ooaofooa.interaction.ClassInstanceParticipant;
import io.ciera.tool.core.ooaofooa.interaction.ClassInstanceParticipantSet;
import io.ciera.tool.core.ooaofooa.interaction.ClassParticipant;
import io.ciera.tool.core.ooaofooa.interaction.ClassParticipantAttribute;
import io.ciera.tool.core.ooaofooa.interaction.ClassParticipantAttributeSet;
import io.ciera.tool.core.ooaofooa.interaction.ClassParticipantSet;
import io.ciera.tool.core.ooaofooa.interaction.ComponentParticipant;
import io.ciera.tool.core.ooaofooa.interaction.ComponentParticipantSet;
import io.ciera.tool.core.ooaofooa.interaction.ExternalEntityParticipant;
import io.ciera.tool.core.ooaofooa.interaction.ExternalEntityParticipantSet;
import io.ciera.tool.core.ooaofooa.interaction.FormalAttribute;
import io.ciera.tool.core.ooaofooa.interaction.FormalAttributeSet;
import io.ciera.tool.core.ooaofooa.interaction.FormalAttributeValue;
import io.ciera.tool.core.ooaofooa.interaction.FormalAttributeValueSet;
import io.ciera.tool.core.ooaofooa.interaction.InformalAttribute;
import io.ciera.tool.core.ooaofooa.interaction.InformalAttributeSet;
import io.ciera.tool.core.ooaofooa.interaction.InformalAttributeValue;
import io.ciera.tool.core.ooaofooa.interaction.InformalAttributeValueSet;
import io.ciera.tool.core.ooaofooa.interaction.InstanceAttributeValue;
import io.ciera.tool.core.ooaofooa.interaction.InstanceAttributeValueSet;
import io.ciera.tool.core.ooaofooa.interaction.InteractionParticipant;
import io.ciera.tool.core.ooaofooa.interaction.InteractionParticipantSet;
import io.ciera.tool.core.ooaofooa.interaction.Lifespan;
import io.ciera.tool.core.ooaofooa.interaction.LifespanSet;
import io.ciera.tool.core.ooaofooa.interaction.PackageParticipant;
import io.ciera.tool.core.ooaofooa.interaction.PackageParticipantSet;
import io.ciera.tool.core.ooaofooa.interaction.TimeSpan;
import io.ciera.tool.core.ooaofooa.interaction.TimeSpanSet;
import io.ciera.tool.core.ooaofooa.interaction.TimingMark;
import io.ciera.tool.core.ooaofooa.interaction.TimingMarkSet;
import io.ciera.tool.core.ooaofooa.interaction.UseCaseParticipant;
import io.ciera.tool.core.ooaofooa.interaction.UseCaseParticipantSet;
import io.ciera.tool.core.ooaofooa.interaction.impl.ActorParticipantImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.ActorParticipantSetImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.ClassInstanceParticipantImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.ClassInstanceParticipantSetImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.ClassParticipantAttributeImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.ClassParticipantAttributeSetImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.ClassParticipantImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.ClassParticipantSetImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.ComponentParticipantImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.ComponentParticipantSetImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.ExternalEntityParticipantImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.ExternalEntityParticipantSetImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.FormalAttributeImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.FormalAttributeSetImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.FormalAttributeValueImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.FormalAttributeValueSetImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.InformalAttributeImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.InformalAttributeSetImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.InformalAttributeValueImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.InformalAttributeValueSetImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.InstanceAttributeValueImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.InstanceAttributeValueSetImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.InteractionParticipantImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.InteractionParticipantSetImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.LifespanImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.LifespanSetImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.PackageParticipantImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.PackageParticipantSetImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.TimeSpanImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.TimeSpanSetImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.TimingMarkImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.TimingMarkSetImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.UseCaseParticipantImpl;
import io.ciera.tool.core.ooaofooa.interaction.impl.UseCaseParticipantSetImpl;
import io.ciera.tool.core.ooaofooa.invocation.BridgeInvocation;
import io.ciera.tool.core.ooaofooa.invocation.BridgeInvocationSet;
import io.ciera.tool.core.ooaofooa.invocation.FunctionInvocation;
import io.ciera.tool.core.ooaofooa.invocation.FunctionInvocationSet;
import io.ciera.tool.core.ooaofooa.invocation.InterfaceOperationInvocation;
import io.ciera.tool.core.ooaofooa.invocation.InterfaceOperationInvocationSet;
import io.ciera.tool.core.ooaofooa.invocation.OperationInvocation;
import io.ciera.tool.core.ooaofooa.invocation.OperationInvocationSet;
import io.ciera.tool.core.ooaofooa.invocation.ReturnStmt;
import io.ciera.tool.core.ooaofooa.invocation.ReturnStmtSet;
import io.ciera.tool.core.ooaofooa.invocation.SignalInvocation;
import io.ciera.tool.core.ooaofooa.invocation.SignalInvocationSet;
import io.ciera.tool.core.ooaofooa.invocation.impl.BridgeInvocationImpl;
import io.ciera.tool.core.ooaofooa.invocation.impl.BridgeInvocationSetImpl;
import io.ciera.tool.core.ooaofooa.invocation.impl.FunctionInvocationImpl;
import io.ciera.tool.core.ooaofooa.invocation.impl.FunctionInvocationSetImpl;
import io.ciera.tool.core.ooaofooa.invocation.impl.InterfaceOperationInvocationImpl;
import io.ciera.tool.core.ooaofooa.invocation.impl.InterfaceOperationInvocationSetImpl;
import io.ciera.tool.core.ooaofooa.invocation.impl.OperationInvocationImpl;
import io.ciera.tool.core.ooaofooa.invocation.impl.OperationInvocationSetImpl;
import io.ciera.tool.core.ooaofooa.invocation.impl.ReturnStmtImpl;
import io.ciera.tool.core.ooaofooa.invocation.impl.ReturnStmtSetImpl;
import io.ciera.tool.core.ooaofooa.invocation.impl.SignalInvocationImpl;
import io.ciera.tool.core.ooaofooa.invocation.impl.SignalInvocationSetImpl;
import io.ciera.tool.core.ooaofooa.message.AsynchronousMessage;
import io.ciera.tool.core.ooaofooa.message.AsynchronousMessageSet;
import io.ciera.tool.core.ooaofooa.message.BridgeArgument;
import io.ciera.tool.core.ooaofooa.message.BridgeArgumentSet;
import io.ciera.tool.core.ooaofooa.message.BridgeMessage;
import io.ciera.tool.core.ooaofooa.message.BridgeMessageSet;
import io.ciera.tool.core.ooaofooa.message.EventArgument;
import io.ciera.tool.core.ooaofooa.message.EventArgumentSet;
import io.ciera.tool.core.ooaofooa.message.EventMessage;
import io.ciera.tool.core.ooaofooa.message.EventMessageSet;
import io.ciera.tool.core.ooaofooa.message.ExecutablePropertyArgument;
import io.ciera.tool.core.ooaofooa.message.ExecutablePropertyArgumentSet;
import io.ciera.tool.core.ooaofooa.message.FunctionArgument;
import io.ciera.tool.core.ooaofooa.message.FunctionArgumentSet;
import io.ciera.tool.core.ooaofooa.message.FunctionMessage;
import io.ciera.tool.core.ooaofooa.message.FunctionMessageSet;
import io.ciera.tool.core.ooaofooa.message.InformalArgument;
import io.ciera.tool.core.ooaofooa.message.InformalArgumentSet;
import io.ciera.tool.core.ooaofooa.message.InformalAsynchronousMessage;
import io.ciera.tool.core.ooaofooa.message.InformalAsynchronousMessageSet;
import io.ciera.tool.core.ooaofooa.message.InformalSynchronousMessage;
import io.ciera.tool.core.ooaofooa.message.InformalSynchronousMessageSet;
import io.ciera.tool.core.ooaofooa.message.InterfaceOperationMessage;
import io.ciera.tool.core.ooaofooa.message.InterfaceOperationMessageSet;
import io.ciera.tool.core.ooaofooa.message.MSG_M;
import io.ciera.tool.core.ooaofooa.message.MSG_MSet;
import io.ciera.tool.core.ooaofooa.message.MessageArgument;
import io.ciera.tool.core.ooaofooa.message.MessageArgumentSet;
import io.ciera.tool.core.ooaofooa.message.OperationArgument;
import io.ciera.tool.core.ooaofooa.message.OperationArgumentSet;
import io.ciera.tool.core.ooaofooa.message.OperationMessage;
import io.ciera.tool.core.ooaofooa.message.OperationMessageSet;
import io.ciera.tool.core.ooaofooa.message.ReturnMessage;
import io.ciera.tool.core.ooaofooa.message.ReturnMessageSet;
import io.ciera.tool.core.ooaofooa.message.SignalMessage;
import io.ciera.tool.core.ooaofooa.message.SignalMessageSet;
import io.ciera.tool.core.ooaofooa.message.SynchronousMessage;
import io.ciera.tool.core.ooaofooa.message.SynchronousMessageSet;
import io.ciera.tool.core.ooaofooa.message.impl.AsynchronousMessageImpl;
import io.ciera.tool.core.ooaofooa.message.impl.AsynchronousMessageSetImpl;
import io.ciera.tool.core.ooaofooa.message.impl.BridgeArgumentImpl;
import io.ciera.tool.core.ooaofooa.message.impl.BridgeArgumentSetImpl;
import io.ciera.tool.core.ooaofooa.message.impl.BridgeMessageImpl;
import io.ciera.tool.core.ooaofooa.message.impl.BridgeMessageSetImpl;
import io.ciera.tool.core.ooaofooa.message.impl.EventArgumentImpl;
import io.ciera.tool.core.ooaofooa.message.impl.EventArgumentSetImpl;
import io.ciera.tool.core.ooaofooa.message.impl.EventMessageImpl;
import io.ciera.tool.core.ooaofooa.message.impl.EventMessageSetImpl;
import io.ciera.tool.core.ooaofooa.message.impl.ExecutablePropertyArgumentImpl;
import io.ciera.tool.core.ooaofooa.message.impl.ExecutablePropertyArgumentSetImpl;
import io.ciera.tool.core.ooaofooa.message.impl.FunctionArgumentImpl;
import io.ciera.tool.core.ooaofooa.message.impl.FunctionArgumentSetImpl;
import io.ciera.tool.core.ooaofooa.message.impl.FunctionMessageImpl;
import io.ciera.tool.core.ooaofooa.message.impl.FunctionMessageSetImpl;
import io.ciera.tool.core.ooaofooa.message.impl.InformalArgumentImpl;
import io.ciera.tool.core.ooaofooa.message.impl.InformalArgumentSetImpl;
import io.ciera.tool.core.ooaofooa.message.impl.InformalAsynchronousMessageImpl;
import io.ciera.tool.core.ooaofooa.message.impl.InformalAsynchronousMessageSetImpl;
import io.ciera.tool.core.ooaofooa.message.impl.InformalSynchronousMessageImpl;
import io.ciera.tool.core.ooaofooa.message.impl.InformalSynchronousMessageSetImpl;
import io.ciera.tool.core.ooaofooa.message.impl.InterfaceOperationMessageImpl;
import io.ciera.tool.core.ooaofooa.message.impl.InterfaceOperationMessageSetImpl;
import io.ciera.tool.core.ooaofooa.message.impl.MSG_MImpl;
import io.ciera.tool.core.ooaofooa.message.impl.MSG_MSetImpl;
import io.ciera.tool.core.ooaofooa.message.impl.MessageArgumentImpl;
import io.ciera.tool.core.ooaofooa.message.impl.MessageArgumentSetImpl;
import io.ciera.tool.core.ooaofooa.message.impl.OperationArgumentImpl;
import io.ciera.tool.core.ooaofooa.message.impl.OperationArgumentSetImpl;
import io.ciera.tool.core.ooaofooa.message.impl.OperationMessageImpl;
import io.ciera.tool.core.ooaofooa.message.impl.OperationMessageSetImpl;
import io.ciera.tool.core.ooaofooa.message.impl.ReturnMessageImpl;
import io.ciera.tool.core.ooaofooa.message.impl.ReturnMessageSetImpl;
import io.ciera.tool.core.ooaofooa.message.impl.SignalMessageImpl;
import io.ciera.tool.core.ooaofooa.message.impl.SignalMessageSetImpl;
import io.ciera.tool.core.ooaofooa.message.impl.SynchronousMessageImpl;
import io.ciera.tool.core.ooaofooa.message.impl.SynchronousMessageSetImpl;
import io.ciera.tool.core.ooaofooa.packageableelement.ComponentResultSet;
import io.ciera.tool.core.ooaofooa.packageableelement.ComponentResultSetSet;
import io.ciera.tool.core.ooaofooa.packageableelement.ComponentVisibility;
import io.ciera.tool.core.ooaofooa.packageableelement.ComponentVisibilitySet;
import io.ciera.tool.core.ooaofooa.packageableelement.ElementVisibility;
import io.ciera.tool.core.ooaofooa.packageableelement.ElementVisibilitySet;
import io.ciera.tool.core.ooaofooa.packageableelement.PackageableElement;
import io.ciera.tool.core.ooaofooa.packageableelement.PackageableElementSet;
import io.ciera.tool.core.ooaofooa.packageableelement.SearchResultSet;
import io.ciera.tool.core.ooaofooa.packageableelement.SearchResultSetSet;
import io.ciera.tool.core.ooaofooa.packageableelement.impl.ComponentResultSetImpl;
import io.ciera.tool.core.ooaofooa.packageableelement.impl.ComponentResultSetSetImpl;
import io.ciera.tool.core.ooaofooa.packageableelement.impl.ComponentVisibilityImpl;
import io.ciera.tool.core.ooaofooa.packageableelement.impl.ComponentVisibilitySetImpl;
import io.ciera.tool.core.ooaofooa.packageableelement.impl.ElementVisibilityImpl;
import io.ciera.tool.core.ooaofooa.packageableelement.impl.ElementVisibilitySetImpl;
import io.ciera.tool.core.ooaofooa.packageableelement.impl.PackageableElementImpl;
import io.ciera.tool.core.ooaofooa.packageableelement.impl.PackageableElementSetImpl;
import io.ciera.tool.core.ooaofooa.packageableelement.impl.SearchResultSetImpl;
import io.ciera.tool.core.ooaofooa.packageableelement.impl.SearchResultSetSetImpl;
import io.ciera.tool.core.ooaofooa.persistenceassociations.DelegationInComponent;
import io.ciera.tool.core.ooaofooa.persistenceassociations.DelegationInComponentSet;
import io.ciera.tool.core.ooaofooa.persistenceassociations.SatisfactionInComponent;
import io.ciera.tool.core.ooaofooa.persistenceassociations.SatisfactionInComponentSet;
import io.ciera.tool.core.ooaofooa.persistenceassociations.impl.DelegationInComponentImpl;
import io.ciera.tool.core.ooaofooa.persistenceassociations.impl.DelegationInComponentSetImpl;
import io.ciera.tool.core.ooaofooa.persistenceassociations.impl.SatisfactionInComponentImpl;
import io.ciera.tool.core.ooaofooa.persistenceassociations.impl.SatisfactionInComponentSetImpl;
import io.ciera.tool.core.ooaofooa.relateandunrelate.Relate;
import io.ciera.tool.core.ooaofooa.relateandunrelate.RelateSet;
import io.ciera.tool.core.ooaofooa.relateandunrelate.RelateUsing;
import io.ciera.tool.core.ooaofooa.relateandunrelate.RelateUsingSet;
import io.ciera.tool.core.ooaofooa.relateandunrelate.Unrelate;
import io.ciera.tool.core.ooaofooa.relateandunrelate.UnrelateSet;
import io.ciera.tool.core.ooaofooa.relateandunrelate.UnrelateUsing;
import io.ciera.tool.core.ooaofooa.relateandunrelate.UnrelateUsingSet;
import io.ciera.tool.core.ooaofooa.relateandunrelate.impl.RelateImpl;
import io.ciera.tool.core.ooaofooa.relateandunrelate.impl.RelateSetImpl;
import io.ciera.tool.core.ooaofooa.relateandunrelate.impl.RelateUsingImpl;
import io.ciera.tool.core.ooaofooa.relateandunrelate.impl.RelateUsingSetImpl;
import io.ciera.tool.core.ooaofooa.relateandunrelate.impl.UnrelateImpl;
import io.ciera.tool.core.ooaofooa.relateandunrelate.impl.UnrelateSetImpl;
import io.ciera.tool.core.ooaofooa.relateandunrelate.impl.UnrelateUsingImpl;
import io.ciera.tool.core.ooaofooa.relateandunrelate.impl.UnrelateUsingSetImpl;
import io.ciera.tool.core.ooaofooa.selection.ACT_FIO;
import io.ciera.tool.core.ooaofooa.selection.ACT_FIOSet;
import io.ciera.tool.core.ooaofooa.selection.ACT_SEL;
import io.ciera.tool.core.ooaofooa.selection.ACT_SELSet;
import io.ciera.tool.core.ooaofooa.selection.ChainLink;
import io.ciera.tool.core.ooaofooa.selection.ChainLinkSet;
import io.ciera.tool.core.ooaofooa.selection.SelectFromInstancesWhere;
import io.ciera.tool.core.ooaofooa.selection.SelectFromInstancesWhereSet;
import io.ciera.tool.core.ooaofooa.selection.SelectRelatedBy;
import io.ciera.tool.core.ooaofooa.selection.SelectRelatedBySet;
import io.ciera.tool.core.ooaofooa.selection.SelectRelatedWhere;
import io.ciera.tool.core.ooaofooa.selection.SelectRelatedWhereSet;
import io.ciera.tool.core.ooaofooa.selection.impl.ACT_FIOImpl;
import io.ciera.tool.core.ooaofooa.selection.impl.ACT_FIOSetImpl;
import io.ciera.tool.core.ooaofooa.selection.impl.ACT_SELImpl;
import io.ciera.tool.core.ooaofooa.selection.impl.ACT_SELSetImpl;
import io.ciera.tool.core.ooaofooa.selection.impl.ChainLinkImpl;
import io.ciera.tool.core.ooaofooa.selection.impl.ChainLinkSetImpl;
import io.ciera.tool.core.ooaofooa.selection.impl.SelectFromInstancesWhereImpl;
import io.ciera.tool.core.ooaofooa.selection.impl.SelectFromInstancesWhereSetImpl;
import io.ciera.tool.core.ooaofooa.selection.impl.SelectRelatedByImpl;
import io.ciera.tool.core.ooaofooa.selection.impl.SelectRelatedBySetImpl;
import io.ciera.tool.core.ooaofooa.selection.impl.SelectRelatedWhereImpl;
import io.ciera.tool.core.ooaofooa.selection.impl.SelectRelatedWhereSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.Action;
import io.ciera.tool.core.ooaofooa.statemachine.ActionHome;
import io.ciera.tool.core.ooaofooa.statemachine.ActionHomeSet;
import io.ciera.tool.core.ooaofooa.statemachine.ActionSet;
import io.ciera.tool.core.ooaofooa.statemachine.CantHappen;
import io.ciera.tool.core.ooaofooa.statemachine.CantHappenSet;
import io.ciera.tool.core.ooaofooa.statemachine.ClassStateMachine;
import io.ciera.tool.core.ooaofooa.statemachine.ClassStateMachineSet;
import io.ciera.tool.core.ooaofooa.statemachine.CreationTransition;
import io.ciera.tool.core.ooaofooa.statemachine.CreationTransitionSet;
import io.ciera.tool.core.ooaofooa.statemachine.EventIgnored;
import io.ciera.tool.core.ooaofooa.statemachine.EventIgnoredSet;
import io.ciera.tool.core.ooaofooa.statemachine.InstanceStateMachine;
import io.ciera.tool.core.ooaofooa.statemachine.InstanceStateMachineSet;
import io.ciera.tool.core.ooaofooa.statemachine.LocalEvent;
import io.ciera.tool.core.ooaofooa.statemachine.LocalEventSet;
import io.ciera.tool.core.ooaofooa.statemachine.MealyActionHome;
import io.ciera.tool.core.ooaofooa.statemachine.MealyActionHomeSet;
import io.ciera.tool.core.ooaofooa.statemachine.MealyStateMachine;
import io.ciera.tool.core.ooaofooa.statemachine.MealyStateMachineSet;
import io.ciera.tool.core.ooaofooa.statemachine.MooreActionHome;
import io.ciera.tool.core.ooaofooa.statemachine.MooreActionHomeSet;
import io.ciera.tool.core.ooaofooa.statemachine.MooreStateMachine;
import io.ciera.tool.core.ooaofooa.statemachine.MooreStateMachineSet;
import io.ciera.tool.core.ooaofooa.statemachine.NewStateTransition;
import io.ciera.tool.core.ooaofooa.statemachine.NewStateTransitionSet;
import io.ciera.tool.core.ooaofooa.statemachine.NoEventTransition;
import io.ciera.tool.core.ooaofooa.statemachine.NoEventTransitionSet;
import io.ciera.tool.core.ooaofooa.statemachine.NonLocalEvent;
import io.ciera.tool.core.ooaofooa.statemachine.NonLocalEventSet;
import io.ciera.tool.core.ooaofooa.statemachine.PolymorphicEvent;
import io.ciera.tool.core.ooaofooa.statemachine.PolymorphicEventSet;
import io.ciera.tool.core.ooaofooa.statemachine.SEMEvent;
import io.ciera.tool.core.ooaofooa.statemachine.SEMEventSet;
import io.ciera.tool.core.ooaofooa.statemachine.SM_SM;
import io.ciera.tool.core.ooaofooa.statemachine.SM_SMSet;
import io.ciera.tool.core.ooaofooa.statemachine.SignalEvent;
import io.ciera.tool.core.ooaofooa.statemachine.SignalEventSet;
import io.ciera.tool.core.ooaofooa.statemachine.StateEventMatrixEntry;
import io.ciera.tool.core.ooaofooa.statemachine.StateEventMatrixEntrySet;
import io.ciera.tool.core.ooaofooa.statemachine.StateMachineEvent;
import io.ciera.tool.core.ooaofooa.statemachine.StateMachineEventDataItem;
import io.ciera.tool.core.ooaofooa.statemachine.StateMachineEventDataItemSet;
import io.ciera.tool.core.ooaofooa.statemachine.StateMachineEventSet;
import io.ciera.tool.core.ooaofooa.statemachine.StateMachineState;
import io.ciera.tool.core.ooaofooa.statemachine.StateMachineStateSet;
import io.ciera.tool.core.ooaofooa.statemachine.Transition;
import io.ciera.tool.core.ooaofooa.statemachine.TransitionActionHome;
import io.ciera.tool.core.ooaofooa.statemachine.TransitionActionHomeSet;
import io.ciera.tool.core.ooaofooa.statemachine.TransitionSet;
import io.ciera.tool.core.ooaofooa.statemachine.impl.ActionHomeImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.ActionHomeSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.ActionImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.ActionSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.CantHappenImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.CantHappenSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.ClassStateMachineImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.ClassStateMachineSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.CreationTransitionImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.CreationTransitionSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.EventIgnoredImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.EventIgnoredSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.InstanceStateMachineImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.InstanceStateMachineSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.LocalEventImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.LocalEventSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.MealyActionHomeImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.MealyActionHomeSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.MealyStateMachineImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.MealyStateMachineSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.MooreActionHomeImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.MooreActionHomeSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.MooreStateMachineImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.MooreStateMachineSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.NewStateTransitionImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.NewStateTransitionSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.NoEventTransitionImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.NoEventTransitionSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.NonLocalEventImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.NonLocalEventSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.PolymorphicEventImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.PolymorphicEventSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.SEMEventImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.SEMEventSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.SM_SMImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.SM_SMSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.SignalEventImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.SignalEventSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.StateEventMatrixEntryImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.StateEventMatrixEntrySetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.StateMachineEventDataItemImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.StateMachineEventDataItemSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.StateMachineEventImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.StateMachineEventSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.StateMachineStateImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.StateMachineStateSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.TransitionActionHomeImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.TransitionActionHomeSetImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.TransitionImpl;
import io.ciera.tool.core.ooaofooa.statemachine.impl.TransitionSetImpl;
import io.ciera.tool.core.ooaofooa.subsystem.AttributeReferenceInClass;
import io.ciera.tool.core.ooaofooa.subsystem.AttributeReferenceInClassSet;
import io.ciera.tool.core.ooaofooa.subsystem.BaseAttribute;
import io.ciera.tool.core.ooaofooa.subsystem.BaseAttributeSet;
import io.ciera.tool.core.ooaofooa.subsystem.ClassIdentifier;
import io.ciera.tool.core.ooaofooa.subsystem.ClassIdentifierAttribute;
import io.ciera.tool.core.ooaofooa.subsystem.ClassIdentifierAttributeSet;
import io.ciera.tool.core.ooaofooa.subsystem.ClassIdentifierSet;
import io.ciera.tool.core.ooaofooa.subsystem.Deferral;
import io.ciera.tool.core.ooaofooa.subsystem.DeferralSet;
import io.ciera.tool.core.ooaofooa.subsystem.DerivedBaseAttribute;
import io.ciera.tool.core.ooaofooa.subsystem.DerivedBaseAttributeSet;
import io.ciera.tool.core.ooaofooa.subsystem.ImportedClass;
import io.ciera.tool.core.ooaofooa.subsystem.ImportedClassSet;
import io.ciera.tool.core.ooaofooa.subsystem.ModelClass;
import io.ciera.tool.core.ooaofooa.subsystem.ModelClassSet;
import io.ciera.tool.core.ooaofooa.subsystem.NewBaseAttribute;
import io.ciera.tool.core.ooaofooa.subsystem.NewBaseAttributeSet;
import io.ciera.tool.core.ooaofooa.subsystem.O_ATTR;
import io.ciera.tool.core.ooaofooa.subsystem.O_ATTRSet;
import io.ciera.tool.core.ooaofooa.subsystem.O_TFR;
import io.ciera.tool.core.ooaofooa.subsystem.O_TFRSet;
import io.ciera.tool.core.ooaofooa.subsystem.OperationParameter;
import io.ciera.tool.core.ooaofooa.subsystem.OperationParameterSet;
import io.ciera.tool.core.ooaofooa.subsystem.ReferentialAttribute;
import io.ciera.tool.core.ooaofooa.subsystem.ReferentialAttributeSet;
import io.ciera.tool.core.ooaofooa.subsystem.ReferredToIdentifierAttribute;
import io.ciera.tool.core.ooaofooa.subsystem.ReferredToIdentifierAttributeSet;
import io.ciera.tool.core.ooaofooa.subsystem.impl.AttributeReferenceInClassImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.AttributeReferenceInClassSetImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.BaseAttributeImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.BaseAttributeSetImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.ClassIdentifierAttributeImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.ClassIdentifierAttributeSetImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.ClassIdentifierImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.ClassIdentifierSetImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.DeferralImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.DeferralSetImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.DerivedBaseAttributeImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.DerivedBaseAttributeSetImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.ImportedClassImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.ImportedClassSetImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.ModelClassImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.ModelClassSetImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.NewBaseAttributeImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.NewBaseAttributeSetImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.O_ATTRImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.O_ATTRSetImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.O_TFRImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.O_TFRSetImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.OperationParameterImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.OperationParameterSetImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.ReferentialAttributeImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.ReferentialAttributeSetImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.ReferredToIdentifierAttributeImpl;
import io.ciera.tool.core.ooaofooa.subsystem.impl.ReferredToIdentifierAttributeSetImpl;
import io.ciera.tool.core.ooaofooa.usecase.BinaryAssociation;
import io.ciera.tool.core.ooaofooa.usecase.BinaryAssociationSet;
import io.ciera.tool.core.ooaofooa.usecase.Extend;
import io.ciera.tool.core.ooaofooa.usecase.ExtendSet;
import io.ciera.tool.core.ooaofooa.usecase.Generalization;
import io.ciera.tool.core.ooaofooa.usecase.GeneralizationSet;
import io.ciera.tool.core.ooaofooa.usecase.Include;
import io.ciera.tool.core.ooaofooa.usecase.IncludeSet;
import io.ciera.tool.core.ooaofooa.usecase.UseCaseAssociation;
import io.ciera.tool.core.ooaofooa.usecase.UseCaseAssociationSet;
import io.ciera.tool.core.ooaofooa.usecase.impl.BinaryAssociationImpl;
import io.ciera.tool.core.ooaofooa.usecase.impl.BinaryAssociationSetImpl;
import io.ciera.tool.core.ooaofooa.usecase.impl.ExtendImpl;
import io.ciera.tool.core.ooaofooa.usecase.impl.ExtendSetImpl;
import io.ciera.tool.core.ooaofooa.usecase.impl.GeneralizationImpl;
import io.ciera.tool.core.ooaofooa.usecase.impl.GeneralizationSetImpl;
import io.ciera.tool.core.ooaofooa.usecase.impl.IncludeImpl;
import io.ciera.tool.core.ooaofooa.usecase.impl.IncludeSetImpl;
import io.ciera.tool.core.ooaofooa.usecase.impl.UseCaseAssociationImpl;
import io.ciera.tool.core.ooaofooa.usecase.impl.UseCaseAssociationSetImpl;
import io.ciera.tool.core.ooaofooa.value.ArrayLengthValue;
import io.ciera.tool.core.ooaofooa.value.ArrayLengthValueSet;
import io.ciera.tool.core.ooaofooa.value.AttributeValueReference;
import io.ciera.tool.core.ooaofooa.value.AttributeValueReferenceSet;
import io.ciera.tool.core.ooaofooa.value.BridgeValue;
import io.ciera.tool.core.ooaofooa.value.BridgeValueSet;
import io.ciera.tool.core.ooaofooa.value.EventDatumValue;
import io.ciera.tool.core.ooaofooa.value.EventDatumValueSet;
import io.ciera.tool.core.ooaofooa.value.EventParameterReference;
import io.ciera.tool.core.ooaofooa.value.EventParameterReferenceSet;
import io.ciera.tool.core.ooaofooa.value.FunctionValue;
import io.ciera.tool.core.ooaofooa.value.FunctionValueSet;
import io.ciera.tool.core.ooaofooa.value.InstanceHandle;
import io.ciera.tool.core.ooaofooa.value.InstanceHandleSet;
import io.ciera.tool.core.ooaofooa.value.InstanceReference;
import io.ciera.tool.core.ooaofooa.value.InstanceReferenceSet;
import io.ciera.tool.core.ooaofooa.value.InstanceSetReference;
import io.ciera.tool.core.ooaofooa.value.InstanceSetReferenceSet;
import io.ciera.tool.core.ooaofooa.value.LiteralBoolean;
import io.ciera.tool.core.ooaofooa.value.LiteralBooleanSet;
import io.ciera.tool.core.ooaofooa.value.LiteralEnumerator;
import io.ciera.tool.core.ooaofooa.value.LiteralEnumeratorSet;
import io.ciera.tool.core.ooaofooa.value.LiteralInteger;
import io.ciera.tool.core.ooaofooa.value.LiteralIntegerSet;
import io.ciera.tool.core.ooaofooa.value.LiteralReal;
import io.ciera.tool.core.ooaofooa.value.LiteralRealSet;
import io.ciera.tool.core.ooaofooa.value.LiteralString;
import io.ciera.tool.core.ooaofooa.value.LiteralStringSet;
import io.ciera.tool.core.ooaofooa.value.MemberValueReference;
import io.ciera.tool.core.ooaofooa.value.MemberValueReferenceSet;
import io.ciera.tool.core.ooaofooa.value.MessageValue;
import io.ciera.tool.core.ooaofooa.value.MessageValueSet;
import io.ciera.tool.core.ooaofooa.value.OperationValue;
import io.ciera.tool.core.ooaofooa.value.OperationValueSet;
import io.ciera.tool.core.ooaofooa.value.ParameterValue;
import io.ciera.tool.core.ooaofooa.value.ParameterValueSet;
import io.ciera.tool.core.ooaofooa.value.SelectedReference;
import io.ciera.tool.core.ooaofooa.value.SelectedReferenceSet;
import io.ciera.tool.core.ooaofooa.value.SymbolicConstantValue;
import io.ciera.tool.core.ooaofooa.value.SymbolicConstantValueSet;
import io.ciera.tool.core.ooaofooa.value.TransientValueReference;
import io.ciera.tool.core.ooaofooa.value.TransientValueReferenceSet;
import io.ciera.tool.core.ooaofooa.value.TransientVar;
import io.ciera.tool.core.ooaofooa.value.TransientVarSet;
import io.ciera.tool.core.ooaofooa.value.V_AER;
import io.ciera.tool.core.ooaofooa.value.V_AERSet;
import io.ciera.tool.core.ooaofooa.value.V_BIN;
import io.ciera.tool.core.ooaofooa.value.V_BINSet;
import io.ciera.tool.core.ooaofooa.value.V_INS;
import io.ciera.tool.core.ooaofooa.value.V_INSSet;
import io.ciera.tool.core.ooaofooa.value.V_PAR;
import io.ciera.tool.core.ooaofooa.value.V_PARSet;
import io.ciera.tool.core.ooaofooa.value.V_UNY;
import io.ciera.tool.core.ooaofooa.value.V_UNYSet;
import io.ciera.tool.core.ooaofooa.value.V_VAR;
import io.ciera.tool.core.ooaofooa.value.V_VARSet;
import io.ciera.tool.core.ooaofooa.value.Value;
import io.ciera.tool.core.ooaofooa.value.ValueSet;
import io.ciera.tool.core.ooaofooa.value.VariableLocation;
import io.ciera.tool.core.ooaofooa.value.VariableLocationSet;
import io.ciera.tool.core.ooaofooa.value.impl.ArrayLengthValueImpl;
import io.ciera.tool.core.ooaofooa.value.impl.ArrayLengthValueSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.AttributeValueReferenceImpl;
import io.ciera.tool.core.ooaofooa.value.impl.AttributeValueReferenceSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.BridgeValueImpl;
import io.ciera.tool.core.ooaofooa.value.impl.BridgeValueSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.EventDatumValueImpl;
import io.ciera.tool.core.ooaofooa.value.impl.EventDatumValueSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.EventParameterReferenceImpl;
import io.ciera.tool.core.ooaofooa.value.impl.EventParameterReferenceSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.FunctionValueImpl;
import io.ciera.tool.core.ooaofooa.value.impl.FunctionValueSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.InstanceHandleImpl;
import io.ciera.tool.core.ooaofooa.value.impl.InstanceHandleSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.InstanceReferenceImpl;
import io.ciera.tool.core.ooaofooa.value.impl.InstanceReferenceSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.InstanceSetReferenceImpl;
import io.ciera.tool.core.ooaofooa.value.impl.InstanceSetReferenceSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.LiteralBooleanImpl;
import io.ciera.tool.core.ooaofooa.value.impl.LiteralBooleanSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.LiteralEnumeratorImpl;
import io.ciera.tool.core.ooaofooa.value.impl.LiteralEnumeratorSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.LiteralIntegerImpl;
import io.ciera.tool.core.ooaofooa.value.impl.LiteralIntegerSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.LiteralRealImpl;
import io.ciera.tool.core.ooaofooa.value.impl.LiteralRealSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.LiteralStringImpl;
import io.ciera.tool.core.ooaofooa.value.impl.LiteralStringSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.MemberValueReferenceImpl;
import io.ciera.tool.core.ooaofooa.value.impl.MemberValueReferenceSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.MessageValueImpl;
import io.ciera.tool.core.ooaofooa.value.impl.MessageValueSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.OperationValueImpl;
import io.ciera.tool.core.ooaofooa.value.impl.OperationValueSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.ParameterValueImpl;
import io.ciera.tool.core.ooaofooa.value.impl.ParameterValueSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.SelectedReferenceImpl;
import io.ciera.tool.core.ooaofooa.value.impl.SelectedReferenceSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.SymbolicConstantValueImpl;
import io.ciera.tool.core.ooaofooa.value.impl.SymbolicConstantValueSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.TransientValueReferenceImpl;
import io.ciera.tool.core.ooaofooa.value.impl.TransientValueReferenceSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.TransientVarImpl;
import io.ciera.tool.core.ooaofooa.value.impl.TransientVarSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.V_AERImpl;
import io.ciera.tool.core.ooaofooa.value.impl.V_AERSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.V_BINImpl;
import io.ciera.tool.core.ooaofooa.value.impl.V_BINSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.V_INSImpl;
import io.ciera.tool.core.ooaofooa.value.impl.V_INSSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.V_PARImpl;
import io.ciera.tool.core.ooaofooa.value.impl.V_PARSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.V_UNYImpl;
import io.ciera.tool.core.ooaofooa.value.impl.V_UNYSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.V_VARImpl;
import io.ciera.tool.core.ooaofooa.value.impl.V_VARSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.ValueImpl;
import io.ciera.tool.core.ooaofooa.value.impl.ValueSetImpl;
import io.ciera.tool.core.ooaofooa.value.impl.VariableLocationImpl;
import io.ciera.tool.core.ooaofooa.value.impl.VariableLocationSetImpl;

import java.io.IOException;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import java.util.TreeMap;

import ooaofooa.datatypes.ElementTypeConstants;
import ooaofooa.datatypes.IFDirectionType;
import ooaofooa.datatypes.Multiplicity;
import ooaofooa.datatypes.Scope;
import ooaofooa.datatypes.Visibility;

import types.AttributeAccessorType;
import types.Cond;
import types.ImportType;
import types.Mult;
import types.RelationshipType;
import types.SortType;
import types.TransitionType;


public class Core extends Component {

    private Map> classDirectory;

    public Core(IApplication app, IRunContext runContext, int populationId) {
        super(app, runContext, populationId);
        ACT_BRK_extent = new ACT_BRKSetImpl();
        ACT_CON_extent = new ACT_CONSetImpl();
        ACT_FIO_extent = new ACT_FIOSetImpl();
        ACT_SEL_extent = new ACT_SELSetImpl();
        ACT_SMT_extent = new ACT_SMTSetImpl();
        AcceptEvent_extent = new AcceptEventSetImpl();
        AcceptEventAction_extent = new AcceptEventActionSetImpl();
        AcceptTimeEventAction_extent = new AcceptTimeEventActionSetImpl();
        Action_extent = new ActionSetImpl();
        ActionHome_extent = new ActionHomeSetImpl();
        ActionNode_extent = new ActionNodeSetImpl();
        ActivityDiagramAction_extent = new ActivityDiagramActionSetImpl();
        ActivityEdge_extent = new ActivityEdgeSetImpl();
        ActivityFinalNode_extent = new ActivityFinalNodeSetImpl();
        ActivityNode_extent = new ActivityNodeSetImpl();
        ActivityPartition_extent = new ActivityPartitionSetImpl();
        ActorParticipant_extent = new ActorParticipantSetImpl();
        ActualParameter_extent = new ActualParameterSetImpl();
        Any_extent = new AnySetImpl();
        Application_extent = new ApplicationSetImpl();
        ApplicationExecutor_extent = new ApplicationExecutorSetImpl();
        ArrayElementReference_extent = new ArrayElementReferenceSetImpl();
        ArrayLengthAccess_extent = new ArrayLengthAccessSetImpl();
        ArrayLengthValue_extent = new ArrayLengthValueSetImpl();
        ArrayTypeReference_extent = new ArrayTypeReferenceSetImpl();
        AssignToMember_extent = new AssignToMemberSetImpl();
        Association_extent = new AssociationSetImpl();
        AsynchronousMessage_extent = new AsynchronousMessageSetImpl();
        Attribute_extent = new AttributeSetImpl();
        AttributeAccess_extent = new AttributeAccessSetImpl();
        AttributeAccessor_extent = new AttributeAccessorSetImpl();
        AttributeDerivation_extent = new AttributeDerivationSetImpl();
        AttributeReference_extent = new AttributeReferenceSetImpl();
        AttributeReferenceInClass_extent = new AttributeReferenceInClassSetImpl();
        AttributeValue_extent = new AttributeValueSetImpl();
        AttributeValueReference_extent = new AttributeValueReferenceSetImpl();
        BaseAttribute_extent = new BaseAttributeSetImpl();
        BasicTypeReference_extent = new BasicTypeReferenceSetImpl();
        BinaryAssociation_extent = new BinaryAssociationSetImpl();
        BinaryOperation_extent = new BinaryOperationSetImpl();
        Block_extent = new BlockSetImpl();
        BlockInStackFrame_extent = new BlockInStackFrameSetImpl();
        Body_extent = new BodySetImpl();
        BodyInComponent_extent = new BodyInComponentSetImpl();
        BodyInElement_extent = new BodyInElementSetImpl();
        BreakSmt_extent = new BreakSmtSetImpl();
        Bridge_extent = new BridgeSetImpl();
        BridgeArgument_extent = new BridgeArgumentSetImpl();
        BridgeBody_extent = new BridgeBodySetImpl();
        BridgeInvocation_extent = new BridgeInvocationSetImpl();
        BridgeMessage_extent = new BridgeMessageSetImpl();
        BridgeParameter_extent = new BridgeParameterSetImpl();
        BridgeValue_extent = new BridgeValueSetImpl();
        BuiltInType_extent = new BuiltInTypeSetImpl();
        C_C_extent = new C_CSetImpl();
        C_I_extent = new C_ISetImpl();
        C_PO_extent = new C_POSetImpl();
        CantHappen_extent = new CantHappenSetImpl();
        CardinalityCheck_extent = new CardinalityCheckSetImpl();
        ChainLink_extent = new ChainLinkSetImpl();
        ClassAsAssociatedOneSide_extent = new ClassAsAssociatedOneSideSetImpl();
        ClassAsAssociatedOtherSide_extent = new ClassAsAssociatedOtherSideSetImpl();
        ClassAsDerivedOneSide_extent = new ClassAsDerivedOneSideSetImpl();
        ClassAsDerivedOtherSide_extent = new ClassAsDerivedOtherSideSetImpl();
        ClassAsLink_extent = new ClassAsLinkSetImpl();
        ClassAsSimpleFormalizer_extent = new ClassAsSimpleFormalizerSetImpl();
        ClassAsSimpleParticipant_extent = new ClassAsSimpleParticipantSetImpl();
        ClassAsSubtype_extent = new ClassAsSubtypeSetImpl();
        ClassAsSupertype_extent = new ClassAsSupertypeSetImpl();
        ClassIdentifier_extent = new ClassIdentifierSetImpl();
        ClassIdentifierAttribute_extent = new ClassIdentifierAttributeSetImpl();
        ClassInAssociation_extent = new ClassInAssociationSetImpl();
        ClassInstanceParticipant_extent = new ClassInstanceParticipantSetImpl();
        ClassParticipant_extent = new ClassParticipantSetImpl();
        ClassParticipantAttribute_extent = new ClassParticipantAttributeSetImpl();
        ClassRelationship_extent = new ClassRelationshipSetImpl();
        ClassStateMachine_extent = new ClassStateMachineSetImpl();
        CodeBlock_extent = new CodeBlockSetImpl();
        CommunicationLink_extent = new CommunicationLinkSetImpl();
        ComponentDefinition_extent = new ComponentDefinitionSetImpl();
        ComponentInstance_extent = new ComponentInstanceSetImpl();
        ComponentInstanceContainer_extent = new ComponentInstanceContainerSetImpl();
        ComponentInstantiation_extent = new ComponentInstantiationSetImpl();
        ComponentParticipant_extent = new ComponentParticipantSetImpl();
        ComponentReference_extent = new ComponentReferenceSetImpl();
        ComponentResultSet_extent = new ComponentResultSetSetImpl();
        ComponentVisibility_extent = new ComponentVisibilitySetImpl();
        ConstantReference_extent = new ConstantReferenceSetImpl();
        ConstantSpecification_extent = new ConstantSpecificationSetImpl();
        ContinueSmt_extent = new ContinueSmtSetImpl();
        Control_extent = new ControlSetImpl();
        ControlNode_extent = new ControlNodeSetImpl();
        CoreDataType_extent = new CoreDataTypeSetImpl();
        Create_extent = new CreateSetImpl();
        CreateEventStatement_extent = new CreateEventStatementSetImpl();
        CreateEventToClass_extent = new CreateEventToClassSetImpl();
        CreateEventToCreator_extent = new CreateEventToCreatorSetImpl();
        CreateEventToInstance_extent = new CreateEventToInstanceSetImpl();
        CreateNoVariable_extent = new CreateNoVariableSetImpl();
        CreateSMEventStatement_extent = new CreateSMEventStatementSetImpl();
        Creation_extent = new CreationSetImpl();
        CreationTransition_extent = new CreationTransitionSetImpl();
        DataItemValue_extent = new DataItemValueSetImpl();
        DataType_extent = new DataTypeSetImpl();
        DecisionMergeNode_extent = new DecisionMergeNodeSetImpl();
        Deferral_extent = new DeferralSetImpl();
        Delegation_extent = new DelegationSetImpl();
        DelegationInComponent_extent = new DelegationInComponentSetImpl();
        Delete_extent = new DeleteSetImpl();
        DeleteSmt_extent = new DeleteSmtSetImpl();
        Deployment_extent = new DeploymentSetImpl();
        DerivedAssociation_extent = new DerivedAssociationSetImpl();
        DerivedAttributeBody_extent = new DerivedAttributeBodySetImpl();
        DerivedBaseAttribute_extent = new DerivedBaseAttributeSetImpl();
        Dimensions_extent = new DimensionsSetImpl();
        EP_PKG_extent = new EP_PKGSetImpl();
        E_GEN_extent = new E_GENSetImpl();
        ElementVisibility_extent = new ElementVisibilitySetImpl();
        ElseIfStmt_extent = new ElseIfStmtSetImpl();
        ElseStmt_extent = new ElseStmtSetImpl();
        EnumeratedType_extent = new EnumeratedTypeSetImpl();
        EnumerationDataType_extent = new EnumerationDataTypeSetImpl();
        Enumerator_extent = new EnumeratorSetImpl();
        EnumeratorReference_extent = new EnumeratorReferenceSetImpl();
        Event_extent = new EventSetImpl();
        EventArgument_extent = new EventArgumentSetImpl();
        EventCreation_extent = new EventCreationSetImpl();
        EventDatumValue_extent = new EventDatumValueSetImpl();
        EventIgnored_extent = new EventIgnoredSetImpl();
        EventMessage_extent = new EventMessageSetImpl();
        EventParameterReference_extent = new EventParameterReferenceSetImpl();
        EventQueueEntry_extent = new EventQueueEntrySetImpl();
        EventSpecificationStatement_extent = new EventSpecificationStatementSetImpl();
        Exception_extent = new ExceptionSetImpl();
        ExecutableProperty_extent = new ExecutablePropertySetImpl();
        ExecutablePropertyArgument_extent = new ExecutablePropertyArgumentSetImpl();
        Expression_extent = new ExpressionSetImpl();
        ExpressionAsStatement_extent = new ExpressionAsStatementSetImpl();
        Extend_extent = new ExtendSetImpl();
        ExternalEntity_extent = new ExternalEntitySetImpl();
        ExternalEntityInModel_extent = new ExternalEntityInModelSetImpl();
        ExternalEntityParticipant_extent = new ExternalEntityParticipantSetImpl();
        Feature_extent = new FeatureSetImpl();
        File_extent = new FileSetImpl();
        Finalization_extent = new FinalizationSetImpl();
        FlowFinalNode_extent = new FlowFinalNodeSetImpl();
        ForSmt_extent = new ForSmtSetImpl();
        ForStmt_extent = new ForStmtSetImpl();
        ForkJoinNode_extent = new ForkJoinNodeSetImpl();
        FormalAttribute_extent = new FormalAttributeSetImpl();
        FormalAttributeValue_extent = new FormalAttributeValueSetImpl();
        FormalParameter_extent = new FormalParameterSetImpl();
        Function_extent = new FunctionSetImpl();
        FunctionArgument_extent = new FunctionArgumentSetImpl();
        FunctionBody_extent = new FunctionBodySetImpl();
        FunctionInvocation_extent = new FunctionInvocationSetImpl();
        FunctionMessage_extent = new FunctionMessageSetImpl();
        FunctionParameter_extent = new FunctionParameterSetImpl();
        FunctionValue_extent = new FunctionValueSetImpl();
        GeneralFile_extent = new GeneralFileSetImpl();
        Generalization_extent = new GeneralizationSetImpl();
        Generate_extent = new GenerateSetImpl();
        GenerateEventStatement_extent = new GenerateEventStatementSetImpl();
        GeneratePreexistingEvent_extent = new GeneratePreexistingEventSetImpl();
        GenerateSMEventStatement_extent = new GenerateSMEventStatementSetImpl();
        GenerateToClass_extent = new GenerateToClassSetImpl();
        GenerateToCreator_extent = new GenerateToCreatorSetImpl();
        GenericInvocable_extent = new GenericInvocableSetImpl();
        GlobalElementInSystem_extent = new GlobalElementInSystemSetImpl();
        Halt_extent = new HaltSetImpl();
        I_INS_extent = new I_INSSetImpl();
        IfSmt_extent = new IfSmtSetImpl();
        IfStmt_extent = new IfStmtSetImpl();
        Iface_extent = new IfaceSetImpl();
        ImportedClass_extent = new ImportedClassSetImpl();
        ImportedProvision_extent = new ImportedProvisionSetImpl();
        ImportedProvisionInSatisfaction_extent = new ImportedProvisionInSatisfactionSetImpl();
        ImportedReference_extent = new ImportedReferenceSetImpl();
        ImportedRequirement_extent = new ImportedRequirementSetImpl();
        Include_extent = new IncludeSetImpl();
        InformalArgument_extent = new InformalArgumentSetImpl();
        InformalAsynchronousMessage_extent = new InformalAsynchronousMessageSetImpl();
        InformalAttribute_extent = new InformalAttributeSetImpl();
        InformalAttributeValue_extent = new InformalAttributeValueSetImpl();
        InformalSynchronousMessage_extent = new InformalSynchronousMessageSetImpl();
        InitialNode_extent = new InitialNodeSetImpl();
        InstSet_extent = new InstSetSetImpl();
        InstanceAttributeValue_extent = new InstanceAttributeValueSetImpl();
        InstanceHandle_extent = new InstanceHandleSetImpl();
        InstancePopulationSelector_extent = new InstancePopulationSelectorSetImpl();
        InstanceReference_extent = new InstanceReferenceSetImpl();
        InstanceReferenceDataType_extent = new InstanceReferenceDataTypeSetImpl();
        InstanceSelector_extent = new InstanceSelectorSetImpl();
        InstanceSetReference_extent = new InstanceSetReferenceSetImpl();
        InstanceStateMachine_extent = new InstanceStateMachineSetImpl();
        InteractionParticipant_extent = new InteractionParticipantSetImpl();
        IntercomponentQueueEntry_extent = new IntercomponentQueueEntrySetImpl();
        InterfaceOperation_extent = new InterfaceOperationSetImpl();
        InterfaceOperationInvocation_extent = new InterfaceOperationInvocationSetImpl();
        InterfaceOperationMessage_extent = new InterfaceOperationMessageSetImpl();
        InterfaceReference_extent = new InterfaceReferenceSetImpl();
        InterfaceReferenceInDelegation_extent = new InterfaceReferenceInDelegationSetImpl();
        InterfaceSignal_extent = new InterfaceSignalSetImpl();
        InvocableObject_extent = new InvocableObjectSetImpl();
        Invocation_extent = new InvocationSetImpl();
        LeafSymbolicConstant_extent = new LeafSymbolicConstantSetImpl();
        Lifespan_extent = new LifespanSetImpl();
        Link_extent = new LinkSetImpl();
        LinkParticipation_extent = new LinkParticipationSetImpl();
        LinkedAssociation_extent = new LinkedAssociationSetImpl();
        Literal_extent = new LiteralSetImpl();
        LiteralBoolean_extent = new LiteralBooleanSetImpl();
        LiteralEnumerator_extent = new LiteralEnumeratorSetImpl();
        LiteralInteger_extent = new LiteralIntegerSetImpl();
        LiteralReal_extent = new LiteralRealSetImpl();
        LiteralString_extent = new LiteralStringSetImpl();
        LiteralSymbolicConstant_extent = new LiteralSymbolicConstantSetImpl();
        LocalEvent_extent = new LocalEventSetImpl();
        MSG_M_extent = new MSG_MSetImpl();
        Mark_extent = new MarkSetImpl();
        MarkableElementType_extent = new MarkableElementTypeSetImpl();
        MealyActionHome_extent = new MealyActionHomeSetImpl();
        MealyStateMachine_extent = new MealyStateMachineSetImpl();
        MemberReference_extent = new MemberReferenceSetImpl();
        MemberValueReference_extent = new MemberValueReferenceSetImpl();
        Message_extent = new MessageSetImpl();
        MessageArgument_extent = new MessageArgumentSetImpl();
        MessageValue_extent = new MessageValueSetImpl();
        ModelClass_extent = new ModelClassSetImpl();
        ModelInst_extent = new ModelInstSetImpl();
        Monitor_extent = new MonitorSetImpl();
        MooreActionHome_extent = new MooreActionHomeSetImpl();
        MooreStateMachine_extent = new MooreStateMachineSetImpl();
        NamedReference_extent = new NamedReferenceSetImpl();
        NewBaseAttribute_extent = new NewBaseAttributeSetImpl();
        NewStateTransition_extent = new NewStateTransitionSetImpl();
        NoEventTransition_extent = new NoEventTransitionSetImpl();
        NonLocalEvent_extent = new NonLocalEventSetImpl();
        NullSmt_extent = new NullSmtSetImpl();
        O_ATTR_extent = new O_ATTRSetImpl();
        O_TFR_extent = new O_TFRSetImpl();
        ObjectNode_extent = new ObjectNodeSetImpl();
        Operation_extent = new OperationSetImpl();
        OperationArgument_extent = new OperationArgumentSetImpl();
        OperationBody_extent = new OperationBodySetImpl();
        OperationInvocation_extent = new OperationInvocationSetImpl();
        OperationMessage_extent = new OperationMessageSetImpl();
        OperationParameter_extent = new OperationParameterSetImpl();
        OperationValue_extent = new OperationValueSetImpl();
        PackageParticipant_extent = new PackageParticipantSetImpl();
        PackageReference_extent = new PackageReferenceSetImpl();
        PackageableElement_extent = new PackageableElementSetImpl();
        ParameterReference_extent = new ParameterReferenceSetImpl();
        ParameterValue_extent = new ParameterValueSetImpl();
        ParenthesizedExpression_extent = new ParenthesizedExpressionSetImpl();
        PendingEvent_extent = new PendingEventSetImpl();
        PolymorphicEvent_extent = new PolymorphicEventSetImpl();
        Port_extent = new PortSetImpl();
        PortMessage_extent = new PortMessageSetImpl();
        PortReference_extent = new PortReferenceSetImpl();
        Promotion_extent = new PromotionSetImpl();
        PropertyParameter_extent = new PropertyParameterSetImpl();
        ProvidedExecutableProperty_extent = new ProvidedExecutablePropertySetImpl();
        ProvidedOperation_extent = new ProvidedOperationSetImpl();
        ProvidedOperationBody_extent = new ProvidedOperationBodySetImpl();
        ProvidedSignal_extent = new ProvidedSignalSetImpl();
        ProvidedSignalBody_extent = new ProvidedSignalBodySetImpl();
        Provision_extent = new ProvisionSetImpl();
        Range_extent = new RangeSetImpl();
        ReferentialAttribute_extent = new ReferentialAttributeSetImpl();
        ReferredToClassInAssoc_extent = new ReferredToClassInAssocSetImpl();
        ReferredToIdentifierAttribute_extent = new ReferredToIdentifierAttributeSetImpl();
        ReferringClassInAssoc_extent = new ReferringClassInAssocSetImpl();
        Relate_extent = new RelateSetImpl();
        RelateSmt_extent = new RelateSmtSetImpl();
        RelateUsing_extent = new RelateUsingSetImpl();
        RelationshipPopulationSelector_extent = new RelationshipPopulationSelectorSetImpl();
        RequiredExecutableProperty_extent = new RequiredExecutablePropertySetImpl();
        RequiredOperation_extent = new RequiredOperationSetImpl();
        RequiredOperationBody_extent = new RequiredOperationBodySetImpl();
        RequiredSignal_extent = new RequiredSignalSetImpl();
        RequiredSignalBody_extent = new RequiredSignalBodySetImpl();
        Requirement_extent = new RequirementSetImpl();
        ReturnMessage_extent = new ReturnMessageSetImpl();
        ReturnSmt_extent = new ReturnSmtSetImpl();
        ReturnStmt_extent = new ReturnStmtSetImpl();
        RuntimeChannel_extent = new RuntimeChannelSetImpl();
        SEMEvent_extent = new SEMEventSetImpl();
        SM_SM_extent = new SM_SMSetImpl();
        S_ENUM_extent = new S_ENUMSetImpl();
        S_SYNC_extent = new S_SYNCSetImpl();
        Satisfaction_extent = new SatisfactionSetImpl();
        SatisfactionInComponent_extent = new SatisfactionInComponentSetImpl();
        SearchResultSet_extent = new SearchResultSetSetImpl();
        Select_extent = new SelectSetImpl();
        SelectFromInstances_extent = new SelectFromInstancesSetImpl();
        SelectFromInstancesWhere_extent = new SelectFromInstancesWhereSetImpl();
        SelectRelated_extent = new SelectRelatedSetImpl();
        SelectRelatedBy_extent = new SelectRelatedBySetImpl();
        SelectRelatedWhere_extent = new SelectRelatedWhereSetImpl();
        Selected_extent = new SelectedSetImpl();
        SelectedReference_extent = new SelectedReferenceSetImpl();
        Selector_extent = new SelectorSetImpl();
        SelfQueueEntry_extent = new SelfQueueEntrySetImpl();
        SendSignal_extent = new SendSignalSetImpl();
        ServiceInSequence_extent = new ServiceInSequenceSetImpl();
        SetSelector_extent = new SetSelectorSetImpl();
        SignalEvent_extent = new SignalEventSetImpl();
        SignalInvocation_extent = new SignalInvocationSetImpl();
        SignalMessage_extent = new SignalMessageSetImpl();
        SimpleAssociation_extent = new SimpleAssociationSetImpl();
        Stack_extent = new StackSetImpl();
        StackFrame_extent = new StackFrameSetImpl();
        State_extent = new StateSetImpl();
        StateActionBody_extent = new StateActionBodySetImpl();
        StateEventMatrixEntry_extent = new StateEventMatrixEntrySetImpl();
        StateMachine_extent = new StateMachineSetImpl();
        StateMachineEvent_extent = new StateMachineEventSetImpl();
        StateMachineEventDataItem_extent = new StateMachineEventDataItemSetImpl();
        StateMachineState_extent = new StateMachineStateSetImpl();
        StateTransition_extent = new StateTransitionSetImpl();
        Statement_extent = new StatementSetImpl();
        StructureMember_extent = new StructureMemberSetImpl();
        StructuredDataType_extent = new StructuredDataTypeSetImpl();
        SubtypeSupertypeAssociation_extent = new SubtypeSupertypeAssociationSetImpl();
        SymbolicConstant_extent = new SymbolicConstantSetImpl();
        SymbolicConstantValue_extent = new SymbolicConstantValueSetImpl();
        SynchronousMessage_extent = new SynchronousMessageSetImpl();
        SystemModel_extent = new SystemModelSetImpl();
        Terminator_extent = new TerminatorSetImpl();
        TerminatorService_extent = new TerminatorServiceSetImpl();
        TerminatorServiceParameter_extent = new TerminatorServiceParameterSetImpl();
        TerminatorServiceSequence_extent = new TerminatorServiceSequenceSetImpl();
        TimeSpan_extent = new TimeSpanSetImpl();
        Timer_extent = new TimerSetImpl();
        TimingMark_extent = new TimingMarkSetImpl();
        TransientValueReference_extent = new TransientValueReferenceSetImpl();
        TransientVar_extent = new TransientVarSetImpl();
        Transition_extent = new TransitionSetImpl();
        TransitionActionBody_extent = new TransitionActionBodySetImpl();
        TransitionActionHome_extent = new TransitionActionHomeSetImpl();
        TransitionTableCell_extent = new TransitionTableCellSetImpl();
        TransitionTableRow_extent = new TransitionTableRowSetImpl();
        Type_extent = new TypeSetImpl();
        TypeImport_extent = new TypeImportSetImpl();
        TypeImportReference_extent = new TypeImportReferenceSetImpl();
        TypeReference_extent = new TypeReferenceSetImpl();
        UnaryOperation_extent = new UnaryOperationSetImpl();
        Unrelate_extent = new UnrelateSetImpl();
        UnrelateSmt_extent = new UnrelateSmtSetImpl();
        UnrelateUsing_extent = new UnrelateUsingSetImpl();
        UnresolvedType_extent = new UnresolvedTypeSetImpl();
        UseCaseAssociation_extent = new UseCaseAssociationSetImpl();
        UseCaseParticipant_extent = new UseCaseParticipantSetImpl();
        UserDataType_extent = new UserDataTypeSetImpl();
        UserDefinedType_extent = new UserDefinedTypeSetImpl();
        Utility_extent = new UtilitySetImpl();
        UtilityFunction_extent = new UtilityFunctionSetImpl();
        UtilityReference_extent = new UtilityReferenceSetImpl();
        V_AER_extent = new V_AERSetImpl();
        V_BIN_extent = new V_BINSetImpl();
        V_INS_extent = new V_INSSetImpl();
        V_PAR_extent = new V_PARSetImpl();
        V_UNY_extent = new V_UNYSetImpl();
        V_VAR_extent = new V_VARSetImpl();
        Value_extent = new ValueSetImpl();
        ValueInStackFrame_extent = new ValueInStackFrameSetImpl();
        Variable_extent = new VariableSetImpl();
        VariableInScope_extent = new VariableInScopeSetImpl();
        VariableLocation_extent = new VariableLocationSetImpl();
        VariableReference_extent = new VariableReferenceSetImpl();
        Where_extent = new WhereSetImpl();
        WhileSmt_extent = new WhileSmtSetImpl();
        WhileStmt_extent = new WhileStmtSetImpl();
        R1000_MessageArgument_belongs_to_informal_MSG_M_extent = new RelationshipSet();
        R1001_MessageArgument_belongs_to_formal_MSG_M_extent = new RelationshipSet();
        R1007_MSG_M_has_destination_InteractionParticipant_extent = new RelationshipSet();
        R1008_MSG_M_has_source_InteractionParticipant_extent = new RelationshipSet();
        R1009_EventMessage_generates_StateMachineEvent_extent = new RelationshipSet();
        R1010_FunctionMessage_is_invocation_of_S_SYNC_extent = new RelationshipSet();
        R1011_OperationMessage_is_invocation_of_O_TFR_extent = new RelationshipSet();
        R1012_BridgeMessage_is_invocation_of_Bridge_extent = new RelationshipSet();
        R1013_BridgeArgument_is_a_MessageArgument_extent = new RelationshipSet();
        R1013_EventArgument_is_a_MessageArgument_extent = new RelationshipSet();
        R1013_ExecutablePropertyArgument_is_a_MessageArgument_extent = new RelationshipSet();
        R1013_FunctionArgument_is_a_MessageArgument_extent = new RelationshipSet();
        R1013_InformalArgument_is_a_MessageArgument_extent = new RelationshipSet();
        R1013_OperationArgument_is_a_MessageArgument_extent = new RelationshipSet();
        R1014_BridgeArgument_is_represented_by_BridgeParameter_extent = new RelationshipSet();
        R1015_OperationArgument_is_represented_by_OperationParameter_extent = new RelationshipSet();
        R1016_FunctionArgument_is_represented_by_FunctionParameter_extent = new RelationshipSet();
        R1017_EventArgument_is_represented_by_StateMachineEventDataItem_extent = new RelationshipSet();
        R1018_AsynchronousMessage_is_a_MSG_M_extent = new RelationshipSet();
        R1018_ReturnMessage_is_a_MSG_M_extent = new RelationshipSet();
        R1018_SynchronousMessage_is_a_MSG_M_extent = new RelationshipSet();
        R1019_EventMessage_is_a_AsynchronousMessage_extent = new RelationshipSet();
        R1019_InformalAsynchronousMessage_is_a_AsynchronousMessage_extent = new RelationshipSet();
        R1019_SignalMessage_is_a_AsynchronousMessage_extent = new RelationshipSet();
        R101_ImportedClass_represents_ModelClass_extent = new RelationshipSet();
        R1020_BridgeMessage_is_a_SynchronousMessage_extent = new RelationshipSet();
        R1020_FunctionMessage_is_a_SynchronousMessage_extent = new RelationshipSet();
        R1020_InformalSynchronousMessage_is_a_SynchronousMessage_extent = new RelationshipSet();
        R1020_InterfaceOperationMessage_is_a_SynchronousMessage_extent = new RelationshipSet();
        R1020_OperationMessage_is_a_SynchronousMessage_extent = new RelationshipSet();
        R1021_SignalMessage_sends_InterfaceSignal_extent = new RelationshipSet();
        R1022_InterfaceOperationMessage_sends_InterfaceOperation_extent = new RelationshipSet();
        R1023_ExecutablePropertyArgument_is_represented_by_PropertyParameter_extent = new RelationshipSet();
        R102_O_ATTR_abstracts_characteristics_of_ModelClass_extent = new RelationshipSet();
        R103_O_ATTR_succeeds_O_ATTR_extent = new RelationshipSet();
        R104_ClassIdentifier_identifies_ModelClass_extent = new RelationshipSet();
        R105_ClassIdentifierAttribute_is_made_up_of__O_ATTR_extent = new RelationshipSet();
        R105_ClassIdentifierAttribute_is_part_of__ClassIdentifier_extent = new RelationshipSet();
        R106_BaseAttribute_is_a_O_ATTR_extent = new RelationshipSet();
        R106_ReferentialAttribute_is_a_O_ATTR_extent = new RelationshipSet();
        R107_DerivedBaseAttribute_is_a_BaseAttribute_extent = new RelationshipSet();
        R107_NewBaseAttribute_is_a_BaseAttribute_extent = new RelationshipSet();
        R108_AttributeReferenceInClass_is_resolved_by_ReferentialAttribute_extent = new RelationshipSet();
        R109_ReferredToClassInAssoc_is_identified_in_this_association_by_ClassIdentifier_extent = new RelationshipSet();
        R1103_ActivityEdge_target_ActivityNode_extent = new RelationshipSet();
        R1104_ActivityEdge_source_ActivityNode_extent = new RelationshipSet();
        R1105_ActionNode_is_a_ActivityNode_extent = new RelationshipSet();
        R1105_ControlNode_is_a_ActivityNode_extent = new RelationshipSet();
        R1105_ObjectNode_is_a_ActivityNode_extent = new RelationshipSet();
        R1106_ActivityFinalNode_is_a_ControlNode_extent = new RelationshipSet();
        R1106_DecisionMergeNode_is_a_ControlNode_extent = new RelationshipSet();
        R1106_FlowFinalNode_is_a_ControlNode_extent = new RelationshipSet();
        R1106_ForkJoinNode_is_a_ControlNode_extent = new RelationshipSet();
        R1106_InitialNode_is_a_ControlNode_extent = new RelationshipSet();
        R1107_AcceptEvent_is_a_ActionNode_extent = new RelationshipSet();
        R1107_ActivityDiagramAction_is_a_ActionNode_extent = new RelationshipSet();
        R1107_SendSignal_is_a_ActionNode_extent = new RelationshipSet();
        R110_ReferredToIdentifierAttribute_identifies_for_this_association_ReferredToClassInAssoc_extent = new RelationshipSet();
        R110_ReferredToIdentifierAttribute_is_identified_in_this_association_by_ClassIdentifierAttribute_extent = new RelationshipSet();
        R1112_AcceptEventAction_is_a_AcceptEvent_extent = new RelationshipSet();
        R1112_AcceptTimeEventAction_is_a_AcceptEvent_extent = new RelationshipSet();
        R111_AttributeReferenceInClass_is_used_to_refer_class_by_ReferringClassInAssoc_extent = new RelationshipSet();
        R111_AttributeReferenceInClass_refers_across_association_via_ReferredToIdentifierAttribute_extent = new RelationshipSet();
        R1128_CommunicationLink_may_be_formalized_against_Association_extent = new RelationshipSet();
        R112_AttributeReferenceInClass_succeeds_AttributeReferenceInClass_extent = new RelationshipSet();
        R1133_CommunicationLink_starts_at_InteractionParticipant_extent = new RelationshipSet();
        R1134_CommunicationLink_is_destined_for_InteractionParticipant_extent = new RelationshipSet();
        R113_ReferentialAttribute_navigates_back_to_BaseAttribute_extent = new RelationshipSet();
        R114_O_ATTR_defines_type_of_DataType_extent = new RelationshipSet();
        R115_O_TFR_is_associated_with_ModelClass_extent = new RelationshipSet();
        R116_O_TFR_return_code_is_defined_by_DataType_extent = new RelationshipSet();
        R117_OperationParameter_is_part_of__O_TFR_extent = new RelationshipSet();
        R118_OperationParameter_is_defined_by_DataType_extent = new RelationshipSet();
        R1206_UseCaseAssociation_starts_at_InteractionParticipant_extent = new RelationshipSet();
        R1207_UseCaseAssociation_ends_at_InteractionParticipant_extent = new RelationshipSet();
        R120_Dimensions_specifies_occurrences_of_O_ATTR_extent = new RelationshipSet();
        R1210_BinaryAssociation_is_a_UseCaseAssociation_extent = new RelationshipSet();
        R1210_Extend_is_a_UseCaseAssociation_extent = new RelationshipSet();
        R1210_Generalization_is_a_UseCaseAssociation_extent = new RelationshipSet();
        R1210_Include_is_a_UseCaseAssociation_extent = new RelationshipSet();
        R121_Dimensions_specifies_occurrences_of_OperationParameter_extent = new RelationshipSet();
        R122_Dimensions_defines_return_value_dimensions_for_O_TFR_extent = new RelationshipSet();
        R123_InstanceReferenceDataType_provides_reference_datatype_for_ModelClass_extent = new RelationshipSet();
        R124_OperationParameter_succeeds_OperationParameter_extent = new RelationshipSet();
        R125_O_TFR_succeeds_O_TFR_extent = new RelationshipSet();
        R126_Deferral_defers_execution_to_subtypes_across_Association_extent = new RelationshipSet();
        R126_Deferral_delegates_execution_of_O_TFR_extent = new RelationshipSet();
        R1401_EP_PKG_directly_contained_under_SystemModel_extent = new RelationshipSet();
        R1402_PackageReference_is_referenced_by_EP_PKG_extent = new RelationshipSet();
        R1402_PackageReference_refers_to_EP_PKG_extent = new RelationshipSet();
        R1405_EP_PKG_SystemModel_extent = new RelationshipSet();
        R1500_SymbolicConstant_is_defined_by_DataType_extent = new RelationshipSet();
        R1502_LeafSymbolicConstant_is_a_SymbolicConstant_extent = new RelationshipSet();
        R1503_LiteralSymbolicConstant_is_a_LeafSymbolicConstant_extent = new RelationshipSet();
        R1504_SymbolicConstant_is_contained_by_ConstantSpecification_extent = new RelationshipSet();
        R1505_SymbolicConstant_succeeds_SymbolicConstant_extent = new RelationshipSet();
        R1650_Terminator_Deployment_extent = new RelationshipSet();
        R1651_TerminatorService_Terminator_extent = new RelationshipSet();
        R1652_TerminatorServiceParameter_TerminatorService_extent = new RelationshipSet();
        R1653_TerminatorServiceParameter_DataType_extent = new RelationshipSet();
        R1654_TerminatorServiceParameter_succeeds_TerminatorServiceParameter_extent = new RelationshipSet();
        R1655_Dimensions_TerminatorServiceParameter_extent = new RelationshipSet();
        R1656_TerminatorService_DataType_extent = new RelationshipSet();
        R1657_Dimensions_TerminatorService_extent = new RelationshipSet();
        R1658_TerminatorServiceSequence_Terminator_extent = new RelationshipSet();
        R1659_ServiceInSequence_TerminatorServiceSequence_extent = new RelationshipSet();
        R1660_ServiceInSequence_TerminatorService_extent = new RelationshipSet();
        R1661_ServiceInSequence_succeeds_ServiceInSequence_extent = new RelationshipSet();
        R17_CoreDataType_is_a_DataType_extent = new RelationshipSet();
        R17_EnumerationDataType_is_a_DataType_extent = new RelationshipSet();
        R17_InstanceReferenceDataType_is_a_DataType_extent = new RelationshipSet();
        R17_StructuredDataType_is_a_DataType_extent = new RelationshipSet();
        R17_UserDataType_is_a_DataType_extent = new RelationshipSet();
        R18_UserDataType_are_defined_within_DataType_extent = new RelationshipSet();
        R19_Bridge_provides_access_to_ExternalEntity_extent = new RelationshipSet();
        R201_ClassInAssociation_abstracts_association_between_instances_of_ModelClass_extent = new RelationshipSet();
        R201_ClassInAssociation_has_instance_associations_abstracted_Association_extent = new RelationshipSet();
        R202_ClassInAssociation_may_be_represented_by_ImportedClass_extent = new RelationshipSet();
        R203_ClassAsDerivedOneSide_is_a_ClassInAssociation_extent = new RelationshipSet();
        R203_ClassAsDerivedOtherSide_is_a_ClassInAssociation_extent = new RelationshipSet();
        R203_ReferredToClassInAssoc_is_a_ClassInAssociation_extent = new RelationshipSet();
        R203_ReferringClassInAssoc_is_a_ClassInAssociation_extent = new RelationshipSet();
        R204_ClassAsAssociatedOneSide_is_a_ReferredToClassInAssoc_extent = new RelationshipSet();
        R204_ClassAsAssociatedOtherSide_is_a_ReferredToClassInAssoc_extent = new RelationshipSet();
        R204_ClassAsSimpleParticipant_is_a_ReferredToClassInAssoc_extent = new RelationshipSet();
        R204_ClassAsSupertype_is_a_ReferredToClassInAssoc_extent = new RelationshipSet();
        R205_ClassAsLink_is_a_ReferringClassInAssoc_extent = new RelationshipSet();
        R205_ClassAsSimpleFormalizer_is_a_ReferringClassInAssoc_extent = new RelationshipSet();
        R205_ClassAsSubtype_is_a_ReferringClassInAssoc_extent = new RelationshipSet();
        R206_DerivedAssociation_is_a_Association_extent = new RelationshipSet();
        R206_LinkedAssociation_is_a_Association_extent = new RelationshipSet();
        R206_SimpleAssociation_is_a_Association_extent = new RelationshipSet();
        R206_SubtypeSupertypeAssociation_is_a_Association_extent = new RelationshipSet();
        R207_ClassAsSimpleParticipant_is_related_to_formalizer_via_SimpleAssociation_extent = new RelationshipSet();
        R208_ClassAsSimpleFormalizer_is_related_to_participant_via_SimpleAssociation_extent = new RelationshipSet();
        R209_ClassAsAssociatedOneSide_is_related_to_other_side_via_LinkedAssociation_extent = new RelationshipSet();
        R20_Bridge_return_value_defined_by_DataType_extent = new RelationshipSet();
        R210_ClassAsAssociatedOtherSide_is_related_to_one_side_via_LinkedAssociation_extent = new RelationshipSet();
        R211_ClassAsLink_formalizes_association_between_associated_classes_LinkedAssociation_extent = new RelationshipSet();
        R212_ClassAsSupertype_is_related_to_subtypes_via_SubtypeSupertypeAssociation_extent = new RelationshipSet();
        R213_ClassAsSubtype_is_related_to_supertype_via_SubtypeSupertypeAssociation_extent = new RelationshipSet();
        R214_ClassAsDerivedOneSide_is_related_to_other_type_via_DerivedAssociation_extent = new RelationshipSet();
        R215_ClassAsDerivedOtherSide_is_related_to_one_side_via_DerivedAssociation_extent = new RelationshipSet();
        R21_BridgeParameter_contains_Bridge_extent = new RelationshipSet();
        R22_BridgeParameter_is_defined_by_DataType_extent = new RelationshipSet();
        R24_FunctionParameter_is_defined_for_S_SYNC_extent = new RelationshipSet();
        R25_S_SYNC_has_return_type_of_DataType_extent = new RelationshipSet();
        R26_FunctionParameter_is_typed_by__DataType_extent = new RelationshipSet();
        R27_S_ENUM_is_defined_by_EnumerationDataType_extent = new RelationshipSet();
        R2821_Mark_is_marked_by_Feature_extent = new RelationshipSet();
        R2821_Mark_marks_MarkableElementType_extent = new RelationshipSet();
        R2822_MarkableElementType_makes_available_Feature_extent = new RelationshipSet();
        R2823_Mark_precedes_Mark_extent = new RelationshipSet();
        R2901_Link_originates_at_LinkParticipation_extent = new RelationshipSet();
        R2902_Link_ends_at_LinkParticipation_extent = new RelationshipSet();
        R2903_Link_has_associator_LinkParticipation_extent = new RelationshipSet();
        R2904_Link_is_instance_of_Association_extent = new RelationshipSet();
        R2906_PendingEvent_is_instance_of_StateMachineEvent_extent = new RelationshipSet();
        R2907_PendingEvent_is_pending_for_I_INS_extent = new RelationshipSet();
        R2908_PendingEvent_will_be_processed_after_PendingEvent_extent = new RelationshipSet();
        R2909_AttributeValue_defines_value_for_characteristic_of_I_INS_extent = new RelationshipSet();
        R2910_AttributeValue_is_instance_of_O_ATTR_extent = new RelationshipSet();
        R2915_I_INS_occupies_StateMachineState_extent = new RelationshipSet();
        R2923_BlockInStackFrame_is_executed_within_the_context_of_StackFrame_extent = new RelationshipSet();
        R2923_BlockInStackFrame_supplies_context_for_Block_extent = new RelationshipSet();
        R2928_StackFrame_next_context_StackFrame_extent = new RelationshipSet();
        R2929_StackFrame_is_processed_by_Stack_extent = new RelationshipSet();
        R2930_Stack_is_controlled_by_ComponentInstance_extent = new RelationshipSet();
        R2933_DataItemValue_PendingEvent_extent = new RelationshipSet();
        R2934_DataItemValue_StateMachineEventDataItem_extent = new RelationshipSet();
        R2935_PendingEvent_targets_I_INS_extent = new RelationshipSet();
        R2937_PendingEvent_was_sent_from_I_INS_extent = new RelationshipSet();
        R2939_PendingEvent_will_be_processed_before_PendingEvent_extent = new RelationshipSet();
        R2940_Timer_provides_delayed_delivery_of_PendingEvent_extent = new RelationshipSet();
        R2941_BlockInStackFrame_is_currently_visiting_ACT_SMT_extent = new RelationshipSet();
        R2943_StackFrame_processed_by_Stack_extent = new RelationshipSet();
        R2944_EventQueueEntry_ComponentInstance_extent = new RelationshipSet();
        R2944_EventQueueEntry_PendingEvent_extent = new RelationshipSet();
        R2945_EventQueueEntry_follows_EventQueueEntry_extent = new RelationshipSet();
        R2946_SelfQueueEntry_ComponentInstance_extent = new RelationshipSet();
        R2946_SelfQueueEntry_PendingEvent_extent = new RelationshipSet();
        R2947_SelfQueueEntry_follows_SelfQueueEntry_extent = new RelationshipSet();
        R2949_Monitor_monitored_by_ComponentInstance_extent = new RelationshipSet();
        R2949_Monitor_monitors_I_INS_extent = new RelationshipSet();
        R2951_ValueInStackFrame_StackFrame_extent = new RelationshipSet();
        R2953_I_INS_entered_last_state_via_Transition_extent = new RelationshipSet();
        R2954_StackFrame_has_context_I_INS_extent = new RelationshipSet();
        R2955_ComponentInstance_is_verifying_instance_of_C_C_extent = new RelationshipSet();
        R2956_DataItemValue_PropertyParameter_extent = new RelationshipSet();
        R2957_I_INS_created_by_ComponentInstance_extent = new RelationshipSet();
        R2958_LinkParticipation_I_INS_extent = new RelationshipSet();
        R2959_LinkParticipation_Association_extent = new RelationshipSet();
        R2963_ComponentInstance_is_verifying_instance_of_ComponentReference_extent = new RelationshipSet();
        R2964_PendingEvent_is_pending_in_ComponentInstance_extent = new RelationshipSet();
        R2965_StackFrame_blocked_by_StackFrame_extent = new RelationshipSet();
        R2966_IntercomponentQueueEntry_has_queued_StackFrame_extent = new RelationshipSet();
        R2966_IntercomponentQueueEntry_is_enqueued_with_Stack_extent = new RelationshipSet();
        R2967_StackFrame_holds_return_value_for_Stack_extent = new RelationshipSet();
        R2968_RuntimeChannel_is_interface_provider_to_ComponentInstance_extent = new RelationshipSet();
        R2968_RuntimeChannel_is_interface_requirer_of_ComponentInstance_extent = new RelationshipSet();
        R2969_RuntimeChannel_implements_Satisfaction_extent = new RelationshipSet();
        R2970_ComponentInstance_is_verifying_EP_PKG_extent = new RelationshipSet();
        R2972_RuntimeChannel_implements_Delegation_extent = new RelationshipSet();
        R2973_RuntimeChannel_requirer_RuntimeChannel_extent = new RelationshipSet();
        R2974_ComponentInstanceContainer_ComponentInstance_extent = new RelationshipSet();
        R2975_ComponentInstance_ComponentInstanceContainer_extent = new RelationshipSet();
        R2976_PendingEvent_originates_from_ComponentInstance_extent = new RelationshipSet();
        R2977_IntercomponentQueueEntry_enqueued_by_ComponentInstance_extent = new RelationshipSet();
        R2978_ValueInStackFrame_Value_extent = new RelationshipSet();
        R3800_TypeReference_based_on_Type_extent = new RelationshipSet();
        R3801_ArrayTypeReference_is_a_TypeReference_extent = new RelationshipSet();
        R3801_BasicTypeReference_is_a_TypeReference_extent = new RelationshipSet();
        R3802_UserDefinedType_based_on_Type_extent = new RelationshipSet();
        R3900_ArrayElementReference_has_root_Expression_extent = new RelationshipSet();
        R3901_ArrayElementReference_has_index_Expression_extent = new RelationshipSet();
        R3902_EventCreation_has_target_Expression_extent = new RelationshipSet();
        R3903_EventCreation_has_base_Expression_extent = new RelationshipSet();
        R3904_ActualParameter_FormalParameter_extent = new RelationshipSet();
        R3905_ActualParameter_precedes_ActualParameter_extent = new RelationshipSet();
        R3906_Where_sorts_set_by_Attribute_extent = new RelationshipSet();
        R3907_Promotion_promotes_Expression_extent = new RelationshipSet();
        R3908_ArrayLengthAccess_has_root_Expression_extent = new RelationshipSet();
        R4000_CodeBlock_is_invoked_in_InvocableObject_extent = new RelationshipSet();
        R4002_Satisfaction_defines_required_satisfication_Requirement_extent = new RelationshipSet();
        R4002_Satisfaction_satisfies_Provision_extent = new RelationshipSet();
        R4003_ExecutableProperty_provides_signature_of_C_I_extent = new RelationshipSet();
        R4004_InterfaceOperation_is_a_ExecutableProperty_extent = new RelationshipSet();
        R4004_InterfaceSignal_is_a_ExecutableProperty_extent = new RelationshipSet();
        R4006_PropertyParameter_parameterizes_ExecutableProperty_extent = new RelationshipSet();
        R4007_PropertyParameter_is_typed_by_DataType_extent = new RelationshipSet();
        R4008_InterfaceOperation_has_return_defined_by_DataType_extent = new RelationshipSet();
        R4009_Provision_is_a_InterfaceReference_extent = new RelationshipSet();
        R4009_Requirement_is_a_InterfaceReference_extent = new RelationshipSet();
        R4010_C_PO_appears_in_C_C_extent = new RelationshipSet();
        R4012_InterfaceReference_may_be_defined_by_C_I_extent = new RelationshipSet();
        R4013_InterfaceReferenceInDelegation_handles_delegation_for_InterfaceReference_extent = new RelationshipSet();
        R4013_InterfaceReferenceInDelegation_may_delegate_through_Delegation_extent = new RelationshipSet();
        R4014_InterfaceReference_receives_delegation_via_Delegation_extent = new RelationshipSet();
        R4016_InterfaceReference_originates_from_C_PO_extent = new RelationshipSet();
        R4017_Dimensions_specifies_occurrences_of_PropertyParameter_extent = new RelationshipSet();
        R4018_Dimensions_defines_return_value_dimensions_for__InterfaceOperation_extent = new RelationshipSet();
        R4019_InterfaceOperation_succeeds_InterfaceOperation_extent = new RelationshipSet();
        R401_Application_is_a_File_extent = new RelationshipSet();
        R401_ComponentDefinition_is_a_File_extent = new RelationshipSet();
        R401_EnumeratedType_is_a_File_extent = new RelationshipSet();
        R401_GeneralFile_is_a_File_extent = new RelationshipSet();
        R401_Iface_is_a_File_extent = new RelationshipSet();
        R401_InstSet_is_a_File_extent = new RelationshipSet();
        R401_ModelInst_is_a_File_extent = new RelationshipSet();
        R401_Port_is_a_File_extent = new RelationshipSet();
        R401_StateMachine_is_a_File_extent = new RelationshipSet();
        R401_UserDefinedType_is_a_File_extent = new RelationshipSet();
        R401_Utility_is_a_File_extent = new RelationshipSet();
        R4020_InterfaceSignal_succeeds_InterfaceSignal_extent = new RelationshipSet();
        R4021_PropertyParameter_succeeds_PropertyParameter_extent = new RelationshipSet();
        R4027_ApplicationExecutor_executes_tasks_for_Application_extent = new RelationshipSet();
        R4028_ComponentInstantiation_is_executed_by_ApplicationExecutor_extent = new RelationshipSet();
        R4029_ComponentInstantiation_precedes_ComponentInstantiation_extent = new RelationshipSet();
        R402_TypeImportReference_imports_type_into_context_of_File_extent = new RelationshipSet();
        R402_TypeImportReference_imports_type_via_TypeImport_extent = new RelationshipSet();
        R404_FormalParameter_precedes_FormalParameter_extent = new RelationshipSet();
        R405_Function_can_execute_synchronously_within_ComponentDefinition_extent = new RelationshipSet();
        R406_InstSet_defines_set_with_elements_of_type_ModelInst_extent = new RelationshipSet();
        R407_BuiltInType_is_a_Type_extent = new RelationshipSet();
        R407_EnumeratedType_is_a_Type_extent = new RelationshipSet();
        R407_InstSet_is_a_Type_extent = new RelationshipSet();
        R407_ModelInst_is_a_Type_extent = new RelationshipSet();
        R407_UnresolvedType_is_a_Type_extent = new RelationshipSet();
        R407_UserDefinedType_is_a_Type_extent = new RelationshipSet();
        R408_ModelInst_forms_instance_population_of_ComponentDefinition_extent = new RelationshipSet();
        R409_ModelInst_ModelClass_extent = new RelationshipSet();
        R410_Attribute_abstracts_data_for_ModelInst_extent = new RelationshipSet();
        R414_O_ATTR_Attribute_extent = new RelationshipSet();
        R415_Enumerator_is_unique_value_of_EnumeratedType_extent = new RelationshipSet();
        R4160_Port_satisfies_provided_Port_extent = new RelationshipSet();
        R416_Operation_provided_by_ModelInst_extent = new RelationshipSet();
        R417_Port_passes_messages_for_ComponentDefinition_extent = new RelationshipSet();
        R418_Port_implements_Iface_extent = new RelationshipSet();
        R419_Message_defines_message_format_for_Iface_extent = new RelationshipSet();
        R4201_ComponentReference_represents_C_C_extent = new RelationshipSet();
        R4205_ComponentReference_nested_in_C_C_extent = new RelationshipSet();
        R420_PortMessage_is_implemented_within_Port_extent = new RelationshipSet();
        R420_PortMessage_provides_implementation_for_Message_extent = new RelationshipSet();
        R421_Iface_C_I_extent = new RelationshipSet();
        R422_Port_C_PO_extent = new RelationshipSet();
        R423_Type_DataType_extent = new RelationshipSet();
        R424_Attribute_is_typed_by_TypeReference_extent = new RelationshipSet();
        R426_ComponentInstantiation_is_broken_into_ComponentDefinition_extent = new RelationshipSet();
        R426_ComponentInstantiation_is_instantiated_by_Application_extent = new RelationshipSet();
        R427_AttributeDerivation_is_a_InvocableObject_extent = new RelationshipSet();
        R427_Event_is_a_InvocableObject_extent = new RelationshipSet();
        R427_Function_is_a_InvocableObject_extent = new RelationshipSet();
        R427_GenericInvocable_is_a_InvocableObject_extent = new RelationshipSet();
        R427_Operation_is_a_InvocableObject_extent = new RelationshipSet();
        R427_PortMessage_is_a_InvocableObject_extent = new RelationshipSet();
        R427_StateTransition_is_a_InvocableObject_extent = new RelationshipSet();
        R427_State_is_a_InvocableObject_extent = new RelationshipSet();
        R427_UtilityFunction_is_a_InvocableObject_extent = new RelationshipSet();
        R428_InvocableObject_return_value_is_typed_by_TypeReference_extent = new RelationshipSet();
        R429_FormalParameter_shapes_data_for_InvocableObject_extent = new RelationshipSet();
        R431_FormalParameter_is_typed_by_TypeReference_extent = new RelationshipSet();
        R432_InvocableObject_Body_extent = new RelationshipSet();
        R434_ClassRelationship_has_participating_ModelInst_extent = new RelationshipSet();
        R435_ClassRelationship_has_formalizing_ModelInst_extent = new RelationshipSet();
        R436_ClassRelationship_is_other_half_of_associative_ClassRelationship_extent = new RelationshipSet();
        R441_AttributeDerivation_calculates_value_for_AttributeAccessor_extent = new RelationshipSet();
        R442_InstanceSelector_navigates_from_ModelInst_extent = new RelationshipSet();
        R444_SetSelector_navigates_from_InstSet_extent = new RelationshipSet();
        R445_InstanceSelector_is_a_Selector_extent = new RelationshipSet();
        R445_SetSelector_is_a_Selector_extent = new RelationshipSet();
        R446_Selector_selects_instances_of_TypeReference_extent = new RelationshipSet();
        R447_InstancePopulationSelector_selects_instances_out_of_population_of_ComponentDefinition_extent = new RelationshipSet();
        R448_ClassRelationship_forms_relationship_population_of_ComponentDefinition_extent = new RelationshipSet();
        R449_InstancePopulationSelector_selects_instances_of_ModelInst_extent = new RelationshipSet();
        R44_StructureMember_has_parent_StructuredDataType_extent = new RelationshipSet();
        R4500_RequiredExecutableProperty_implements_ExecutableProperty_extent = new RelationshipSet();
        R4500_RequiredExecutableProperty_is_implemented_by_Requirement_extent = new RelationshipSet();
        R4501_ProvidedExecutableProperty_implements_ExecutableProperty_extent = new RelationshipSet();
        R4501_ProvidedExecutableProperty_is_implemented_by_Provision_extent = new RelationshipSet();
        R4502_RequiredOperation_is_a_RequiredExecutableProperty_extent = new RelationshipSet();
        R4502_RequiredSignal_is_a_RequiredExecutableProperty_extent = new RelationshipSet();
        R4503_ProvidedOperation_is_a_ProvidedExecutableProperty_extent = new RelationshipSet();
        R4503_ProvidedSignal_is_a_ProvidedExecutableProperty_extent = new RelationshipSet();
        R4505_SetSelector_invokes_InstanceSelector_extent = new RelationshipSet();
        R4506_AttributeReference_has_value_provided_by_Attribute_extent = new RelationshipSet();
        R4506_AttributeReference_provides_value_for_Attribute_extent = new RelationshipSet();
        R450_Statement_is_contained_by_CodeBlock_extent = new RelationshipSet();
        R4510_AttributeAccessor_gets_and_sets_Attribute_extent = new RelationshipSet();
        R4511_AttributeReference_refers_to_another_attribute_through_ClassRelationship_extent = new RelationshipSet();
        R4512_Selector_traverses_across_ClassRelationship_extent = new RelationshipSet();
        R451_BreakSmt_is_a_Statement_extent = new RelationshipSet();
        R451_ContinueSmt_is_a_Statement_extent = new RelationshipSet();
        R451_DeleteSmt_is_a_Statement_extent = new RelationshipSet();
        R451_ExpressionAsStatement_is_a_Statement_extent = new RelationshipSet();
        R451_ForSmt_is_a_Statement_extent = new RelationshipSet();
        R451_Generate_is_a_Statement_extent = new RelationshipSet();
        R451_Halt_is_a_Statement_extent = new RelationshipSet();
        R451_IfSmt_is_a_Statement_extent = new RelationshipSet();
        R451_NullSmt_is_a_Statement_extent = new RelationshipSet();
        R451_RelateSmt_is_a_Statement_extent = new RelationshipSet();
        R451_ReturnSmt_is_a_Statement_extent = new RelationshipSet();
        R451_UnrelateSmt_is_a_Statement_extent = new RelationshipSet();
        R451_WhileSmt_is_a_Statement_extent = new RelationshipSet();
        R453_IfSmt_has_then_CodeBlock_extent = new RelationshipSet();
        R454_IfSmt_has_else_CodeBlock_extent = new RelationshipSet();
        R4558_UtilityReference_contains_Utility_extent = new RelationshipSet();
        R4558_UtilityReference_used_within_context_of_ComponentDefinition_extent = new RelationshipSet();
        R4559_UtilityFunction_provided_by_Utility_extent = new RelationshipSet();
        R455_ForSmt_has_control_CodeBlock_extent = new RelationshipSet();
        R4561_ComponentDefinition_initialized_by_Function_extent = new RelationshipSet();
        R456_WhileSmt_has_control_CodeBlock_extent = new RelationshipSet();
        R4570_UtilityFunction_Bridge_extent = new RelationshipSet();
        R4571_RelationshipPopulationSelector_selects_relationships_out_of_population_of_ComponentDefinition_extent = new RelationshipSet();
        R4572_RelationshipPopulationSelector_selects_instances_of_ClassRelationship_extent = new RelationshipSet();
        R4573_ComponentDefinition_C_C_extent = new RelationshipSet();
        R457_Variable_is_declared_by_Statement_extent = new RelationshipSet();
        R458_VariableInScope_has_in_scope_Variable_extent = new RelationshipSet();
        R458_VariableInScope_is_in_scope_for_CodeBlock_extent = new RelationshipSet();
        R459_ForSmt_declares_as_iterator_Variable_extent = new RelationshipSet();
        R45_StructureMember_is_defined_by_DataType_extent = new RelationshipSet();
        R461_Variable_is_typed_by_TypeReference_extent = new RelationshipSet();
        R462_DeleteSmt_deletes_instance_specified_by_Expression_extent = new RelationshipSet();
        R46_StructureMember_succeeds_StructureMember_extent = new RelationshipSet();
        R4701_ImportedReference_imports_InterfaceReference_extent = new RelationshipSet();
        R4703_ImportedProvision_is_a_ImportedReference_extent = new RelationshipSet();
        R4703_ImportedRequirement_is_a_ImportedReference_extent = new RelationshipSet();
        R4704_ImportedReference_accepts_communication_through_Delegation_extent = new RelationshipSet();
        R4705_ImportedProvisionInSatisfaction_provides_satisfaction_through_Satisfaction_extent = new RelationshipSet();
        R4705_ImportedProvisionInSatisfaction_satisfaction_made_with_ImportedProvision_extent = new RelationshipSet();
        R4706_ImportedRequirement_provides_satisfaction_through_Satisfaction_extent = new RelationshipSet();
        R4707_PortReference_orginates_from_ComponentReference_extent = new RelationshipSet();
        R4708_ImportedReference_originates_from_PortReference_extent = new RelationshipSet();
        R4709_PortReference_references_C_PO_extent = new RelationshipSet();
        R471_IfSmt_executes_then_block_if_true_Expression_extent = new RelationshipSet();
        R472_WhileSmt_executes_block_while_true_Expression_extent = new RelationshipSet();
        R473_ReturnSmt_returns_value_specified_by_Expression_extent = new RelationshipSet();
        R4750_StateMachine_models_behavior_of_ModelInst_extent = new RelationshipSet();
        R4751_State_StateMachine_extent = new RelationshipSet();
        R4752_Event_StateMachine_extent = new RelationshipSet();
        R4753_TransitionTableRow_StateMachine_extent = new RelationshipSet();
        R4754_TransitionTableRow_State_extent = new RelationshipSet();
        R4755_TransitionTableCell_TransitionTableRow_extent = new RelationshipSet();
        R4756_TransitionTableCell_receives_Event_extent = new RelationshipSet();
        R4757_StateTransition_TransitionTableCell_extent = new RelationshipSet();
        R4757_StateTransition_transitions_to_State_extent = new RelationshipSet();
        R4758_StateMachineState_State_extent = new RelationshipSet();
        R4759_StateMachineEvent_Event_extent = new RelationshipSet();
        R4760_StructureMember_Attribute_extent = new RelationshipSet();
        R4761_Message_ExecutableProperty_extent = new RelationshipSet();
        R476_ExpressionAsStatement_executes_as_statement_Expression_extent = new RelationshipSet();
        R477_Statement_executes_before_Statement_extent = new RelationshipSet();
        R478_ForSmt_iterates_over_Expression_extent = new RelationshipSet();
        R479_RelateSmt_relates_formalizing_Expression_extent = new RelationshipSet();
        R480_RelateSmt_relates_participating_Expression_extent = new RelationshipSet();
        R481_RelateSmt_creates_instances_of_ClassRelationship_extent = new RelationshipSet();
        R482_UnrelateSmt_unrelates_participating_Expression_extent = new RelationshipSet();
        R483_UnrelateSmt_unrelates_formalizing_Expression_extent = new RelationshipSet();
        R484_UnrelateSmt_deletes_instances_of_ClassRelationship_extent = new RelationshipSet();
        R485_Finalization_finalized_by_Statement_extent = new RelationshipSet();
        R485_Finalization_finalizes_Variable_extent = new RelationshipSet();
        R486_Generate_generates_Expression_extent = new RelationshipSet();
        R49_Dimensions_specifies_occurrences_of_BridgeParameter_extent = new RelationshipSet();
        R501_StateMachineState_SM_SM_extent = new RelationshipSet();
        R502_StateMachineEvent_SM_SM_extent = new RelationshipSet();
        R503_StateEventMatrixEntry_is_received_by_StateMachineState_extent = new RelationshipSet();
        R503_StateEventMatrixEntry_receives_SEMEvent_extent = new RelationshipSet();
        R504_CantHappen_is_a_StateEventMatrixEntry_extent = new RelationshipSet();
        R504_EventIgnored_is_a_StateEventMatrixEntry_extent = new RelationshipSet();
        R504_NewStateTransition_is_a_StateEventMatrixEntry_extent = new RelationshipSet();
        R505_Transition_SM_SM_extent = new RelationshipSet();
        R506_Transition_is_destined_to_StateMachineState_extent = new RelationshipSet();
        R507_CreationTransition_is_a_Transition_extent = new RelationshipSet();
        R507_NewStateTransition_is_a_Transition_extent = new RelationshipSet();
        R507_NoEventTransition_is_a_Transition_extent = new RelationshipSet();
        R508_NoEventTransition_originates_from_StateMachineState_extent = new RelationshipSet();
        R509_CreationTransition_is_assigned_to_LocalEvent_extent = new RelationshipSet();
        R50_Dimensions_defines_return_value_dimensions_for_Bridge_extent = new RelationshipSet();
        R510_MealyStateMachine_is_a_SM_SM_extent = new RelationshipSet();
        R510_MooreStateMachine_is_a_SM_SM_extent = new RelationshipSet();
        R511_MooreActionHome_MooreStateMachine_extent = new RelationshipSet();
        R511_MooreActionHome_StateMachineState_extent = new RelationshipSet();
        R512_MealyActionHome_MealyStateMachine_extent = new RelationshipSet();
        R512_MealyActionHome_Transition_extent = new RelationshipSet();
        R513_MealyActionHome_is_a_ActionHome_extent = new RelationshipSet();
        R513_MooreActionHome_is_a_ActionHome_extent = new RelationshipSet();
        R513_TransitionActionHome_is_a_ActionHome_extent = new RelationshipSet();
        R514_ActionHome_houses_Action_extent = new RelationshipSet();
        R515_Action_SM_SM_extent = new RelationshipSet();
        R516_StateMachineEventDataItem_is_carried_on_events_into_SM_SM_extent = new RelationshipSet();
        R517_ClassStateMachine_is_a_SM_SM_extent = new RelationshipSet();
        R517_InstanceStateMachine_is_a_SM_SM_extent = new RelationshipSet();
        R518_InstanceStateMachine_ModelClass_extent = new RelationshipSet();
        R519_ClassStateMachine_ModelClass_extent = new RelationshipSet();
        R51_Dimensions_defines_return_value_dimensions_for_S_SYNC_extent = new RelationshipSet();
        R524_StateMachineEventDataItem_is_defined_by_DataType_extent = new RelationshipSet();
        R525_PolymorphicEvent_is_a_StateMachineEvent_extent = new RelationshipSet();
        R525_SEMEvent_is_a_StateMachineEvent_extent = new RelationshipSet();
        R526_LocalEvent_is_a_SEMEvent_extent = new RelationshipSet();
        R526_NonLocalEvent_is_a_SEMEvent_extent = new RelationshipSet();
        R526_SignalEvent_is_a_SEMEvent_extent = new RelationshipSet();
        R527_NonLocalEvent_is_defined_by_PolymorphicEvent_extent = new RelationshipSet();
        R528_SignalEvent_ProvidedSignal_extent = new RelationshipSet();
        R529_SignalEvent_RequiredSignal_extent = new RelationshipSet();
        R52_Dimensions_specifies_occurrences_of_FunctionParameter_extent = new RelationshipSet();
        R530_TransitionActionHome_Transition_extent = new RelationshipSet();
        R531_Dimensions_specifies_occurrences_of_StateMachineEventDataItem_extent = new RelationshipSet();
        R532_StateMachineEventDataItem_carried_by_StateMachineEvent_extent = new RelationshipSet();
        R533_StateMachineEventDataItem_succeeds_StateMachineEventDataItem_extent = new RelationshipSet();
        R53_Dimensions_specifies_occurrences_of_StructureMember_extent = new RelationshipSet();
        R54_FunctionParameter_succeeds_FunctionParameter_extent = new RelationshipSet();
        R55_BridgeParameter_succeeds_BridgeParameter_extent = new RelationshipSet();
        R56_S_ENUM_succeeds_S_ENUM_extent = new RelationshipSet();
        R57_Range_spans_UserDataType_extent = new RelationshipSet();
        R601_Block_is_committed_from_Body_extent = new RelationshipSet();
        R602_ACT_SMT_contains_Block_extent = new RelationshipSet();
        R603_ACT_BRK_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_ACT_CON_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_ACT_FIO_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_ACT_SEL_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_AssignToMember_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_BridgeInvocation_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_Control_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_CreateNoVariable_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_Create_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_Delete_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_ElseIfStmt_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_ElseStmt_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_EventSpecificationStatement_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_ForStmt_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_FunctionInvocation_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_GeneratePreexistingEvent_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_IfStmt_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_InterfaceOperationInvocation_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_OperationInvocation_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_RelateUsing_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_Relate_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_ReturnStmt_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_SelectFromInstancesWhere_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_SignalInvocation_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_UnrelateUsing_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_Unrelate_is_a_ACT_SMT_extent = new RelationshipSet();
        R603_WhileStmt_is_a_ACT_SMT_extent = new RelationshipSet();
        R604_ChainLink_precedes_ChainLink_extent = new RelationshipSet();
        R605_ForStmt_controls_Block_extent = new RelationshipSet();
        R606_ElseStmt_controls_Block_extent = new RelationshipSet();
        R607_IfStmt_controls_Block_extent = new RelationshipSet();
        R608_WhileStmt_controls_Block_extent = new RelationshipSet();
        R609_AssignToMember_reads_Value_extent = new RelationshipSet();
        R610_SelectFromInstancesWhere_where_clause_Value_extent = new RelationshipSet();
        R611_SelectRelatedWhere_where_clause_Value_extent = new RelationshipSet();
        R612_Block_is_parsed_from_Body_extent = new RelationshipSet();
        R613_ACT_SEL_starting_point_Value_extent = new RelationshipSet();
        R614_ForStmt_loop_V_VAR_extent = new RelationshipSet();
        R615_Relate_one_V_VAR_extent = new RelationshipSet();
        R616_Relate_other_V_VAR_extent = new RelationshipSet();
        R617_RelateUsing_one_V_VAR_extent = new RelationshipSet();
        R618_RelateUsing_other_V_VAR_extent = new RelationshipSet();
        R619_RelateUsing_using_V_VAR_extent = new RelationshipSet();
        R620_Unrelate_one_V_VAR_extent = new RelationshipSet();
        R621_Unrelate_other_V_VAR_extent = new RelationshipSet();
        R622_UnrelateUsing_one_V_VAR_extent = new RelationshipSet();
        R623_UnrelateUsing_other_V_VAR_extent = new RelationshipSet();
        R624_UnrelateUsing_using_V_VAR_extent = new RelationshipSet();
        R625_IfStmt_test_result_Value_extent = new RelationshipSet();
        R626_WhileStmt_continue_result_Value_extent = new RelationshipSet();
        R627_V_PAR_OperationInvocation_extent = new RelationshipSet();
        R628_V_PAR_BridgeInvocation_extent = new RelationshipSet();
        R629_InterfaceOperationInvocation_has_target_Value_extent = new RelationshipSet();
        R630_SignalInvocation_has_target_Value_extent = new RelationshipSet();
        R633_Create_result_V_VAR_extent = new RelationshipSet();
        R634_Delete_destroys_V_VAR_extent = new RelationshipSet();
        R637_ChainLink_ACT_SEL_extent = new RelationshipSet();
        R638_ACT_SEL_selection_V_VAR_extent = new RelationshipSet();
        R639_ACT_FIO_selection_V_VAR_extent = new RelationshipSet();
        R640_BodyInElement_has_declared_Body_extent = new RelationshipSet();
        R640_BodyInElement_is_declared_in_PackageableElement_extent = new RelationshipSet();
        R650_Body_has_parsed_outer_Block_extent = new RelationshipSet();
        R652_ForStmt_set_V_VAR_extent = new RelationshipSet();
        R653_Relate_creates_Association_extent = new RelationshipSet();
        R654_RelateUsing_creates_Association_extent = new RelationshipSet();
        R655_Unrelate_destroys_Association_extent = new RelationshipSet();
        R656_UnrelateUsing_destroys_Association_extent = new RelationshipSet();
        R657_InterfaceOperationInvocation_is_invocation_of_RequiredOperation_extent = new RelationshipSet();
        R658_ElseIfStmt_controls_Block_extent = new RelationshipSet();
        R659_ElseIfStmt_test_result_Value_extent = new RelationshipSet();
        R660_SignalInvocation_is_invocation_of_RequiredSignal_extent = new RelationshipSet();
        R661_ACT_SMT_succeeds_ACT_SMT_extent = new RelationshipSet();
        R662_V_PAR_taken_by_SignalInvocation_extent = new RelationshipSet();
        R663_SignalInvocation_is_invocation_of_ProvidedSignal_extent = new RelationshipSet();
        R664_SelectRelatedBy_is_a_ACT_SEL_extent = new RelationshipSet();
        R664_SelectRelatedWhere_is_a_ACT_SEL_extent = new RelationshipSet();
        R665_SelectFromInstancesWhere_result_V_VAR_extent = new RelationshipSet();
        R666_Body_has_committed_outer_Block_extent = new RelationshipSet();
        R667_OperationInvocation_has_target_V_VAR_extent = new RelationshipSet();
        R668_ReturnStmt_has_Value_extent = new RelationshipSet();
        R669_V_PAR_FunctionInvocation_extent = new RelationshipSet();
        R670_ForStmt_iterates_a_set_of_ModelClass_extent = new RelationshipSet();
        R671_Create_instance_of_ModelClass_extent = new RelationshipSet();
        R672_CreateNoVariable_instance_of_ModelClass_extent = new RelationshipSet();
        R673_OperationInvocation_is_an_invocation_of_O_TFR_extent = new RelationshipSet();
        R674_BridgeInvocation_is_an_invocation_of_Bridge_extent = new RelationshipSet();
        R675_FunctionInvocation_is_an_invocation_of_S_SYNC_extent = new RelationshipSet();
        R676_SelectFromInstancesWhere_from_extent_of_ModelClass_extent = new RelationshipSet();
        R677_ACT_FIO_from_extent_of_ModelClass_extent = new RelationshipSet();
        R678_ChainLink_specifies_instances_of_ModelClass_extent = new RelationshipSet();
        R679_V_PAR_taken_by_InterfaceOperationInvocation_extent = new RelationshipSet();
        R680_InterfaceOperationInvocation_is_invocation_of_ProvidedOperation_extent = new RelationshipSet();
        R681_ChainLink_specifies_traversal_of_Association_extent = new RelationshipSet();
        R682_ElseIfStmt_IfStmt_extent = new RelationshipSet();
        R683_ElseStmt_IfStmt_extent = new RelationshipSet();
        R684_RequiredSignalBody_specifies_processing_for_RequiredSignal_extent = new RelationshipSet();
        R685_RequiredOperationBody_specifies_processing_for_RequiredOperation_extent = new RelationshipSet();
        R686_ProvidedSignalBody_specifies_processing_for_ProvidedSignal_extent = new RelationshipSet();
        R687_ProvidedOperationBody_specifies_processing_for_ProvidedOperation_extent = new RelationshipSet();
        R688_TransitionActionBody_specifies_processing_for_Action_extent = new RelationshipSet();
        R689_AssignToMember_writes_Value_extent = new RelationshipSet();
        R690_IfStmt_was_executing_when_halted_ElseIfStmt_extent = new RelationshipSet();
        R691_StateActionBody_specifies_processing_for_Action_extent = new RelationshipSet();
        R692_IfStmt_was_executing_when_halted_ElseStmt_extent = new RelationshipSet();
        R693_DerivedAttributeBody_specifies_processing_for_DerivedBaseAttribute_extent = new RelationshipSet();
        R694_BodyInComponent_has_declared_Body_extent = new RelationshipSet();
        R694_BodyInComponent_is_declared_in_C_C_extent = new RelationshipSet();
        R695_FunctionBody_specifies_processing_for_S_SYNC_extent = new RelationshipSet();
        R696_OperationBody_specifies_processing_for_O_TFR_extent = new RelationshipSet();
        R697_BridgeBody_specifies_processing_for_Bridge_extent = new RelationshipSet();
        R698_BridgeBody_is_a_Body_extent = new RelationshipSet();
        R698_DerivedAttributeBody_is_a_Body_extent = new RelationshipSet();
        R698_FunctionBody_is_a_Body_extent = new RelationshipSet();
        R698_OperationBody_is_a_Body_extent = new RelationshipSet();
        R698_ProvidedOperationBody_is_a_Body_extent = new RelationshipSet();
        R698_ProvidedSignalBody_is_a_Body_extent = new RelationshipSet();
        R698_RequiredOperationBody_is_a_Body_extent = new RelationshipSet();
        R698_RequiredSignalBody_is_a_Body_extent = new RelationshipSet();
        R698_StateActionBody_is_a_Body_extent = new RelationshipSet();
        R698_TransitionActionBody_is_a_Body_extent = new RelationshipSet();
        R699_Body_has_current_scope_Block_extent = new RelationshipSet();
        R700_V_PAR_EventSpecificationStatement_extent = new RelationshipSet();
        R701_CreateEventStatement_is_a_EventSpecificationStatement_extent = new RelationshipSet();
        R701_GenerateEventStatement_is_a_EventSpecificationStatement_extent = new RelationshipSet();
        R702_CreateSMEventStatement_is_a_CreateEventStatement_extent = new RelationshipSet();
        R703_GenerateSMEventStatement_is_a_GenerateEventStatement_extent = new RelationshipSet();
        R704_CreateEventToClass_is_a_CreateSMEventStatement_extent = new RelationshipSet();
        R704_CreateEventToCreator_is_a_CreateSMEventStatement_extent = new RelationshipSet();
        R704_CreateEventToInstance_is_a_CreateSMEventStatement_extent = new RelationshipSet();
        R705_E_GEN_is_a_GenerateSMEventStatement_extent = new RelationshipSet();
        R705_GenerateToClass_is_a_GenerateSMEventStatement_extent = new RelationshipSet();
        R705_GenerateToCreator_is_a_GenerateSMEventStatement_extent = new RelationshipSet();
        R706_CreateSMEventStatement_creates_StateMachineEvent_extent = new RelationshipSet();
        R707_GenerateSMEventStatement_generates_StateMachineEvent_extent = new RelationshipSet();
        R710_CreateEventStatement_result_V_VAR_extent = new RelationshipSet();
        R711_CreateEventToInstance_has_recipient_V_VAR_extent = new RelationshipSet();
        R712_E_GEN_has_recipient_V_VAR_extent = new RelationshipSet();
        R714_GeneratePreexistingEvent_generates_event_held_by_Value_extent = new RelationshipSet();
        R775_Expression_expressed_within_Statement_extent = new RelationshipSet();
        R776_Any_is_a_Expression_extent = new RelationshipSet();
        R776_ArrayElementReference_is_a_Expression_extent = new RelationshipSet();
        R776_ArrayLengthAccess_is_a_Expression_extent = new RelationshipSet();
        R776_AttributeAccess_is_a_Expression_extent = new RelationshipSet();
        R776_BinaryOperation_is_a_Expression_extent = new RelationshipSet();
        R776_ConstantReference_is_a_Expression_extent = new RelationshipSet();
        R776_Creation_is_a_Expression_extent = new RelationshipSet();
        R776_EnumeratorReference_is_a_Expression_extent = new RelationshipSet();
        R776_EventCreation_is_a_Expression_extent = new RelationshipSet();
        R776_Invocation_is_a_Expression_extent = new RelationshipSet();
        R776_Literal_is_a_Expression_extent = new RelationshipSet();
        R776_MemberReference_is_a_Expression_extent = new RelationshipSet();
        R776_NamedReference_is_a_Expression_extent = new RelationshipSet();
        R776_ParameterReference_is_a_Expression_extent = new RelationshipSet();
        R776_ParenthesizedExpression_is_a_Expression_extent = new RelationshipSet();
        R776_Promotion_is_a_Expression_extent = new RelationshipSet();
        R776_Select_is_a_Expression_extent = new RelationshipSet();
        R776_Selected_is_a_Expression_extent = new RelationshipSet();
        R776_UnaryOperation_is_a_Expression_extent = new RelationshipSet();
        R776_VariableReference_is_a_Expression_extent = new RelationshipSet();
        R776_Where_is_a_Expression_extent = new RelationshipSet();
        R777_UnaryOperation_has_single_operand_Expression_extent = new RelationshipSet();
        R778_BinaryOperation_has_right_Expression_extent = new RelationshipSet();
        R779_BinaryOperation_has_left_Expression_extent = new RelationshipSet();
        R780_Creation_creates_ModelInst_extent = new RelationshipSet();
        R781_ParameterReference_refers_to_FormalParameter_extent = new RelationshipSet();
        R782_VariableReference_refers_to_local_Variable_extent = new RelationshipSet();
        R783_Any_gets_an_arbitrary_element_from_Expression_extent = new RelationshipSet();
        R784_ParenthesizedExpression_parenthesizes_Expression_extent = new RelationshipSet();
        R785_AttributeAccess_refers_to_attribute_of_instance_expressed_by_Expression_extent = new RelationshipSet();
        R786_EnumeratorReference_refers_to_Enumerator_extent = new RelationshipSet();
        R787_MemberReference_refers_to_member_of_structured_value_expressed_by_Expression_extent = new RelationshipSet();
        R788_AttributeAccess_refers_to_Attribute_extent = new RelationshipSet();
        R789_SelectFromInstances_is_a_Select_extent = new RelationshipSet();
        R789_SelectRelated_is_a_Select_extent = new RelationshipSet();
        R790_Where_filters_Expression_extent = new RelationshipSet();
        R791_SelectRelated_selects_instances_linked_from_instance_expressed_by_Expression_extent = new RelationshipSet();
        R792_Invocation_invokes_InvocableObject_extent = new RelationshipSet();
        R793_ActualParameter_Invocation_extent = new RelationshipSet();
        R794_ActualParameter_parameter_value_specified_by_Expression_extent = new RelationshipSet();
        R795_Expression_expresses_value_of_TypeReference_extent = new RelationshipSet();
        R796_Where_has_condition_Expression_extent = new RelationshipSet();
        R797_SelectRelated_selects_instances_through_Selector_extent = new RelationshipSet();
        R798_Invocation_invokes_activity_on_Expression_extent = new RelationshipSet();
        R799_SelectFromInstances_selects_instances_through_InstancePopulationSelector_extent = new RelationshipSet();
        R8000_PackageableElement_contained_by_EP_PKG_extent = new RelationshipSet();
        R8001_ActivityEdge_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_ActivityNode_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_ActivityPartition_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_Association_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_C_C_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_C_I_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_ComponentReference_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_ConstantSpecification_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_DataType_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_Delegation_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_Deployment_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_EP_PKG_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_Exception_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_ExternalEntity_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_ImportedClass_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_InteractionParticipant_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_MSG_M_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_ModelClass_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_S_SYNC_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_Satisfaction_is_a_PackageableElement_extent = new RelationshipSet();
        R8001_UseCaseAssociation_is_a_PackageableElement_extent = new RelationshipSet();
        R8002_ElementVisibility_has_visibility_of_PackageableElement_extent = new RelationshipSet();
        R8002_ElementVisibility_is_visible_to_elements_in_EP_PKG_extent = new RelationshipSet();
        R8003_PackageableElement_contained_in_C_C_extent = new RelationshipSet();
        R8004_ComponentVisibility_has_visibility_of_PackageableElement_extent = new RelationshipSet();
        R8004_ComponentVisibility_is_visible_to_C_C_extent = new RelationshipSet();
        R8005_SearchResultSet_held_by_EP_PKG_extent = new RelationshipSet();
        R8006_ElementVisibility_SearchResultSet_extent = new RelationshipSet();
        R8007_ComponentResultSet_held_by_C_C_extent = new RelationshipSet();
        R8008_ComponentVisibility_makes_up_a_ComponentResultSet_extent = new RelationshipSet();
        R800_V_PAR_has_Value_extent = new RelationshipSet();
        R801_ArrayLengthValue_is_a_Value_extent = new RelationshipSet();
        R801_AttributeValueReference_is_a_Value_extent = new RelationshipSet();
        R801_BridgeValue_is_a_Value_extent = new RelationshipSet();
        R801_EventDatumValue_is_a_Value_extent = new RelationshipSet();
        R801_FunctionValue_is_a_Value_extent = new RelationshipSet();
        R801_InstanceReference_is_a_Value_extent = new RelationshipSet();
        R801_InstanceSetReference_is_a_Value_extent = new RelationshipSet();
        R801_LiteralBoolean_is_a_Value_extent = new RelationshipSet();
        R801_LiteralEnumerator_is_a_Value_extent = new RelationshipSet();
        R801_LiteralInteger_is_a_Value_extent = new RelationshipSet();
        R801_LiteralReal_is_a_Value_extent = new RelationshipSet();
        R801_LiteralString_is_a_Value_extent = new RelationshipSet();
        R801_MemberValueReference_is_a_Value_extent = new RelationshipSet();
        R801_MessageValue_is_a_Value_extent = new RelationshipSet();
        R801_OperationValue_is_a_Value_extent = new RelationshipSet();
        R801_ParameterValue_is_a_Value_extent = new RelationshipSet();
        R801_SelectedReference_is_a_Value_extent = new RelationshipSet();
        R801_SymbolicConstantValue_is_a_Value_extent = new RelationshipSet();
        R801_TransientValueReference_is_a_Value_extent = new RelationshipSet();
        R801_V_AER_is_a_Value_extent = new RelationshipSet();
        R801_V_BIN_is_a_Value_extent = new RelationshipSet();
        R801_V_UNY_is_a_Value_extent = new RelationshipSet();
        R802_V_BIN_has_left_Value_extent = new RelationshipSet();
        R803_V_BIN_has_right_Value_extent = new RelationshipSet();
        R804_V_UNY_has_operand_Value_extent = new RelationshipSet();
        R805_TransientValueReference_references_V_VAR_extent = new RelationshipSet();
        R806_AttributeValueReference_is_value_of_O_ATTR_extent = new RelationshipSet();
        R807_AttributeValueReference_has_root_Value_extent = new RelationshipSet();
        R808_InstanceReference_refers_to_V_VAR_extent = new RelationshipSet();
        R809_InstanceSetReference_refers_to_V_VAR_extent = new RelationshipSet();
        R810_V_PAR_BridgeValue_extent = new RelationshipSet();
        R811_V_PAR_OperationValue_extent = new RelationshipSet();
        R812_SelectedReference_member_O_ATTR_extent = new RelationshipSet();
        R814_InstanceHandle_is_a_V_VAR_extent = new RelationshipSet();
        R814_TransientVar_is_a_V_VAR_extent = new RelationshipSet();
        R814_V_INS_is_a_V_VAR_extent = new RelationshipSet();
        R816_V_PAR_precedes_V_PAR_extent = new RelationshipSet();
        R817_V_PAR_FunctionValue_extent = new RelationshipSet();
        R818_InstanceHandle_refers_to_ModelClass_extent = new RelationshipSet();
        R819_V_INS_refers_to_ModelClass_extent = new RelationshipSet();
        R820_Value_has_type_DataType_extent = new RelationshipSet();
        R821_TransientVar_has_DataType_extent = new RelationshipSet();
        R823_V_VAR_Block_extent = new RelationshipSet();
        R824_LiteralEnumerator_has_value_S_ENUM_extent = new RelationshipSet();
        R825_SelectedReference_value_OperationValue_extent = new RelationshipSet();
        R826_Value_has_scope_Block_extent = new RelationshipSet();
        R827_FunctionValue_S_SYNC_extent = new RelationshipSet();
        R828_BridgeValue_Bridge_extent = new RelationshipSet();
        R829_OperationValue_O_TFR_extent = new RelationshipSet();
        R830_OperationValue_V_VAR_extent = new RelationshipSet();
        R831_ParameterValue_is_a_value_of_BridgeParameter_extent = new RelationshipSet();
        R832_ParameterValue_is_a_value_of_FunctionParameter_extent = new RelationshipSet();
        R833_ParameterValue_is_a_value_of_OperationParameter_extent = new RelationshipSet();
        R834_EventParameterReference_EventDatumValue_extent = new RelationshipSet();
        R835_VariableLocation_V_VAR_extent = new RelationshipSet();
        R836_MemberValueReference_is_value_of_StructureMember_extent = new RelationshipSet();
        R837_MemberValueReference_Value_extent = new RelationshipSet();
        R838_V_AER_has_root_Value_extent = new RelationshipSet();
        R839_V_AER_has_index_Value_extent = new RelationshipSet();
        R840_ArrayLengthValue_returns_length_of_Value_extent = new RelationshipSet();
        R841_MessageValue_ProvidedExecutableProperty_extent = new RelationshipSet();
        R842_V_PAR_MessageValue_extent = new RelationshipSet();
        R843_ParameterValue_is_a_value_of_PropertyParameter_extent = new RelationshipSet();
        R844_Dimensions_specifies_occurrences_of_TransientVar_extent = new RelationshipSet();
        R845_MessageValue_RequiredExecutableProperty_extent = new RelationshipSet();
        R846_EventParameterReference_StateMachineEventDataItem_extent = new RelationshipSet();
        R847_EventParameterReference_PropertyParameter_extent = new RelationshipSet();
        R848_V_VAR_has_DataType_extent = new RelationshipSet();
        R849_Dimensions_specifies_occurrences_of_V_VAR_extent = new RelationshipSet();
        R850_SymbolicConstantValue_SymbolicConstant_extent = new RelationshipSet();
        R851_MessageValue_has_target_Value_extent = new RelationshipSet();
        R9000_SatisfactionInComponent_C_C_extent = new RelationshipSet();
        R9000_SatisfactionInComponent_Satisfaction_extent = new RelationshipSet();
        R9002_DelegationInComponent_C_C_extent = new RelationshipSet();
        R9002_DelegationInComponent_Delegation_extent = new RelationshipSet();
        R9100_GlobalElementInSystem_PackageableElement_extent = new RelationshipSet();
        R9100_GlobalElementInSystem_SystemModel_extent = new RelationshipSet();
        R930_ActorParticipant_is_a_InteractionParticipant_extent = new RelationshipSet();
        R930_ClassInstanceParticipant_is_a_InteractionParticipant_extent = new RelationshipSet();
        R930_ClassParticipant_is_a_InteractionParticipant_extent = new RelationshipSet();
        R930_ComponentParticipant_is_a_InteractionParticipant_extent = new RelationshipSet();
        R930_ExternalEntityParticipant_is_a_InteractionParticipant_extent = new RelationshipSet();
        R930_Lifespan_is_a_InteractionParticipant_extent = new RelationshipSet();
        R930_PackageParticipant_is_a_InteractionParticipant_extent = new RelationshipSet();
        R930_UseCaseParticipant_is_a_InteractionParticipant_extent = new RelationshipSet();
        R931_TimingMark_marks_a_point_in_time_Lifespan_extent = new RelationshipSet();
        R933_ExternalEntityParticipant_represents_ExternalEntity_extent = new RelationshipSet();
        R934_ClassInstanceParticipant_represents_ModelClass_extent = new RelationshipSet();
        R935_ClassParticipantAttribute_belongs_to_ClassParticipant_extent = new RelationshipSet();
        R936_InstanceAttributeValue_owns_informal_ClassInstanceParticipant_extent = new RelationshipSet();
        R937_InstanceAttributeValue_owns_formal_ClassInstanceParticipant_extent = new RelationshipSet();
        R938_InstanceAttributeValue_references_O_ATTR_extent = new RelationshipSet();
        R939_ClassParticipant_represents_ModelClass_extent = new RelationshipSet();
        R940_Lifespan_extends_from_InteractionParticipant_extent = new RelationshipSet();
        R941_TimeSpan_span_begins_at_TimingMark_extent = new RelationshipSet();
        R942_TimeSpan_span_ends_at_TimingMark_extent = new RelationshipSet();
        R947_FormalAttribute_is_a_ClassParticipantAttribute_extent = new RelationshipSet();
        R947_InformalAttribute_is_a_ClassParticipantAttribute_extent = new RelationshipSet();
        R948_FormalAttributeValue_is_a_InstanceAttributeValue_extent = new RelationshipSet();
        R948_InformalAttributeValue_is_a_InstanceAttributeValue_extent = new RelationshipSet();
        R949_ActorParticipant_life_is_bounded_by_Lifespan_extent = new RelationshipSet();
        R955_ComponentParticipant_represents_C_C_extent = new RelationshipSet();
        R956_PackageParticipant_represents_EP_PKG_extent = new RelationshipSet();
        R9_ExternalEntityInModel_is_a_presence_in_subsystem_model_of_ExternalEntity_extent = new RelationshipSet();
        T = null;
        CMD = null;
        CSV = null;
        STRING = null;
        SQL = null;
        TIM = null;
        ARCH = null;
        LOG = null;
        C_UTIL = null;
        classDirectory = new TreeMap<>();
        classDirectory.put("ACT_BRK", ACT_BRKImpl.class);
        classDirectory.put("ACT_CON", ACT_CONImpl.class);
        classDirectory.put("ACT_FIO", ACT_FIOImpl.class);
        classDirectory.put("ACT_SEL", ACT_SELImpl.class);
        classDirectory.put("ACT_SMT", ACT_SMTImpl.class);
        classDirectory.put("A_AE", AcceptEventImpl.class);
        classDirectory.put("A_AEA", AcceptEventActionImpl.class);
        classDirectory.put("A_ATE", AcceptTimeEventActionImpl.class);
        classDirectory.put("SM_ACT", ActionImpl.class);
        classDirectory.put("SM_AH", ActionHomeImpl.class);
        classDirectory.put("A_ACT", ActionNodeImpl.class);
        classDirectory.put("A_GA", ActivityDiagramActionImpl.class);
        classDirectory.put("A_E", ActivityEdgeImpl.class);
        classDirectory.put("A_AF", ActivityFinalNodeImpl.class);
        classDirectory.put("A_N", ActivityNodeImpl.class);
        classDirectory.put("A_AP", ActivityPartitionImpl.class);
        classDirectory.put("SQ_AP", ActorParticipantImpl.class);
        classDirectory.put("ActualParameter", ActualParameterImpl.class);
        classDirectory.put("AnyExpr", AnyImpl.class);
        classDirectory.put("Application", ApplicationImpl.class);
        classDirectory.put("ApplicationExecutor", ApplicationExecutorImpl.class);
        classDirectory.put("ArrayElementReference", ArrayElementReferenceImpl.class);
        classDirectory.put("ArrayLengthAccess", ArrayLengthAccessImpl.class);
        classDirectory.put("V_ALV", ArrayLengthValueImpl.class);
        classDirectory.put("ArrayTypeReference", ArrayTypeReferenceImpl.class);
        classDirectory.put("ACT_AI", AssignToMemberImpl.class);
        classDirectory.put("R_REL", AssociationImpl.class);
        classDirectory.put("MSG_AM", AsynchronousMessageImpl.class);
        classDirectory.put("Attribute", AttributeImpl.class);
        classDirectory.put("AttributeAccess", AttributeAccessImpl.class);
        classDirectory.put("AttributeAccessor", AttributeAccessorImpl.class);
        classDirectory.put("AttributeDerivation", AttributeDerivationImpl.class);
        classDirectory.put("AttributeReference", AttributeReferenceImpl.class);
        classDirectory.put("O_REF", AttributeReferenceInClassImpl.class);
        classDirectory.put("I_AVL", AttributeValueImpl.class);
        classDirectory.put("V_AVL", AttributeValueReferenceImpl.class);
        classDirectory.put("O_BATTR", BaseAttributeImpl.class);
        classDirectory.put("BasicTypeReference", BasicTypeReferenceImpl.class);
        classDirectory.put("UC_BA", BinaryAssociationImpl.class);
        classDirectory.put("BinaryOperation", BinaryOperationImpl.class);
        classDirectory.put("ACT_BLK", BlockImpl.class);
        classDirectory.put("I_BSF", BlockInStackFrameImpl.class);
        classDirectory.put("ACT_ACT", BodyImpl.class);
        classDirectory.put("ACT_BIC", BodyInComponentImpl.class);
        classDirectory.put("ACT_BIE", BodyInElementImpl.class);
        classDirectory.put("BreakSmt", BreakSmtImpl.class);
        classDirectory.put("S_BRG", BridgeImpl.class);
        classDirectory.put("MSG_BA", BridgeArgumentImpl.class);
        classDirectory.put("ACT_BRB", BridgeBodyImpl.class);
        classDirectory.put("ACT_BRG", BridgeInvocationImpl.class);
        classDirectory.put("MSG_B", BridgeMessageImpl.class);
        classDirectory.put("S_BPARM", BridgeParameterImpl.class);
        classDirectory.put("V_BRV", BridgeValueImpl.class);
        classDirectory.put("BuiltInType", BuiltInTypeImpl.class);
        classDirectory.put("C_C", C_CImpl.class);
        classDirectory.put("C_I", C_IImpl.class);
        classDirectory.put("C_PO", C_POImpl.class);
        classDirectory.put("SM_CH", CantHappenImpl.class);
        classDirectory.put("CardinalityCheck", CardinalityCheckImpl.class);
        classDirectory.put("ACT_LNK", ChainLinkImpl.class);
        classDirectory.put("R_AONE", ClassAsAssociatedOneSideImpl.class);
        classDirectory.put("R_AOTH", ClassAsAssociatedOtherSideImpl.class);
        classDirectory.put("R_CONE", ClassAsDerivedOneSideImpl.class);
        classDirectory.put("R_COTH", ClassAsDerivedOtherSideImpl.class);
        classDirectory.put("R_ASSR", ClassAsLinkImpl.class);
        classDirectory.put("R_FORM", ClassAsSimpleFormalizerImpl.class);
        classDirectory.put("R_PART", ClassAsSimpleParticipantImpl.class);
        classDirectory.put("R_SUB", ClassAsSubtypeImpl.class);
        classDirectory.put("R_SUPER", ClassAsSupertypeImpl.class);
        classDirectory.put("O_ID", ClassIdentifierImpl.class);
        classDirectory.put("O_OIDA", ClassIdentifierAttributeImpl.class);
        classDirectory.put("R_OIR", ClassInAssociationImpl.class);
        classDirectory.put("SQ_CIP", ClassInstanceParticipantImpl.class);
        classDirectory.put("SQ_CP", ClassParticipantImpl.class);
        classDirectory.put("SQ_CPA", ClassParticipantAttributeImpl.class);
        classDirectory.put("Relationship", ClassRelationshipImpl.class);
        classDirectory.put("SM_ASM", ClassStateMachineImpl.class);
        classDirectory.put("CodeBlock", CodeBlockImpl.class);
        classDirectory.put("COMM_LNK", CommunicationLinkImpl.class);
        classDirectory.put("ComponentDefinition", ComponentDefinitionImpl.class);
        classDirectory.put("I_EXE", ComponentInstanceImpl.class);
        classDirectory.put("I_CIN", ComponentInstanceContainerImpl.class);
        classDirectory.put("ComponentInstantiation", ComponentInstantiationImpl.class);
        classDirectory.put("SQ_COP", ComponentParticipantImpl.class);
        classDirectory.put("CL_IC", ComponentReferenceImpl.class);
        classDirectory.put("PE_CRS", ComponentResultSetImpl.class);
        classDirectory.put("PE_CVS", ComponentVisibilityImpl.class);
        classDirectory.put("ConstantReference", ConstantReferenceImpl.class);
        classDirectory.put("CNST_CSP", ConstantSpecificationImpl.class);
        classDirectory.put("ContinueSmt", ContinueSmtImpl.class);
        classDirectory.put("ACT_CTL", ControlImpl.class);
        classDirectory.put("A_CTL", ControlNodeImpl.class);
        classDirectory.put("S_CDT", CoreDataTypeImpl.class);
        classDirectory.put("ACT_CR", CreateImpl.class);
        classDirectory.put("E_CES", CreateEventStatementImpl.class);
        classDirectory.put("E_CEA", CreateEventToClassImpl.class);
        classDirectory.put("E_CEC", CreateEventToCreatorImpl.class);
        classDirectory.put("E_CEI", CreateEventToInstanceImpl.class);
        classDirectory.put("ACT_CNV", CreateNoVariableImpl.class);
        classDirectory.put("E_CSME", CreateSMEventStatementImpl.class);
        classDirectory.put("Creation", CreationImpl.class);
        classDirectory.put("SM_CRTXN", CreationTransitionImpl.class);
        classDirectory.put("I_DIV", DataItemValueImpl.class);
        classDirectory.put("S_DT", DataTypeImpl.class);
        classDirectory.put("A_DM", DecisionMergeNodeImpl.class);
        classDirectory.put("O_DEF", DeferralImpl.class);
        classDirectory.put("C_DG", DelegationImpl.class);
        classDirectory.put("PA_DIC", DelegationInComponentImpl.class);
        classDirectory.put("ACT_DEL", DeleteImpl.class);
        classDirectory.put("DeleteSmt", DeleteSmtImpl.class);
        classDirectory.put("D_DEPL", DeploymentImpl.class);
        classDirectory.put("R_COMP", DerivedAssociationImpl.class);
        classDirectory.put("ACT_DAB", DerivedAttributeBodyImpl.class);
        classDirectory.put("O_DBATTR", DerivedBaseAttributeImpl.class);
        classDirectory.put("S_DIM", DimensionsImpl.class);
        classDirectory.put("EP_PKG", EP_PKGImpl.class);
        classDirectory.put("E_GEN", E_GENImpl.class);
        classDirectory.put("PE_VIS", ElementVisibilityImpl.class);
        classDirectory.put("ACT_EL", ElseIfStmtImpl.class);
        classDirectory.put("ACT_E", ElseStmtImpl.class);
        classDirectory.put("EnumeratedType", EnumeratedTypeImpl.class);
        classDirectory.put("S_EDT", EnumerationDataTypeImpl.class);
        classDirectory.put("Enumerator", EnumeratorImpl.class);
        classDirectory.put("EnumeratorReference", EnumeratorReferenceImpl.class);
        classDirectory.put("Event", EventImpl.class);
        classDirectory.put("MSG_EA", EventArgumentImpl.class);
        classDirectory.put("EventCreation", EventCreationImpl.class);
        classDirectory.put("V_EDV", EventDatumValueImpl.class);
        classDirectory.put("SM_EIGN", EventIgnoredImpl.class);
        classDirectory.put("MSG_E", EventMessageImpl.class);
        classDirectory.put("V_EPR", EventParameterReferenceImpl.class);
        classDirectory.put("I_EQE", EventQueueEntryImpl.class);
        classDirectory.put("E_ESS", EventSpecificationStatementImpl.class);
        classDirectory.put("S_EXP", ExceptionImpl.class);
        classDirectory.put("C_EP", ExecutablePropertyImpl.class);
        classDirectory.put("MSG_EPA", ExecutablePropertyArgumentImpl.class);
        classDirectory.put("Expression", ExpressionImpl.class);
        classDirectory.put("ExpressionAsStatement", ExpressionAsStatementImpl.class);
        classDirectory.put("UC_E", ExtendImpl.class);
        classDirectory.put("S_EE", ExternalEntityImpl.class);
        classDirectory.put("S_EEM", ExternalEntityInModelImpl.class);
        classDirectory.put("SQ_EEP", ExternalEntityParticipantImpl.class);
        classDirectory.put("Feature", FeatureImpl.class);
        classDirectory.put("File", FileImpl.class);
        classDirectory.put("Finalization", FinalizationImpl.class);
        classDirectory.put("A_FF", FlowFinalNodeImpl.class);
        classDirectory.put("ForSmt", ForSmtImpl.class);
        classDirectory.put("ACT_FOR", ForStmtImpl.class);
        classDirectory.put("A_FJ", ForkJoinNodeImpl.class);
        classDirectory.put("SQ_FA", FormalAttributeImpl.class);
        classDirectory.put("SQ_FAV", FormalAttributeValueImpl.class);
        classDirectory.put("FormalParameter", FormalParameterImpl.class);
        classDirectory.put("Function", FunctionImpl.class);
        classDirectory.put("MSG_FA", FunctionArgumentImpl.class);
        classDirectory.put("ACT_FNB", FunctionBodyImpl.class);
        classDirectory.put("ACT_FNC", FunctionInvocationImpl.class);
        classDirectory.put("MSG_F", FunctionMessageImpl.class);
        classDirectory.put("S_SPARM", FunctionParameterImpl.class);
        classDirectory.put("V_FNV", FunctionValueImpl.class);
        classDirectory.put("GeneralFile", GeneralFileImpl.class);
        classDirectory.put("UC_G", GeneralizationImpl.class);
        classDirectory.put("Generate", GenerateImpl.class);
        classDirectory.put("E_GES", GenerateEventStatementImpl.class);
        classDirectory.put("E_GPR", GeneratePreexistingEventImpl.class);
        classDirectory.put("E_GSME", GenerateSMEventStatementImpl.class);
        classDirectory.put("E_GAR", GenerateToClassImpl.class);
        classDirectory.put("E_GEC", GenerateToCreatorImpl.class);
        classDirectory.put("GenericInvocable", GenericInvocableImpl.class);
        classDirectory.put("G_EIS", GlobalElementInSystemImpl.class);
        classDirectory.put("Halt", HaltImpl.class);
        classDirectory.put("I_INS", I_INSImpl.class);
        classDirectory.put("IfSmt", IfSmtImpl.class);
        classDirectory.put("ACT_IF", IfStmtImpl.class);
        classDirectory.put("Interface", IfaceImpl.class);
        classDirectory.put("O_IOBJ", ImportedClassImpl.class);
        classDirectory.put("CL_IP", ImportedProvisionImpl.class);
        classDirectory.put("CL_IPINS", ImportedProvisionInSatisfactionImpl.class);
        classDirectory.put("CL_IIR", ImportedReferenceImpl.class);
        classDirectory.put("CL_IR", ImportedRequirementImpl.class);
        classDirectory.put("UC_I", IncludeImpl.class);
        classDirectory.put("MSG_IA", InformalArgumentImpl.class);
        classDirectory.put("MSG_IAM", InformalAsynchronousMessageImpl.class);
        classDirectory.put("SQ_IA", InformalAttributeImpl.class);
        classDirectory.put("SQ_IAV", InformalAttributeValueImpl.class);
        classDirectory.put("MSG_ISM", InformalSynchronousMessageImpl.class);
        classDirectory.put("A_INI", InitialNodeImpl.class);
        classDirectory.put("ClassSet", InstSetImpl.class);
        classDirectory.put("SQ_AV", InstanceAttributeValueImpl.class);
        classDirectory.put("V_INT", InstanceHandleImpl.class);
        classDirectory.put("InstancePopulationSelector", InstancePopulationSelectorImpl.class);
        classDirectory.put("V_IRF", InstanceReferenceImpl.class);
        classDirectory.put("S_IRDT", InstanceReferenceDataTypeImpl.class);
        classDirectory.put("InstanceSelector", InstanceSelectorImpl.class);
        classDirectory.put("V_ISR", InstanceSetReferenceImpl.class);
        classDirectory.put("SM_ISM", InstanceStateMachineImpl.class);
        classDirectory.put("SQ_P", InteractionParticipantImpl.class);
        classDirectory.put("I_ICQE", IntercomponentQueueEntryImpl.class);
        classDirectory.put("C_IO", InterfaceOperationImpl.class);
        classDirectory.put("ACT_IOP", InterfaceOperationInvocationImpl.class);
        classDirectory.put("MSG_IOP", InterfaceOperationMessageImpl.class);
        classDirectory.put("C_IR", InterfaceReferenceImpl.class);
        classDirectory.put("C_RID", InterfaceReferenceInDelegationImpl.class);
        classDirectory.put("C_AS", InterfaceSignalImpl.class);
        classDirectory.put("InvocableObject", InvocableObjectImpl.class);
        classDirectory.put("Invocation", InvocationImpl.class);
        classDirectory.put("CNST_LFSC", LeafSymbolicConstantImpl.class);
        classDirectory.put("SQ_LS", LifespanImpl.class);
        classDirectory.put("I_LNK", LinkImpl.class);
        classDirectory.put("I_LIP", LinkParticipationImpl.class);
        classDirectory.put("R_ASSOC", LinkedAssociationImpl.class);
        classDirectory.put("Literal", LiteralImpl.class);
        classDirectory.put("V_LBO", LiteralBooleanImpl.class);
        classDirectory.put("V_LEN", LiteralEnumeratorImpl.class);
        classDirectory.put("V_LIN", LiteralIntegerImpl.class);
        classDirectory.put("V_LRL", LiteralRealImpl.class);
        classDirectory.put("V_LST", LiteralStringImpl.class);
        classDirectory.put("CNST_LSC", LiteralSymbolicConstantImpl.class);
        classDirectory.put("SM_LEVT", LocalEventImpl.class);
        classDirectory.put("MSG_M", MSG_MImpl.class);
        classDirectory.put("Mark", MarkImpl.class);
        classDirectory.put("Markable", MarkableElementTypeImpl.class);
        classDirectory.put("SM_MEAH", MealyActionHomeImpl.class);
        classDirectory.put("SM_MEALY", MealyStateMachineImpl.class);
        classDirectory.put("MemberReference", MemberReferenceImpl.class);
        classDirectory.put("V_MVL", MemberValueReferenceImpl.class);
        classDirectory.put("Message", MessageImpl.class);
        classDirectory.put("MSG_A", MessageArgumentImpl.class);
        classDirectory.put("V_MSV", MessageValueImpl.class);
        classDirectory.put("O_OBJ", ModelClassImpl.class);
        classDirectory.put("Class", ModelInstImpl.class);
        classDirectory.put("I_MON", MonitorImpl.class);
        classDirectory.put("SM_MOAH", MooreActionHomeImpl.class);
        classDirectory.put("SM_MOORE", MooreStateMachineImpl.class);
        classDirectory.put("NamedReference", NamedReferenceImpl.class);
        classDirectory.put("O_NBATTR", NewBaseAttributeImpl.class);
        classDirectory.put("SM_NSTXN", NewStateTransitionImpl.class);
        classDirectory.put("SM_NETXN", NoEventTransitionImpl.class);
        classDirectory.put("SM_NLEVT", NonLocalEventImpl.class);
        classDirectory.put("NullSmt", NullSmtImpl.class);
        classDirectory.put("O_ATTR", O_ATTRImpl.class);
        classDirectory.put("O_TFR", O_TFRImpl.class);
        classDirectory.put("A_OBJ", ObjectNodeImpl.class);
        classDirectory.put("Operation", OperationImpl.class);
        classDirectory.put("MSG_OA", OperationArgumentImpl.class);
        classDirectory.put("ACT_OPB", OperationBodyImpl.class);
        classDirectory.put("ACT_TFM", OperationInvocationImpl.class);
        classDirectory.put("MSG_O", OperationMessageImpl.class);
        classDirectory.put("O_TPARM", OperationParameterImpl.class);
        classDirectory.put("V_TRV", OperationValueImpl.class);
        classDirectory.put("SQ_PP", PackageParticipantImpl.class);
        classDirectory.put("EP_PKGREF", PackageReferenceImpl.class);
        classDirectory.put("PE_PE", PackageableElementImpl.class);
        classDirectory.put("ParameterReference", ParameterReferenceImpl.class);
        classDirectory.put("V_PVL", ParameterValueImpl.class);
        classDirectory.put("ParenthesizedExpression", ParenthesizedExpressionImpl.class);
        classDirectory.put("I_EVI", PendingEventImpl.class);
        classDirectory.put("SM_PEVT", PolymorphicEventImpl.class);
        classDirectory.put("Port", PortImpl.class);
        classDirectory.put("PortMessage", PortMessageImpl.class);
        classDirectory.put("CL_POR", PortReferenceImpl.class);
        classDirectory.put("Promotion", PromotionImpl.class);
        classDirectory.put("C_PP", PropertyParameterImpl.class);
        classDirectory.put("SPR_PEP", ProvidedExecutablePropertyImpl.class);
        classDirectory.put("SPR_PO", ProvidedOperationImpl.class);
        classDirectory.put("ACT_POB", ProvidedOperationBodyImpl.class);
        classDirectory.put("SPR_PS", ProvidedSignalImpl.class);
        classDirectory.put("ACT_PSB", ProvidedSignalBodyImpl.class);
        classDirectory.put("C_P", ProvisionImpl.class);
        classDirectory.put("S_RANGE", RangeImpl.class);
        classDirectory.put("O_RATTR", ReferentialAttributeImpl.class);
        classDirectory.put("R_RTO", ReferredToClassInAssocImpl.class);
        classDirectory.put("O_RTIDA", ReferredToIdentifierAttributeImpl.class);
        classDirectory.put("R_RGO", ReferringClassInAssocImpl.class);
        classDirectory.put("ACT_REL", RelateImpl.class);
        classDirectory.put("RelateSmt", RelateSmtImpl.class);
        classDirectory.put("ACT_RU", RelateUsingImpl.class);
        classDirectory.put("RelationshipPopulationSelector", RelationshipPopulationSelectorImpl.class);
        classDirectory.put("SPR_REP", RequiredExecutablePropertyImpl.class);
        classDirectory.put("SPR_RO", RequiredOperationImpl.class);
        classDirectory.put("ACT_ROB", RequiredOperationBodyImpl.class);
        classDirectory.put("SPR_RS", RequiredSignalImpl.class);
        classDirectory.put("ACT_RSB", RequiredSignalBodyImpl.class);
        classDirectory.put("C_R", RequirementImpl.class);
        classDirectory.put("MSG_R", ReturnMessageImpl.class);
        classDirectory.put("ReturnSmt", ReturnSmtImpl.class);
        classDirectory.put("ACT_RET", ReturnStmtImpl.class);
        classDirectory.put("I_RCH", RuntimeChannelImpl.class);
        classDirectory.put("SM_SEVT", SEMEventImpl.class);
        classDirectory.put("SM_SM", SM_SMImpl.class);
        classDirectory.put("S_ENUM", S_ENUMImpl.class);
        classDirectory.put("S_SYNC", S_SYNCImpl.class);
        classDirectory.put("C_SF", SatisfactionImpl.class);
        classDirectory.put("PA_SIC", SatisfactionInComponentImpl.class);
        classDirectory.put("PE_SRS", SearchResultSetImpl.class);
        classDirectory.put("SelectExpr", SelectImpl.class);
        classDirectory.put("SelectFromInstances", SelectFromInstancesImpl.class);
        classDirectory.put("ACT_FIW", SelectFromInstancesWhereImpl.class);
        classDirectory.put("SelectRelated", SelectRelatedImpl.class);
        classDirectory.put("ACT_SR", SelectRelatedByImpl.class);
        classDirectory.put("ACT_SRW", SelectRelatedWhereImpl.class);
        classDirectory.put("SelectedExpr", SelectedImpl.class);
        classDirectory.put("V_SLR", SelectedReferenceImpl.class);
        classDirectory.put("Selector", SelectorImpl.class);
        classDirectory.put("I_SQE", SelfQueueEntryImpl.class);
        classDirectory.put("A_SS", SendSignalImpl.class);
        classDirectory.put("D_SIS", ServiceInSequenceImpl.class);
        classDirectory.put("SetSelector", SetSelectorImpl.class);
        classDirectory.put("SM_SGEVT", SignalEventImpl.class);
        classDirectory.put("ACT_SGN", SignalInvocationImpl.class);
        classDirectory.put("MSG_SIG", SignalMessageImpl.class);
        classDirectory.put("R_SIMP", SimpleAssociationImpl.class);
        classDirectory.put("I_STACK", StackImpl.class);
        classDirectory.put("I_STF", StackFrameImpl.class);
        classDirectory.put("State", StateImpl.class);
        classDirectory.put("ACT_SAB", StateActionBodyImpl.class);
        classDirectory.put("SM_SEME", StateEventMatrixEntryImpl.class);
        classDirectory.put("StateMachine", StateMachineImpl.class);
        classDirectory.put("SM_EVT", StateMachineEventImpl.class);
        classDirectory.put("SM_EVTDI", StateMachineEventDataItemImpl.class);
        classDirectory.put("SM_STATE", StateMachineStateImpl.class);
        classDirectory.put("Transition", StateTransitionImpl.class);
        classDirectory.put("Statement", StatementImpl.class);
        classDirectory.put("S_MBR", StructureMemberImpl.class);
        classDirectory.put("S_SDT", StructuredDataTypeImpl.class);
        classDirectory.put("R_SUBSUP", SubtypeSupertypeAssociationImpl.class);
        classDirectory.put("CNST_SYC", SymbolicConstantImpl.class);
        classDirectory.put("V_SCV", SymbolicConstantValueImpl.class);
        classDirectory.put("MSG_SM", SynchronousMessageImpl.class);
        classDirectory.put("S_SYS", SystemModelImpl.class);
        classDirectory.put("D_TERM", TerminatorImpl.class);
        classDirectory.put("D_TSVC", TerminatorServiceImpl.class);
        classDirectory.put("D_TSPARM", TerminatorServiceParameterImpl.class);
        classDirectory.put("D_TSS", TerminatorServiceSequenceImpl.class);
        classDirectory.put("SQ_TS", TimeSpanImpl.class);
        classDirectory.put("I_TIM", TimerImpl.class);
        classDirectory.put("SQ_TM", TimingMarkImpl.class);
        classDirectory.put("V_TVL", TransientValueReferenceImpl.class);
        classDirectory.put("V_TRN", TransientVarImpl.class);
        classDirectory.put("SM_TXN", TransitionImpl.class);
        classDirectory.put("ACT_TAB", TransitionActionBodyImpl.class);
        classDirectory.put("SM_TAH", TransitionActionHomeImpl.class);
        classDirectory.put("TransitionTableCell", TransitionTableCellImpl.class);
        classDirectory.put("TransitionTableRow", TransitionTableRowImpl.class);
        classDirectory.put("Type", TypeImpl.class);
        classDirectory.put("TypeImport", TypeImportImpl.class);
        classDirectory.put("TypeImportReference", TypeImportReferenceImpl.class);
        classDirectory.put("TypeReference", TypeReferenceImpl.class);
        classDirectory.put("UnaryOperation", UnaryOperationImpl.class);
        classDirectory.put("ACT_UNR", UnrelateImpl.class);
        classDirectory.put("UnrelateSmt", UnrelateSmtImpl.class);
        classDirectory.put("ACT_URU", UnrelateUsingImpl.class);
        classDirectory.put("UnresolvedType", UnresolvedTypeImpl.class);
        classDirectory.put("UC_UCA", UseCaseAssociationImpl.class);
        classDirectory.put("IA_UCP", UseCaseParticipantImpl.class);
        classDirectory.put("S_UDT", UserDataTypeImpl.class);
        classDirectory.put("UserDefinedType", UserDefinedTypeImpl.class);
        classDirectory.put("Utility", UtilityImpl.class);
        classDirectory.put("UtilityFunction", UtilityFunctionImpl.class);
        classDirectory.put("UtilityReference", UtilityReferenceImpl.class);
        classDirectory.put("V_AER", V_AERImpl.class);
        classDirectory.put("V_BIN", V_BINImpl.class);
        classDirectory.put("V_INS", V_INSImpl.class);
        classDirectory.put("V_PAR", V_PARImpl.class);
        classDirectory.put("V_UNY", V_UNYImpl.class);
        classDirectory.put("V_VAR", V_VARImpl.class);
        classDirectory.put("V_VAL", ValueImpl.class);
        classDirectory.put("I_VSF", ValueInStackFrameImpl.class);
        classDirectory.put("Variable", VariableImpl.class);
        classDirectory.put("VariableInScope", VariableInScopeImpl.class);
        classDirectory.put("V_LOC", VariableLocationImpl.class);
        classDirectory.put("VariableReference", VariableReferenceImpl.class);
        classDirectory.put("WhereExpr", WhereImpl.class);
        classDirectory.put("WhileSmt", WhileSmtImpl.class);
        classDirectory.put("ACT_WHL", WhileStmtImpl.class);
    }

    // domain functions
    public TypeReference TypeReference_getBuiltinTypeReference( final String p_name ) throws XtumlException {
        TypeReference type_ref = TypeReferenceImpl.EMPTY_TYPEREFERENCE;
        BuiltInType builtin_type = context().BuiltInType_instances().anyWhere(selected -> StringUtil.equality(((BuiltInType)selected).getName(), p_name));
        if ( !builtin_type.isEmpty() ) {
            type_ref = builtin_type.R407_is_a_Type().R3800_referred_to_by_TypeReference().R3801_is_a_BasicTypeReference().R3801_is_a_TypeReference().any();
            if ( type_ref.isEmpty() ) {
                Type type = builtin_type.R407_is_a_Type();
                type_ref = TypeReferenceImpl.create( context() );
                type_ref.setType_reference_name(type.getName());
                BasicTypeReference basic_type_ref = BasicTypeReferenceImpl.create( context() );
                context().relate_R3800_TypeReference_based_on_Type( type_ref, type );
                context().relate_R3801_BasicTypeReference_is_a_TypeReference( basic_type_ref, type_ref );
            }
        }
        else {
            context().LOG().LogFailure( "Could not find builtin type " + p_name );
        }
        return type_ref;
    }

    public TypeReference TypeReference_getInstance( final DataType p_s_dt,  final DimensionsSet p_s_dims ) throws XtumlException {
        DataType s_dt = p_s_dt;
        DimensionsSet s_dims = p_s_dims;
        Type type = s_dt.R423_Type();
        if ( type.isEmpty() ) {
            int num = 0;
            UnresolvedTypeSet unresolved_types = context().UnresolvedType_instances();
            UnresolvedType ut;
            for ( Iterator _ut_iter = unresolved_types.elements().iterator(); _ut_iter.hasNext(); ) {
                ut = _ut_iter.next();
                if ( ut.getNum() >= num ) {
                    num = ut.getNum() + 1;
                }
            }
            type = TypeImpl.create( context() );
            type.setName("UnresolvedType" + context().STRING().itoa( num ));
            type.setPackage("");
            if ( !s_dt.isEmpty() ) {
                context().relate_R423_Type_DataType( type, s_dt );
            }
            else {
            }
            UnresolvedType unresolved_type = UnresolvedTypeImpl.create( context() );
            context().relate_R407_UnresolvedType_is_a_Type( unresolved_type, type );
            unresolved_type.setNum(num);
        }
        return context().TypeReference_getInstanceFromType( type, s_dims );
    }

    public TypeReference TypeReference_getInstanceFromType( final Type p_type,  final DimensionsSet p_s_dims ) throws XtumlException {
        Type type = p_type;
        DimensionsSet s_dims = p_s_dims;
        String dim_string = "";
        if ( !s_dims.isEmpty() ) {
            int i = 0;
            while ( i < s_dims.size() ) {
                Dimensions s_dim;
                for ( Iterator _s_dim_iter = s_dims.elements().iterator(); _s_dim_iter.hasNext(); ) {
                    s_dim = _s_dim_iter.next();
                    if ( s_dim.getDimensionCount() == i ) {
                        dim_string = dim_string + "[]";
                        break;
                    }
                }
                i = i + 1;
            }
            final String _final0_dim_string = dim_string;
            TypeReference type_ref = type.R3800_referred_to_by_TypeReference().R3801_is_a_ArrayTypeReference().R3801_is_a_TypeReference().anyWhere(selected -> StringUtil.equality(((TypeReference)selected).getType_reference_name(), type.getName() + _final0_dim_string));
            if ( type_ref.isEmpty() ) {
                type_ref = TypeReferenceImpl.create( context() );
                type_ref.setType_reference_name(type.getName() + dim_string);
                ArrayTypeReference array_type_ref = ArrayTypeReferenceImpl.create( context() );
                array_type_ref.setDims(dim_string);
                context().relate_R3800_TypeReference_based_on_Type( type_ref, type );
                context().relate_R3801_ArrayTypeReference_is_a_TypeReference( array_type_ref, type_ref );
            }
        }
        return context().TypeReference_getInstanceWithDimString( type, dim_string );
    }

    public TypeReference TypeReference_getInstanceWithDimString( final Type p_type,  final String p_dims ) throws XtumlException {
        Type type = p_type;
        String dims = p_dims;
        TypeReference type_ref = TypeReferenceImpl.EMPTY_TYPEREFERENCE;
        if ( !type.isEmpty() ) {
            if ( StringUtil.inequality("", dims) ) {
                ArrayTypeReference array_type_ref = type.R3800_referred_to_by_TypeReference().R3801_is_a_ArrayTypeReference().anyWhere(selected -> StringUtil.equality(((ArrayTypeReference)selected).getDims(), dims));
                type_ref = array_type_ref.R3801_is_a_TypeReference();
                if ( array_type_ref.isEmpty() ) {
                    type_ref = TypeReferenceImpl.create( context() );
                    type_ref.setType_reference_name(type.getName() + dims);
                    array_type_ref = ArrayTypeReferenceImpl.create( context() );
                    array_type_ref.setDims(dims);
                    context().relate_R3800_TypeReference_based_on_Type( type_ref, type );
                    context().relate_R3801_ArrayTypeReference_is_a_TypeReference( array_type_ref, type_ref );
                }
            }
            else {
                type_ref = type.R3800_referred_to_by_TypeReference().R3801_is_a_BasicTypeReference().R3801_is_a_TypeReference().any();
                if ( type_ref.isEmpty() ) {
                    type_ref = TypeReferenceImpl.create( context() );
                    type_ref.setType_reference_name(type.getName());
                    BasicTypeReference basic_type_ref = BasicTypeReferenceImpl.create( context() );
                    context().relate_R3800_TypeReference_based_on_Type( type_ref, type );
                    context().relate_R3801_BasicTypeReference_is_a_TypeReference( basic_type_ref, type_ref );
                }
            }
        }
        return type_ref;
    }

    public void Type_resolve( final Type p_t,  final DataType p_s_dt ) throws XtumlException {
        DataType s_dt = p_s_dt;
        Type t = p_t;
        UnresolvedType unresolved_type = s_dt.R423_Type().R407_is_a_UnresolvedType();
        if ( !unresolved_type.isEmpty() ) {
            Type old_type = unresolved_type.R407_is_a_Type();
            TypeReferenceSet old_type_refs = old_type.R3800_referred_to_by_TypeReference();
            TypeReference old_type_ref;
            for ( Iterator _old_type_ref_iter = old_type_refs.elements().iterator(); _old_type_ref_iter.hasNext(); ) {
                old_type_ref = _old_type_ref_iter.next();
                TypeReference self_ref = TypeReferenceImpl.EMPTY_TYPEREFERENCE;
                BasicTypeReference old_basic_ref = old_type_ref.R3801_is_a_BasicTypeReference();
                if ( !old_basic_ref.isEmpty() ) {
                    self_ref = context().TypeReference_getInstanceWithDimString( t, "" );
                }
                else {
                    ArrayTypeReference old_array_ref = old_type_ref.R3801_is_a_ArrayTypeReference();
                    if ( !old_array_ref.isEmpty() ) {
                        self_ref = context().TypeReference_getInstanceWithDimString( t, old_array_ref.getDims() );
                    }
                }
                AttributeSet attrs = old_type_ref.R424_defines_type_for_Attribute();
                Attribute attr;
                for ( Iterator _attr_iter = attrs.elements().iterator(); _attr_iter.hasNext(); ) {
                    attr = _attr_iter.next();
                    context().unrelate_R424_Attribute_is_typed_by_TypeReference( attr, old_type_ref );
                    context().relate_R424_Attribute_is_typed_by_TypeReference( attr, self_ref );
                }
                InvocableObjectSet invocables = old_type_ref.R428_defines_return_type_for_InvocableObject();
                InvocableObject invocable;
                for ( Iterator _invocable_iter = invocables.elements().iterator(); _invocable_iter.hasNext(); ) {
                    invocable = _invocable_iter.next();
                    context().unrelate_R428_InvocableObject_return_value_is_typed_by_TypeReference( invocable, old_type_ref );
                    context().relate_R428_InvocableObject_return_value_is_typed_by_TypeReference( invocable, self_ref );
                }
                FormalParameterSet parms = old_type_ref.R431_defines_type_for_FormalParameter();
                FormalParameter parm;
                for ( Iterator _parm_iter = parms.elements().iterator(); _parm_iter.hasNext(); ) {
                    parm = _parm_iter.next();
                    context().unrelate_R431_FormalParameter_is_typed_by_TypeReference( parm, old_type_ref );
                    context().relate_R431_FormalParameter_is_typed_by_TypeReference( parm, self_ref );
                }
                SelectorSet selectors = old_type_ref.R446_shapes_return_of_Selector();
                Selector selector;
                for ( Iterator _selector_iter = selectors.elements().iterator(); _selector_iter.hasNext(); ) {
                    selector = _selector_iter.next();
                    context().unrelate_R446_Selector_selects_instances_of_TypeReference( selector, old_type_ref );
                    context().relate_R446_Selector_selects_instances_of_TypeReference( selector, self_ref );
                }
                ExpressionSet expressions = old_type_ref.R795_defines_type_of_Expression();
                Expression expression;
                for ( Iterator _expression_iter = expressions.elements().iterator(); _expression_iter.hasNext(); ) {
                    expression = _expression_iter.next();
                    context().unrelate_R795_Expression_expresses_value_of_TypeReference( expression, old_type_ref );
                    context().relate_R795_Expression_expresses_value_of_TypeReference( expression, self_ref );
                }
            }
            context().unrelate_R423_Type_DataType( old_type, s_dt );
            context().relate_R423_Type_DataType( t, s_dt );
            old_type.dispose();
        }
        else if ( !s_dt.isEmpty() ) {
            context().relate_R423_Type_DataType( t, s_dt );
        }
        else {
        }
    }

    public Mult act_lnkGetMult( final ChainLink p_act_lnk ) throws XtumlException {
        ChainLink act_lnk = p_act_lnk;
        Mult mult = Mult.ONE;
        if ( Multiplicity.MANY.equality(act_lnk.getMult()) ) {
            mult = Mult.MANY;
        }
        else if ( Multiplicity.UNKNOWN.equality(act_lnk.getMult()) ) {
            SimpleAssociation r_simp = act_lnk.R681_specifies_traversal_of_Association().R206_is_a_SimpleAssociation();
            LinkedAssociation r_assoc = act_lnk.R681_specifies_traversal_of_Association().R206_is_a_LinkedAssociation();
            if ( !r_simp.isEmpty() || !r_assoc.isEmpty() ) {
                ModelClass base_o_obj = act_lnk.R604_succeeds_ChainLink().R678_specifies_instances_of_ModelClass();
                if ( base_o_obj.isEmpty() ) {
                    base_o_obj = act_lnk.R637_ACT_SEL().R613_starting_point_Value().R801_is_a_InstanceReference().R808_refers_to_V_VAR().R814_is_a_InstanceHandle().R818_refers_to_ModelClass();
                    if ( base_o_obj.isEmpty() ) {
                        base_o_obj = act_lnk.R637_ACT_SEL().R613_starting_point_Value().R801_is_a_InstanceSetReference().R809_refers_to_V_VAR().R814_is_a_V_INS().R819_refers_to_ModelClass();
                    }
                }
                ModelClass target_o_obj = act_lnk.R678_specifies_instances_of_ModelClass();
                boolean not_reflexive = target_o_obj.getObj_ID().inequality(base_o_obj.getObj_ID());
                String phrase = context().C_UTIL().stripTics( act_lnk.getRel_Phrase() );
                if ( !r_simp.isEmpty() ) {
                    ClassAsSimpleFormalizer r_form = r_simp.R208_relates_ClassAsSimpleFormalizer();
                    if ( ( ( !r_form.isEmpty() && r_form.getMult() == 1 ) && r_form.getObj_ID().equality(target_o_obj.getObj_ID()) ) && ( not_reflexive || StringUtil.equality(phrase, r_form.getTxt_Phrs()) ) ) {
                        mult = Mult.MANY;
                    }
                    else {
                        ClassAsSimpleParticipant r_part = r_simp.R207_relates_ClassAsSimpleParticipant().anyWhere(selected -> ( ((ClassAsSimpleParticipant)selected).getMult() == 1 && ((ClassAsSimpleParticipant)selected).getObj_ID().equality(target_o_obj.getObj_ID()) ) && ( not_reflexive || StringUtil.equality(phrase, ((ClassAsSimpleParticipant)selected).getTxt_Phrs()) ));
                        if ( !r_part.isEmpty() ) {
                            mult = Mult.MANY;
                        }
                    }
                }
                else {
                    ClassAsAssociatedOneSide r_aone = r_assoc.R209_relates_ClassAsAssociatedOneSide();
                    ClassAsAssociatedOtherSide r_aoth = r_assoc.R210_relates_ClassAsAssociatedOtherSide();
                    ClassAsLink r_assr = r_assoc.R211_uses_a_formalizer_ClassAsLink();
                    if ( ( ( ( ( r_aone.getMult() == 1 && r_aone.getObj_ID().equality(target_o_obj.getObj_ID()) ) && ( not_reflexive || StringUtil.equality(phrase, r_aone.getTxt_Phrs()) ) || ( r_aoth.getMult() == 1 && r_aoth.getObj_ID().equality(target_o_obj.getObj_ID()) ) && ( not_reflexive || StringUtil.equality(phrase, r_aoth.getTxt_Phrs()) ) ) || r_assr.getMult() == 1 && r_assr.getObj_ID().equality(target_o_obj.getObj_ID()) ) || ( ( r_aoth.getMult() == 1 && r_assr.getObj_ID().equality(target_o_obj.getObj_ID()) ) && r_aone.getObj_ID().equality(base_o_obj.getObj_ID()) ) && ( not_reflexive || StringUtil.equality(phrase, r_aoth.getTxt_Phrs()) ) ) || ( ( r_aone.getMult() == 1 && r_assr.getObj_ID().equality(target_o_obj.getObj_ID()) ) && r_aoth.getObj_ID().equality(base_o_obj.getObj_ID()) ) && ( not_reflexive || StringUtil.equality(phrase, r_aone.getTxt_Phrs()) ) ) {
                        mult = Mult.MANY;
                    }
                }
            }
        }
        return mult;
    }

    public void addFileToImports( final File p_file,  final File p_file_to_import,  final ImportType p_type ) throws XtumlException {
        File file_to_import = p_file_to_import;
        String import_string = ( context().pathToPackage( file_to_import.getPath() ) + "." ) + file_to_import.getName();
        context().addStringToImports( p_file, import_string, p_type );
    }

    public void addStringToImports( final File p_file,  final String p_s,  final ImportType p_type ) throws XtumlException {
        File file = p_file;
        if ( StringUtil.inequality("", p_s) ) {
            TypeImportReference import_ref = file.R402_imports_type_via_TypeImportReference().anyWhere(selected -> StringUtil.equality(((TypeImportReference)selected).getFully_qualified_name(), p_s) && ((TypeImportReference)selected).getType().equality(p_type));
            if ( import_ref.isEmpty() ) {
                TypeImport type_import = new TypeImportImpl.CLASS(context()).get_import( p_s );
                import_ref = TypeImportReferenceImpl.create( context() );
                import_ref.setType(p_type);
                context().relate_R402_TypeImportReference_imports_type_via_TypeImport( import_ref, type_import );
                context().relate_R402_TypeImportReference_imports_type_into_context_of_File( import_ref, file );
            }
        }
    }

    public void addTypeToImports( final File p_file,  final Type p_type_to_import,  final ImportType p_type ) throws XtumlException {
        Type type_to_import = p_type_to_import;
        if ( !type_to_import.primitive() && StringUtil.inequality("", type_to_import.getPackage()) ) {
            context().addStringToImports( p_file, ( type_to_import.getPackage() + "." ) + type_to_import.getName(), p_type );
        }
    }

    public String c_cToPath( final C_C p_c_c ) throws XtumlException {
        C_C c_c = p_c_c;
        String path = context().formatPath( context().T().sub( "l", context().T().sub( "r", c_c.getName() ) ) );
        EP_PKG containing_ep_pkg = c_c.R8001_is_a_PackageableElement().R8000_contained_by_EP_PKG();
        if ( !containing_ep_pkg.isEmpty() ) {
            path = ( context().ep_pkgToPath( containing_ep_pkg ) + "/" ) + path;
        }
        else {
            C_C containing_c_c = c_c.R8001_is_a_PackageableElement().R8003_contained_in_C_C();
            if ( !containing_c_c.isEmpty() ) {
                path = ( context().c_cToPath( containing_c_c ) + "/" ) + path;
            }
        }
        return path;
    }

    public String camelCaseName( final String p_name,  final boolean p_start_lower ) throws XtumlException {
        String name = p_name;
        int underscore_index = context().STRING().indexof( name, "_" );
        while ( -1 != underscore_index ) {
            String left = context().STRING().substr( name, 0, underscore_index );
            String right = context().STRING().substr( name, underscore_index + 1, -1 );
            name = ( left + "  " ) + right;
            underscore_index = context().STRING().indexof( name, "_" );
        }
        name = context().T().sub( "c", name );
        int dblspc_index = context().STRING().indexof( name, "  " );
        while ( -1 != dblspc_index ) {
            String left = context().STRING().substr( name, 0, dblspc_index );
            String right = context().STRING().substr( name, dblspc_index + 1, -1 );
            name = ( left + "_" ) + right;
            dblspc_index = context().STRING().indexof( name, "  " );
        }
        if ( p_start_lower ) {
            String left = context().STRING().substr( name, 0, 1 );
            String right = context().STRING().substr( name, 1, -1 );
            name = context().T().sub( "l", left ) + right;
        }
        return context().T().sub( "r", name );
    }

    public void configure_features() throws XtumlException {
        MarkableElementType universal_markable = new MarkableElementTypeImpl.CLASS(context()).populate( "*" );
        MarkableElementType assoc_markable = new MarkableElementTypeImpl.CLASS(context()).populate( "Association" );
        MarkableElementType comp_markable = new MarkableElementTypeImpl.CLASS(context()).populate( "Component" );
        MarkableElementType class_markable = new MarkableElementTypeImpl.CLASS(context()).populate( "Model Class" );
        MarkableElementType port_markable = new MarkableElementTypeImpl.CLASS(context()).populate( "Port" );
        MarkableElementType pkg_markable = new MarkableElementTypeImpl.CLASS(context()).populate( "Package" );
        Feature app_name = new FeatureImpl.CLASS(context()).populate( "ApplicationName" );
        context().relate_R2822_MarkableElementType_makes_available_Feature( universal_markable, app_name );
        Feature app_package = new FeatureImpl.CLASS(context()).populate( "ApplicationPackage" );
        context().relate_R2822_MarkableElementType_makes_available_Feature( universal_markable, app_package );
        Feature async_app = new FeatureImpl.CLASS(context()).populate( "AsyncApplication" );
        context().relate_R2822_MarkableElementType_makes_available_Feature( universal_markable, async_app );
        Feature root_package = new FeatureImpl.CLASS(context()).populate( "RootPackage" );
        context().relate_R2822_MarkableElementType_makes_available_Feature( universal_markable, root_package );
        Feature project_root = new FeatureImpl.CLASS(context()).populate( "ProjectRoot" );
        context().relate_R2822_MarkableElementType_makes_available_Feature( universal_markable, project_root );
        Feature use_version = new FeatureImpl.CLASS(context()).populate( "UseVersion" );
        context().relate_R2822_MarkableElementType_makes_available_Feature( universal_markable, use_version );
        Feature sort_comparator = new FeatureImpl.CLASS(context()).populate( "SortComparator" );
        context().relate_R2822_MarkableElementType_makes_available_Feature( universal_markable, sort_comparator );
        Feature sim_time = new FeatureImpl.CLASS(context()).populate( "EnableSimulatedTime" );
        context().relate_R2822_MarkableElementType_makes_available_Feature( comp_markable, sim_time );
        Feature init_function = new FeatureImpl.CLASS(context()).populate( "InitFunction" );
        context().relate_R2822_MarkableElementType_makes_available_Feature( comp_markable, init_function );
        Feature inst_loading = new FeatureImpl.CLASS(context()).populate( "InstanceLoading" );
        context().relate_R2822_MarkableElementType_makes_available_Feature( comp_markable, inst_loading );
        Feature version = new FeatureImpl.CLASS(context()).populate( "Version" );
        context().relate_R2822_MarkableElementType_makes_available_Feature( comp_markable, version );
        Feature exclude = new FeatureImpl.CLASS(context()).populate( "Exclude" );
        context().relate_R2822_MarkableElementType_makes_available_Feature( class_markable, exclude );
        context().relate_R2822_MarkableElementType_makes_available_Feature( assoc_markable, exclude );
        Feature use_key_letters = new FeatureImpl.CLASS(context()).populate( "UseKeyLettersForName" );
        context().relate_R2822_MarkableElementType_makes_available_Feature( class_markable, use_key_letters );
        Feature base_class = new FeatureImpl.CLASS(context()).populate( "BaseClass" );
        context().relate_R2822_MarkableElementType_makes_available_Feature( port_markable, base_class );
        Feature impl_class = new FeatureImpl.CLASS(context()).populate( "ImplementationClass" );
        context().relate_R2822_MarkableElementType_makes_available_Feature( port_markable, impl_class );
        Feature remap_package = new FeatureImpl.CLASS(context()).populate( "RemapPackage" );
        context().relate_R2822_MarkableElementType_makes_available_Feature( pkg_markable, remap_package );
    }

    public String containerMarkingPath( final PackageableElement p_pe ) throws XtumlException {
        PackageableElement pe = p_pe;
        String path = "";
        EP_PKG ep_pkg = pe.R8000_contained_by_EP_PKG();
        if ( !ep_pkg.isEmpty() ) {
            path = ep_pkg.getName();
        }
        else {
            C_C c_c = pe.R8003_contained_in_C_C();
            if ( !c_c.isEmpty() ) {
                path = c_c.getName();
            }
        }
        PackageableElement containing_pe = pe.R8000_contained_by_EP_PKG().R8001_is_a_PackageableElement();
        if ( containing_pe.isEmpty() ) {
            containing_pe = pe.R8003_contained_in_C_C().R8001_is_a_PackageableElement();
        }
        if ( !containing_pe.isEmpty() ) {
            String container_path = context().containerMarkingPath( containing_pe );
            if ( StringUtil.inequality("", container_path) ) {
                return ( container_path + "::" ) + path;
            }
            else {
                return path;
            }
        }
        else {
            return path;
        }
    }

    public String ep_pkgToPath( final EP_PKG p_ep_pkg ) throws XtumlException {
        EP_PKG ep_pkg = p_ep_pkg;
        String path = "";
        PackageableElement pe = ep_pkg.R8001_is_a_PackageableElement();
        Mark remap_package_mark = context().Mark_instances().anyWhere(selected -> ( StringUtil.equality(((Mark)selected).getMarkable_name(), "Package") && StringUtil.equality(((Mark)selected).getPath(), ( context().containerMarkingPath( pe ) + "::" ) + ep_pkg.getName()) ) && StringUtil.equality(((Mark)selected).getFeature_name(), "RemapPackage"));
        if ( !remap_package_mark.isEmpty() ) {
            path = context().formatPath( remap_package_mark.getValue() );
        }
        else {
            path = context().formatPath( context().T().sub( "l", context().T().sub( "r", ep_pkg.getName() ) ) );
            EP_PKG containing_ep_pkg = ep_pkg.R8001_is_a_PackageableElement().R8000_contained_by_EP_PKG();
            if ( !containing_ep_pkg.isEmpty() ) {
                path = ( context().ep_pkgToPath( containing_ep_pkg ) + "/" ) + path;
            }
            else {
                C_C containing_c_c = ep_pkg.R8001_is_a_PackageableElement().R8003_contained_in_C_C();
                if ( !containing_c_c.isEmpty() ) {
                    path = ( context().c_cToPath( containing_c_c ) + "/" ) + path;
                }
            }
        }
        return path;
    }

    public String formatPath( final String p_path ) throws XtumlException {
        String s = p_path;
        int dot_index = context().STRING().indexof( s, "." );
        while ( -1 != dot_index ) {
            String left = context().STRING().substr( s, 0, dot_index );
            String right = context().STRING().substr( s, dot_index + 1, -1 );
            s = ( left + "/" ) + right;
            dot_index = context().STRING().indexof( s, "." );
        }
        return s;
    }

    public ComponentDefinition getCompDefForStatement( final Statement p_smt ) throws XtumlException {
        Statement smt = p_smt;
        InvocableObject invocable = smt.R450_is_contained_by_CodeBlock().R4000_is_invoked_in_InvocableObject();
        ComponentDefinition comp_def = invocable.R427_is_a_Function().R405_can_execute_synchronously_within_ComponentDefinition();
        if ( comp_def.isEmpty() ) {
            comp_def = invocable.R427_is_a_PortMessage().R420_is_implemented_within_Port().R417_passes_messages_for_ComponentDefinition();
            if ( comp_def.isEmpty() ) {
                comp_def = invocable.R427_is_a_Operation().R416_provided_by_ModelInst().R408_forms_instance_population_of_ComponentDefinition();
                if ( comp_def.isEmpty() ) {
                    comp_def = invocable.R427_is_a_AttributeDerivation().R441_calculates_value_for_AttributeAccessor().R4510_gets_and_sets_Attribute().R410_abstracts_data_for_ModelInst().R408_forms_instance_population_of_ComponentDefinition();
                    if ( comp_def.isEmpty() ) {
                        comp_def = invocable.R427_is_a_State().R4751_StateMachine().R4750_models_behavior_of_ModelInst().R408_forms_instance_population_of_ComponentDefinition();
                        if ( comp_def.isEmpty() ) {
                            comp_def = invocable.R427_is_a_StateTransition().R4757_transitions_to_State().R4751_StateMachine().R4750_models_behavior_of_ModelInst().R408_forms_instance_population_of_ComponentDefinition();
                        }
                    }
                }
            }
        }
        return comp_def;
    }

    public File getFileForInvocable( final InvocableObject p_invocable ) throws XtumlException {
        InvocableObject invocable = p_invocable;
        File file = invocable.R427_is_a_Function().R405_can_execute_synchronously_within_ComponentDefinition().R401_is_a_File();
        if ( file.isEmpty() ) {
            file = invocable.R427_is_a_PortMessage().R420_is_implemented_within_Port().R401_is_a_File();
            if ( file.isEmpty() ) {
                file = invocable.R427_is_a_Operation().R416_provided_by_ModelInst().R401_is_a_File();
                if ( file.isEmpty() ) {
                    file = invocable.R427_is_a_AttributeDerivation().R441_calculates_value_for_AttributeAccessor().R4510_gets_and_sets_Attribute().R410_abstracts_data_for_ModelInst().R401_is_a_File();
                    if ( file.isEmpty() ) {
                        file = invocable.R427_is_a_UtilityFunction().R4559_provided_by_Utility().R401_is_a_File();
                        if ( file.isEmpty() ) {
                            file = invocable.R427_is_a_State().R4751_StateMachine().R401_is_a_File();
                            if ( file.isEmpty() ) {
                                file = invocable.R427_is_a_StateTransition().R4757_transitions_to_State().R4751_StateMachine().R401_is_a_File();
                            }
                        }
                    }
                }
            }
        }
        return file;
    }

    public File getFileForStatement( final Statement p_smt ) throws XtumlException {
        Statement smt = p_smt;
        InvocableObject invocable = smt.R450_is_contained_by_CodeBlock().R4000_is_invoked_in_InvocableObject();
        return context().getFileForInvocable( invocable );
    }

    public String getIndent( final int p_tab_depth ) throws XtumlException {
        Mark tab_width_mark = context().Mark_instances().anyWhere(selected -> ( StringUtil.equality(((Mark)selected).getMarkable_name(), "*") && StringUtil.equality(((Mark)selected).getPath(), "*") ) && StringUtil.equality(((Mark)selected).getFeature_name(), "TabWidth"));
        String indent = "";
        int default_tab_width = 4;
        int tab_width = 0;
        if ( !tab_width_mark.isEmpty() ) {
            tab_width = context().STRING().atoi( tab_width_mark.getValue() );
        }
        else {
            tab_width = default_tab_width;
        }
        int i = 0;
        while ( i < p_tab_depth ) {
            int j = 0;
            while ( j < tab_width ) {
                indent = indent + " ";
                j = j + 1;
            }
            i = i + 1;
        }
        return indent;
    }

    public DataType getInstRefTypeForClass( final DataType p_s_dt,  final ModelClass p_o_obj ) throws XtumlException {
        DataType s_dt = p_s_dt;
        ModelClass o_obj = p_o_obj;
        if ( !s_dt.isEmpty() && !o_obj.isEmpty() ) {
            if ( StringUtil.equality("inst_ref", s_dt.getName()) ) {
                InstanceReferenceDataType s_irdt = o_obj.R123_is_available_as_a_reference_by_InstanceReferenceDataType().anyWhere(selected -> !((InstanceReferenceDataType)selected).getIsSet());
                s_dt = s_irdt.R17_is_a_DataType();
            }
            else if ( StringUtil.equality("inst_ref_set", s_dt.getName()) ) {
                InstanceReferenceDataType s_irdt = o_obj.R123_is_available_as_a_reference_by_InstanceReferenceDataType().anyWhere(selected -> ((InstanceReferenceDataType)selected).getIsSet());
                s_dt = s_irdt.R17_is_a_DataType();
            }
        }
        return s_dt;
    }

    public String getNextBlockNumber( final CodeBlock p_upper_block ) throws XtumlException {
        CodeBlock upper_block = p_upper_block;
        CodeBlockSet then_blocks = upper_block.R450_is_scope_for_Statement().R451_is_a_IfSmt().R453_has_then_CodeBlock();
        CodeBlockSet else_blocks = upper_block.R450_is_scope_for_Statement().R451_is_a_IfSmt().R454_has_else_CodeBlock();
        CodeBlockSet while_blocks = upper_block.R450_is_scope_for_Statement().R451_is_a_WhileSmt().R456_has_control_CodeBlock();
        CodeBlockSet for_blocks = upper_block.R450_is_scope_for_Statement().R451_is_a_ForSmt().R455_has_control_CodeBlock();
        CodeBlockSet child_blocks = ((CodeBlockSet)( ((CodeBlockSet)( ((CodeBlockSet)then_blocks.union(else_blocks)) ).union(while_blocks)) ).union(for_blocks));
        String block_number = "0";
        int int_block_number = 0;
        if ( !child_blocks.isEmpty() ) {
            CodeBlock child_block;
            for ( Iterator _child_block_iter = child_blocks.elements().iterator(); _child_block_iter.hasNext(); ) {
                child_block = _child_block_iter.next();
                int child_block_number = context().STRING().atoi( context().STRING().substr( child_block.getBlock_number(), context().STRING().strlen( upper_block.getBlock_number() ) + 1, -1 ) );
                if ( child_block_number > int_block_number ) {
                    int_block_number = child_block_number;
                }
            }
            block_number = ( upper_block.getBlock_number() + "." ) + context().STRING().itoa( int_block_number + 1 );
        }
        else {
            block_number = upper_block.getBlock_number() + ".1";
        }
        return block_number;
    }

    public String getOalStatement( final String p_body,  final int p_line_num ) throws XtumlException {
        String body = p_body;
        int line_num = p_line_num;
        int i = 0;
        String line = "";
        while ( i < line_num ) {
            int end_of_line = context().STRING().indexof( body, "\n" );
            if ( -1 != end_of_line ) {
                line = context().STRING().substr( body, 0, end_of_line );
                body = context().STRING().substr( body, end_of_line + 1, -1 );
            }
            else {
                line = body;
                break;
            }
            i = i + 1;
        }
        return context().STRING().trim( line );
    }

    public DataType getParType( final V_PAR p_v_par ) throws XtumlException {
        V_PAR v_par = p_v_par;
        OperationParameter o_tparm = v_par.R627_OperationInvocation().R673_is_an_invocation_of_O_TFR().R117_contains_OperationParameter().anyWhere(selected -> StringUtil.equality(((OperationParameter)selected).getName(), v_par.getName()));
        if ( o_tparm.isEmpty() ) {
            o_tparm = v_par.R811_OperationValue().R829_O_TFR().R117_contains_OperationParameter().anyWhere(selected -> StringUtil.equality(((OperationParameter)selected).getName(), v_par.getName()));
        }
        DataType par_s_dt = o_tparm.R118_is_defined_by_DataType();
        if ( par_s_dt.isEmpty() ) {
            BridgeParameter s_bparm = v_par.R628_BridgeInvocation().R674_is_an_invocation_of_Bridge().R21_is_part_of_BridgeParameter().anyWhere(selected -> StringUtil.equality(((BridgeParameter)selected).getName(), v_par.getName()));
            if ( s_bparm.isEmpty() ) {
                s_bparm = v_par.R810_BridgeValue().R828_Bridge().R21_is_part_of_BridgeParameter().anyWhere(selected -> StringUtil.equality(((BridgeParameter)selected).getName(), v_par.getName()));
            }
            par_s_dt = s_bparm.R22_is_defined_by_DataType();
            if ( par_s_dt.isEmpty() ) {
                PropertyParameter c_pp = v_par.R662_taken_by_SignalInvocation().R660_is_invocation_of_RequiredSignal().R4502_is_a_RequiredExecutableProperty().R4500_implements_ExecutableProperty().R4006_is_parameter_to_PropertyParameter().anyWhere(selected -> StringUtil.equality(((PropertyParameter)selected).getName(), v_par.getName()));
                if ( c_pp.isEmpty() ) {
                    c_pp = v_par.R662_taken_by_SignalInvocation().R663_is_invocation_of_ProvidedSignal().R4503_is_a_ProvidedExecutableProperty().R4501_implements_ExecutableProperty().R4006_is_parameter_to_PropertyParameter().anyWhere(selected -> StringUtil.equality(((PropertyParameter)selected).getName(), v_par.getName()));
                    if ( c_pp.isEmpty() ) {
                        c_pp = v_par.R679_taken_by_InterfaceOperationInvocation().R657_is_invocation_of_RequiredOperation().R4502_is_a_RequiredExecutableProperty().R4500_implements_ExecutableProperty().R4006_is_parameter_to_PropertyParameter().anyWhere(selected -> StringUtil.equality(((PropertyParameter)selected).getName(), v_par.getName()));
                        if ( c_pp.isEmpty() ) {
                            c_pp = v_par.R679_taken_by_InterfaceOperationInvocation().R680_is_invocation_of_ProvidedOperation().R4503_is_a_ProvidedExecutableProperty().R4501_implements_ExecutableProperty().R4006_is_parameter_to_PropertyParameter().anyWhere(selected -> StringUtil.equality(((PropertyParameter)selected).getName(), v_par.getName()));
                            if ( c_pp.isEmpty() ) {
                                c_pp = v_par.R842_MessageValue().R845_RequiredExecutableProperty().R4500_implements_ExecutableProperty().R4006_is_parameter_to_PropertyParameter().anyWhere(selected -> StringUtil.equality(((PropertyParameter)selected).getName(), v_par.getName()));
                                if ( c_pp.isEmpty() ) {
                                    c_pp = v_par.R842_MessageValue().R841_ProvidedExecutableProperty().R4501_implements_ExecutableProperty().R4006_is_parameter_to_PropertyParameter().anyWhere(selected -> StringUtil.equality(((PropertyParameter)selected).getName(), v_par.getName()));
                                }
                            }
                        }
                    }
                }
                par_s_dt = c_pp.R4007_is_typed_by_DataType();
                if ( par_s_dt.isEmpty() ) {
                    FunctionParameter s_sparm = v_par.R669_FunctionInvocation().R675_is_an_invocation_of_S_SYNC().R24_defines_FunctionParameter().anyWhere(selected -> StringUtil.equality(((FunctionParameter)selected).getName(), v_par.getName()));
                    if ( s_sparm.isEmpty() ) {
                        s_sparm = v_par.R817_FunctionValue().R827_S_SYNC().R24_defines_FunctionParameter().anyWhere(selected -> StringUtil.equality(((FunctionParameter)selected).getName(), v_par.getName()));
                    }
                    par_s_dt = s_sparm.R26_is_typed_by__DataType();
                    if ( par_s_dt.isEmpty() ) {
                        StateMachineEventDataItem sm_evtdi = v_par.R700_EventSpecificationStatement().R701_is_a_CreateEventStatement().R702_is_a_CreateSMEventStatement().R706_creates_StateMachineEvent().R532_carries_StateMachineEventDataItem().anyWhere(selected -> StringUtil.equality(((StateMachineEventDataItem)selected).getName(), v_par.getName()));
                        if ( sm_evtdi.isEmpty() ) {
                            sm_evtdi = v_par.R700_EventSpecificationStatement().R701_is_a_GenerateEventStatement().R703_is_a_GenerateSMEventStatement().R707_generates_StateMachineEvent().R532_carries_StateMachineEventDataItem().anyWhere(selected -> StringUtil.equality(((StateMachineEventDataItem)selected).getName(), v_par.getName()));
                        }
                        par_s_dt = sm_evtdi.R524_is_defined_by_DataType();
                    }
                }
            }
        }
        return par_s_dt;
    }

    public DataType getReturnType( final Body p_act_act ) throws XtumlException {
        Body act_act = p_act_act;
        DataType s_dt = act_act.R698_is_a_FunctionBody().R695_specifies_processing_for_S_SYNC().R25_has_return_type_of_DataType();
        if ( s_dt.isEmpty() ) {
            s_dt = act_act.R698_is_a_OperationBody().R696_specifies_processing_for_O_TFR().R116_return_code_is_defined_by_DataType();
            if ( s_dt.isEmpty() ) {
                s_dt = act_act.R698_is_a_BridgeBody().R697_specifies_processing_for_Bridge().R20_return_value_defined_by_DataType();
                if ( s_dt.isEmpty() ) {
                    s_dt = act_act.R698_is_a_DerivedAttributeBody().R693_specifies_processing_for_DerivedBaseAttribute().R107_is_a_BaseAttribute().R106_is_a_O_ATTR().R114_defines_type_of_DataType();
                }
            }
        }
        return s_dt;
    }

    public DataType getUDTCoreType( final UserDataType p_s_udt ) throws XtumlException {
        UserDataType s_udt = p_s_udt;
        DataType s_dt = DataTypeImpl.EMPTY_DATATYPE;
        if ( !s_udt.isEmpty() ) {
            s_dt = s_udt.R18_are_defined_within_DataType();
            UserDataType base_udt = s_dt.R17_is_a_UserDataType();
            if ( !base_udt.isEmpty() ) {
                return context().getUDTCoreType( base_udt );
            }
        }
        return s_dt;
    }

    public void init() throws XtumlException {
        context().CMD().register_value( "cwd", "root_dir", "base working directory", ".", false );
        context().CMD().register_value( "i", "input_file", "input file", "", false );
        context().CMD().register_value( "o", "output_file", "output file", "", false );
        context().CMD().register_value( "gendir", "gen_dir", "generated output directory", ".", false );
        context().CMD().register_value( "use-version", "use_version", "version identifier for generated components", "", false );
        context().CMD().read_command_line();
        context().configure_features();
        String project_root = context().CMD().get_value( "cwd" );
        new MarkImpl.CLASS(context()).populate( "*", "ProjectRoot", "*", project_root );
        new MarkImpl.CLASS(context()).populate( "*", "UseVersion", "*", context().CMD().get_value( "use-version" ) );
        context().T().set_output_directory( ( project_root + "/" ) + context().CMD().get_value( "gendir" ) );
        String input_file = context().CMD().get_value( "i" );
        if ( StringUtil.inequality("", input_file) ) {
            context().SQL().load_file( ( project_root + "/" ) + input_file );
            context().load_marks();
            context().translate();
            String output_file = context().CMD().get_value( "o" );
            if ( StringUtil.inequality("", output_file) ) {
                context().SQL().serialize_file( ( project_root + "/" ) + output_file );
            }
        }
        else {
            context().LOG().LogInfo( "No input file." );
        }
        getRunContext().execute( new HaltExecutionTask() );
    }

    public Statement lastStatementInBlock( final CodeBlock p_block ) throws XtumlException {
        CodeBlock block = p_block;
        Statement last_smt = StatementImpl.EMPTY_STATEMENT;
        Statement smt = block.R450_is_scope_for_Statement().any();
        while ( !smt.isEmpty() ) {
            last_smt = smt;
            smt = smt.R477_executes_before_Statement();
        }
        return last_smt;
    }

    public void linkParameter( final InvocableObject p_invocable,  final FormalParameter p_parameter ) throws XtumlException {
        InvocableObject invocable = p_invocable;
        FormalParameter parm = p_parameter;
        FormalParameter last_parm = invocable.R429_declares_signature_with_FormalParameter().any();
        FormalParameter next_parm = last_parm.R404_precedes_FormalParameter();
        while ( !next_parm.isEmpty() ) {
            last_parm = next_parm;
            next_parm = last_parm.R404_precedes_FormalParameter();
        }
        if ( !last_parm.isEmpty() ) {
            context().relate_R404_FormalParameter_precedes_FormalParameter( last_parm, parm );
        }
        context().relate_R429_FormalParameter_shapes_data_for_InvocableObject( parm, invocable );
    }

    public void load_marks() throws XtumlException {
        Mark project_root = context().Mark_instances().anyWhere(selected -> ( StringUtil.equality(((Mark)selected).getMarkable_name(), "*") && StringUtil.equality(((Mark)selected).getPath(), "*") ) && StringUtil.equality(((Mark)selected).getFeature_name(), "ProjectRoot"));
        if ( StringUtil.inequality("", project_root.getValue()) ) {
            int i = 0;
            String[] values = new String[7+1];
            values[7] = "";
            while ( i < 8 ) {
                values[i] = "                                                                                                                                                                                          ";
                i = i + 1;
            }
            context().LOG().LogInfo( "Loading marking data." );
            new MarkImpl.CLASS(context()).load( project_root.getValue() + "/gen/application.mark", values );
        }
        else {
            context().LOG().LogInfo( "No project root specified." );
        }
    }

    public int numReferences( final V_VAR p_v_var ) throws XtumlException {
        V_VAR v_var = p_v_var;
        int num_references = 0;
        ForStmtSet refs1 = v_var.R614_is_loop_variable_ForStmt();
        num_references = num_references + refs1.size();
        RelateSet refs2 = v_var.R615_is_one_variable_Relate();
        num_references = num_references + refs2.size();
        RelateSet refs3 = v_var.R616_is_other_variable_Relate();
        num_references = num_references + refs3.size();
        RelateUsingSet refs4 = v_var.R617_is_one_variable_RelateUsing();
        num_references = num_references + refs4.size();
        UnrelateSet refs5 = v_var.R620_is_one_variable_Unrelate();
        num_references = num_references + refs5.size();
        UnrelateSet refs6 = v_var.R621_is_other_variable_Unrelate();
        num_references = num_references + refs6.size();
        UnrelateUsingSet refs7 = v_var.R622_is_one_variable_UnrelateUsing();
        num_references = num_references + refs7.size();
        UnrelateUsingSet refs8 = v_var.R623_is_other_variable_UnrelateUsing();
        num_references = num_references + refs8.size();
        UnrelateUsingSet refs9 = v_var.R624_is_using_variable_UnrelateUsing();
        num_references = num_references + refs9.size();
        CreateSet refs10 = v_var.R633_Create();
        num_references = num_references + refs10.size();
        DeleteSet refs11 = v_var.R634_Delete();
        num_references = num_references + refs11.size();
        ACT_SELSet refs12 = v_var.R638_ACT_SEL();
        num_references = num_references + refs12.size();
        ACT_FIOSet refs13 = v_var.R639_ACT_FIO();
        num_references = num_references + refs13.size();
        ForStmtSet refs14 = v_var.R652_is_set_variable_ForStmt();
        num_references = num_references + refs14.size();
        SelectFromInstancesWhereSet refs15 = v_var.R665_SelectFromInstancesWhere();
        num_references = num_references + refs15.size();
        OperationInvocationSet refs16 = v_var.R667_is_target_of_OperationInvocation();
        num_references = num_references + refs16.size();
        CreateEventStatementSet refs17 = v_var.R710_CreateEventStatement();
        num_references = num_references + refs17.size();
        CreateEventToInstanceSet refs18 = v_var.R711_CreateEventToInstance();
        num_references = num_references + refs18.size();
        E_GENSet refs19 = v_var.R712_E_GEN();
        num_references = num_references + refs19.size();
        TransientValueReferenceSet refs20 = v_var.R805_TransientValueReference();
        num_references = num_references + refs20.size();
        InstanceReferenceSet refs21 = v_var.R808_InstanceReference();
        num_references = num_references + refs21.size();
        InstanceSetReferenceSet refs22 = v_var.R809_InstanceSetReference();
        num_references = num_references + refs22.size();
        RelateUsingSet refs23 = v_var.R618_is_other_variable_RelateUsing();
        num_references = num_references + refs23.size();
        RelateUsingSet refs24 = v_var.R619_is_using_variable_RelateUsing();
        num_references = num_references + refs24.size();
        return num_references;
    }

    public String oirGetPhrase( final UniqueId p_r_oir_id ) throws XtumlException {
        ClassInAssociation r_oir = context().ClassInAssociation_instances().anyWhere(selected -> ((ClassInAssociation)selected).getOIR_ID().equality(p_r_oir_id));
        String phrase = "";
        ClassAsSimpleParticipant r_part = r_oir.R203_is_a_ReferredToClassInAssoc().R204_is_a_ClassAsSimpleParticipant();
        if ( !r_part.isEmpty() ) {
            phrase = r_part.getTxt_Phrs();
        }
        else {
            ClassAsSimpleFormalizer r_form = r_oir.R203_is_a_ReferringClassInAssoc().R205_is_a_ClassAsSimpleFormalizer();
            if ( !r_form.isEmpty() ) {
                phrase = r_form.getTxt_Phrs();
            }
            else {
                ClassAsAssociatedOneSide r_aone = r_oir.R203_is_a_ReferredToClassInAssoc().R204_is_a_ClassAsAssociatedOneSide();
                if ( !r_aone.isEmpty() ) {
                    phrase = r_aone.getTxt_Phrs();
                }
                else {
                    ClassAsAssociatedOtherSide r_aoth = r_oir.R203_is_a_ReferredToClassInAssoc().R204_is_a_ClassAsAssociatedOtherSide();
                    if ( !r_aoth.isEmpty() ) {
                        phrase = r_aoth.getTxt_Phrs();
                    }
                    else {
                        ClassAsSubtype r_sub = r_oir.R203_is_a_ReferringClassInAssoc().R205_is_a_ClassAsSubtype();
                        ClassAsSupertype r_super = r_oir.R203_is_a_ReferredToClassInAssoc().R204_is_a_ClassAsSupertype();
                        if ( !r_sub.isEmpty() || !r_super.isEmpty() ) {
                            phrase = "is_a";
                        }
                    }
                }
            }
        }
        return phrase;
    }

    public String pathToPackage( final String p_path ) throws XtumlException {
        String s = p_path;
        int slash_index = context().STRING().indexof( s, "/" );
        while ( -1 != slash_index ) {
            String left = context().STRING().substr( s, 0, slash_index );
            String right = context().STRING().substr( s, slash_index + 1, -1 );
            s = ( left + "." ) + right;
            slash_index = context().STRING().indexof( s, "/" );
        }
        return s;
    }

    public int precedenceCheck( final Value p_val1,  final Value p_val2 ) throws XtumlException {
        Value val1 = p_val1;
        Value val2 = p_val2;
        int prec1 = 7;
        int prec2 = 7;
        int i = 0;
        while ( i < 2 ) {
            int prec = 7;
            Value val = val1;
            if ( i != 0 ) {
                val = val2;
            }
            V_UNY v_uny = val.R801_is_a_V_UNY();
            if ( !v_uny.isEmpty() ) {
                if ( ( StringUtil.equality("cardinality", context().T().sub( "l", v_uny.getOperator() )) || StringUtil.equality("empty", context().T().sub( "l", v_uny.getOperator() )) ) || StringUtil.equality("not_empty", context().T().sub( "l", v_uny.getOperator() )) ) {
                    prec = 6;
                }
                else if ( ( StringUtil.equality("not", context().T().sub( "l", v_uny.getOperator() )) || StringUtil.equality("-", v_uny.getOperator()) ) || StringUtil.equality("+", v_uny.getOperator()) ) {
                    prec = 5;
                }
            }
            else {
                V_BIN v_bin = val.R801_is_a_V_BIN();
                if ( !v_bin.isEmpty() ) {
                    if ( ( ( ( StringUtil.equality("*", v_bin.getOperator()) || StringUtil.equality("/", v_bin.getOperator()) ) || StringUtil.equality("%", v_bin.getOperator()) ) || StringUtil.equality("&", v_bin.getOperator()) ) || StringUtil.equality("^", v_bin.getOperator()) ) {
                        prec = 4;
                    }
                    else if ( ( StringUtil.equality("+", v_bin.getOperator()) || StringUtil.equality("-", v_bin.getOperator()) ) || StringUtil.equality("|", v_bin.getOperator()) ) {
                        prec = 3;
                    }
                    else if ( ( ( ( ( StringUtil.equality("==", v_bin.getOperator()) || StringUtil.equality("!=", v_bin.getOperator()) ) || StringUtil.equality("<", v_bin.getOperator()) ) || StringUtil.equality(">", v_bin.getOperator()) ) || StringUtil.equality("<=", v_bin.getOperator()) ) || StringUtil.equality(">=", v_bin.getOperator()) ) {
                        prec = 2;
                    }
                    else if ( StringUtil.equality("and", context().T().sub( "l", v_bin.getOperator() )) ) {
                        prec = 1;
                    }
                    else if ( StringUtil.equality("or", context().T().sub( "l", v_bin.getOperator() )) ) {
                        prec = 0;
                    }
                }
            }
            if ( i == 0 ) {
                prec1 = prec;
            }
            else {
                prec2 = prec;
            }
            i = i + 1;
        }
        return prec1 - prec2;
    }

    public boolean r_rel_is_formal( final Association p_r_rel ) throws XtumlException {
        Association r_rel = p_r_rel;
        SimpleAssociation simp = r_rel.R206_is_a_SimpleAssociation();
        if ( !simp.isEmpty() ) {
            ClassAsSimpleFormalizer form = simp.R208_relates_ClassAsSimpleFormalizer();
            if ( !form.isEmpty() ) {
                return true;
            }
        }
        else {
            LinkedAssociation assoc = r_rel.R206_is_a_LinkedAssociation();
            if ( !assoc.isEmpty() ) {
                ReferredToClassInAssoc rto1 = assoc.R209_relates_ClassAsAssociatedOneSide().R204_is_a_ReferredToClassInAssoc();
                ReferredToIdentifierAttribute rtida1 = rto1.R110_is_identified_in_this_association_by_ReferredToIdentifierAttribute().any();
                ReferredToClassInAssoc rto2 = assoc.R210_relates_ClassAsAssociatedOtherSide().R204_is_a_ReferredToClassInAssoc();
                ReferredToIdentifierAttribute rtida2 = rto2.R110_is_identified_in_this_association_by_ReferredToIdentifierAttribute().any();
                return !rtida1.isEmpty() && !rtida2.isEmpty();
            }
            else {
                SubtypeSupertypeAssociation subsup = r_rel.R206_is_a_SubtypeSupertypeAssociation();
                if ( !subsup.isEmpty() ) {
                    ReferredToClassInAssoc rto = subsup.R212_relates_ClassAsSupertype().R204_is_a_ReferredToClassInAssoc();
                    ReferredToIdentifierAttribute rtida = rto.R110_is_identified_in_this_association_by_ReferredToIdentifierAttribute().any();
                    return !rtida.isEmpty();
                }
            }
        }
        return false;
    }

    public boolean r_rel_is_reflexive( final Association p_r_rel ) throws XtumlException {
        Association r_rel = p_r_rel;
        SimpleAssociation srel = r_rel.R206_is_a_SimpleAssociation();
        if ( !srel.isEmpty() ) {
            ClassAsSimpleParticipantSet part_set = srel.R207_relates_ClassAsSimpleParticipant();
            if ( part_set.size() > 1 ) {
                ClassAsSimpleParticipant part1 = srel.R207_relates_ClassAsSimpleParticipant().any();
                ClassAsSimpleParticipant part2 = srel.R207_relates_ClassAsSimpleParticipant().anyWhere(selected -> ((ClassAsSimpleParticipant)selected).getOIR_ID().inequality(part1.getOIR_ID()));
                if ( part1.getObj_ID().equality(part2.getObj_ID()) ) {
                    return true;
                }
            }
            else {
                ClassAsSimpleParticipant part = srel.R207_relates_ClassAsSimpleParticipant().any();
                ClassAsSimpleFormalizer form = srel.R208_relates_ClassAsSimpleFormalizer();
                if ( !form.isEmpty() ) {
                    if ( part.getObj_ID().equality(form.getObj_ID()) ) {
                        return true;
                    }
                }
            }
        }
        else {
            LinkedAssociation arel = r_rel.R206_is_a_LinkedAssociation();
            if ( !arel.isEmpty() ) {
                ClassAsAssociatedOneSide aone = arel.R209_relates_ClassAsAssociatedOneSide();
                ClassAsAssociatedOtherSide aoth = arel.R210_relates_ClassAsAssociatedOtherSide();
                if ( aone.getObj_ID().equality(aoth.getObj_ID()) ) {
                    return true;
                }
            }
        }
        return false;
    }

    public void resloveVariableFinalizations( final InvocableObject p_invocable ) throws XtumlException {
        InvocableObject invocable = p_invocable;
        StatementSet affected_smts = new StatementSetImpl();
        WhereSet where_clauses = ((WhereSet)context().Where_instances().where(selected -> ( StringUtil.equality(((Where)selected).getParent_name(), invocable.getParent_name()) && StringUtil.equality(((Where)selected).getParent_package(), invocable.getParent_package()) ) && StringUtil.equality(((Where)selected).getBody_name(), invocable.getName())));
        Where where_clause;
        for ( Iterator _where_clause_iter = where_clauses.elements().iterator(); _where_clause_iter.hasNext(); ) {
            where_clause = _where_clause_iter.next();
            Expression where_expr = where_clause.R796_has_condition_Expression();
            VariableReferenceSet var_refs = ((VariableReferenceSet)context().VariableReference_instances().where(selected -> ( ( ( ( StringUtil.equality(((VariableReference)selected).getParent_name(), invocable.getParent_name()) && StringUtil.equality(((VariableReference)selected).getParent_package(), invocable.getParent_package()) ) && StringUtil.equality(((VariableReference)selected).getBody_name(), invocable.getName()) ) && StringUtil.equality(((VariableReference)selected).getBlock_number(), where_expr.getBlock_number()) ) && StringUtil.equality(((VariableReference)selected).getStatement_number(), where_expr.getStatement_number()) ) && 0 == context().STRING().indexof( ((VariableReference)selected).getExpression_number(), where_expr.getExpression_number() )));
            VariableReference var_ref;
            for ( Iterator _var_ref_iter = var_refs.elements().iterator(); _var_ref_iter.hasNext(); ) {
                var_ref = _var_ref_iter.next();
                BinaryOperationSet var_assignments = ((BinaryOperationSet)var_ref.R782_refers_to_local_Variable().R782_referenced_through_VariableReference().R776_is_a_Expression().R779_is_left_operand_for_BinaryOperation().where(selected -> StringUtil.equality(((BinaryOperation)selected).getOperator(), "=")));
                ForSmt for_smt = var_ref.R782_refers_to_local_Variable().R459_is_iterator_for_ForSmt();
                if ( var_assignments.size() > 1 || !for_smt.isEmpty() ) {
                    Statement smt = var_ref.R776_is_a_Expression().R775_expressed_within_Statement();
                    Variable var = var_ref.R782_refers_to_local_Variable();
                    Finalization finalization = smt.R485_finalizes_Finalization().anyWhere(selected -> StringUtil.equality(((Finalization)selected).getVar_block_number(), var.getBlock_number()) && StringUtil.equality(((Finalization)selected).getVar_name(), var.getName()));
                    if ( finalization.isEmpty() ) {
                        finalization = FinalizationImpl.create( context() );
                        context().relate_R485_Finalization_finalized_by_Statement( finalization, smt );
                        context().relate_R485_Finalization_finalizes_Variable( finalization, var );
                        affected_smts = ((StatementSet)affected_smts.union(smt));
                    }
                }
            }
        }
        Statement smt;
        for ( Iterator _smt_iter = affected_smts.elements().iterator(); _smt_iter.hasNext(); ) {
            smt = _smt_iter.next();
            FinalizationSet finalizations = smt.R485_finalizes_Finalization();
            Finalization finalization;
            for ( Iterator _finalization_iter = finalizations.elements().iterator(); _finalization_iter.hasNext(); ) {
                finalization = _finalization_iter.next();
                finalization.render();
            }
        }
    }

    public void resolveArrayDeclaration( final Statement p_smt ) throws XtumlException {
        Statement smt = p_smt;
        CodeBlock block = smt.R450_is_contained_by_CodeBlock();
        String indent = context().getIndent( block.getTab_depth() + 1 );
        VariableSet declared_vars = smt.R457_declares_Variable();
        Variable declared_var;
        for ( Iterator _declared_var_iter = declared_vars.elements().iterator(); _declared_var_iter.hasNext(); ) {
            declared_var = _declared_var_iter.next();
            VariableReferenceSet var_refs = ((VariableReferenceSet)declared_var.R782_referenced_through_VariableReference().where(selected -> StringUtil.equality(((VariableReference)selected).getBlock_number(), smt.getBlock_number()) && StringUtil.equality(((VariableReference)selected).getStatement_number(), smt.getStatement_number())));
            VariableReference earliest_var_ref = VariableReferenceImpl.EMPTY_VARIABLEREFERENCE;
            VariableReference var_ref;
            for ( Iterator _var_ref_iter = var_refs.elements().iterator(); _var_ref_iter.hasNext(); ) {
                var_ref = _var_ref_iter.next();
                if ( earliest_var_ref.isEmpty() || StringUtil.lessThan(var_ref.getExpression_number(), earliest_var_ref.getExpression_number()) ) {
                    earliest_var_ref = var_ref;
                }
            }
            if ( !earliest_var_ref.isEmpty() ) {
                earliest_var_ref.setDeclaration(true);
            }
        }
        VariableSet array_vars = smt.R775_may_contain_Expression().R776_is_a_ArrayElementReference().R3900_has_root_Expression().R776_is_a_VariableReference().R782_refers_to_local_Variable();
        Variable array_var;
        for ( Iterator _array_var_iter = array_vars.elements().iterator(); _array_var_iter.hasNext(); ) {
            array_var = _array_var_iter.next();
            if ( StringUtil.equality(smt.getBlock_number(), array_var.getBlock_number()) && StringUtil.equality(smt.getStatement_number(), array_var.getStatement_number()) ) {
                ArrayElementReferenceSet array_refs = ((ArrayElementReferenceSet)array_var.R782_referenced_through_VariableReference().R776_is_a_Expression().R3900_is_root_for_ArrayElementReference().where(selected -> StringUtil.equality(((ArrayElementReference)selected).getBlock_number(), smt.getBlock_number()) && StringUtil.equality(((ArrayElementReference)selected).getStatement_number(), smt.getStatement_number())));
                ArrayElementReference earliest_array_ref = ArrayElementReferenceImpl.EMPTY_ARRAYELEMENTREFERENCE;
                ArrayElementReference array_ref;
                for ( Iterator _array_ref_iter = array_refs.elements().iterator(); _array_ref_iter.hasNext(); ) {
                    array_ref = _array_ref_iter.next();
                    if ( earliest_array_ref.isEmpty() || StringUtil.lessThan(array_ref.getExpression_number(), earliest_array_ref.getExpression_number()) ) {
                        earliest_array_ref = array_ref;
                    }
                }
                TypeReference var_type = array_var.R461_is_typed_by_TypeReference();
                Expression array_index = earliest_array_ref.R3901_has_index_Expression();
                context().T().push_buffer();
                array_index.render();
                smt.setPrefix(( ( ( ( ( ( ( ( smt.getPrefix() + indent ) + var_type.getType_reference_name() ) + " " ) + array_var.getName() ) + " = new " ) + var_type.getType_name() ) + "[" ) + context().T().body() ) + "+1];\n");
                context().T().pop_buffer();
                VariableReferenceSet var_refs = ((VariableReferenceSet)array_var.R782_referenced_through_VariableReference().where(selected -> StringUtil.equality(((VariableReference)selected).getBlock_number(), smt.getBlock_number()) && StringUtil.equality(((VariableReference)selected).getStatement_number(), smt.getStatement_number())));
                VariableReference var_ref;
                for ( Iterator _var_ref_iter = var_refs.elements().iterator(); _var_ref_iter.hasNext(); ) {
                    var_ref = _var_ref_iter.next();
                    var_ref.setDeclaration(false);
                }
            }
        }
    }

    public void resolveAssociativeSelections() throws XtumlException {
        ChainLinkSet act_lnks = context().ChainLink_instances();
        ChainLink act_lnk;
        for ( Iterator _act_lnk_iter = act_lnks.elements().iterator(); _act_lnk_iter.hasNext(); ) {
            act_lnk = _act_lnk_iter.next();
            Association r_rel = act_lnk.R681_specifies_traversal_of_Association();
            ClassAsAssociatedOtherSide r_aoth = r_rel.R206_is_a_LinkedAssociation().R210_relates_ClassAsAssociatedOtherSide();
            ClassAsLink r_assr = r_rel.R206_is_a_LinkedAssociation().R211_uses_a_formalizer_ClassAsLink();
            ModelClass assr_obj = r_assr.R205_is_a_ReferringClassInAssoc().R203_is_a_ClassInAssociation().R201_abstracts_association_between_instances_of_ModelClass();
            ModelClass target_obj = act_lnk.R678_specifies_instances_of_ModelClass();
            ChainLink prev_lnk = ChainLinkImpl.EMPTY_CHAINLINK;
            InstanceHandle v_int = InstanceHandleImpl.EMPTY_INSTANCEHANDLE;
            V_INS v_ins = V_INSImpl.EMPTY_V_INS;
            prev_lnk = act_lnk.R604_succeeds_ChainLink();
            ModelClass base_obj = prev_lnk.R678_specifies_instances_of_ModelClass();
            if ( base_obj.isEmpty() ) {
                v_int = act_lnk.R637_ACT_SEL().R613_starting_point_Value().R801_is_a_InstanceReference().R808_refers_to_V_VAR().R814_is_a_InstanceHandle();
                base_obj = v_int.R818_refers_to_ModelClass();
                if ( base_obj.isEmpty() ) {
                    v_ins = act_lnk.R637_ACT_SEL().R613_starting_point_Value().R801_is_a_InstanceSetReference().R809_refers_to_V_VAR().R814_is_a_V_INS();
                    base_obj = v_ins.R819_refers_to_ModelClass();
                }
            }
            if ( ( !r_assr.isEmpty() && target_obj.getObj_ID().inequality(r_assr.getObj_ID()) ) && base_obj.getObj_ID().inequality(r_assr.getObj_ID()) ) {
                ChainLink act_lnk1 = ChainLinkImpl.create( context() );
                act_lnk1.setModelClassKeyLettersLineNumber(act_lnk.getModelClassKeyLettersLineNumber());
                act_lnk1.setModelClassKeyLettersColumn(act_lnk.getModelClassKeyLettersColumn());
                act_lnk1.setAssociationNumberLineNumber(act_lnk.getAssociationNumberLineNumber());
                act_lnk1.setAssociationNumberColumn(act_lnk.getAssociationNumberColumn());
                act_lnk1.setPhraseLineNumber(act_lnk.getPhraseLineNumber());
                act_lnk1.setPhraseColumn(act_lnk.getPhraseColumn());
                act_lnk1.setRel_Phrase(act_lnk.getRel_Phrase());
                context().relate_R681_ChainLink_specifies_traversal_of_Association( act_lnk1, r_rel );
                context().relate_R678_ChainLink_specifies_instances_of_ModelClass( act_lnk1, assr_obj );
                if ( ( 1 == r_assr.getMult() || !prev_lnk.isEmpty() && Multiplicity.MANY.equality(prev_lnk.getMult()) ) || !v_ins.isEmpty() ) {
                    act_lnk1.setMult(Multiplicity.MANY);
                }
                else {
                    if ( target_obj.getObj_ID().inequality(base_obj.getObj_ID()) && r_aoth.getObj_ID().equality(target_obj.getObj_ID()) || target_obj.getObj_ID().equality(base_obj.getObj_ID()) && StringUtil.equality(r_aoth.getTxt_Phrs(), context().C_UTIL().stripTics( act_lnk.getRel_Phrase() )) ) {
                        if ( 1 == r_aoth.getMult() ) {
                            act_lnk1.setMult(Multiplicity.MANY);
                        }
                        else {
                            act_lnk1.setMult(Multiplicity.ONE);
                        }
                    }
                }
                ChainLink act_lnk2 = ChainLinkImpl.create( context() );
                act_lnk2.setModelClassKeyLettersLineNumber(act_lnk.getModelClassKeyLettersLineNumber());
                act_lnk2.setModelClassKeyLettersColumn(act_lnk.getModelClassKeyLettersColumn());
                act_lnk2.setAssociationNumberLineNumber(act_lnk.getAssociationNumberLineNumber());
                act_lnk2.setAssociationNumberColumn(act_lnk.getAssociationNumberColumn());
                act_lnk2.setPhraseLineNumber(act_lnk.getPhraseLineNumber());
                act_lnk2.setPhraseColumn(act_lnk.getPhraseColumn());
                act_lnk2.setRel_Phrase(act_lnk.getRel_Phrase());
                act_lnk2.setMult(act_lnk.getMult());
                context().relate_R681_ChainLink_specifies_traversal_of_Association( act_lnk2, r_rel );
                context().relate_R678_ChainLink_specifies_instances_of_ModelClass( act_lnk2, target_obj );
                context().relate_R604_ChainLink_precedes_ChainLink( act_lnk1, act_lnk2 );
                ChainLink next_lnk = act_lnk.R604_precedes_ChainLink();
                if ( !next_lnk.isEmpty() ) {
                    context().unrelate_R604_ChainLink_precedes_ChainLink( act_lnk, next_lnk );
                    context().relate_R604_ChainLink_precedes_ChainLink( act_lnk2, next_lnk );
                }
                if ( !prev_lnk.isEmpty() ) {
                    context().unrelate_R604_ChainLink_precedes_ChainLink( prev_lnk, act_lnk );
                    context().relate_R604_ChainLink_precedes_ChainLink( prev_lnk, act_lnk1 );
                }
                else {
                    ACT_SEL act_sel = act_lnk.R637_ACT_SEL();
                    context().unrelate_R637_ChainLink_ACT_SEL( act_lnk, act_sel );
                    context().relate_R637_ChainLink_ACT_SEL( act_lnk1, act_sel );
                }
                context().unrelate_R678_ChainLink_specifies_instances_of_ModelClass( act_lnk, target_obj );
                context().unrelate_R681_ChainLink_specifies_traversal_of_Association( act_lnk, r_rel );
                act_lnk.delete();
            }
        }
    }

    public void resolveSortedSelection( final Where p_where_expr ) throws XtumlException {
        Where where_expr = p_where_expr;
        Expression where_clause_expr = where_expr.R796_has_condition_Expression();
        Invocation invoc = where_clause_expr.R775_expressed_within_Statement().R775_may_contain_Expression().R776_is_a_Invocation().anyWhere(selected -> StringUtil.equality(((Invocation)selected).getInvoked_parent_name(), "SORT") && context().STRING().indexof( ((Invocation)selected).getExpression_number(), where_clause_expr.getExpression_number() ) == 0);
        if ( !invoc.isEmpty() ) {
            SortType sort_type = SortType.NONE;
            if ( StringUtil.equality(invoc.getInvoked_name(), "ascending") ) {
                sort_type = SortType.ASCENDING;
            }
            else if ( StringUtil.equality(invoc.getInvoked_name(), "descending") ) {
                sort_type = SortType.DESCENDING;
            }
            ActualParameter attr_parm = invoc.R793_ActualParameter().anyWhere(selected -> StringUtil.equality(((ActualParameter)selected).getParam_name(), "p_attr"));
            Literal literal = attr_parm.R794_parameter_value_specified_by_Expression().R776_is_a_Literal();
            if ( !literal.isEmpty() ) {
                ModelInst cls = where_expr.R776_is_a_Expression().R795_expresses_value_of_TypeReference().R3800_based_on_Type().R407_is_a_ModelInst();
                if ( cls.isEmpty() ) {
                    cls = where_expr.R776_is_a_Expression().R795_expresses_value_of_TypeReference().R3800_based_on_Type().R407_is_a_InstSet().R406_defines_set_with_elements_of_type_ModelInst();
                }
                Attribute attr = cls.R410_data_abstracted_by_Attribute().anyWhere(selected -> StringUtil.equality(((Attribute)selected).getName(), "m_" + literal.getValue()) || StringUtil.equality(((Attribute)selected).getName(), "ref_" + literal.getValue()));
                if ( !attr.isEmpty() ) {
                    where_expr.setSorted(sort_type);
                    context().relate_R3906_Where_sorts_set_by_Attribute( where_expr, attr );
                    Type attr_type = attr.R424_is_typed_by_TypeReference().R3800_based_on_Type();
                    if ( attr_type.primitive() ) {
                        Statement smt = where_expr.R776_is_a_Expression().R775_expressed_within_Statement();
                        File file = context().getFileForStatement( smt );
                        if ( StringUtil.equality("boolean", attr_type.getName()) ) {
                            context().addStringToImports( file, "io.ciera.runtime.summit.types.BooleanUtil", ImportType.BOTH );
                        }
                        else if ( StringUtil.equality("int", attr_type.getName()) ) {
                            context().addStringToImports( file, "io.ciera.runtime.summit.types.IntegerUtil", ImportType.BOTH );
                        }
                        else if ( StringUtil.equality("double", attr_type.getName()) ) {
                            context().addStringToImports( file, "io.ciera.runtime.summit.types.RealUtil", ImportType.BOTH );
                        }
                    }
                }
                else {
                    context().LOG().LogFailure( ( ( ( "Could not find attribute '" + literal.getValue() ) + "' in class '" ) + cls.getName() ) + "' for sorting" );
                }
            }
            else {
                context().LOG().LogFailure( "SORT bridges require literal string parameters" );
            }
        }
    }

    public void resolveTypeImports() throws XtumlException {
        TypeSet types = context().Type_instances();
        Type type;
        for ( Iterator _type_iter = types.elements().iterator(); _type_iter.hasNext(); ) {
            type = _type_iter.next();
            FileSet impl_files = new FileSetImpl();
            FileSet both_files = new FileSetImpl();
            FileSet files = type.R3800_referred_to_by_TypeReference().R424_defines_type_for_Attribute().R410_abstracts_data_for_ModelInst().R401_is_a_File();
            both_files = ((FileSet)both_files.union(files));
            files = type.R3800_referred_to_by_TypeReference().R424_defines_type_for_Attribute().R410_abstracts_data_for_ModelInst().R406_is_type_of_single_element_in_InstSet().R401_is_a_File();
            both_files = ((FileSet)both_files.union(files));
            files = type.R3800_referred_to_by_TypeReference().R431_defines_type_for_FormalParameter().R429_shapes_data_for_InvocableObject().R427_is_a_Function().R405_can_execute_synchronously_within_ComponentDefinition().R401_is_a_File();
            both_files = ((FileSet)both_files.union(files));
            OperationSet inst_ops = ((OperationSet)type.R3800_referred_to_by_TypeReference().R431_defines_type_for_FormalParameter().R429_shapes_data_for_InvocableObject().R427_is_a_Operation().where(selected -> !((Operation)selected).getIs_class_based()));
            files = inst_ops.R416_provided_by_ModelInst().R401_is_a_File();
            both_files = ((FileSet)both_files.union(files));
            OperationSet class_ops = ((OperationSet)type.R3800_referred_to_by_TypeReference().R431_defines_type_for_FormalParameter().R429_shapes_data_for_InvocableObject().R427_is_a_Operation().where(selected -> ((Operation)selected).getIs_class_based()));
            files = class_ops.R416_provided_by_ModelInst().R401_is_a_File();
            impl_files = ((FileSet)impl_files.union(files));
            files = type.R3800_referred_to_by_TypeReference().R431_defines_type_for_FormalParameter().R429_shapes_data_for_InvocableObject().R427_is_a_PortMessage().R420_provides_implementation_for_Message().R419_defines_message_format_for_Iface().R401_is_a_File();
            both_files = ((FileSet)both_files.union(files));
            files = type.R3800_referred_to_by_TypeReference().R431_defines_type_for_FormalParameter().R429_shapes_data_for_InvocableObject().R427_is_a_PortMessage().R420_is_implemented_within_Port().R401_is_a_File();
            both_files = ((FileSet)both_files.union(files));
            files = type.R3800_referred_to_by_TypeReference().R431_defines_type_for_FormalParameter().R429_shapes_data_for_InvocableObject().R427_is_a_UtilityFunction().R4559_provided_by_Utility().R401_is_a_File();
            both_files = ((FileSet)both_files.union(files));
            files = type.R3800_referred_to_by_TypeReference().R431_defines_type_for_FormalParameter().R429_shapes_data_for_InvocableObject().R427_is_a_Event().R4756_TransitionTableCell().R4757_transitions_to_StateTransition().R4757_transitions_to_State().R4751_StateMachine().R401_is_a_File();
            both_files = ((FileSet)both_files.union(files));
            files = type.R3800_referred_to_by_TypeReference().R431_defines_type_for_FormalParameter().R429_shapes_data_for_InvocableObject().R427_is_a_Event().R4752_StateMachine().R4750_models_behavior_of_ModelInst().R401_is_a_File();
            impl_files = ((FileSet)impl_files.union(files));
            inst_ops = ((OperationSet)type.R3800_referred_to_by_TypeReference().R428_defines_return_type_for_InvocableObject().R427_is_a_Operation().where(selected -> !((Operation)selected).getIs_class_based()));
            files = inst_ops.R416_provided_by_ModelInst().R401_is_a_File();
            both_files = ((FileSet)both_files.union(files));
            class_ops = ((OperationSet)type.R3800_referred_to_by_TypeReference().R428_defines_return_type_for_InvocableObject().R427_is_a_Operation().where(selected -> ((Operation)selected).getIs_class_based()));
            files = class_ops.R416_provided_by_ModelInst().R401_is_a_File();
            impl_files = ((FileSet)impl_files.union(files));
            files = type.R3800_referred_to_by_TypeReference().R428_defines_return_type_for_InvocableObject().R427_is_a_PortMessage().R420_provides_implementation_for_Message().R419_defines_message_format_for_Iface().R401_is_a_File();
            both_files = ((FileSet)both_files.union(files));
            files = type.R3800_referred_to_by_TypeReference().R428_defines_return_type_for_InvocableObject().R427_is_a_PortMessage().R420_is_implemented_within_Port().R401_is_a_File();
            both_files = ((FileSet)both_files.union(files));
            files = type.R3800_referred_to_by_TypeReference().R428_defines_return_type_for_InvocableObject().R427_is_a_UtilityFunction().R4559_provided_by_Utility().R401_is_a_File();
            both_files = ((FileSet)both_files.union(files));
            files = type.R3800_referred_to_by_TypeReference().R446_shapes_return_of_Selector().R445_is_a_InstanceSelector().R442_navigates_from_ModelInst().R401_is_a_File();
            both_files = ((FileSet)both_files.union(files));
            files = type.R3800_referred_to_by_TypeReference().R446_shapes_return_of_Selector().R445_is_a_SetSelector().R444_navigates_from_InstSet().R401_is_a_File();
            both_files = ((FileSet)both_files.union(files));
            File file;
            for ( Iterator _file_iter = impl_files.elements().iterator(); _file_iter.hasNext(); ) {
                file = _file_iter.next();
                type.addToImports( file, ImportType.IMPL );
            }
            for ( Iterator _file_iter = both_files.elements().iterator(); _file_iter.hasNext(); ) {
                file = _file_iter.next();
                type.addToImports( file, ImportType.BOTH );
            }
        }
    }

    public void resolveUserDefinedTypes() throws XtumlException {
        UserDefinedTypeSet udts = context().UserDefinedType_instances();
        UserDefinedType udt;
        for ( Iterator _udt_iter = udts.elements().iterator(); _udt_iter.hasNext(); ) {
            udt = _udt_iter.next();
            Type type = udt.R407_is_a_Type();
            Type base_type = type.R423_DataType().R17_is_a_UserDataType().R18_are_defined_within_DataType().R423_Type();
            if ( base_type.isEmpty() ) {
            }
            context().relate_R3802_UserDefinedType_based_on_Type( udt, base_type );
            File file = udt.R401_is_a_File();
            context().addTypeToImports( file, base_type, ImportType.IMPL );
        }
    }

    public boolean s_dtIsBuiltin( final DataType p_s_dt ) throws XtumlException {
        DataType s_dt = p_s_dt;
        C_C c_c = s_dt.R8001_is_a_PackageableElement().R8003_contained_in_C_C();
        EP_PKG ep_pkg = s_dt.R8001_is_a_PackageableElement().R8000_contained_by_EP_PKG();
        return c_c.isEmpty() && ep_pkg.isEmpty();
    }

    public void transformActualParameter( final Invocation p_invocation,  final FormalParameter p_parm,  final String p_expression_num,  final V_PAR p_v_par,  final ActualParameter p_prev_act_parm ) throws XtumlException {
        Invocation invocation = p_invocation;
        FormalParameter parm = p_parm;
        V_PAR v_par = p_v_par;
        ActualParameter prev_act_parm = p_prev_act_parm;
        String expr_number = p_expression_num;
        Statement smt = invocation.R776_is_a_Expression().R775_expressed_within_Statement();
        Expression expr = ExpressionImpl.EMPTY_EXPRESSION;
        Value v_val = v_par.R800_has_Value();
        if ( !v_val.isEmpty() ) {
            DataType par_dt = context().getParType( v_par );
            DataType s_dt = v_val.R820_has_type_DataType();
            if ( ( par_dt.equality(s_dt) || StringUtil.equality(par_dt.getName(), "real") && StringUtil.equality(s_dt.getName(), "integer") ) || StringUtil.equality(par_dt.getName(), "timestamp") && StringUtil.equality(s_dt.getName(), "integer") ) {
                context().transformExpression( v_val, expr_number, smt );
            }
            else {
                Expression prom_expr = ExpressionImpl.create( context() );
                context().relate_R775_Expression_expressed_within_Statement( prom_expr, smt );
                prom_expr.setExpression_number(expr_number);
                DimensionsSet s_dims = new DimensionsSetImpl();
                TypeReference type = context().TypeReference_getInstance( par_dt, s_dims );
                context().relate_R795_Expression_expresses_value_of_TypeReference( prom_expr, type );
                Promotion prom = PromotionImpl.create( context() );
                context().relate_R776_Promotion_is_a_Expression( prom, prom_expr );
                if ( context().typeIsBasedOn( s_dt, par_dt ) ) {
                    prom.setCast(true);
                }
                else {
                    prom.setCast(false);
                    File file = context().getFileForStatement( smt );
                    Type l_type = type.R3800_based_on_Type();
                    context().addTypeToImports( file, l_type, ImportType.IMPL );
                }
                context().transformExpression( v_val, expr_number + ".1", smt );
                Expression prom_val = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), expr_number + ".1"));
                context().relate_R3907_Promotion_promotes_Expression( prom, prom_val );
            }
            expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), expr_number));
        }
        else {
        }
        if ( !expr.isEmpty() ) {
            ActualParameter act_parm = ActualParameterImpl.create( context() );
            context().relate_R794_ActualParameter_parameter_value_specified_by_Expression( act_parm, expr );
            context().relate_R793_ActualParameter_Invocation( act_parm, invocation );
            if ( !parm.isEmpty() ) {
                context().relate_R3904_ActualParameter_FormalParameter( act_parm, parm );
            }
            if ( !prev_act_parm.isEmpty() ) {
                context().relate_R3905_ActualParameter_precedes_ActualParameter( prev_act_parm, act_parm );
            }
        }
        else {
        }
    }

    public void transformActualParameters( final Invocation p_invocation,  final V_PARSet p_v_pars,  final String p_expr_number,  final int p_base_num ) throws XtumlException {
        Invocation invocation = p_invocation;
        V_PARSet v_pars = p_v_pars;
        String expr_number = p_expr_number;
        int base_num = p_base_num;
        FormalParameter parm = invocation.R792_invokes_InvocableObject().R429_declares_signature_with_FormalParameter().any();
        FormalParameter prev_parm = parm.R404_follows_FormalParameter();
        while ( !prev_parm.isEmpty() ) {
            parm = prev_parm;
            prev_parm = parm.R404_follows_FormalParameter();
        }
        int num = base_num;
        V_PAR v_par = V_PARImpl.EMPTY_V_PAR;
        ActualParameter prev_act_parm = ActualParameterImpl.EMPTY_ACTUALPARAMETER;
        while ( !parm.isEmpty() ) {
            V_PAR par;
            for ( Iterator _par_iter = v_pars.elements().iterator(); _par_iter.hasNext(); ) {
                par = _par_iter.next();
                if ( StringUtil.equality("p_" + par.getName(), parm.getName()) ) {
                    v_par = par;
                    break;
                }
            }
            context().transformActualParameter( invocation, parm, ( expr_number + "." ) + context().STRING().itoa( num ), v_par, prev_act_parm );
            final int _final0_num = num;
            prev_act_parm = invocation.R793_ActualParameter().anyWhere(selected -> StringUtil.equality(((ActualParameter)selected).getExpression_number(), ( expr_number + "." ) + context().STRING().itoa( _final0_num )));
            parm = parm.R404_precedes_FormalParameter();
            num = num + 1;
        }
    }

    public void transformApplication( final EP_PKG p_root_package,  final String p_path ) throws XtumlException {
        EP_PKG root_package = p_root_package;
        SystemModel s_sys = root_package.R1405_SystemModel();
        Mark app_name_mark = context().Mark_instances().anyWhere(selected -> ( StringUtil.equality(((Mark)selected).getMarkable_name(), "*") && StringUtil.equality(((Mark)selected).getPath(), "*") ) && StringUtil.equality(((Mark)selected).getFeature_name(), "ApplicationName"));
        Mark app_pkg_mark = context().Mark_instances().anyWhere(selected -> ( StringUtil.equality(((Mark)selected).getMarkable_name(), "*") && StringUtil.equality(((Mark)selected).getPath(), "*") ) && StringUtil.equality(((Mark)selected).getFeature_name(), "ApplicationPackage"));
        File file = FileImpl.create( context() );
        if ( !app_name_mark.isEmpty() ) {
            file.setName(app_name_mark.getValue());
        }
        else {
            file.setName(context().camelCaseName( s_sys.getName(), false ) + "Application");
        }
        if ( !app_pkg_mark.isEmpty() ) {
            file.setPackage(app_pkg_mark.getValue());
            file.setPath(context().formatPath( file.getPackage() ));
        }
        else {
            file.setPath(context().T().sub( "l", context().T().sub( "r", s_sys.getName() ) ));
            file.setPackage(context().pathToPackage( file.getPath() ));
        }
        file.setExtension(".java");
        file.setExclude(false);
        Application app = ApplicationImpl.create( context() );
        context().relate_R401_Application_is_a_File( app, file );
        Mark async_app_mark = context().Mark_instances().anyWhere(selected -> ( StringUtil.equality(((Mark)selected).getMarkable_name(), "*") && StringUtil.equality(((Mark)selected).getPath(), "*") ) && StringUtil.equality(((Mark)selected).getFeature_name(), "AsyncApplication"));
        app.setAsync(!async_app_mark.isEmpty());
        int index = 0;
        while ( index < 1 ) {
            ApplicationExecutor executor = ApplicationExecutorImpl.create( context() );
            if ( app.getAsync() ) {
                executor.setIndex(-1);
            }
            else {
                executor.setIndex(index);
            }
            context().relate_R4027_ApplicationExecutor_executes_tasks_for_Application( executor, app );
            index = index + 1;
        }
        C_CSet c_cs = root_package.R8000_contains_PackageableElement().R8001_is_a_C_C();
        C_CSet cl_ics = root_package.R8000_contains_PackageableElement().R8001_is_a_ComponentReference().R4201_represents_C_C();
        c_cs = ((C_CSet)c_cs.union(cl_ics));
        ComponentDefinition empty_comp_def = ComponentDefinitionImpl.EMPTY_COMPONENTDEFINITION;
        ComponentInstantiation current_comp_inst = ComponentInstantiationImpl.EMPTY_COMPONENTINSTANTIATION;
        C_C c_c;
        for ( Iterator _c_c_iter = c_cs.elements().iterator(); _c_c_iter.hasNext(); ) {
            c_c = _c_c_iter.next();
            final C_C _final0_c_c = c_c;
            ComponentDefinition comp_def = context().ComponentDefinition_instances().anyWhere(selected -> StringUtil.equality(((ComponentDefinition)selected).getName(), context().camelCaseName( _final0_c_c.getName(), false )));
            if ( comp_def.isEmpty() ) {
                context().transformComponentDefinition( c_c, empty_comp_def, p_path, 1 );
                context().transformComponentDefinition( c_c, empty_comp_def, p_path, 2 );
                context().transformComponentDefinition( c_c, empty_comp_def, p_path, 3 );
                final C_C _final3_c_c = c_c;
                comp_def = context().ComponentDefinition_instances().anyWhere(selected -> StringUtil.equality(((ComponentDefinition)selected).getName(), context().camelCaseName( _final3_c_c.getName(), false )));
            }
            ComponentInstantiation comp_inst = ComponentInstantiationImpl.create( context() );
            context().relate_R426_ComponentInstantiation_is_broken_into_ComponentDefinition( comp_inst, comp_def );
            context().relate_R426_ComponentInstantiation_is_instantiated_by_Application( comp_inst, app );
            File comp_def_file = comp_def.R401_is_a_File();
            context().addFileToImports( file, comp_def_file, ImportType.IMPL );
            ApplicationExecutor executor = app.R4027_delegates_execution_to_ApplicationExecutor().any();
            context().relate_R4028_ComponentInstantiation_is_executed_by_ApplicationExecutor( comp_inst, executor );
            if ( !current_comp_inst.isEmpty() ) {
                context().relate_R4029_ComponentInstantiation_precedes_ComponentInstantiation( current_comp_inst, comp_inst );
                comp_inst.setIndex(current_comp_inst.getIndex() + 1);
            }
            else {
                comp_inst.setIndex(0);
            }
            PackageableElement c_c_pe = c_c.R8001_is_a_PackageableElement();
            final C_C _final1_c_c = c_c;
            Mark inst_loading_mark = context().Mark_instances().anyWhere(selected -> ( StringUtil.equality(((Mark)selected).getMarkable_name(), "Component") && StringUtil.equality(((Mark)selected).getPath(), ( context().containerMarkingPath( c_c_pe ) + "::" ) + _final1_c_c.getName()) ) && StringUtil.equality(((Mark)selected).getFeature_name(), "InstanceLoading"));
            if ( !inst_loading_mark.isEmpty() ) {
                comp_inst.setInstance_loading(inst_loading_mark.getValue());
                context().addStringToImports( file, ( ( ( comp_inst.getComp_package() + "." ) + comp_inst.getComp_name() ) + inst_loading_mark.getValue() ) + "Loader", ImportType.IMPL );
            }
            final C_C _final2_c_c = c_c;
            Mark sim_time_mark = context().Mark_instances().anyWhere(selected -> ( StringUtil.equality(((Mark)selected).getMarkable_name(), "Component") && StringUtil.equality(((Mark)selected).getPath(), ( context().containerMarkingPath( c_c_pe ) + "::" ) + _final2_c_c.getName()) ) && StringUtil.equality(((Mark)selected).getFeature_name(), "EnableSimulatedTime"));
            if ( !sim_time_mark.isEmpty() ) {
                context().LOG().LogInfo( "Enabling simulated time for componenent: " + comp_inst.getComp_name() );
                comp_inst.setSimulated_time(true);
            }
            current_comp_inst = comp_inst;
        }
        SatisfactionSet c_sfs = root_package.R8000_contains_PackageableElement().R8001_is_a_Satisfaction();
        Satisfaction c_sf;
        for ( Iterator _c_sf_iter = c_sfs.elements().iterator(); _c_sf_iter.hasNext(); ) {
            c_sf = _c_sf_iter.next();
            context().transformSatisfaction( c_sf );
        }
        if ( app.getAsync() ) {
            context().addStringToImports( file, "java.io.File", ImportType.IMPL );
            context().addStringToImports( file, "java.io.IOException", ImportType.IMPL );
            context().addStringToImports( file, "java.lang.reflect.InvocationTargetException", ImportType.IMPL );
            context().addStringToImports( file, "java.lang.reflect.Method", ImportType.IMPL );
            context().addStringToImports( file, "java.util.Scanner", ImportType.IMPL );
            context().addStringToImports( file, "org.json.JSONObject", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.application.tasks.ReceivedMessageTask", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.interfaces.IPort", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.interfaces.Message", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.util.CommandLine", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.instanceloading.IChangeLog", ImportType.IMPL );
        }
        else {
            context().addStringToImports( file, "io.ciera.runtime.summit.application.tasks.HaltExecutionTask", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.application.tasks.GenericExecutionTask", ImportType.IMPL );
            context().addStringToImports( file, "java.util.Arrays", ImportType.IMPL );
        }
        context().addStringToImports( file, "io.ciera.runtime.summit.application.ApplicationExecutor", ImportType.IMPL );
        context().addStringToImports( file, "io.ciera.runtime.summit.application.IApplication", ImportType.IMPL );
        context().addStringToImports( file, "io.ciera.runtime.summit.application.ILogger", ImportType.IMPL );
        context().addStringToImports( file, "io.ciera.runtime.summit.components.IComponent", ImportType.IMPL );
        context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.XtumlException", ImportType.IMPL );
    }

    public void transformArrayElementReference( final V_AER p_v_aer,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        V_AER v_aer = p_v_aer;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_aer.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        Value root_val = v_aer.R838_has_root_Value();
        context().transformExpression( root_val, expr.getExpression_number() + ".1", smt );
        Expression root_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), expr.getExpression_number() + ".1"));
        Value index_val = v_aer.R839_has_index_Value();
        context().transformExpression( index_val, expr.getExpression_number() + ".2", smt );
        Expression index_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), expr.getExpression_number() + ".2"));
        ArrayElementReference array_ref = ArrayElementReferenceImpl.create( context() );
        context().relate_R776_ArrayElementReference_is_a_Expression( array_ref, expr );
        context().relate_R3900_ArrayElementReference_has_root_Expression( array_ref, root_expr );
        context().relate_R3901_ArrayElementReference_has_index_Expression( array_ref, index_expr );
    }

    public void transformArrayLengthValue( final ArrayLengthValue p_v_alv,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        ArrayLengthValue v_alv = p_v_alv;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        TypeReference type = context().TypeReference_getBuiltinTypeReference( "int" );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        Value root_val = v_alv.R840_returns_length_of_Value();
        context().transformExpression( root_val, expr.getExpression_number() + ".1", smt );
        Expression root_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), expr.getExpression_number() + ".1"));
        ArrayLengthAccess array_len = ArrayLengthAccessImpl.create( context() );
        context().relate_R776_ArrayLengthAccess_is_a_Expression( array_len, expr );
        context().relate_R3908_ArrayLengthAccess_has_root_Expression( array_len, root_expr );
    }

    public void transformAssignToMember( final AssignToMember p_act_ai,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        AssignToMember act_ai = p_act_ai;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_ai.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        ExpressionAsStatement eas = ExpressionAsStatementImpl.create( context() );
        context().relate_R451_ExpressionAsStatement_is_a_Statement( eas, smt );
        Value l_val = act_ai.R689_writes_Value();
        DataType l_val_dt = l_val.R820_has_type_DataType();
        Value r_val = act_ai.R609_reads_Value();
        DataType r_val_dt = r_val.R820_has_type_DataType();
        V_VAR v_var = l_val.R801_is_a_TransientValueReference().R805_references_V_VAR();
        if ( v_var.isEmpty() ) {
            v_var = l_val.R801_is_a_InstanceReference().R808_refers_to_V_VAR();
            if ( v_var.isEmpty() ) {
                v_var = l_val.R801_is_a_InstanceSetReference().R809_refers_to_V_VAR();
            }
        }
        int num_references = context().numReferences( v_var );
        BridgeValue r_brv = r_val.R801_is_a_BridgeValue();
        FunctionValue r_fnv = r_val.R801_is_a_FunctionValue();
        OperationValue r_trv = r_val.R801_is_a_OperationValue();
        boolean rhs_is_invocation = ( !r_brv.isEmpty() || !r_fnv.isEmpty() ) || !r_trv.isEmpty();
        BridgeSet s_brgs = ((BridgeSet)act_ai.R603_is_a_ACT_SMT().R602_contains_Block().R601_is_committed_from_Body().R601_has_committed_Block().R602_contained_by_ACT_SMT().R603_is_a_BridgeInvocation().R674_is_an_invocation_of_Bridge().where(selected -> StringUtil.equality(((Bridge)selected).getName(), "include")));
        ExternalEntity s_ee = s_brgs.R19_provides_access_to_ExternalEntity().anyWhere(selected -> StringUtil.equality(((ExternalEntity)selected).getKey_Lett(), "T"));
        if ( ( s_ee.isEmpty() && rhs_is_invocation ) && num_references == 1 ) {
            context().transformExpression( r_val, "1", smt );
            Expression r_op = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), "1"));
            context().relate_R476_ExpressionAsStatement_executes_as_statement_Expression( eas, r_op );
        }
        else {
            Expression expr = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( expr, smt );
            expr.setExpression_number("1");
            context().relate_R476_ExpressionAsStatement_executes_as_statement_Expression( eas, expr );
            BinaryOperation binop = BinaryOperationImpl.create( context() );
            context().relate_R776_BinaryOperation_is_a_Expression( binop, expr );
            binop.setOperator("=");
            binop.setInvocation(false);
            context().transformExpression( l_val, "1.1", smt );
            Expression l_op = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), "1.1"));
            context().relate_R779_BinaryOperation_has_left_Expression( binop, l_op );
            TypeReference ltype = l_op.R795_expresses_value_of_TypeReference();
            if ( ( l_val_dt.equality(r_val_dt) || StringUtil.equality(l_val_dt.getName(), "real") && StringUtil.equality(r_val_dt.getName(), "integer") ) || StringUtil.equality(l_val_dt.getName(), "timestamp") && StringUtil.equality(r_val_dt.getName(), "integer") ) {
                context().transformExpression( r_val, "1.2", smt );
            }
            else {
                Expression prom_expr = ExpressionImpl.create( context() );
                context().relate_R775_Expression_expressed_within_Statement( prom_expr, smt );
                prom_expr.setExpression_number("1.2");
                context().relate_R795_Expression_expresses_value_of_TypeReference( prom_expr, ltype );
                Promotion prom = PromotionImpl.create( context() );
                context().relate_R776_Promotion_is_a_Expression( prom, prom_expr );
                if ( context().typeIsBasedOn( r_val_dt, l_val_dt ) ) {
                    prom.setCast(true);
                }
                else {
                    prom.setCast(false);
                    File file = context().getFileForStatement( smt );
                    Type l_type = ltype.R3800_based_on_Type();
                    context().addTypeToImports( file, l_type, ImportType.IMPL );
                }
                context().transformExpression( r_val, "1.2.1", smt );
                Expression prom_val = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), "1.2.1"));
                context().relate_R3907_Promotion_promotes_Expression( prom, prom_val );
            }
            Expression r_op = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), "1.2"));
            context().relate_R778_BinaryOperation_has_right_Expression( binop, r_op );
            TypeReference type = l_op.R795_expresses_value_of_TypeReference();
            context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        }
    }

    public void transformAssociation( final Association p_r_rel,  final ComponentDefinition p_containing_comp_def ) throws XtumlException {
        Association r_rel = p_r_rel;
        ComponentDefinition containing_comp_def = p_containing_comp_def;
        File file = containing_comp_def.R401_is_a_File();
        PackageableElement pe = r_rel.R8001_is_a_PackageableElement();
        Mark assoc_exclude_mark = context().Mark_instances().anyWhere(selected -> ( StringUtil.equality(((Mark)selected).getMarkable_name(), "Association") && StringUtil.equality(((Mark)selected).getPath(), ( context().containerMarkingPath( pe ) + "::R" ) + context().STRING().itoa( r_rel.getNumb() )) ) && StringUtil.equality(((Mark)selected).getFeature_name(), "Exclude"));
        if ( assoc_exclude_mark.isEmpty() ) {
            String form_phrase = "";
            ModelInst form_class = ModelInstImpl.EMPTY_MODELINST;
            Mult form_mult = Mult.ONE;
            Mult part_mult = Mult.ONE;
            Cond form_cond = Cond.UNCONDITIONAL;
            String part_phrase = "";
            ModelInst part_class = ModelInstImpl.EMPTY_MODELINST;
            Cond part_cond = Cond.UNCONDITIONAL;
            SimpleAssociation r_simp = r_rel.R206_is_a_SimpleAssociation();
            if ( !r_simp.isEmpty() ) {
                ClassAsSimpleFormalizer r_form = r_simp.R208_relates_ClassAsSimpleFormalizer();
                form_class = r_form.R205_is_a_ReferringClassInAssoc().R203_is_a_ClassInAssociation().R201_abstracts_association_between_instances_of_ModelClass().R409_ModelInst();
                if ( !form_class.isEmpty() ) {
                    ClassAsSimpleParticipant r_part = r_simp.R207_relates_ClassAsSimpleParticipant().any();
                    part_class = r_part.R204_is_a_ReferredToClassInAssoc().R203_is_a_ClassInAssociation().R201_abstracts_association_between_instances_of_ModelClass().R409_ModelInst();
                    if ( !part_class.isEmpty() ) {
                        form_phrase = r_form.getTxt_Phrs();
                        part_phrase = r_part.getTxt_Phrs();
                        if ( 0 != r_form.getMult() ) {
                            form_mult = Mult.MANY;
                        }
                        if ( 0 != r_part.getMult() ) {
                            part_mult = Mult.MANY;
                        }
                        if ( 0 != r_form.getCond() ) {
                            form_cond = Cond.CONDITIONAL;
                        }
                        if ( 0 != r_part.getCond() ) {
                            part_cond = Cond.CONDITIONAL;
                        }
                    }
                    else {
                    }
                }
                else {
                    boolean decided = false;
                    ClassAsSimpleParticipant r_part1 = r_simp.R207_relates_ClassAsSimpleParticipant().any();
                    final ClassAsSimpleParticipant _final0_r_part1 = r_part1;
                    ClassAsSimpleParticipant r_part2 = r_simp.R207_relates_ClassAsSimpleParticipant().anyWhere(selected -> ((ClassAsSimpleParticipant)selected).getOIR_ID().inequality(_final0_r_part1.getOIR_ID()));
                    if ( r_part1.getMult() != 0 ) {
                        if ( r_part2.getMult() == 0 ) {
                            ClassAsSimpleParticipant a_part = r_part1;
                            r_part1 = r_part2;
                            r_part2 = a_part;
                            decided = true;
                        }
                    }
                    part_class = r_part1.R204_is_a_ReferredToClassInAssoc().R203_is_a_ClassInAssociation().R201_abstracts_association_between_instances_of_ModelClass().R409_ModelInst();
                    form_class = r_part2.R204_is_a_ReferredToClassInAssoc().R203_is_a_ClassInAssociation().R201_abstracts_association_between_instances_of_ModelClass().R409_ModelInst();
                    if ( !form_class.isEmpty() && !part_class.isEmpty() ) {
                        if ( !decided ) {
                            if ( StringUtil.greaterThan(part_class.getName(), form_class.getName()) ) {
                                ClassAsSimpleParticipant a_part = r_part1;
                                r_part1 = r_part2;
                                r_part2 = a_part;
                                ModelInst a_class = part_class;
                                part_class = form_class;
                                form_class = a_class;
                            }
                        }
                        context().LOG().LogInfo( ( ( "AM:: xformAssoc - form: " + form_class.getName() ) + " part: " ) + part_class.getName() );
                        form_phrase = r_part2.getTxt_Phrs();
                        part_phrase = r_part1.getTxt_Phrs();
                        if ( 0 != r_part2.getMult() ) {
                            form_mult = Mult.MANY;
                        }
                        if ( 0 != r_part1.getMult() ) {
                            part_mult = Mult.MANY;
                        }
                        if ( 0 != r_part2.getCond() ) {
                            form_cond = Cond.CONDITIONAL;
                        }
                        if ( 0 != r_part1.getCond() ) {
                            part_cond = Cond.CONDITIONAL;
                        }
                    }
                    else {
                    }
                }
                ClassRelationship rel = ClassRelationshipImpl.create( context() );
                String name = ( ( ( "R" + context().STRING().itoa( r_rel.getNumb() ) ) + "_" ) + form_class.getName() ) + "_";
                if ( StringUtil.inequality("", part_phrase) ) {
                    name = ( name + context().T().sub( "_", part_phrase ) ) + "_";
                }
                name = name + part_class.getName();
                rel.setName(name);
                rel.setNum(r_rel.getNumb());
                rel.setForm_phrase(form_phrase);
                rel.setPart_phrase(part_phrase);
                rel.setForm_mult(form_mult);
                rel.setPart_mult(part_mult);
                rel.setForm_cond(form_cond);
                rel.setPart_cond(part_cond);
                rel.setRel_type(RelationshipType.BINARY);
                context().relate_R448_ClassRelationship_forms_relationship_population_of_ComponentDefinition( rel, containing_comp_def );
                context().relate_R435_ClassRelationship_has_formalizing_ModelInst( rel, form_class );
                context().relate_R434_ClassRelationship_has_participating_ModelInst( rel, part_class );
                ClassIdentifier o_id = r_simp.R207_relates_ClassAsSimpleParticipant().R204_is_a_ReferredToClassInAssoc().R109_is_identified_in_this_association_by_ClassIdentifier().any();
                if ( !o_id.isEmpty() ) {
                    rel.setId_num(o_id.getOid_ID() + 1);
                }
                else {
                    rel.setId_num(0);
                }
            }
            else {
                SubtypeSupertypeAssociation r_subsup = r_rel.R206_is_a_SubtypeSupertypeAssociation();
                if ( !r_subsup.isEmpty() ) {
                    part_class = r_subsup.R212_relates_ClassAsSupertype().R204_is_a_ReferredToClassInAssoc().R203_is_a_ClassInAssociation().R201_abstracts_association_between_instances_of_ModelClass().R409_ModelInst();
                    ModelInstSet sub_classes = r_subsup.R213_relates_ClassAsSubtype().R205_is_a_ReferringClassInAssoc().R203_is_a_ClassInAssociation().R201_abstracts_association_between_instances_of_ModelClass().R409_ModelInst();
                    if ( !part_class.isEmpty() && !sub_classes.isEmpty() ) {
                        part_phrase = "is_a";
                        for ( Iterator _form_class_iter = sub_classes.elements().iterator(); _form_class_iter.hasNext(); ) {
                            form_class = _form_class_iter.next();
                            form_phrase = "is_a";
                            form_cond = Cond.CONDITIONAL;
                            ClassRelationship rel = ClassRelationshipImpl.create( context() );
                            String name = ( ( ( "R" + context().STRING().itoa( r_rel.getNumb() ) ) + "_" ) + form_class.getName() ) + "_";
                            if ( StringUtil.inequality("", part_phrase) ) {
                                name = ( name + part_phrase ) + "_";
                            }
                            name = name + part_class.getName();
                            rel.setName(name);
                            rel.setNum(r_rel.getNumb());
                            rel.setForm_phrase(form_phrase);
                            rel.setPart_phrase(part_phrase);
                            rel.setForm_mult(form_mult);
                            rel.setPart_mult(part_mult);
                            rel.setForm_cond(form_cond);
                            rel.setPart_cond(part_cond);
                            rel.setRel_type(RelationshipType.SUPERSUBTYPE);
                            context().relate_R448_ClassRelationship_forms_relationship_population_of_ComponentDefinition( rel, containing_comp_def );
                            context().relate_R435_ClassRelationship_has_formalizing_ModelInst( rel, form_class );
                            context().relate_R434_ClassRelationship_has_participating_ModelInst( rel, part_class );
                            ClassIdentifier o_id = r_subsup.R212_relates_ClassAsSupertype().R204_is_a_ReferredToClassInAssoc().R109_is_identified_in_this_association_by_ClassIdentifier();
                            if ( !o_id.isEmpty() ) {
                                rel.setId_num(o_id.getOid_ID() + 1);
                            }
                            else {
                                rel.setId_num(0);
                            }
                            if ( 8001 == rel.getNum() && StringUtil.equality("EP_PKG", rel.getForm_name()) ) {
                                context().LOG().LogInfo( "  Special casing R8001 EP_PKG to PackageableElement" );
                                rel.setPart_cond(Cond.CONDITIONAL);
                            }
                        }
                    }
                    else {
                    }
                }
                else {
                    LinkedAssociation r_assoc = r_rel.R206_is_a_LinkedAssociation();
                    if ( !r_assoc.isEmpty() ) {
                        ClassAsLink r_assr = r_assoc.R211_uses_a_formalizer_ClassAsLink();
                        ClassAsAssociatedOneSide r_aone = r_assoc.R209_relates_ClassAsAssociatedOneSide();
                        ClassAsAssociatedOtherSide r_aoth = r_assoc.R210_relates_ClassAsAssociatedOtherSide();
                        form_class = r_assr.R205_is_a_ReferringClassInAssoc().R203_is_a_ClassInAssociation().R201_abstracts_association_between_instances_of_ModelClass().R409_ModelInst();
                        part_class = r_aone.R204_is_a_ReferredToClassInAssoc().R203_is_a_ClassInAssociation().R201_abstracts_association_between_instances_of_ModelClass().R409_ModelInst();
                        if ( ( !form_class.isEmpty() && !part_class.isEmpty() ) && !r_aoth.isEmpty() ) {
                            form_phrase = r_aoth.getTxt_Phrs();
                            part_phrase = r_aone.getTxt_Phrs();
                            if ( 0 != r_assr.getMult() || 0 != r_aoth.getMult() ) {
                                form_mult = Mult.MANY;
                            }
                            if ( 0 != r_aoth.getCond() ) {
                                form_cond = Cond.CONDITIONAL;
                            }
                        }
                        else {
                        }
                        ClassRelationship rel1 = ClassRelationshipImpl.create( context() );
                        String name1 = ( ( ( "R" + context().STRING().itoa( r_rel.getNumb() ) ) + "_" ) + form_class.getName() ) + "_";
                        if ( StringUtil.inequality("", part_phrase) ) {
                            name1 = ( name1 + context().T().sub( "_", part_phrase ) ) + "_";
                        }
                        name1 = name1 + part_class.getName();
                        rel1.setName(name1);
                        rel1.setNum(r_rel.getNumb());
                        rel1.setForm_phrase(form_phrase);
                        rel1.setPart_phrase(part_phrase);
                        rel1.setForm_mult(form_mult);
                        rel1.setPart_mult(part_mult);
                        rel1.setForm_cond(form_cond);
                        rel1.setPart_cond(part_cond);
                        rel1.setRel_type(RelationshipType.ASSOCIATIVE);
                        context().relate_R448_ClassRelationship_forms_relationship_population_of_ComponentDefinition( rel1, containing_comp_def );
                        context().relate_R435_ClassRelationship_has_formalizing_ModelInst( rel1, form_class );
                        context().relate_R434_ClassRelationship_has_participating_ModelInst( rel1, part_class );
                        ClassIdentifier o_id1 = r_assoc.R209_relates_ClassAsAssociatedOneSide().R204_is_a_ReferredToClassInAssoc().R109_is_identified_in_this_association_by_ClassIdentifier();
                        if ( !o_id1.isEmpty() ) {
                            rel1.setId_num(o_id1.getOid_ID() + 1);
                        }
                        else {
                            rel1.setId_num(0);
                        }
                        form_phrase = "";
                        form_mult = Mult.ONE;
                        form_cond = Cond.UNCONDITIONAL;
                        part_phrase = "";
                        part_cond = Cond.UNCONDITIONAL;
                        part_class = r_aoth.R204_is_a_ReferredToClassInAssoc().R203_is_a_ClassInAssociation().R201_abstracts_association_between_instances_of_ModelClass().R409_ModelInst();
                        if ( ( !form_class.isEmpty() && !part_class.isEmpty() ) && !r_aone.isEmpty() ) {
                            form_phrase = r_aone.getTxt_Phrs();
                            part_phrase = r_aoth.getTxt_Phrs();
                            if ( 0 != r_assr.getMult() || 0 != r_aone.getMult() ) {
                                form_mult = Mult.MANY;
                            }
                            if ( 0 != r_aone.getCond() ) {
                                form_cond = Cond.CONDITIONAL;
                            }
                        }
                        else {
                        }
                        ClassRelationship rel2 = ClassRelationshipImpl.create( context() );
                        String name2 = ( ( ( "R" + context().STRING().itoa( r_rel.getNumb() ) ) + "_" ) + form_class.getName() ) + "_";
                        if ( StringUtil.inequality("", part_phrase) ) {
                            name2 = ( name2 + context().T().sub( "_", part_phrase ) ) + "_";
                        }
                        name2 = name2 + part_class.getName();
                        rel2.setName(name2);
                        rel2.setNum(r_rel.getNumb());
                        rel2.setForm_phrase(form_phrase);
                        rel2.setPart_phrase(part_phrase);
                        rel2.setForm_mult(form_mult);
                        rel2.setPart_mult(part_mult);
                        rel2.setForm_cond(form_cond);
                        rel2.setPart_cond(part_cond);
                        rel2.setRel_type(RelationshipType.ASSOCIATIVE);
                        context().relate_R448_ClassRelationship_forms_relationship_population_of_ComponentDefinition( rel2, containing_comp_def );
                        context().relate_R435_ClassRelationship_has_formalizing_ModelInst( rel2, form_class );
                        context().relate_R434_ClassRelationship_has_participating_ModelInst( rel2, part_class );
                        ClassIdentifier o_id2 = r_assoc.R210_relates_ClassAsAssociatedOtherSide().R204_is_a_ReferredToClassInAssoc().R109_is_identified_in_this_association_by_ClassIdentifier();
                        if ( !o_id2.isEmpty() ) {
                            rel2.setId_num(o_id2.getOid_ID() + 1);
                        }
                        else {
                            rel2.setId_num(0);
                        }
                        context().relate_R436_ClassRelationship_is_other_half_of_associative_ClassRelationship( rel2, rel1 );
                    }
                    else {
                    }
                }
            }
            context().addStringToImports( file, "io.ciera.runtime.summit.classes.RelationshipSet", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.classes.Relationship", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.classes.IRelationshipSet", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.BadArgumentException", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.EmptyInstanceException", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.ModelIntegrityException", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.XtumlException", ImportType.IMPL );
        }
    }

    public void transformAttribute( final O_ATTR p_o_attr,  final ModelInst p_obj,  final int p_index ) throws XtumlException {
        O_ATTR o_attr = p_o_attr;
        ModelInst obj = p_obj;
        Attribute attr = AttributeImpl.create( context() );
        ReferentialAttribute rattr = o_attr.R106_is_a_ReferentialAttribute();
        if ( !rattr.isEmpty() ) {
            attr.setName("ref_" + o_attr.getName());
        }
        else {
            attr.setName("m_" + o_attr.getName());
        }
        attr.setBase_name(o_attr.getName());
        attr.setOrder(p_index);
        attr.setDefault_value(o_attr.getDefaultValue());
        context().relate_R410_Attribute_abstracts_data_for_ModelInst( attr, obj );
        attr.setIdentifier(0);
        ClassIdentifierSet inst_ids = o_attr.R105_is_part_of__ClassIdentifierAttribute().R105_is_part_of__ClassIdentifier();
        ClassIdentifier inst_id;
        for ( Iterator _inst_id_iter = inst_ids.elements().iterator(); _inst_id_iter.hasNext(); ) {
            inst_id = _inst_id_iter.next();
            if ( inst_id.getOid_ID() == 0 ) {
                attr.setIdentifier(attr.getIdentifier() + 1);
            }
            else if ( inst_id.getOid_ID() == 1 ) {
                attr.setIdentifier(attr.getIdentifier() + 2);
            }
            else if ( inst_id.getOid_ID() == 2 ) {
                attr.setIdentifier(attr.getIdentifier() + 4);
            }
        }
        DataType s_dt = o_attr.R114_defines_type_of_DataType();
        if ( StringUtil.equality("same_as", s_dt.getName()) ) {
            s_dt = o_attr.R106_is_a_ReferentialAttribute().R113_navigates_back_to_BaseAttribute().R106_is_a_O_ATTR().R114_defines_type_of_DataType();
        }
        if ( s_dt.isEmpty() ) {
        }
        DimensionsSet s_dims = o_attr.R120_may_have_Dimensions();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        ArrayTypeReference array_type = type.R3801_is_a_ArrayTypeReference();
        context().relate_R424_Attribute_is_typed_by_TypeReference( attr, type );
        if ( StringUtil.equality("UniqueId", type.getType_name()) ) {
            attr.setDefault_value("UniqueId.random()");
        }
        context().relate_R414_O_ATTR_Attribute( o_attr, attr );
        AttributeAccessor getter = AttributeAccessorImpl.create( context() );
        getter.setAccessor_type(AttributeAccessorType.GETTER);
        context().relate_R4510_AttributeAccessor_gets_and_sets_Attribute( getter, attr );
        AttributeAccessor setter = AttributeAccessorImpl.create( context() );
        setter.setAccessor_type(AttributeAccessorType.SETTER);
        context().relate_R4510_AttributeAccessor_gets_and_sets_Attribute( setter, attr );
        DerivedBaseAttribute o_dbattr = o_attr.R106_is_a_BaseAttribute().R107_is_a_DerivedBaseAttribute();
        if ( !o_dbattr.isEmpty() ) {
            AttributeDerivation deriv = AttributeDerivationImpl.create( context() );
            context().relate_R441_AttributeDerivation_calculates_value_for_AttributeAccessor( deriv, getter );
            InvocableObject invocable = InvocableObjectImpl.create( context() );
            invocable.setName(attr.getName());
            invocable.setParent_name(attr.getClass_name());
            invocable.setParent_package(attr.getClass_package());
            context().relate_R427_AttributeDerivation_is_a_InvocableObject( deriv, invocable );
            invocable.setActions(o_dbattr.getAction_Semantics_internal());
            context().relate_R428_InvocableObject_return_value_is_typed_by_TypeReference( invocable, type );
            Body act_act = o_dbattr.R693_DerivedAttributeBody().R698_is_a_Body();
            if ( !act_act.isEmpty() ) {
                context().relate_R432_InvocableObject_Body( invocable, act_act );
            }
        }
        File file = obj.R401_is_a_File();
        context().addStringToImports( file, "io.ciera.runtime.instanceloading.AttributeChangedDelta", ImportType.IMPL );
        context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.XtumlException", ImportType.BOTH );
        context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.EmptyInstanceException", ImportType.IMPL );
        if ( !array_type.isEmpty() ) {
            context().addStringToImports( file, "io.ciera.runtime.summit.types.ArrayUtil", ImportType.IMPL );
        }
        else if ( StringUtil.equality("String", type.getType_name()) && StringUtil.equality("", type.getType_package()) ) {
            context().addStringToImports( file, "io.ciera.runtime.summit.types.StringUtil", ImportType.IMPL );
        }
    }

    public void transformAttributeReferences( final ModelInst p_obj ) throws XtumlException {
        ModelInst obj = p_obj;
        AttributeSet attrs = obj.R410_data_abstracted_by_Attribute();
        Attribute attr;
        for ( Iterator _attr_iter = attrs.elements().iterator(); _attr_iter.hasNext(); ) {
            attr = _attr_iter.next();
            AttributeReferenceInClassSet o_refs = attr.R414_O_ATTR().R106_is_a_ReferentialAttribute().R108_resolves__AttributeReferenceInClass();
            AttributeReferenceInClass o_ref;
            for ( Iterator _o_ref_iter = o_refs.elements().iterator(); _o_ref_iter.hasNext(); ) {
                o_ref = _o_ref_iter.next();
                Association r_rel = o_ref.R111_refers_across_association_via_ReferredToIdentifierAttribute().R110_identifies_for_this_association_ReferredToClassInAssoc().R203_is_a_ClassInAssociation().R201_has_instance_associations_abstracted_Association();
                Attribute referred_to_attr = o_ref.R111_refers_across_association_via_ReferredToIdentifierAttribute().R110_is_identified_in_this_association_by_ClassIdentifierAttribute().R105_is_made_up_of__O_ATTR().R414_Attribute();
                ModelInst referred_to_obj = referred_to_attr.R410_abstracts_data_for_ModelInst();
                String referred_to_phrase = context().oirGetPhrase( o_ref.getROIR_ID() );
                String phrase = context().oirGetPhrase( o_ref.getOIR_ID() );
                ClassRelationship relationship = context().ClassRelationship_instances().anyWhere(selected -> ( ( ((ClassRelationship)selected).getNum() == r_rel.getNumb() && StringUtil.equality(((ClassRelationship)selected).getForm_name(), obj.getName()) ) && StringUtil.equality(((ClassRelationship)selected).getPart_name(), referred_to_obj.getName()) ) && ( StringUtil.equality(((ClassRelationship)selected).getForm_phrase(), phrase) || StringUtil.equality(((ClassRelationship)selected).getPart_phrase(), referred_to_phrase) ));
                AttributeReference attr_ref = AttributeReferenceImpl.create( context() );
                context().relate_R4506_AttributeReference_provides_value_for_Attribute( attr_ref, attr );
                context().relate_R4506_AttributeReference_has_value_provided_by_Attribute( attr_ref, referred_to_attr );
                context().relate_R4511_AttributeReference_refers_to_another_attribute_through_ClassRelationship( attr_ref, relationship );
            }
        }
    }

    public void transformAttributeValueReference( final AttributeValueReference p_v_avl,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        AttributeValueReference v_avl = p_v_avl;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_avl.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        AttributeAccess acc = AttributeAccessImpl.create( context() );
        context().relate_R776_AttributeAccess_is_a_Expression( acc, expr );
        Value root_val = v_avl.R807_has_root_Value();
        context().transformExpression( root_val, expr.getExpression_number() + ".1", smt );
        Expression root_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), expr.getExpression_number() + ".1"));
        context().relate_R785_AttributeAccess_refers_to_attribute_of_instance_expressed_by_Expression( acc, root_expr );
        Attribute attr = v_avl.R806_is_value_of_O_ATTR().R414_Attribute();
        context().relate_R788_AttributeAccess_refers_to_Attribute( acc, attr );
    }

    public void transformBinaryOperation( final V_BIN p_v_bin,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        V_BIN v_bin = p_v_bin;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        File file = context().getFileForStatement( smt );
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        Value v_val = v_bin.R801_is_a_Value();
        DataType s_dt = v_val.R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        ArrayTypeReference array_type = type.R3801_is_a_ArrayTypeReference();
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        BinaryOperation binary = BinaryOperationImpl.create( context() );
        context().relate_R776_BinaryOperation_is_a_Expression( binary, expr );
        Value l_val = v_bin.R802_has_left_Value();
        Value r_val = v_bin.R803_has_right_Value();
        DataType l_s_dt = l_val.R820_has_type_DataType();
        Type l_type = l_s_dt.R423_Type();
        InstSet l_set = l_type.R407_is_a_InstSet();
        binary.setInvocation(false);
        binary.setUtil(false);
        if ( StringUtil.equality("and", context().T().sub( "l", v_bin.getOperator() )) ) {
            if ( l_type.primitive() ) {
                binary.setOperator("&&");
            }
            else {
                binary.setOperator("and");
                binary.setInvocation(true);
            }
        }
        else if ( StringUtil.equality("or", context().T().sub( "l", v_bin.getOperator() )) ) {
            if ( l_type.primitive() ) {
                binary.setOperator("||");
            }
            else {
                binary.setOperator("or");
                binary.setInvocation(true);
            }
        }
        else if ( StringUtil.equality("==", context().T().sub( "l", v_bin.getOperator() )) ) {
            if ( l_type.primitive() ) {
                binary.setOperator("==");
            }
            else {
                if ( !array_type.isEmpty() ) {
                    binary.setOperator("ArrayUtil.equality");
                    binary.setInvocation(true);
                    binary.setUtil(true);
                    context().addStringToImports( file, "io.ciera.runtime.summit.types.ArrayUtil", ImportType.IMPL );
                }
                else if ( StringUtil.equality("String", l_type.getName()) && StringUtil.equality("", l_type.getPackage()) ) {
                    binary.setOperator("StringUtil.equality");
                    binary.setInvocation(true);
                    binary.setUtil(true);
                    context().addStringToImports( file, "io.ciera.runtime.summit.types.StringUtil", ImportType.IMPL );
                }
                else {
                    binary.setOperator("equality");
                    binary.setInvocation(true);
                }
            }
        }
        else if ( StringUtil.equality("!=", context().T().sub( "l", v_bin.getOperator() )) ) {
            if ( l_type.primitive() ) {
                binary.setOperator("!=");
            }
            else {
                if ( !array_type.isEmpty() ) {
                    binary.setOperator("ArrayUtil.inequality");
                    binary.setInvocation(true);
                    binary.setUtil(true);
                    context().addStringToImports( file, "io.ciera.runtime.summit.types.ArrayUtil", ImportType.IMPL );
                }
                else if ( StringUtil.equality("String", l_type.getName()) && StringUtil.equality("", l_type.getPackage()) ) {
                    binary.setOperator("StringUtil.inequality");
                    binary.setInvocation(true);
                    binary.setUtil(true);
                    context().addStringToImports( file, "io.ciera.runtime.summit.types.StringUtil", ImportType.IMPL );
                }
                else {
                    binary.setOperator("inequality");
                    binary.setInvocation(true);
                }
            }
        }
        else if ( StringUtil.equality("<", context().T().sub( "l", v_bin.getOperator() )) ) {
            if ( l_type.primitive() ) {
                binary.setOperator("<");
            }
            else {
                if ( !array_type.isEmpty() ) {
                    binary.setOperator("ArrayUtil.lessThan");
                    binary.setInvocation(true);
                    binary.setUtil(true);
                    context().addStringToImports( file, "io.ciera.runtime.summit.types.ArrayUtil", ImportType.IMPL );
                }
                else if ( StringUtil.equality("String", l_type.getName()) && StringUtil.equality("", l_type.getPackage()) ) {
                    binary.setOperator("StringUtil.lessThan");
                    binary.setInvocation(true);
                    binary.setUtil(true);
                    context().addStringToImports( file, "io.ciera.runtime.summit.types.StringUtil", ImportType.IMPL );
                }
                else {
                    binary.setOperator("lessThan");
                    binary.setInvocation(true);
                }
            }
        }
        else if ( StringUtil.equality("<=", context().T().sub( "l", v_bin.getOperator() )) ) {
            if ( l_type.primitive() ) {
                binary.setOperator("<=");
            }
            else {
                if ( !array_type.isEmpty() ) {
                    binary.setOperator("ArrayUtil.lessThanOrEqual");
                    binary.setInvocation(true);
                    binary.setUtil(true);
                    context().addStringToImports( file, "io.ciera.runtime.summit.types.ArrayUtil", ImportType.IMPL );
                }
                else if ( StringUtil.equality("String", l_type.getName()) && StringUtil.equality("", l_type.getPackage()) ) {
                    binary.setOperator("StringUtil.lessThanOrEqual");
                    binary.setInvocation(true);
                    binary.setUtil(true);
                    context().addStringToImports( file, "io.ciera.runtime.summit.types.StringUtil", ImportType.IMPL );
                }
                else {
                    binary.setOperator("lessThanOrEqual");
                    binary.setInvocation(true);
                }
            }
        }
        else if ( StringUtil.equality(">", context().T().sub( "l", v_bin.getOperator() )) ) {
            if ( l_type.primitive() ) {
                binary.setOperator(">");
            }
            else {
                if ( !array_type.isEmpty() ) {
                    binary.setOperator("ArrayUtil.greaterThan");
                    binary.setInvocation(true);
                    binary.setUtil(true);
                    context().addStringToImports( file, "io.ciera.runtime.summit.types.ArrayUtil", ImportType.IMPL );
                }
                else if ( StringUtil.equality("String", l_type.getName()) && StringUtil.equality("", l_type.getPackage()) ) {
                    binary.setOperator("StringUtil.greaterThan");
                    binary.setInvocation(true);
                    binary.setUtil(true);
                    context().addStringToImports( file, "io.ciera.runtime.summit.types.StringUtil", ImportType.IMPL );
                }
                else {
                    binary.setOperator("greaterThan");
                    binary.setInvocation(true);
                }
            }
        }
        else if ( StringUtil.equality(">=", context().T().sub( "l", v_bin.getOperator() )) ) {
            if ( l_type.primitive() ) {
                binary.setOperator(">=");
            }
            else {
                if ( !array_type.isEmpty() ) {
                    binary.setOperator("ArrayUtil.greaterThanOrEqual");
                    binary.setInvocation(true);
                    binary.setUtil(true);
                    context().addStringToImports( file, "io.ciera.runtime.summit.types.ArrayUtil", ImportType.IMPL );
                }
                else if ( StringUtil.equality("String", l_type.getName()) && StringUtil.equality("", l_type.getPackage()) ) {
                    binary.setOperator("StringUtil.greaterThanOrEqual");
                    binary.setInvocation(true);
                    binary.setUtil(true);
                    context().addStringToImports( file, "io.ciera.runtime.summit.types.StringUtil", ImportType.IMPL );
                }
                else {
                    binary.setOperator("greaterThanOrEqual");
                    binary.setInvocation(true);
                }
            }
        }
        else if ( StringUtil.equality("+", context().T().sub( "l", v_bin.getOperator() )) ) {
            if ( l_type.primitive() ) {
                binary.setOperator("+");
            }
            else {
                if ( !l_set.isEmpty() ) {
                    binary.setOperator("union");
                    binary.setInvocation(true);
                    binary.setCast(l_type.getName());
                }
                else if ( StringUtil.equality("String", l_type.getName()) && StringUtil.equality("", l_type.getPackage()) ) {
                    binary.setOperator("+");
                }
                else {
                    binary.setOperator("add");
                    binary.setInvocation(true);
                }
            }
        }
        else if ( StringUtil.equality("-", context().T().sub( "l", v_bin.getOperator() )) ) {
            if ( l_type.primitive() ) {
                binary.setOperator("-");
            }
            else {
                if ( !l_set.isEmpty() ) {
                    binary.setOperator("difference");
                    binary.setCast(l_type.getName());
                }
                else {
                    binary.setOperator("subtract");
                }
                binary.setInvocation(true);
            }
        }
        else if ( StringUtil.equality("*", context().T().sub( "l", v_bin.getOperator() )) ) {
            if ( l_type.primitive() ) {
                binary.setOperator("*");
            }
            else {
                binary.setOperator("multiply");
                binary.setInvocation(true);
            }
        }
        else if ( StringUtil.equality("/", context().T().sub( "l", v_bin.getOperator() )) ) {
            if ( l_type.primitive() ) {
                binary.setOperator("/");
            }
            else {
                binary.setOperator("divide");
                binary.setInvocation(true);
            }
        }
        else if ( StringUtil.equality("%", context().T().sub( "l", v_bin.getOperator() )) ) {
            if ( l_type.primitive() ) {
                binary.setOperator("%");
            }
            else {
                binary.setOperator("remainder");
                binary.setInvocation(true);
            }
        }
        else if ( StringUtil.equality("|", context().T().sub( "l", v_bin.getOperator() )) ) {
            binary.setOperator("union");
            binary.setInvocation(true);
            binary.setCast(l_type.getName());
        }
        else if ( StringUtil.equality("&", context().T().sub( "l", v_bin.getOperator() )) ) {
            binary.setOperator("intersection");
            binary.setInvocation(true);
            binary.setCast(l_type.getName());
        }
        else if ( StringUtil.equality("^", context().T().sub( "l", v_bin.getOperator() )) ) {
            binary.setOperator("disunion");
            binary.setInvocation(true);
            binary.setCast(l_type.getName());
        }
        if ( context().precedenceCheck( l_val, v_val ) <= 0 ) {
            context().transformExpression( l_val, expr.getExpression_number() + ".1.1", smt );
            Expression paren_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), expr.getExpression_number() + ".1.1"));
            Expression l_expr = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( l_expr, smt );
            l_expr.setExpression_number(expr.getExpression_number() + ".1");
            TypeReference l_type_ref = paren_expr.R795_expresses_value_of_TypeReference();
            context().relate_R795_Expression_expresses_value_of_TypeReference( l_expr, l_type_ref );
            ParenthesizedExpression l_paren = ParenthesizedExpressionImpl.create( context() );
            context().relate_R776_ParenthesizedExpression_is_a_Expression( l_paren, l_expr );
            context().relate_R779_BinaryOperation_has_left_Expression( binary, l_expr );
            context().relate_R784_ParenthesizedExpression_parenthesizes_Expression( l_paren, paren_expr );
        }
        else {
            context().transformExpression( l_val, expr.getExpression_number() + ".1", smt );
            Expression l_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), expr.getExpression_number() + ".1"));
            context().relate_R779_BinaryOperation_has_left_Expression( binary, l_expr );
        }
        if ( context().precedenceCheck( r_val, v_val ) <= 0 ) {
            context().transformExpression( r_val, expr.getExpression_number() + ".2.1", smt );
            Expression paren_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), expr.getExpression_number() + ".2.1"));
            Expression r_expr = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( r_expr, smt );
            r_expr.setExpression_number(expr.getExpression_number() + ".2");
            TypeReference r_type_ref = paren_expr.R795_expresses_value_of_TypeReference();
            context().relate_R795_Expression_expresses_value_of_TypeReference( r_expr, r_type_ref );
            ParenthesizedExpression r_paren = ParenthesizedExpressionImpl.create( context() );
            context().relate_R776_ParenthesizedExpression_is_a_Expression( r_paren, r_expr );
            context().relate_R778_BinaryOperation_has_right_Expression( binary, r_expr );
            context().relate_R784_ParenthesizedExpression_parenthesizes_Expression( r_paren, paren_expr );
        }
        else {
            context().transformExpression( r_val, expr.getExpression_number() + ".2", smt );
            Expression r_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), expr.getExpression_number() + ".2"));
            context().relate_R778_BinaryOperation_has_right_Expression( binary, r_expr );
        }
    }

    public void transformBlock( final InvocableObject p_invocable,  final CodeBlock p_upper_block,  final Block p_act_blk,  final String p_block_number ) throws XtumlException {
        CodeBlock upper_block = p_upper_block;
        Block act_blk = p_act_blk;
        if ( !act_blk.isEmpty() ) {
            InvocableObject invocable = p_invocable;
            CodeBlock block = CodeBlockImpl.create( context() );
            if ( upper_block.isEmpty() ) {
                block.setTop_level(true);
                block.setTab_depth(1);
                PortMessage port_msg = invocable.R427_is_a_PortMessage();
                if ( !port_msg.isEmpty() ) {
                    Port port = port_msg.R420_is_implemented_within_Port();
                    Message msg = port_msg.R420_provides_implementation_for_Message();
                    if ( msg.getTo_provider() && !port.getProvider() || !msg.getTo_provider() && port.getProvider() ) {
                        block.setTab_depth(2);
                    }
                }
                AttributeDerivation deriv = invocable.R427_is_a_AttributeDerivation();
                Operation class_op = ((Operation)invocable.R427_is_a_Operation().oneWhere(selected -> ((Operation)selected).getIs_class_based()));
                if ( !deriv.isEmpty() || !class_op.isEmpty() ) {
                    block.setTab_depth(2);
                }
            }
            else {
                invocable = upper_block.R4000_is_invoked_in_InvocableObject();
                block.setTop_level(false);
                block.setTab_depth(upper_block.getTab_depth() + 1);
            }
            context().relate_R4000_CodeBlock_is_invoked_in_InvocableObject( block, invocable );
            block.setBlock_number(p_block_number);
            VariableSet vars = upper_block.R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable();
            Variable var;
            for ( Iterator _var_iter = vars.elements().iterator(); _var_iter.hasNext(); ) {
                var = _var_iter.next();
                VariableInScope var_in_scope = VariableInScopeImpl.create( context() );
                context().relate_R458_VariableInScope_has_in_scope_Variable( var_in_scope, var );
                context().relate_R458_VariableInScope_is_in_scope_for_CodeBlock( var_in_scope, block );
            }
            context().transformStatements( act_blk, block );
        }
        else {
        }
    }

    public void transformBlockForElif( final CodeBlock p_upper_block,  final ElseIfStmt p_act_el,  final String p_block_number ) throws XtumlException {
        CodeBlock upper_block = p_upper_block;
        ElseIfStmt act_el = p_act_el;
        InvocableObject invocable = upper_block.R4000_is_invoked_in_InvocableObject();
        CodeBlock block = CodeBlockImpl.create( context() );
        context().relate_R4000_CodeBlock_is_invoked_in_InvocableObject( block, invocable );
        block.setBlock_number(p_block_number);
        block.setTab_depth(upper_block.getTab_depth());
        VariableSet vars = upper_block.R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable();
        Variable var;
        for ( Iterator _var_iter = vars.elements().iterator(); _var_iter.hasNext(); ) {
            var = _var_iter.next();
            VariableInScope var_in_scope = VariableInScopeImpl.create( context() );
            context().relate_R458_VariableInScope_has_in_scope_Variable( var_in_scope, var );
            context().relate_R458_VariableInScope_is_in_scope_for_CodeBlock( var_in_scope, block );
        }
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        smt.setStatement_number("1");
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        ACT_SMT act_smt = act_el.R603_is_a_ACT_SMT();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        IfSmt if_smt = IfSmtImpl.create( context() );
        context().relate_R451_IfSmt_is_a_Statement( if_smt, smt );
        if_smt.setIs_else_if(true);
        Value if_val = act_el.R659_test_result_Value();
        context().transformExpression( if_val, "1", smt );
        Expression if_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), "1"));
        context().relate_R471_IfSmt_executes_then_block_if_true_Expression( if_smt, if_expr );
        InvocableObject empty_invocable = InvocableObjectImpl.EMPTY_INVOCABLEOBJECT;
        String then_block_number = context().getNextBlockNumber( block );
        Block then_blk = act_el.R658_controls_Block();
        context().transformBlock( empty_invocable, block, then_blk, then_block_number );
        CodeBlock then_block = block.R4000_is_invoked_in_InvocableObject().R4000_has_CodeBlock().anyWhere(selected -> StringUtil.equality(((CodeBlock)selected).getBlock_number(), then_block_number));
        context().relate_R453_IfSmt_has_then_CodeBlock( if_smt, then_block );
    }

    public void transformBlockForFor( final CodeBlock p_upper_block,  final Block p_act_blk,  final String p_block_number,  final Variable p_iter_var,  final ForSmt p_for_smt ) throws XtumlException {
        CodeBlock upper_block = p_upper_block;
        Block act_blk = p_act_blk;
        CodeBlock block = CodeBlockImpl.create( context() );
        InvocableObject invocable = upper_block.R4000_is_invoked_in_InvocableObject();
        block.setTab_depth(upper_block.getTab_depth() + 1);
        context().relate_R4000_CodeBlock_is_invoked_in_InvocableObject( block, invocable );
        block.setBlock_number(p_block_number);
        VariableSet vars = upper_block.R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable();
        Variable var;
        for ( Iterator _var_iter = vars.elements().iterator(); _var_iter.hasNext(); ) {
            var = _var_iter.next();
            VariableInScope var_in_scope = VariableInScopeImpl.create( context() );
            context().relate_R458_VariableInScope_has_in_scope_Variable( var_in_scope, var );
            context().relate_R458_VariableInScope_is_in_scope_for_CodeBlock( var_in_scope, block );
        }
        context().transformStatements( act_blk, block );
    }

    public void transformBody( final InvocableObject p_invocable ) throws XtumlException {
        InvocableObject invocable = p_invocable;
        Body act_act = invocable.R432_Body();
        if ( !act_act.isEmpty() && !invocable.isEmpty() ) {
            Deferral deferral = act_act.R698_is_a_OperationBody().R696_specifies_processing_for_O_TFR().R126_defers_execution_to_subtypes_across_Deferral();
            if ( !deferral.isEmpty() && context().STRING().indexof( invocable.getName(), "_supertype_" ) != 0 ) {
                context().transformDeferral( invocable, deferral );
            }
            else {
                CodeBlock upper_block = CodeBlockImpl.EMPTY_CODEBLOCK;
                Block act_blk = act_act.R666_has_committed_outer_Block();
                context().transformBlock( invocable, upper_block, act_blk, "1" );
                context().resloveVariableFinalizations( invocable );
            }
        }
        else {
        }
    }

    public void transformBreakStatement( final ACT_BRK p_act_brk,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        ACT_BRK act_brk = p_act_brk;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_brk.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        BreakSmt break_smt = BreakSmtImpl.create( context() );
        context().relate_R451_BreakSmt_is_a_Statement( break_smt, smt );
    }

    public void transformBridgeInvocation( final BridgeInvocation p_act_brg,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        BridgeInvocation act_brg = p_act_brg;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_brg.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        UtilityFunction util_func = act_brg.R674_is_an_invocation_of_Bridge().R4570_UtilityFunction();
        if ( util_func.isEmpty() ) {
            ExternalEntity s_ee = act_brg.R674_is_an_invocation_of_Bridge().R19_provides_access_to_ExternalEntity();
            EP_PKG s_ee_pkg = s_ee.R8001_is_a_PackageableElement().R8000_contained_by_EP_PKG();
            ComponentDefinition empty_comp_def = ComponentDefinitionImpl.EMPTY_COMPONENTDEFINITION;
            context().transformUtility( s_ee, s_ee_pkg, empty_comp_def, true, context().ep_pkgToPath( s_ee_pkg ) );
            util_func = act_brg.R674_is_an_invocation_of_Bridge().R4570_UtilityFunction();
        }
        InvocableObject invocable = util_func.R427_is_a_InvocableObject();
        Utility utility = util_func.R4559_provided_by_Utility();
        File utility_file = utility.R401_is_a_File();
        ComponentDefinition containing_comp_def = context().getCompDefForStatement( smt );
        File containing_comp_file = containing_comp_def.R401_is_a_File();
        context().addFileToImports( containing_comp_file, utility_file, ImportType.IMPL );
        context().addStringToImports( containing_comp_file, ( ( context().pathToPackage( utility_file.getPath() ) + ".impl." ) + utility_file.getName() ) + "Impl", ImportType.IMPL );
        if ( !containing_comp_def.isEmpty() ) {
            UtilityReference util_ref = utility.R4558_used_within_context_of_UtilityReference().anyWhere(selected -> StringUtil.equality(((UtilityReference)selected).getComp_name(), containing_comp_def.getName()) && StringUtil.equality(((UtilityReference)selected).getComp_package(), containing_comp_def.getPackage()));
            if ( util_ref.isEmpty() ) {
                util_ref = UtilityReferenceImpl.create( context() );
                context().relate_R4558_UtilityReference_contains_Utility( util_ref, utility );
                context().relate_R4558_UtilityReference_used_within_context_of_ComponentDefinition( util_ref, containing_comp_def );
            }
        }
        if ( !invocable.isEmpty() ) {
            ExpressionAsStatement eas = ExpressionAsStatementImpl.create( context() );
            context().relate_R451_ExpressionAsStatement_is_a_Statement( eas, smt );
            Expression expr = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( expr, smt );
            expr.setExpression_number("1");
            TypeReference void_type = context().TypeReference_getBuiltinTypeReference( "void" );
            context().relate_R795_Expression_expresses_value_of_TypeReference( expr, void_type );
            Invocation invoc = InvocationImpl.create( context() );
            context().relate_R776_Invocation_is_a_Expression( invoc, expr );
            context().relate_R792_Invocation_invokes_InvocableObject( invoc, invocable );
            context().relate_R476_ExpressionAsStatement_executes_as_statement_Expression( eas, expr );
            Expression expr2 = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( expr2, smt );
            expr2.setExpression_number("1.1");
            void_type = context().TypeReference_getBuiltinTypeReference( "void" );
            context().relate_R795_Expression_expresses_value_of_TypeReference( expr2, void_type );
            NamedReference named_ref = NamedReferenceImpl.create( context() );
            context().relate_R776_NamedReference_is_a_Expression( named_ref, expr2 );
            context().relate_R798_Invocation_invokes_activity_on_Expression( invoc, expr2 );
            named_ref.setName(( "context()." + utility.getName() ) + "()");
            V_PARSet v_pars = act_brg.R628_takes_V_PAR();
            context().transformActualParameters( invoc, v_pars, "1", 2 );
        }
        else {
        }
    }

    public void transformBridgeValue( final BridgeValue p_v_brv,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        BridgeValue v_brv = p_v_brv;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_brv.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        UtilityFunction util_func = v_brv.R828_Bridge().R4570_UtilityFunction();
        if ( util_func.isEmpty() ) {
            ExternalEntity s_ee = v_brv.R828_Bridge().R19_provides_access_to_ExternalEntity();
            EP_PKG s_ee_pkg = s_ee.R8001_is_a_PackageableElement().R8000_contained_by_EP_PKG();
            ComponentDefinition empty_comp_def = ComponentDefinitionImpl.EMPTY_COMPONENTDEFINITION;
            context().transformUtility( s_ee, s_ee_pkg, empty_comp_def, true, context().ep_pkgToPath( s_ee_pkg ) );
            util_func = v_brv.R828_Bridge().R4570_UtilityFunction();
        }
        InvocableObject invocable = util_func.R427_is_a_InvocableObject();
        Utility utility = util_func.R4559_provided_by_Utility();
        File utility_file = utility.R401_is_a_File();
        ComponentDefinition containing_comp_def = context().getCompDefForStatement( smt );
        File containing_comp_file = containing_comp_def.R401_is_a_File();
        context().addFileToImports( containing_comp_file, utility_file, ImportType.IMPL );
        context().addStringToImports( containing_comp_file, ( ( context().pathToPackage( utility_file.getPath() ) + ".impl." ) + utility_file.getName() ) + "Impl", ImportType.IMPL );
        if ( !containing_comp_def.isEmpty() ) {
            UtilityReference util_ref = utility.R4558_used_within_context_of_UtilityReference().anyWhere(selected -> StringUtil.equality(((UtilityReference)selected).getComp_name(), containing_comp_def.getName()) && StringUtil.equality(((UtilityReference)selected).getComp_package(), containing_comp_def.getPackage()));
            if ( util_ref.isEmpty() ) {
                util_ref = UtilityReferenceImpl.create( context() );
                context().relate_R4558_UtilityReference_contains_Utility( util_ref, utility );
                context().relate_R4558_UtilityReference_used_within_context_of_ComponentDefinition( util_ref, containing_comp_def );
            }
        }
        if ( !invocable.isEmpty() ) {
            Invocation invoc = InvocationImpl.create( context() );
            context().relate_R776_Invocation_is_a_Expression( invoc, expr );
            context().relate_R792_Invocation_invokes_InvocableObject( invoc, invocable );
            Expression expr2 = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( expr2, smt );
            expr2.setExpression_number(expr.getExpression_number() + ".1");
            TypeReference void_type = context().TypeReference_getBuiltinTypeReference( "void" );
            context().relate_R795_Expression_expresses_value_of_TypeReference( expr2, void_type );
            NamedReference named_ref = NamedReferenceImpl.create( context() );
            context().relate_R776_NamedReference_is_a_Expression( named_ref, expr2 );
            context().relate_R798_Invocation_invokes_activity_on_Expression( invoc, expr2 );
            named_ref.setName(( "context()." + utility.getName() ) + "()");
            V_PARSet v_pars = v_brv.R810_has_V_PAR();
            context().transformActualParameters( invoc, v_pars, expr.getExpression_number(), 2 );
        }
        else {
        }
    }

    public void transformBuiltinTypes() throws XtumlException {
        DataTypeSet s_dts = context().DataType_instances();
        DataType s_dt;
        for ( Iterator _s_dt_iter = s_dts.elements().iterator(); _s_dt_iter.hasNext(); ) {
            s_dt = _s_dt_iter.next();
            if ( context().s_dtIsBuiltin( s_dt ) ) {
                String type_name = "";
                String type_package = "";
                boolean type_primitive = false;
                boolean type_unique = false;
                boolean type_inst = false;
                boolean type_instset = false;
                String type_default_value = "";
                if ( StringUtil.equality("boolean", s_dt.getName()) ) {
                    type_name = "boolean";
                    type_primitive = true;
                    type_default_value = "false";
                }
                else if ( StringUtil.equality("component_ref", s_dt.getName()) ) {
                    type_name = "IComponent";
                    type_package = "io.ciera.runtime.summit.components";
                    type_default_value = "null";
                }
                else if ( StringUtil.equality("date", s_dt.getName()) ) {
                    type_name = "Date";
                    type_package = "io.ciera.runtime.summit.types";
                    type_default_value = "new Date()";
                }
                else if ( StringUtil.equality("inst", s_dt.getName()) ) {
                    type_name = "EventHandle";
                    type_package = "io.ciera.runtime.summit.statemachine";
                    type_default_value = "new EventHandle()";
                }
                else if ( StringUtil.equality("inst_ref", s_dt.getName()) ) {
                    type_name = "TimerHandle";
                    type_package = "io.ciera.runtime.summit.time";
                    type_default_value = "new TimerHandle()";
                }
                else if ( StringUtil.equality("integer", s_dt.getName()) ) {
                    type_name = "int";
                    type_primitive = true;
                    type_default_value = "0";
                }
                else if ( StringUtil.equality("real", s_dt.getName()) ) {
                    type_name = "double";
                    type_primitive = true;
                    type_default_value = "0d";
                }
                else if ( StringUtil.equality("string", s_dt.getName()) ) {
                    type_name = "String";
                    type_package = "";
                    type_default_value = context().STRING().quote() + context().STRING().quote();
                }
                else if ( StringUtil.equality("timestamp", s_dt.getName()) ) {
                    type_name = "long";
                    type_primitive = true;
                    type_default_value = "0L";
                }
                else if ( StringUtil.equality("unique_id", s_dt.getName()) ) {
                    type_name = "UniqueId";
                    type_package = "io.ciera.runtime.summit.types";
                    type_unique = true;
                    type_default_value = "new UniqueId()";
                }
                else if ( StringUtil.equality("void", s_dt.getName()) ) {
                    type_name = "void";
                    type_primitive = true;
                    type_default_value = "";
                }
                else if ( StringUtil.equality("inst_ref_set", s_dt.getName()) ) {
                    type_name = "IInstanceSet";
                    type_package = "io.ciera.runtime.summit.classes";
                    type_instset = true;
                    type_default_value = "null";
                }
                else if ( StringUtil.equality("inst_ref", s_dt.getName()) ) {
                    type_name = "IModelInstance";
                    type_package = "io.ciera.runtime.summit.classes";
                    type_inst = true;
                    type_default_value = "null";
                }
                else if ( StringUtil.equality("inst_ref", s_dt.getName()) ) {
                    type_name = "InstRefMapping";
                    type_package = "io.ciera.runtime.summit.types";
                    type_default_value = "null";
                }
                else if ( StringUtil.equality("inst", s_dt.getName()) ) {
                    type_name = "InstMapping";
                    type_package = "io.ciera.runtime.summit.types";
                    type_default_value = "null";
                }
                if ( StringUtil.inequality("", type_name) ) {
                    Type type = TypeImpl.create( context() );
                    type.setName(type_name);
                    type.setPackage(type_package);
                    type.setDefault_value(type_default_value);
                    context().Type_resolve( type, s_dt );
                    BuiltInType builtin = BuiltInTypeImpl.create( context() );
                    context().relate_R407_BuiltInType_is_a_Type( builtin, type );
                    builtin.setPrimitive(type_primitive);
                    builtin.setUnique(type_unique);
                    builtin.setInst(type_inst);
                    builtin.setInstset(type_instset);
                }
            }
        }
    }

    public void transformClass( final ModelClass p_o_obj,  final ComponentDefinition p_containing_comp_def,  final String p_path ) throws XtumlException {
        ModelClass o_obj = p_o_obj;
        ComponentDefinition containing_comp_def = p_containing_comp_def;
        String path = p_path;
        EP_PKG ep_pkg = o_obj.R8001_is_a_PackageableElement().R8000_contained_by_EP_PKG();
        PackageableElement pe = o_obj.R8001_is_a_PackageableElement();
        Mark class_exclude_mark = context().Mark_instances().anyWhere(selected -> ( StringUtil.equality(((Mark)selected).getMarkable_name(), "Model Class") && StringUtil.equality(((Mark)selected).getPath(), ( context().containerMarkingPath( pe ) + "::" ) + o_obj.getName()) ) && StringUtil.equality(((Mark)selected).getFeature_name(), "Exclude"));
        if ( class_exclude_mark.isEmpty() ) {
            Mark class_name_mark = context().Mark_instances().anyWhere(selected -> ( StringUtil.equality(((Mark)selected).getMarkable_name(), "Model Class") && StringUtil.equality(((Mark)selected).getPath(), ( context().containerMarkingPath( pe ) + "::" ) + o_obj.getName()) ) && StringUtil.equality(((Mark)selected).getFeature_name(), "UseKeyLettersForName"));
            File file = FileImpl.create( context() );
            if ( class_name_mark.isEmpty() ) {
                file.setName(context().camelCaseName( o_obj.getName(), false ));
            }
            else {
                file.setName(o_obj.getKey_Lett());
            }
            file.setPath(path);
            file.setPackage(context().pathToPackage( file.getPath() ));
            file.setExtension(".java");
            file.setExclude(false);
            ModelInst obj = ModelInstImpl.create( context() );
            context().relate_R401_ModelInst_is_a_File( obj, file );
            obj.setKey_letters(o_obj.getKey_Lett());
            obj.setExtends(( ( ( "ModelInstance<" + obj.getName() ) + "," ) + containing_comp_def.getName() ) + ">");
            obj.setComparator("");
            context().relate_R408_ModelInst_forms_instance_population_of_ComponentDefinition( obj, containing_comp_def );
            Type type = TypeImpl.create( context() );
            type.setName(obj.getName());
            type.setPackage(obj.getPackage());
            InstanceReferenceDataType s_irdt = o_obj.R123_is_available_as_a_reference_by_InstanceReferenceDataType().anyWhere(selected -> !((InstanceReferenceDataType)selected).getIsSet());
            DataType s_dt = s_irdt.R17_is_a_DataType();
            if ( !s_dt.isEmpty() ) {
                context().Type_resolve( type, s_dt );
            }
            else {
            }
            type.setDefault_value(( obj.getName() + "Impl.EMPTY_" ) + context().T().sub( "_u", obj.getName() ));
            context().relate_R407_ModelInst_is_a_Type( obj, type );
            context().relate_R409_ModelInst_ModelClass( obj, o_obj );
            O_ATTR o_attr = o_obj.R102_has_characteristics_abstracted_by_O_ATTR().any();
            O_ATTR prev_attr = o_attr.R103_succeeds_O_ATTR();
            while ( !prev_attr.isEmpty() ) {
                o_attr = prev_attr;
                prev_attr = o_attr.R103_succeeds_O_ATTR();
            }
            int index = 0;
            while ( !o_attr.isEmpty() ) {
                if ( StringUtil.inequality("current_state", o_attr.getName()) ) {
                    context().transformAttribute( o_attr, obj, index );
                    index = index + 1;
                }
                o_attr = o_attr.R103_precedes_O_ATTR();
            }
            Mark comparator_mark = context().Mark_instances().anyWhere(selected -> ( StringUtil.equality(((Mark)selected).getMarkable_name(), "*") && StringUtil.equality(((Mark)selected).getPath(), "*") ) && StringUtil.equality(((Mark)selected).getFeature_name(), "SortComparator"));
            if ( !comparator_mark.isEmpty() ) {
                AttributeAccessorSet attr_accessors = ((AttributeAccessorSet)obj.R410_data_abstracted_by_Attribute().R4510_value_accessed_through_AttributeAccessor().where(selected -> ((AttributeAccessor)selected).getAccessor_type().equality(AttributeAccessorType.GETTER)));
                AttributeAccessor attr_accessor;
                for ( Iterator _attr_accessor_iter = attr_accessors.elements().iterator(); _attr_accessor_iter.hasNext(); ) {
                    attr_accessor = _attr_accessor_iter.next();
                    if ( StringUtil.equality(attr_accessor.getName(), comparator_mark.getValue()) ) {
                        obj.setComparator(comparator_mark.getValue());
                        break;
                    }
                }
            }
            O_TFRSet o_tfrs = o_obj.R115_may_contain_O_TFR();
            O_TFR o_tfr;
            for ( Iterator _o_tfr_iter = o_tfrs.elements().iterator(); _o_tfr_iter.hasNext(); ) {
                o_tfr = _o_tfr_iter.next();
                context().transformOperation( o_tfr, obj );
            }
            SM_SM sm = o_obj.R518_InstanceStateMachine().R517_is_a_SM_SM();
            if ( !sm.isEmpty() ) {
                context().transformStateMachine( sm, obj );
                context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.XtumlException", ImportType.IMPL );
                context().addStringToImports( file, "io.ciera.runtime.summit.statemachine.IEvent", ImportType.IMPL );
                Event evt = obj.R4750_behavior_modeled_by_StateMachine().R4752_declares_Event().any();
                if ( !evt.isEmpty() ) {
                    context().addStringToImports( file, "io.ciera.runtime.summit.statemachine.Event", ImportType.IMPL );
                }
            }
            context().transformClassSet( obj, ep_pkg, path );
            File component_file = containing_comp_def.R401_is_a_File();
            File set_file = obj.R406_is_type_of_single_element_in_InstSet().R401_is_a_File();
            context().addFileToImports( component_file, file, ImportType.IMPL );
            context().addFileToImports( component_file, set_file, ImportType.IMPL );
            context().addStringToImports( component_file, ( ( context().pathToPackage( file.getPath() ) + ".impl." ) + file.getName() ) + "Impl", ImportType.IMPL );
            context().addStringToImports( component_file, ( ( context().pathToPackage( set_file.getPath() ) + ".impl." ) + set_file.getName() ) + "Impl", ImportType.IMPL );
            context().addStringToImports( component_file, "io.ciera.runtime.summit.exceptions.XtumlException", ImportType.IMPL );
            context().addFileToImports( file, component_file, ImportType.BOTH );
            context().addFileToImports( file, file, ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.application.IRunContext", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.classes.InstanceIdentifier", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.classes.IInstanceIdentifier", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.classes.IModelInstance", ImportType.INT );
            context().addStringToImports( file, "io.ciera.runtime.summit.classes.ModelInstance", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.InstancePopulationException", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.XtumlException", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.types.IWhere", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.types.IXtumlType", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.types.UniqueId", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.instanceloading.InstanceCreatedDelta", ImportType.IMPL );
        }
    }

    public void transformClassSet( final ModelInst p_obj,  final EP_PKG p_ep_pkg,  final String p_path ) throws XtumlException {
        ModelInst obj = p_obj;
        File file = FileImpl.create( context() );
        file.setName(obj.getName() + "Set");
        file.setPath(p_path);
        file.setPackage(context().pathToPackage( file.getPath() ));
        file.setExtension(".java");
        file.setExclude(false);
        InstSet objset = InstSetImpl.create( context() );
        context().relate_R406_InstSet_defines_set_with_elements_of_type_ModelInst( objset, obj );
        context().relate_R401_InstSet_is_a_File( objset, file );
        objset.setExtends(( ( ( "InstanceSet<" + objset.getName() ) + "," ) + obj.getName() ) + ">");
        Type type = TypeImpl.create( context() );
        type.setName(objset.getName());
        type.setPackage(objset.getPackage());
        InstanceReferenceDataType s_irdt = obj.R409_ModelClass().R123_is_available_as_a_reference_by_InstanceReferenceDataType().anyWhere(selected -> ((InstanceReferenceDataType)selected).getIsSet());
        DataType s_dt = s_irdt.R17_is_a_DataType();
        if ( !s_dt.isEmpty() ) {
            context().Type_resolve( type, s_dt );
        }
        else {
        }
        type.setDefault_value(( "new " + objset.getName() ) + "Impl()");
        context().relate_R407_InstSet_is_a_Type( objset, type );
        File objfile = obj.R401_is_a_File();
        context().addFileToImports( file, file, ImportType.IMPL );
        context().addFileToImports( file, objfile, ImportType.IMPL );
        context().addStringToImports( file, "java.util.Arrays", ImportType.IMPL );
        context().addStringToImports( file, "java.util.Comparator", ImportType.IMPL );
        context().addStringToImports( file, "java.util.List", ImportType.IMPL );
        context().addStringToImports( file, "io.ciera.runtime.summit.classes.InstanceSet", ImportType.IMPL );
        context().addStringToImports( file, "io.ciera.runtime.summit.classes.IInstanceSet", ImportType.INT );
        Attribute attr = objset.R406_defines_set_with_elements_of_type_ModelInst().R410_data_abstracted_by_Attribute().any();
        if ( !attr.isEmpty() ) {
            context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.XtumlException", ImportType.BOTH );
        }
    }

    public void transformComponentDefinition( final C_C p_c_c,  final ComponentDefinition p_containing_comp_def,  final String p_path,  final int p_pass ) throws XtumlException {
        C_C c_c = p_c_c;
        if ( 1 == p_pass ) {
            File file = FileImpl.create( context() );
            file.setName(context().camelCaseName( c_c.getName(), false ));
            file.setPath(p_path);
            file.setPackage(context().pathToPackage( file.getPath() ));
            file.setExtension(".java");
            file.setExclude(false);
            ComponentDefinition comp_def = ComponentDefinitionImpl.create( context() );
            context().relate_R401_ComponentDefinition_is_a_File( comp_def, file );
            comp_def.setExtends(( "Component<" + comp_def.getName() ) + ">");
            context().relate_R4573_ComponentDefinition_C_C( comp_def, c_c );
            comp_def.setVersion("");
            comp_def.setVersion_date("");
            String component_version = "";
            PackageableElement c_c_pe = c_c.R8001_is_a_PackageableElement();
            Mark version_mark = context().Mark_instances().anyWhere(selected -> ( StringUtil.equality(((Mark)selected).getMarkable_name(), "Component") && StringUtil.equality(((Mark)selected).getPath(), ( context().containerMarkingPath( c_c_pe ) + "::" ) + c_c.getName()) ) && StringUtil.equality(((Mark)selected).getFeature_name(), "Version"));
            if ( version_mark.isEmpty() ) {
                version_mark = context().Mark_instances().anyWhere(selected -> ( StringUtil.equality(((Mark)selected).getMarkable_name(), "*") && StringUtil.equality(((Mark)selected).getPath(), "*") ) && StringUtil.equality(((Mark)selected).getFeature_name(), "UseVersion"));
            }
            component_version = version_mark.getValue();
            if ( StringUtil.inequality("", component_version) ) {
                comp_def.setVersion(component_version);
                Date current_date = context().TIM().current_date();
                String year_string = context().STRING().itoa( context().TIM().get_year( current_date ) );
                String month_string = context().STRING().itoa( context().TIM().get_month( current_date ) );
                if ( context().STRING().strlen( month_string ) < 2 ) {
                    month_string = "0" + month_string;
                }
                String day_string = context().STRING().itoa( context().TIM().get_day( current_date ) );
                if ( context().STRING().strlen( day_string ) < 2 ) {
                    day_string = "0" + day_string;
                }
                String hour_string = context().STRING().itoa( context().TIM().get_hour( current_date ) );
                if ( context().STRING().strlen( hour_string ) < 2 ) {
                    hour_string = "0" + hour_string;
                }
                String minute_string = context().STRING().itoa( context().TIM().get_minute( current_date ) );
                if ( context().STRING().strlen( minute_string ) < 2 ) {
                    minute_string = "0" + minute_string;
                }
                String second_string = context().STRING().itoa( context().TIM().get_second( current_date ) );
                if ( context().STRING().strlen( second_string ) < 2 ) {
                    second_string = "0" + second_string;
                }
                comp_def.setVersion_date(( ( ( ( ( ( ( ( ( year_string + "-" ) + month_string ) + "-" ) + day_string ) + " " ) + hour_string ) + ":" ) + minute_string ) + ":" ) + second_string);
            }
            C_POSet c_pos = c_c.R4010_communicates_through_C_PO();
            C_PO c_po;
            for ( Iterator _c_po_iter = c_pos.elements().iterator(); _c_po_iter.hasNext(); ) {
                c_po = _c_po_iter.next();
                context().transformPort( c_po, comp_def, ( file.getPath() + "/" ) + context().T().sub( "l", c_c.getName() ) );
            }
            EP_PKGSet ep_pkgs = c_c.R8003_contains_PackageableElement().R8001_is_a_EP_PKG();
            EP_PKG ep_pkg;
            for ( Iterator _ep_pkg_iter = ep_pkgs.elements().iterator(); _ep_pkg_iter.hasNext(); ) {
                ep_pkg = _ep_pkg_iter.next();
                context().transformPackage( ep_pkg, comp_def, ( file.getPath() + "/" ) + context().T().sub( "l", c_c.getName() ), p_pass );
            }
            C_CSet inner_c_cs = c_c.R8003_contains_PackageableElement().R8001_is_a_C_C();
            C_C inner_c_c;
            for ( Iterator _inner_c_c_iter = inner_c_cs.elements().iterator(); _inner_c_c_iter.hasNext(); ) {
                inner_c_c = _inner_c_c_iter.next();
                context().transformComponentDefinition( inner_c_c, comp_def, ( file.getPath() + "/" ) + context().T().sub( "l", c_c.getName() ), 1 );
                context().transformComponentDefinition( inner_c_c, comp_def, ( file.getPath() + "/" ) + context().T().sub( "l", c_c.getName() ), 2 );
                context().transformComponentDefinition( inner_c_c, comp_def, ( file.getPath() + "/" ) + context().T().sub( "l", c_c.getName() ), 3 );
            }
            ModelInstSet objs = ((ModelInstSet)comp_def.R408_maintains_instances_of_ModelInst().where(selected -> !((ModelInst)selected).getUnmanaged()));
            ModelInst obj;
            for ( Iterator _obj_iter = objs.elements().iterator(); _obj_iter.hasNext(); ) {
                obj = _obj_iter.next();
                InstancePopulationSelector inst_pop_selector = InstancePopulationSelectorImpl.create( context() );
                inst_pop_selector.setName(obj.getName() + "_instances");
                context().relate_R447_InstancePopulationSelector_selects_instances_out_of_population_of_ComponentDefinition( inst_pop_selector, comp_def );
                context().relate_R449_InstancePopulationSelector_selects_instances_of_ModelInst( inst_pop_selector, obj );
            }
            if ( StringUtil.inequality("", component_version) ) {
                File prop_file = FileImpl.create( context() );
                prop_file.setName(file.getName() + "Properties");
                prop_file.setPath(file.getPath());
                prop_file.setPackage(file.getPackage());
                prop_file.setExtension(".properties");
                prop_file.setExclude(false);
                GeneralFile gen_file = GeneralFileImpl.create( context() );
                context().relate_R401_GeneralFile_is_a_File( gen_file, prop_file );
                comp_def.render_version();
                gen_file.setContents(context().T().body());
                context().T().clear();
            }
            context().addStringToImports( file, "io.ciera.runtime.summit.application.IApplication", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.application.IRunContext", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.components.Component", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.classes.IModelInstance", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.XtumlException", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.BadArgumentException", ImportType.IMPL );
            context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.EmptyInstanceException", ImportType.IMPL );
            context().addStringToImports( file, "java.util.Map", ImportType.IMPL );
            context().addStringToImports( file, "java.util.TreeMap", ImportType.IMPL );
            if ( StringUtil.inequality("", component_version) ) {
                context().addStringToImports( file, "java.io.IOException", ImportType.IMPL );
                context().addStringToImports( file, "java.util.Properties", ImportType.IMPL );
            }
        }
        else if ( 2 == p_pass ) {
            File file = context().File_instances().anyWhere(selected -> StringUtil.equality(((File)selected).getName(), context().camelCaseName( c_c.getName(), false )) && StringUtil.equality(((File)selected).getPackage(), context().pathToPackage( p_path )));
            ComponentDefinition comp_def = file.R401_is_a_ComponentDefinition();
            EP_PKGSet ep_pkgs = c_c.R8003_contains_PackageableElement().R8001_is_a_EP_PKG();
            EP_PKG ep_pkg;
            for ( Iterator _ep_pkg_iter = ep_pkgs.elements().iterator(); _ep_pkg_iter.hasNext(); ) {
                ep_pkg = _ep_pkg_iter.next();
                context().transformPackage( ep_pkg, comp_def, ( file.getPath() + "/" ) + context().T().sub( "l", c_c.getName() ), p_pass );
            }
        }
        else {
            File file = context().File_instances().anyWhere(selected -> StringUtil.equality(((File)selected).getName(), context().camelCaseName( c_c.getName(), false )) && StringUtil.equality(((File)selected).getPackage(), context().pathToPackage( p_path )));
            ComponentDefinition comp_def = file.R401_is_a_ComponentDefinition();
            EP_PKGSet ep_pkgs = c_c.R8003_contains_PackageableElement().R8001_is_a_EP_PKG();
            EP_PKG ep_pkg;
            for ( Iterator _ep_pkg_iter = ep_pkgs.elements().iterator(); _ep_pkg_iter.hasNext(); ) {
                ep_pkg = _ep_pkg_iter.next();
                context().transformPackage( ep_pkg, comp_def, ( file.getPath() + "/" ) + context().T().sub( "l", c_c.getName() ), p_pass );
            }
            ClassRelationshipSet rels = comp_def.R448_maintains_instances_of_ClassRelationship();
            ClassRelationship rel;
            for ( Iterator _rel_iter = rels.elements().iterator(); _rel_iter.hasNext(); ) {
                rel = _rel_iter.next();
                RelationshipPopulationSelector rel_pop_selector = RelationshipPopulationSelectorImpl.create( context() );
                rel_pop_selector.setName(rel.getName() + "s");
                context().relate_R4571_RelationshipPopulationSelector_selects_relationships_out_of_population_of_ComponentDefinition( rel_pop_selector, comp_def );
                context().relate_R4572_RelationshipPopulationSelector_selects_instances_of_ClassRelationship( rel_pop_selector, rel );
            }
        }
    }

    public void transformConstantReference( final SymbolicConstantValue p_v_scv,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        SymbolicConstantValue v_scv = p_v_scv;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_scv.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        ConstantReference const_ref = ConstantReferenceImpl.create( context() );
        context().relate_R776_ConstantReference_is_a_Expression( const_ref, expr );
        LiteralSymbolicConstant cnst_lsc = v_scv.R850_SymbolicConstant().R1502_is_a_LeafSymbolicConstant().R1503_is_a_LiteralSymbolicConstant();
        const_ref.setValue(cnst_lsc.getValue());
        if ( StringUtil.equality(type.getType_reference_name(), "long") ) {
            const_ref.setValue(const_ref.getValue() + "L");
        }
    }

    public void transformContinueStatement( final ACT_CON p_act_con,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        ACT_CON act_con = p_act_con;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_con.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        ContinueSmt continue_smt = ContinueSmtImpl.create( context() );
        context().relate_R451_ContinueSmt_is_a_Statement( continue_smt, smt );
    }

    public void transformControl( final Control p_act_ctl,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        Control act_ctl = p_act_ctl;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_ctl.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        Halt halt_smt = HaltImpl.create( context() );
        context().relate_R451_Halt_is_a_Statement( halt_smt, smt );
        context().addStringToImports( context().getFileForStatement( smt ), "io.ciera.runtime.summit.application.tasks.HaltExecutionTask", ImportType.IMPL );
    }

    public void transformCreate( final Create p_act_cr,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        Create act_cr = p_act_cr;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_cr.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        ExpressionAsStatement eas = ExpressionAsStatementImpl.create( context() );
        context().relate_R451_ExpressionAsStatement_is_a_Statement( eas, smt );
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number("1");
        BinaryOperation binop = BinaryOperationImpl.create( context() );
        context().relate_R776_BinaryOperation_is_a_Expression( binop, expr );
        binop.setOperator("=");
        binop.setInvocation(false);
        context().relate_R476_ExpressionAsStatement_executes_as_statement_Expression( eas, expr );
        V_VAR cr_v_var = act_cr.R633_result_V_VAR();
        Expression l_op = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( l_op, smt );
        l_op.setExpression_number("1.1");
        DataType cr_s_dt = cr_v_var.R848_has_DataType();
        ModelClass cr_obj = act_cr.R671_instance_of_ModelClass();
        cr_s_dt = context().getInstRefTypeForClass( cr_s_dt, cr_obj );
        DimensionsSet s_dims = cr_v_var.R849_may_have_Dimensions();
        TypeReference cr_type = context().TypeReference_getInstance( cr_s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( l_op, cr_type );
        Variable existing_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), cr_v_var.getName()));
        if ( existing_var.isEmpty() ) {
            context().transformVariable( cr_v_var, smt );
        }
        Variable cr_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), cr_v_var.getName()));
        VariableReference var_ref = VariableReferenceImpl.create( context() );
        context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, cr_var );
        context().relate_R776_VariableReference_is_a_Expression( var_ref, l_op );
        context().relate_R779_BinaryOperation_has_left_Expression( binop, l_op );
        Type type = l_op.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
        context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
        Expression r_op = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( r_op, smt );
        r_op.setExpression_number("1.2");
        context().relate_R795_Expression_expresses_value_of_TypeReference( r_op, cr_type );
        Creation cr = CreationImpl.create( context() );
        context().relate_R776_Creation_is_a_Expression( cr, r_op );
        ModelInst obj = cr_obj.R409_ModelInst();
        context().relate_R780_Creation_creates_ModelInst( cr, obj );
        context().relate_R778_BinaryOperation_has_right_Expression( binop, r_op );
        File class_file = obj.R401_is_a_File();
        context().addStringToImports( context().getFileForStatement( smt ), ( ( context().pathToPackage( class_file.getPath() ) + ".impl." ) + class_file.getName() ) + "Impl", ImportType.IMPL );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, cr_type );
    }

    public void transformCreateNoVariable( final CreateNoVariable p_act_cnv,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        CreateNoVariable act_cnv = p_act_cnv;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_cnv.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        ExpressionAsStatement eas = ExpressionAsStatementImpl.create( context() );
        context().relate_R451_ExpressionAsStatement_is_a_Statement( eas, smt );
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number("1");
        context().relate_R476_ExpressionAsStatement_executes_as_statement_Expression( eas, expr );
        InstanceReferenceDataType s_irdt = act_cnv.R672_instance_of_ModelClass().R123_is_available_as_a_reference_by_InstanceReferenceDataType().anyWhere(selected -> !((InstanceReferenceDataType)selected).getIsSet());
        DataType s_dt = s_irdt.R17_is_a_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference cr_type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, cr_type );
        Creation cr = CreationImpl.create( context() );
        context().relate_R776_Creation_is_a_Expression( cr, expr );
        ModelInst obj = act_cnv.R672_instance_of_ModelClass().R409_ModelInst();
        context().relate_R780_Creation_creates_ModelInst( cr, obj );
        File class_file = obj.R401_is_a_File();
        context().addStringToImports( context().getFileForStatement( smt ), ( ( context().pathToPackage( class_file.getPath() ) + ".impl." ) + class_file.getName() ) + "Impl", ImportType.IMPL );
    }

    public void transformDeferral( final InvocableObject p_invocable,  final Deferral p_deferral ) throws XtumlException {
        InvocableObject invocable = p_invocable;
        Deferral deferral = p_deferral;
        O_TFR o_tfr = deferral.R126_delegates_execution_of_O_TFR();
        TypeReference type = invocable.R428_return_value_is_typed_by_TypeReference();
        boolean returns_value = StringUtil.inequality("void", type.getType_name());
        ModelClassSet subtypes = deferral.R126_defers_execution_to_subtypes_across_Association().R206_is_a_SubtypeSupertypeAssociation().R213_relates_ClassAsSubtype().R205_is_a_ReferringClassInAssoc().R203_is_a_ClassInAssociation().R201_abstracts_association_between_instances_of_ModelClass();
        CodeBlock block = CodeBlockImpl.create( context() );
        block.setTop_level(true);
        block.setTab_depth(1);
        context().relate_R4000_CodeBlock_is_invoked_in_InvocableObject( block, invocable );
        block.setBlock_number("1");
        ModelClass subtype;
        for ( Iterator _subtype_iter = subtypes.elements().iterator(); _subtype_iter.hasNext(); ) {
            subtype = _subtype_iter.next();
            Statement smt = StatementImpl.create( context() );
            context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
            smt.setStatement_number("1");
            smt.setActions("");
            ExpressionAsStatement eas = ExpressionAsStatementImpl.create( context() );
            context().relate_R451_ExpressionAsStatement_is_a_Statement( eas, smt );
            Expression expr = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( expr, smt );
            expr.setExpression_number("1");
            BinaryOperation binop = BinaryOperationImpl.create( context() );
            context().relate_R776_BinaryOperation_is_a_Expression( binop, expr );
            binop.setOperator("=");
            binop.setInvocation(false);
            context().relate_R476_ExpressionAsStatement_executes_as_statement_Expression( eas, expr );
            Expression l_op = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( l_op, smt );
            l_op.setExpression_number("1.1");
            InvocableObject subtype_invocable = subtype.R115_may_contain_O_TFR().R696_OperationBody().R698_is_a_Body().R432_InvocableObject().anyWhere(selected -> StringUtil.equality(((InvocableObject)selected).getName(), invocable.getName()));
            InvocableObject target_invocable = subtype_invocable;
            if ( subtype_invocable.isEmpty() && deferral.getRequired() == 1 ) {
                target_invocable = invocable.R427_is_a_Operation().R416_provided_by_ModelInst().R416_provides_Operation().R427_is_a_InvocableObject().anyWhere(selected -> StringUtil.equality(((InvocableObject)selected).getName(), "_supertype_" + invocable.getName()));
            }
            else if ( subtype_invocable.isEmpty() && deferral.getRequired() != 1 ) {
                context().LOG().LogFailure( ( ( "Could not find matching operation: " + invocable.getName() ) + " for subtype: " ) + subtype.getName() );
            }
            ModelInst select_class = subtype.R409_ModelInst();
            Type select_type_def = select_class.R407_is_a_Type();
            TypeReference select_type = context().TypeReference_getInstanceWithDimString( select_type_def, "" );
            context().relate_R795_Expression_expresses_value_of_TypeReference( l_op, select_type );
            Variable select_var = VariableImpl.create( context() );
            context().relate_R457_Variable_is_declared_by_Statement( select_var, smt );
            select_var.setName(context().T().sub( "l", select_class.getName() ));
            block = smt.R450_is_contained_by_CodeBlock();
            VariableInScope var_in_scope = VariableInScopeImpl.create( context() );
            context().relate_R458_VariableInScope_has_in_scope_Variable( var_in_scope, select_var );
            context().relate_R458_VariableInScope_is_in_scope_for_CodeBlock( var_in_scope, block );
            context().relate_R461_Variable_is_typed_by_TypeReference( select_var, select_type );
            VariableReference var_ref = VariableReferenceImpl.create( context() );
            var_ref.setDeclaration(true);
            context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, select_var );
            context().relate_R776_VariableReference_is_a_Expression( var_ref, l_op );
            context().relate_R779_BinaryOperation_has_left_Expression( binop, l_op );
            context().addTypeToImports( context().getFileForStatement( smt ), select_type_def, ImportType.IMPL );
            Expression r_op = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( r_op, smt );
            r_op.setExpression_number("1.2");
            context().relate_R778_BinaryOperation_has_right_Expression( binop, r_op );
            context().relate_R795_Expression_expresses_value_of_TypeReference( r_op, select_type );
            Select sel = SelectImpl.create( context() );
            context().relate_R776_Select_is_a_Expression( sel, r_op );
            SelectRelated sel_rel = SelectRelatedImpl.create( context() );
            context().relate_R789_SelectRelated_is_a_Select( sel_rel, sel );
            Expression self_expr = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( self_expr, smt );
            self_expr.setExpression_number("1.2.1");
            ModelInst self_class = invocable.R427_is_a_Operation().R416_provided_by_ModelInst();
            Type self_type_def = self_class.R407_is_a_Type();
            TypeReference self_type = context().TypeReference_getInstanceWithDimString( self_type_def, "" );
            context().relate_R795_Expression_expresses_value_of_TypeReference( self_expr, self_type );
            NamedReference self_ref = NamedReferenceImpl.create( context() );
            context().relate_R776_NamedReference_is_a_Expression( self_ref, self_expr );
            self_ref.setName("self()");
            context().relate_R791_SelectRelated_selects_instances_linked_from_instance_expressed_by_Expression( sel_rel, self_expr );
            Association r_rel = deferral.R126_defers_execution_to_subtypes_across_Association();
            ClassRelationship relationship = context().ClassRelationship_instances().anyWhere(selected -> ( ((ClassRelationship)selected).getNum() == r_rel.getNumb() && StringUtil.equality(((ClassRelationship)selected).getForm_name(), select_class.getName()) ) && StringUtil.equality(((ClassRelationship)selected).getPart_name(), self_class.getName()));
            String selector_name = ( ( "R" + context().STRING().itoa( r_rel.getNumb() ) ) + "_is_a_" ) + select_class.getName();
            Selector selector = self_class.R442_selects_instances_through_InstanceSelector().R445_is_a_Selector().anyWhere(selected -> StringUtil.equality(((Selector)selected).getName(), selector_name));
            if ( !selector.isEmpty() ) {
                context().relate_R797_SelectRelated_selects_instances_through_Selector( sel_rel, selector );
            }
            else {
            }
            context().relate_R795_Expression_expresses_value_of_TypeReference( expr, select_type );
            Statement smt2 = StatementImpl.create( context() );
            context().relate_R450_Statement_is_contained_by_CodeBlock( smt2, block );
            smt2.setStatement_number("2");
            context().relate_R477_Statement_executes_before_Statement( smt, smt2 );
            smt2.setActions("");
            IfSmt if_smt = IfSmtImpl.create( context() );
            context().relate_R451_IfSmt_is_a_Statement( if_smt, smt2 );
            if_smt.setIs_else_if(false);
            Expression if_expr = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( if_expr, smt2 );
            if_expr.setExpression_number("1");
            context().relate_R471_IfSmt_executes_then_block_if_true_Expression( if_smt, if_expr );
            TypeReference if_type = context().TypeReference_getBuiltinTypeReference( "boolean" );
            context().relate_R795_Expression_expresses_value_of_TypeReference( if_expr, if_type );
            UnaryOperation unary = UnaryOperationImpl.create( context() );
            context().relate_R776_UnaryOperation_is_a_Expression( unary, if_expr );
            unary.setOperator("!");
            unary.setInvocation(false);
            Expression if_expr2 = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( if_expr2, smt2 );
            if_expr2.setExpression_number("1.1");
            context().relate_R777_UnaryOperation_has_single_operand_Expression( unary, if_expr2 );
            context().relate_R795_Expression_expresses_value_of_TypeReference( if_expr2, if_type );
            UnaryOperation unary2 = UnaryOperationImpl.create( context() );
            context().relate_R776_UnaryOperation_is_a_Expression( unary2, if_expr2 );
            unary2.setOperator("isEmpty");
            unary2.setInvocation(true);
            Expression op_expr = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( op_expr, smt2 );
            op_expr.setExpression_number("1.1.1");
            context().relate_R795_Expression_expresses_value_of_TypeReference( op_expr, select_type );
            VariableReference op_var_ref = VariableReferenceImpl.create( context() );
            context().relate_R782_VariableReference_refers_to_local_Variable( op_var_ref, select_var );
            context().relate_R776_VariableReference_is_a_Expression( op_var_ref, op_expr );
            context().relate_R777_UnaryOperation_has_single_operand_Expression( unary2, op_expr );
            String then_block_number = context().getNextBlockNumber( block );
            CodeBlock then_block = CodeBlockImpl.create( context() );
            then_block.setTop_level(false);
            then_block.setTab_depth(block.getTab_depth() + 1);
            context().relate_R4000_CodeBlock_is_invoked_in_InvocableObject( then_block, invocable );
            then_block.setBlock_number(then_block_number);
            context().relate_R453_IfSmt_has_then_CodeBlock( if_smt, then_block );
            Statement smt3 = StatementImpl.create( context() );
            context().relate_R450_Statement_is_contained_by_CodeBlock( smt3, then_block );
            smt3.setStatement_number("1");
            smt3.setActions("");
            Expression invoc_expr = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( invoc_expr, smt3 );
            invoc_expr.setExpression_number("1");
            TypeReference void_type = context().TypeReference_getBuiltinTypeReference( "void" );
            context().relate_R795_Expression_expresses_value_of_TypeReference( invoc_expr, void_type );
            Invocation invoc = InvocationImpl.create( context() );
            context().relate_R776_Invocation_is_a_Expression( invoc, invoc_expr );
            context().relate_R792_Invocation_invokes_InvocableObject( invoc, target_invocable );
            if ( subtype_invocable.isEmpty() && deferral.getRequired() == 1 ) {
                self_expr = ExpressionImpl.create( context() );
                context().relate_R775_Expression_expressed_within_Statement( self_expr, smt3 );
                self_expr.setExpression_number("1.1");
                context().relate_R795_Expression_expresses_value_of_TypeReference( self_expr, self_type );
                context().relate_R798_Invocation_invokes_activity_on_Expression( invoc, self_expr );
                self_ref = NamedReferenceImpl.create( context() );
                context().relate_R776_NamedReference_is_a_Expression( self_ref, self_expr );
                self_ref.setName("self()");
            }
            else {
                Expression invoc_expr2 = ExpressionImpl.create( context() );
                context().relate_R775_Expression_expressed_within_Statement( invoc_expr2, smt3 );
                invoc_expr2.setExpression_number("1.1");
                context().relate_R798_Invocation_invokes_activity_on_Expression( invoc, invoc_expr2 );
                context().relate_R795_Expression_expresses_value_of_TypeReference( invoc_expr2, select_type );
                VariableReference invoc_var_ref = VariableReferenceImpl.create( context() );
                context().relate_R782_VariableReference_refers_to_local_Variable( invoc_var_ref, select_var );
                context().relate_R776_VariableReference_is_a_Expression( invoc_var_ref, invoc_expr2 );
            }
            int base_num = 2;
            ActualParameter prev_actual_parameter = ActualParameterImpl.EMPTY_ACTUALPARAMETER;
            FormalParameter formal_parameter = target_invocable.R429_declares_signature_with_FormalParameter().any();
            FormalParameter prev_formal_parameter = formal_parameter.R404_follows_FormalParameter();
            while ( !prev_formal_parameter.isEmpty() ) {
                formal_parameter = prev_formal_parameter;
                prev_formal_parameter = formal_parameter.R404_follows_FormalParameter();
            }
            while ( !formal_parameter.isEmpty() ) {
                final FormalParameter _final0_formal_parameter = formal_parameter;
                FormalParameter referenced_formal_parameter = invocable.R429_declares_signature_with_FormalParameter().anyWhere(selected -> StringUtil.equality(((FormalParameter)selected).getName(), _final0_formal_parameter.getName()));
                Expression param_ref_expr = ExpressionImpl.create( context() );
                context().relate_R775_Expression_expressed_within_Statement( param_ref_expr, smt3 );
                param_ref_expr.setExpression_number("1." + context().STRING().itoa( base_num ));
                TypeReference param_type = formal_parameter.R431_is_typed_by_TypeReference();
                context().relate_R795_Expression_expresses_value_of_TypeReference( param_ref_expr, param_type );
                ParameterReference param_ref = ParameterReferenceImpl.create( context() );
                context().relate_R776_ParameterReference_is_a_Expression( param_ref, param_ref_expr );
                context().relate_R781_ParameterReference_refers_to_FormalParameter( param_ref, referenced_formal_parameter );
                ActualParameter act_parm = ActualParameterImpl.create( context() );
                context().relate_R794_ActualParameter_parameter_value_specified_by_Expression( act_parm, param_ref_expr );
                context().relate_R793_ActualParameter_Invocation( act_parm, invoc );
                context().relate_R3904_ActualParameter_FormalParameter( act_parm, formal_parameter );
                if ( !prev_actual_parameter.isEmpty() ) {
                    context().relate_R3905_ActualParameter_precedes_ActualParameter( prev_actual_parameter, act_parm );
                }
                base_num = base_num + 1;
                prev_actual_parameter = act_parm;
                formal_parameter = formal_parameter.R404_precedes_FormalParameter();
            }
            if ( returns_value ) {
                ReturnSmt ret_smt = ReturnSmtImpl.create( context() );
                context().relate_R451_ReturnSmt_is_a_Statement( ret_smt, smt3 );
                context().relate_R473_ReturnSmt_returns_value_specified_by_Expression( ret_smt, invoc_expr );
            }
            else {
                ExpressionAsStatement eas2 = ExpressionAsStatementImpl.create( context() );
                context().relate_R451_ExpressionAsStatement_is_a_Statement( eas2, smt3 );
                context().relate_R476_ExpressionAsStatement_executes_as_statement_Expression( eas2, invoc_expr );
            }
            String else_block_number = context().getNextBlockNumber( block );
            CodeBlock else_block = CodeBlockImpl.create( context() );
            else_block.setTop_level(false);
            else_block.setTab_depth(block.getTab_depth() + 1);
            context().relate_R4000_CodeBlock_is_invoked_in_InvocableObject( else_block, invocable );
            else_block.setBlock_number(else_block_number);
            context().relate_R454_IfSmt_has_else_CodeBlock( if_smt, else_block );
            block = else_block;
        }
        Statement smt4 = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt4, block );
        smt4.setStatement_number("1");
        smt4.setActions("");
        Expression throws_expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( throws_expr, smt4 );
        throws_expr.setExpression_number("1.2.1");
        TypeReference void_type = context().TypeReference_getBuiltinTypeReference( "void" );
        context().relate_R795_Expression_expresses_value_of_TypeReference( throws_expr, void_type );
        NamedReference throws_ref = NamedReferenceImpl.create( context() );
        context().relate_R776_NamedReference_is_a_Expression( throws_ref, throws_expr );
        throws_ref.setName(( ( ( "throw new XtumlException(" + context().STRING().quote() ) + "No subtype selected" ) + context().STRING().quote() ) + ")");
        ExpressionAsStatement eas3 = ExpressionAsStatementImpl.create( context() );
        context().relate_R451_ExpressionAsStatement_is_a_Statement( eas3, smt4 );
        context().relate_R476_ExpressionAsStatement_executes_as_statement_Expression( eas3, throws_expr );
    }

    public void transformDelete( final Delete p_act_del,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        Delete act_del = p_act_del;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_del.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        DeleteSmt del = DeleteSmtImpl.create( context() );
        context().relate_R451_DeleteSmt_is_a_Statement( del, smt );
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number("1");
        context().relate_R462_DeleteSmt_deletes_instance_specified_by_Expression( del, expr );
        V_VAR del_v_var = act_del.R634_destroys_V_VAR();
        DataType del_s_dt = del_v_var.R848_has_DataType();
        ModelClass del_obj = del_v_var.R814_is_a_InstanceHandle().R818_refers_to_ModelClass();
        del_s_dt = context().getInstRefTypeForClass( del_s_dt, del_obj );
        DimensionsSet s_dims = del_v_var.R849_may_have_Dimensions();
        TypeReference del_type = context().TypeReference_getInstance( del_s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, del_type );
        Variable del_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), del_v_var.getName()));
        if ( !del_var.isEmpty() ) {
            VariableReference var_ref = VariableReferenceImpl.create( context() );
            context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, del_var );
            context().relate_R776_VariableReference_is_a_Expression( var_ref, expr );
            Type type = expr.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
            context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
        }
        else if ( StringUtil.equality("self", del_v_var.getName()) ) {
            NamedReference self_ref = NamedReferenceImpl.create( context() );
            context().relate_R776_NamedReference_is_a_Expression( self_ref, expr );
            self_ref.setName("self()");
        }
        else {
        }
    }

    public void transformEnumeratedType( final DataType p_s_dt ) throws XtumlException {
        DataType s_dt = p_s_dt;
        EP_PKG ep_pkg = s_dt.R8001_is_a_PackageableElement().R8000_contained_by_EP_PKG();
        File file = FileImpl.create( context() );
        file.setName(context().camelCaseName( s_dt.getName(), false ));
        file.setPath(context().ep_pkgToPath( ep_pkg ));
        file.setPackage(context().pathToPackage( file.getPath() ));
        file.setExtension(".java");
        file.setExclude(false);
        Type type = TypeImpl.create( context() );
        type.setName(file.getName());
        type.setPackage(file.getPackage());
        type.setDefault_value(type.getName() + ".UNINITIALIZED_ENUM");
        context().Type_resolve( type, s_dt );
        EnumeratedType edt = EnumeratedTypeImpl.create( context() );
        context().relate_R407_EnumeratedType_is_a_Type( edt, type );
        context().relate_R401_EnumeratedType_is_a_File( edt, file );
        S_ENUM enumer = s_dt.R17_is_a_EnumerationDataType().R27_defines_S_ENUM().any();
        S_ENUM prev_enumer = enumer.R56_succeeds_S_ENUM();
        while ( !prev_enumer.isEmpty() ) {
            enumer = prev_enumer;
            prev_enumer = enumer.R56_succeeds_S_ENUM();
        }
        int value = 0;
        while ( !enumer.isEmpty() ) {
            Enumerator e = EnumeratorImpl.create( context() );
            e.setName(context().T().sub( "u", enumer.getName() ));
            e.setValue(value);
            value = value + 1;
            context().relate_R415_Enumerator_is_unique_value_of_EnumeratedType( e, edt );
            enumer = enumer.R56_precedes_S_ENUM();
        }
        context().addStringToImports( file, "io.ciera.runtime.summit.types.IXtumlType", ImportType.IMPL );
        context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.XtumlException", ImportType.IMPL );
        context().addStringToImports( file, "java.util.regex.Pattern", ImportType.IMPL );
        context().addStringToImports( file, "java.util.regex.Matcher", ImportType.IMPL );
    }

    public void transformEvent( final StateMachineEvent p_sm_evt,  final StateMachine p_sm,  final int p_id ) throws XtumlException {
        StateMachineEvent sm_evt = p_sm_evt;
        StateMachine sm = p_sm;
        int id = p_id;
        Event evt = EventImpl.create( context() );
        context().relate_R4752_Event_StateMachine( evt, sm );
        evt.setId(id);
        InvocableObject invocable = InvocableObjectImpl.create( context() );
        invocable.setName(context().T().sub( "_", sm_evt.getMning() ));
        invocable.setParent_name(sm.getName());
        invocable.setParent_package(sm.getPackage());
        context().relate_R427_Event_is_a_InvocableObject( evt, invocable );
        invocable.setActions("");
        TypeReference type = context().TypeReference_getBuiltinTypeReference( "void" );
        context().relate_R428_InvocableObject_return_value_is_typed_by_TypeReference( invocable, type );
        StateMachineEventDataItem sm_evtdi = sm_evt.R532_carries_StateMachineEventDataItem().any();
        StateMachineEventDataItem prev_sm_evtdi = sm_evtdi;
        while ( !prev_sm_evtdi.isEmpty() ) {
            sm_evtdi = prev_sm_evtdi;
            prev_sm_evtdi = sm_evtdi.R533_succeeds_StateMachineEventDataItem();
        }
        while ( !sm_evtdi.isEmpty() ) {
            FormalParameter parm = FormalParameterImpl.create( context() );
            parm.setName("p_" + sm_evtdi.getName());
            parm.setBy_ref(false);
            DataType parm_dt = sm_evtdi.R524_is_defined_by_DataType();
            DimensionsSet s_dims = sm_evtdi.R531_may_have_Dimensions();
            TypeReference parm_type = context().TypeReference_getInstance( parm_dt, s_dims );
            context().relate_R431_FormalParameter_is_typed_by_TypeReference( parm, parm_type );
            context().linkParameter( invocable, parm );
            sm_evtdi = sm_evtdi.R533_precedes_StateMachineEventDataItem();
        }
        context().relate_R4759_StateMachineEvent_Event( sm_evt, evt );
    }

    public void transformEventDatumValue( final EventDatumValue p_v_edv,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        EventDatumValue v_edv = p_v_edv;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_edv.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        ParameterReference ref = ParameterReferenceImpl.create( context() );
        context().relate_R776_ParameterReference_is_a_Expression( ref, expr );
        String param_name = "";
        StateMachineEventDataItem sm_evtdi = v_edv.R834_EventParameterReference().R846_StateMachineEventDataItem().any();
        if ( sm_evtdi.isEmpty() ) {
            context().LOG().LogFailure( "No event data item found" );
        }
        else {
            param_name = sm_evtdi.getName();
        }
        final String _final0_param_name = param_name;
        FormalParameter formal_param = sm_evtdi.R532_carried_by_StateMachineEvent().R4759_Event().R427_is_a_InvocableObject().R429_declares_signature_with_FormalParameter().anyWhere(selected -> StringUtil.equality(((FormalParameter)selected).getName(), "p_" + _final0_param_name));
        if ( !formal_param.isEmpty() ) {
            context().relate_R781_ParameterReference_refers_to_FormalParameter( ref, formal_param );
        }
        else {
            context().LOG().LogFailure( "No formal parameter found" );
        }
    }

    public void transformEventSpecificationStatement( final EventSpecificationStatement p_e_ess,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        EventSpecificationStatement e_ess = p_e_ess;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = e_ess.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        GenerateEventStatement e_ges = e_ess.R701_is_a_GenerateEventStatement();
        if ( !e_ges.isEmpty() ) {
            Event evt = e_ges.R703_is_a_GenerateSMEventStatement().R707_generates_StateMachineEvent().R4759_Event();
            V_VAR target_v_var = e_ges.R703_is_a_GenerateSMEventStatement().R705_is_a_E_GEN().R712_has_recipient_V_VAR();
            if ( target_v_var.isEmpty() ) {
                context().LOG().LogFailure( "Generation to class and generation to creator not supported." );
            }
            Generate gen_smt = GenerateImpl.create( context() );
            context().relate_R451_Generate_is_a_Statement( gen_smt, smt );
            Expression evt_expr = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( evt_expr, smt );
            evt_expr.setExpression_number("1");
            TypeReference evt_type_ref = context().TypeReference_getBuiltinTypeReference( "EventHandle" );
            context().relate_R795_Expression_expresses_value_of_TypeReference( evt_expr, evt_type_ref );
            context().relate_R486_Generate_generates_Expression( gen_smt, evt_expr );
            EventCreation evt_cr = EventCreationImpl.create( context() );
            context().relate_R776_EventCreation_is_a_Expression( evt_cr, evt_expr );
            evt_cr.setTo_self(false);
            Expression invoc_expr = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( invoc_expr, smt );
            invoc_expr.setExpression_number(evt_expr.getExpression_number() + ".1");
            context().relate_R795_Expression_expresses_value_of_TypeReference( invoc_expr, evt_type_ref );
            context().relate_R3903_EventCreation_has_base_Expression( evt_cr, invoc_expr );
            Invocation invoc = InvocationImpl.create( context() );
            context().relate_R776_Invocation_is_a_Expression( invoc, invoc_expr );
            InvocableObject evt_invocable = evt.R427_is_a_InvocableObject();
            context().relate_R792_Invocation_invokes_InvocableObject( invoc, evt_invocable );
            Expression expr2 = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( expr2, smt );
            expr2.setExpression_number(invoc_expr.getExpression_number() + ".1");
            ModelInst obj = evt.R4752_StateMachine().R4750_models_behavior_of_ModelInst();
            Type inst_type = obj.R407_is_a_Type();
            DimensionsSet s_dims = new DimensionsSetImpl();
            TypeReference inst_type_ref = context().TypeReference_getInstanceFromType( inst_type, s_dims );
            context().relate_R795_Expression_expresses_value_of_TypeReference( expr2, inst_type_ref );
            NamedReference named_ref = NamedReferenceImpl.create( context() );
            context().relate_R776_NamedReference_is_a_Expression( named_ref, expr2 );
            context().relate_R798_Invocation_invokes_activity_on_Expression( invoc, expr2 );
            named_ref.setName(obj.getName() + "Impl");
            V_PARSet v_pars = e_ess.R700_V_PAR();
            context().transformActualParameters( invoc, v_pars, invoc_expr.getExpression_number(), 2 );
            Expression target_expr = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( target_expr, smt );
            target_expr.setExpression_number(evt_expr.getExpression_number() + ".2");
            context().relate_R3902_EventCreation_has_target_Expression( evt_cr, target_expr );
            DataType target_s_dt = target_v_var.R848_has_DataType();
            ModelClass target_obj = target_v_var.R814_is_a_InstanceHandle().R818_refers_to_ModelClass();
            target_s_dt = context().getInstRefTypeForClass( target_s_dt, target_obj );
            TypeReference target_type = context().TypeReference_getInstance( target_s_dt, s_dims );
            context().relate_R795_Expression_expresses_value_of_TypeReference( target_expr, target_type );
            Variable target_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), target_v_var.getName()));
            if ( !target_var.isEmpty() ) {
                VariableReference var_ref = VariableReferenceImpl.create( context() );
                context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, target_var );
                context().relate_R776_VariableReference_is_a_Expression( var_ref, target_expr );
                Type type = target_expr.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
                context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
            }
            else if ( StringUtil.equality("self", target_v_var.getName()) ) {
                NamedReference self_ref = NamedReferenceImpl.create( context() );
                context().relate_R776_NamedReference_is_a_Expression( self_ref, target_expr );
                self_ref.setName("self()");
                evt_cr.setTo_self(true);
            }
            else {
            }
            context().addStringToImports( context().getFileForStatement( smt ), ( ( obj.getPackage() + ".impl." ) + obj.getName() ) + "Impl", ImportType.IMPL );
        }
        else {
            CreateEventStatement e_ces = e_ess.R701_is_a_CreateEventStatement();
            Event evt = e_ces.R702_is_a_CreateSMEventStatement().R706_creates_StateMachineEvent().R4759_Event();
            V_VAR result_v_var = e_ces.R710_result_V_VAR();
            V_VAR target_v_var = e_ces.R702_is_a_CreateSMEventStatement().R704_is_a_CreateEventToInstance().R711_has_recipient_V_VAR();
            if ( target_v_var.isEmpty() ) {
                context().LOG().LogFailure( "Event creation to class and event creation to creator not supported." );
            }
            ExpressionAsStatement eas = ExpressionAsStatementImpl.create( context() );
            context().relate_R451_ExpressionAsStatement_is_a_Statement( eas, smt );
            Expression expr = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( expr, smt );
            expr.setExpression_number("1");
            TypeReference evt_type_ref = context().TypeReference_getBuiltinTypeReference( "EventHandle" );
            context().relate_R795_Expression_expresses_value_of_TypeReference( expr, evt_type_ref );
            BinaryOperation binop = BinaryOperationImpl.create( context() );
            context().relate_R776_BinaryOperation_is_a_Expression( binop, expr );
            binop.setOperator("=");
            binop.setInvocation(false);
            context().relate_R476_ExpressionAsStatement_executes_as_statement_Expression( eas, expr );
            Expression l_op = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( l_op, smt );
            l_op.setExpression_number("1.1");
            context().relate_R795_Expression_expresses_value_of_TypeReference( l_op, evt_type_ref );
            Variable existing_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), result_v_var.getName()));
            if ( existing_var.isEmpty() ) {
                context().transformVariable( result_v_var, smt );
            }
            Variable result_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), result_v_var.getName()));
            VariableReference var_ref = VariableReferenceImpl.create( context() );
            context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, result_var );
            context().relate_R776_VariableReference_is_a_Expression( var_ref, l_op );
            context().relate_R779_BinaryOperation_has_left_Expression( binop, l_op );
            Type type = l_op.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
            context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
            Expression r_op = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( r_op, smt );
            r_op.setExpression_number("1.2");
            context().relate_R795_Expression_expresses_value_of_TypeReference( r_op, evt_type_ref );
            context().relate_R778_BinaryOperation_has_right_Expression( binop, r_op );
            EventCreation evt_cr = EventCreationImpl.create( context() );
            context().relate_R776_EventCreation_is_a_Expression( evt_cr, r_op );
            evt_cr.setTo_self(false);
            Expression invoc_expr = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( invoc_expr, smt );
            invoc_expr.setExpression_number(r_op.getExpression_number() + ".1");
            context().relate_R795_Expression_expresses_value_of_TypeReference( invoc_expr, evt_type_ref );
            context().relate_R3903_EventCreation_has_base_Expression( evt_cr, invoc_expr );
            Invocation invoc = InvocationImpl.create( context() );
            context().relate_R776_Invocation_is_a_Expression( invoc, invoc_expr );
            InvocableObject evt_invocable = evt.R427_is_a_InvocableObject();
            context().relate_R792_Invocation_invokes_InvocableObject( invoc, evt_invocable );
            Expression expr2 = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( expr2, smt );
            expr2.setExpression_number(invoc_expr.getExpression_number() + ".1");
            ModelInst obj = evt.R4752_StateMachine().R4750_models_behavior_of_ModelInst();
            Type inst_type = obj.R407_is_a_Type();
            DimensionsSet s_dims = new DimensionsSetImpl();
            TypeReference inst_type_ref = context().TypeReference_getInstanceFromType( inst_type, s_dims );
            context().relate_R795_Expression_expresses_value_of_TypeReference( expr2, inst_type_ref );
            NamedReference named_ref = NamedReferenceImpl.create( context() );
            context().relate_R776_NamedReference_is_a_Expression( named_ref, expr2 );
            context().relate_R798_Invocation_invokes_activity_on_Expression( invoc, expr2 );
            named_ref.setName(obj.getName() + "Impl");
            V_PARSet v_pars = e_ess.R700_V_PAR();
            context().transformActualParameters( invoc, v_pars, invoc_expr.getExpression_number(), 2 );
            Expression target_expr = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( target_expr, smt );
            target_expr.setExpression_number(r_op.getExpression_number() + ".2");
            context().relate_R3902_EventCreation_has_target_Expression( evt_cr, target_expr );
            DataType target_s_dt = target_v_var.R848_has_DataType();
            ModelClass target_obj = target_v_var.R814_is_a_InstanceHandle().R818_refers_to_ModelClass();
            target_s_dt = context().getInstRefTypeForClass( target_s_dt, target_obj );
            TypeReference target_type = context().TypeReference_getInstance( target_s_dt, s_dims );
            context().relate_R795_Expression_expresses_value_of_TypeReference( target_expr, target_type );
            Variable target_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), target_v_var.getName()));
            if ( !target_var.isEmpty() ) {
                var_ref = VariableReferenceImpl.create( context() );
                context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, target_var );
                context().relate_R776_VariableReference_is_a_Expression( var_ref, target_expr );
                type = target_expr.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
                context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
            }
            else if ( StringUtil.equality("self", target_v_var.getName()) ) {
                NamedReference self_ref = NamedReferenceImpl.create( context() );
                context().relate_R776_NamedReference_is_a_Expression( self_ref, target_expr );
                self_ref.setName("self()");
                evt_cr.setTo_self(true);
            }
            else {
            }
            context().addStringToImports( context().getFileForStatement( smt ), ( ( obj.getPackage() + ".impl." ) + obj.getName() ) + "Impl", ImportType.IMPL );
        }
    }

    public void transformExpression( final Value p_v_val,  final String p_expr_number,  final Statement p_smt ) throws XtumlException {
        Value v_val = p_v_val;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        LiteralString v_lst = v_val.R801_is_a_LiteralString();
        if ( !v_lst.isEmpty() ) {
            context().transformLiteralString( v_lst, smt, expr_number );
        }
        else {
            LiteralBoolean v_lbo = v_val.R801_is_a_LiteralBoolean();
            if ( !v_lbo.isEmpty() ) {
                context().transformLiteralBoolean( v_lbo, smt, expr_number );
            }
            else {
                LiteralInteger v_lin = v_val.R801_is_a_LiteralInteger();
                if ( !v_lin.isEmpty() ) {
                    context().transformLiteralInteger( v_lin, smt, expr_number );
                }
                else {
                    LiteralReal v_lrl = v_val.R801_is_a_LiteralReal();
                    if ( !v_lrl.isEmpty() ) {
                        context().transformLiteralReal( v_lrl, smt, expr_number );
                    }
                    else {
                        LiteralEnumerator v_len = v_val.R801_is_a_LiteralEnumerator();
                        if ( !v_len.isEmpty() ) {
                            context().transformLiteralEnumerator( v_len, smt, expr_number );
                        }
                        else {
                            TransientValueReference v_tvl = v_val.R801_is_a_TransientValueReference();
                            if ( !v_tvl.isEmpty() ) {
                                context().transformTransientValueReference( v_tvl, smt, expr_number );
                            }
                            else {
                                InstanceReference v_irf = v_val.R801_is_a_InstanceReference();
                                if ( !v_irf.isEmpty() ) {
                                    context().transformInstanceReference( v_irf, smt, expr_number );
                                }
                                else {
                                    InstanceSetReference v_isr = v_val.R801_is_a_InstanceSetReference();
                                    if ( !v_isr.isEmpty() ) {
                                        context().transformInstanceSetReference( v_isr, smt, expr_number );
                                    }
                                    else {
                                        AttributeValueReference v_avl = v_val.R801_is_a_AttributeValueReference();
                                        if ( !v_avl.isEmpty() ) {
                                            context().transformAttributeValueReference( v_avl, smt, expr_number );
                                        }
                                        else {
                                            ParameterValue v_pvl = v_val.R801_is_a_ParameterValue();
                                            if ( !v_pvl.isEmpty() ) {
                                                context().transformParameterValue( v_pvl, smt, expr_number );
                                            }
                                            else {
                                                EventDatumValue v_edv = v_val.R801_is_a_EventDatumValue();
                                                if ( !v_edv.isEmpty() ) {
                                                    context().transformEventDatumValue( v_edv, smt, expr_number );
                                                }
                                                else {
                                                    BridgeValue v_brv = v_val.R801_is_a_BridgeValue();
                                                    if ( !v_brv.isEmpty() ) {
                                                        context().transformBridgeValue( v_brv, smt, expr_number );
                                                    }
                                                    else {
                                                        FunctionValue v_fnv = v_val.R801_is_a_FunctionValue();
                                                        if ( !v_fnv.isEmpty() ) {
                                                            context().transformFunctionValue( v_fnv, smt, expr_number );
                                                        }
                                                        else {
                                                            OperationValue v_trv = v_val.R801_is_a_OperationValue();
                                                            if ( !v_trv.isEmpty() ) {
                                                                context().transformOperationValue( v_trv, smt, expr_number );
                                                            }
                                                            else {
                                                                SelectedReference v_slr = v_val.R801_is_a_SelectedReference();
                                                                if ( !v_slr.isEmpty() ) {
                                                                    context().transformSelectedReference( v_slr, smt, expr_number );
                                                                }
                                                                else {
                                                                    V_UNY v_uny = v_val.R801_is_a_V_UNY();
                                                                    if ( !v_uny.isEmpty() ) {
                                                                        context().transformUnaryOperation( v_uny, smt, expr_number );
                                                                    }
                                                                    else {
                                                                        V_BIN v_bin = v_val.R801_is_a_V_BIN();
                                                                        if ( !v_bin.isEmpty() ) {
                                                                            context().transformBinaryOperation( v_bin, smt, expr_number );
                                                                        }
                                                                        else {
                                                                            V_AER v_aer = v_val.R801_is_a_V_AER();
                                                                            if ( !v_aer.isEmpty() ) {
                                                                                context().transformArrayElementReference( v_aer, smt, expr_number );
                                                                            }
                                                                            else {
                                                                                SymbolicConstantValue v_scv = v_val.R801_is_a_SymbolicConstantValue();
                                                                                if ( !v_scv.isEmpty() ) {
                                                                                    context().transformConstantReference( v_scv, smt, expr_number );
                                                                                }
                                                                                else {
                                                                                    MessageValue v_msv = v_val.R801_is_a_MessageValue();
                                                                                    if ( !v_msv.isEmpty() ) {
                                                                                        context().transformMessageValue( v_msv, smt, expr_number );
                                                                                    }
                                                                                    else {
                                                                                        MemberValueReference v_mvl = v_val.R801_is_a_MemberValueReference();
                                                                                        if ( !v_mvl.isEmpty() ) {
                                                                                            context().transformMemberValueReference( v_mvl, smt, expr_number );
                                                                                        }
                                                                                        else {
                                                                                            ArrayLengthValue v_alv = v_val.R801_is_a_ArrayLengthValue();
                                                                                            if ( !v_alv.isEmpty() ) {
                                                                                                context().transformArrayLengthValue( v_alv, smt, expr_number );
                                                                                            }
                                                                                            else {
                                                                                                context().LOG().LogInfo( "expression type not yet supported" );
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    public void transformForStatement( final ForStmt p_act_for,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        ForStmt act_for = p_act_for;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_for.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        ForSmt for_smt = ForSmtImpl.create( context() );
        context().relate_R451_ForSmt_is_a_Statement( for_smt, smt );
        V_VAR iterable_v_var = act_for.R652_set_V_VAR();
        ModelClass iterable_o_obj = iterable_v_var.R814_is_a_V_INS().R819_refers_to_ModelClass();
        Variable iterable_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), iterable_v_var.getName()));
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number("1");
        DataType s_dt = iterable_v_var.R848_has_DataType();
        s_dt = context().getInstRefTypeForClass( s_dt, iterable_o_obj );
        DimensionsSet s_dims = iterable_v_var.R849_may_have_Dimensions();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        VariableReference var_ref = VariableReferenceImpl.create( context() );
        context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, iterable_var );
        context().relate_R776_VariableReference_is_a_Expression( var_ref, expr );
        context().relate_R478_ForSmt_iterates_over_Expression( for_smt, expr );
        Type expr_type = expr.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
        context().addTypeToImports( context().getFileForStatement( smt ), expr_type, ImportType.IMPL );
        V_VAR iter_v_var = act_for.R614_loop_V_VAR();
        Variable existing_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), iter_v_var.getName()));
        if ( existing_var.isEmpty() ) {
            context().transformVariable( iter_v_var, smt );
        }
        Variable iter_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), iter_v_var.getName()));
        context().relate_R459_ForSmt_declares_as_iterator_Variable( for_smt, iter_var );
        Type iter_type = iter_var.R461_is_typed_by_TypeReference().R3800_based_on_Type();
        context().addTypeToImports( context().getFileForStatement( smt ), iter_type, ImportType.IMPL );
        String control_block_number = context().getNextBlockNumber( block );
        Block control_blk = act_for.R605_controls_Block();
        context().transformBlockForFor( block, control_blk, control_block_number, iter_var, for_smt );
        CodeBlock control_block = block.R4000_is_invoked_in_InvocableObject().R4000_has_CodeBlock().anyWhere(selected -> StringUtil.equality(((CodeBlock)selected).getBlock_number(), control_block_number));
        context().relate_R455_ForSmt_has_control_CodeBlock( for_smt, control_block );
        for_smt.initializeIterator();
        context().addStringToImports( context().getFileForStatement( smt ), "java.util.Iterator", ImportType.IMPL );
    }

    public void transformFunction( final S_SYNC p_s_sync,  final ComponentDefinition p_comp_def ) throws XtumlException {
        S_SYNC s_sync = p_s_sync;
        ComponentDefinition comp_def = p_comp_def;
        Function func = FunctionImpl.create( context() );
        context().relate_R405_Function_can_execute_synchronously_within_ComponentDefinition( func, comp_def );
        InvocableObject invocable = InvocableObjectImpl.create( context() );
        invocable.setName(s_sync.getName());
        invocable.setParent_name(comp_def.getName());
        invocable.setParent_package(comp_def.getPackage());
        context().relate_R427_Function_is_a_InvocableObject( func, invocable );
        invocable.setActions(s_sync.getAction_Semantics_internal());
        DataType s_dt = s_sync.R25_has_return_type_of_DataType();
        DimensionsSet s_dims = s_sync.R51_return_value_may_have_Dimensions();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R428_InvocableObject_return_value_is_typed_by_TypeReference( invocable, type );
        FunctionParameter s_sparm = s_sync.R24_defines_FunctionParameter().any();
        FunctionParameter prev_s_sparm = s_sparm;
        while ( !prev_s_sparm.isEmpty() ) {
            s_sparm = prev_s_sparm;
            prev_s_sparm = s_sparm.R54_succeeds_FunctionParameter();
        }
        while ( !s_sparm.isEmpty() ) {
            FormalParameter parm = FormalParameterImpl.create( context() );
            parm.setName("p_" + s_sparm.getName());
            parm.setBy_ref(1 == s_sparm.getBy_Ref());
            DataType parm_dt = s_sparm.R26_is_typed_by__DataType();
            s_dims = s_sparm.R52_may_have_Dimensions();
            TypeReference parm_type = context().TypeReference_getInstance( parm_dt, s_dims );
            context().relate_R431_FormalParameter_is_typed_by_TypeReference( parm, parm_type );
            context().linkParameter( invocable, parm );
            s_sparm = s_sparm.R54_precedes_FunctionParameter();
        }
        C_C c_c = comp_def.R4573_C_C();
        PackageableElement c_c_pe = c_c.R8001_is_a_PackageableElement();
        Mark init_function_mark = context().Mark_instances().anyWhere(selected -> ( StringUtil.equality(((Mark)selected).getMarkable_name(), "Component") && StringUtil.equality(((Mark)selected).getPath(), ( context().containerMarkingPath( c_c_pe ) + "::" ) + c_c.getName()) ) && StringUtil.equality(((Mark)selected).getFeature_name(), "InitFunction"));
        if ( !init_function_mark.isEmpty() && StringUtil.equality(func.getName(), init_function_mark.getValue()) ) {
            s_sparm = s_sync.R24_defines_FunctionParameter().any();
            if ( s_sparm.isEmpty() ) {
                Function init_function = comp_def.R4561_initialized_by_Function();
                if ( init_function.isEmpty() ) {
                    context().relate_R4561_ComponentDefinition_initialized_by_Function( comp_def, func );
                }
                else {
                }
            }
            else {
            }
        }
        Body act_act = s_sync.R695_FunctionBody().R698_is_a_Body();
        if ( !act_act.isEmpty() ) {
            context().relate_R432_InvocableObject_Body( invocable, act_act );
        }
    }

    public void transformFunctionInvocation( final FunctionInvocation p_act_fnc,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        FunctionInvocation act_fnc = p_act_fnc;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_fnc.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        S_SYNC s_sync = act_fnc.R675_is_an_invocation_of_S_SYNC();
        ComponentDefinition containing_comp_def = context().getCompDefForStatement( smt );
        InvocableObject invocable = containing_comp_def.R405_provides_synchronous_Function().R427_is_a_InvocableObject().anyWhere(selected -> StringUtil.equality(((InvocableObject)selected).getName(), s_sync.getName()));
        if ( !invocable.isEmpty() ) {
            ExpressionAsStatement eas = ExpressionAsStatementImpl.create( context() );
            context().relate_R451_ExpressionAsStatement_is_a_Statement( eas, smt );
            Expression expr = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( expr, smt );
            expr.setExpression_number("1");
            TypeReference void_type = context().TypeReference_getBuiltinTypeReference( "void" );
            context().relate_R795_Expression_expresses_value_of_TypeReference( expr, void_type );
            Invocation invoc = InvocationImpl.create( context() );
            context().relate_R776_Invocation_is_a_Expression( invoc, expr );
            context().relate_R792_Invocation_invokes_InvocableObject( invoc, invocable );
            context().relate_R476_ExpressionAsStatement_executes_as_statement_Expression( eas, expr );
            Expression expr2 = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( expr2, smt );
            expr2.setExpression_number("1.1");
            void_type = context().TypeReference_getBuiltinTypeReference( "void" );
            context().relate_R795_Expression_expresses_value_of_TypeReference( expr2, void_type );
            NamedReference named_ref = NamedReferenceImpl.create( context() );
            context().relate_R776_NamedReference_is_a_Expression( named_ref, expr2 );
            context().relate_R798_Invocation_invokes_activity_on_Expression( invoc, expr2 );
            named_ref.setName("context()");
            V_PARSet v_pars = act_fnc.R669_takes_V_PAR();
            context().transformActualParameters( invoc, v_pars, "1", 2 );
        }
        else {
        }
    }

    public void transformFunctionValue( final FunctionValue p_v_fnv,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        FunctionValue v_fnv = p_v_fnv;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_fnv.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        S_SYNC s_sync = v_fnv.R827_S_SYNC();
        ComponentDefinition containing_comp_def = context().getCompDefForStatement( smt );
        InvocableObject invocable = containing_comp_def.R405_provides_synchronous_Function().R427_is_a_InvocableObject().anyWhere(selected -> StringUtil.equality(((InvocableObject)selected).getName(), s_sync.getName()));
        if ( !invocable.isEmpty() ) {
            Invocation invoc = InvocationImpl.create( context() );
            context().relate_R776_Invocation_is_a_Expression( invoc, expr );
            context().relate_R792_Invocation_invokes_InvocableObject( invoc, invocable );
            Expression expr2 = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( expr2, smt );
            expr2.setExpression_number(expr.getExpression_number() + ".1");
            TypeReference void_type = context().TypeReference_getBuiltinTypeReference( "void" );
            context().relate_R795_Expression_expresses_value_of_TypeReference( expr2, void_type );
            NamedReference named_ref = NamedReferenceImpl.create( context() );
            context().relate_R776_NamedReference_is_a_Expression( named_ref, expr2 );
            context().relate_R798_Invocation_invokes_activity_on_Expression( invoc, expr2 );
            named_ref.setName("context()");
            V_PARSet v_pars = v_fnv.R817_has_V_PAR();
            context().transformActualParameters( invoc, v_pars, expr.getExpression_number(), 2 );
        }
        else {
        }
    }

    public void transformGeneratePreexistingEventStatement( final GeneratePreexistingEvent p_e_gpr,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        GeneratePreexistingEvent e_gpr = p_e_gpr;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = e_gpr.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        Generate gen_smt = GenerateImpl.create( context() );
        context().relate_R451_Generate_is_a_Statement( gen_smt, smt );
        Value evt_v_val = e_gpr.R714_generates_event_held_by_Value();
        context().transformExpression( evt_v_val, "1", smt );
        Expression evt_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), "1"));
        context().relate_R486_Generate_generates_Expression( gen_smt, evt_expr );
    }

    public void transformIfStatement( final IfStmt p_act_if,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        IfStmt act_if = p_act_if;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_if.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        InvocableObject empty_invocable = InvocableObjectImpl.EMPTY_INVOCABLEOBJECT;
        IfSmt if_smt = IfSmtImpl.create( context() );
        context().relate_R451_IfSmt_is_a_Statement( if_smt, smt );
        if_smt.setIs_else_if(false);
        Value if_val = act_if.R625_test_result_Value();
        context().transformExpression( if_val, "1", smt );
        Expression if_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), "1"));
        context().relate_R471_IfSmt_executes_then_block_if_true_Expression( if_smt, if_expr );
        String then_block_number = context().getNextBlockNumber( block );
        Block then_blk = act_if.R607_controls_Block();
        context().transformBlock( empty_invocable, block, then_blk, then_block_number );
        CodeBlock then_block = block.R4000_is_invoked_in_InvocableObject().R4000_has_CodeBlock().anyWhere(selected -> StringUtil.equality(((CodeBlock)selected).getBlock_number(), then_block_number));
        context().relate_R453_IfSmt_has_then_CodeBlock( if_smt, then_block );
        ElseIfStmtSet act_els = act_if.R682_has_ElseIfStmt();
        ElseIfStmtSet translated_act_els = new ElseIfStmtSetImpl();
        ElseIfStmtSet remaining_act_els = ((ElseIfStmtSet)act_els.difference(translated_act_els));
        while ( !remaining_act_els.isEmpty() ) {
            ElseIfStmt act_el = ElseIfStmtImpl.EMPTY_ELSEIFSTMT;
            ElseIfStmt remaining_act_el;
            for ( Iterator _remaining_act_el_iter = remaining_act_els.elements().iterator(); _remaining_act_el_iter.hasNext(); ) {
                remaining_act_el = _remaining_act_el_iter.next();
                if ( act_el.isEmpty() ) {
                    act_el = remaining_act_el;
                }
                else {
                    ACT_SMT act_el_smt = act_el.R603_is_a_ACT_SMT();
                    ACT_SMT remaining_act_el_smt = remaining_act_el.R603_is_a_ACT_SMT();
                    if ( remaining_act_el_smt.getLineNumber() < act_el_smt.getLineNumber() || remaining_act_el_smt.getLineNumber() == act_el_smt.getLineNumber() && remaining_act_el_smt.getStartPosition() == act_el_smt.getStartPosition() ) {
                        act_el = remaining_act_el;
                    }
                }
            }
            String elif_block_number = context().getNextBlockNumber( block );
            context().transformBlockForElif( block, act_el, elif_block_number );
            CodeBlock else_block = block.R4000_is_invoked_in_InvocableObject().R4000_has_CodeBlock().anyWhere(selected -> StringUtil.equality(((CodeBlock)selected).getBlock_number(), elif_block_number));
            context().relate_R454_IfSmt_has_else_CodeBlock( if_smt, else_block );
            block = else_block;
            if_smt = if_smt.R454_has_else_CodeBlock().R450_is_scope_for_Statement().R451_is_a_IfSmt().any();
            translated_act_els = ((ElseIfStmtSet)translated_act_els.union(act_el));
            remaining_act_els = ((ElseIfStmtSet)act_els.difference(translated_act_els));
        }
        String else_block_number = context().getNextBlockNumber( block );
        Block else_blk = act_if.R683_has_ElseStmt().R606_controls_Block();
        if ( !else_blk.isEmpty() ) {
            context().transformBlock( empty_invocable, block, else_blk, else_block_number );
            CodeBlock else_block = block.R4000_is_invoked_in_InvocableObject().R4000_has_CodeBlock().anyWhere(selected -> StringUtil.equality(((CodeBlock)selected).getBlock_number(), else_block_number));
            context().relate_R454_IfSmt_has_else_CodeBlock( if_smt, else_block );
        }
    }

    public void transformInstanceReference( final InstanceReference p_v_irf,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        InstanceReference v_irf = p_v_irf;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_irf.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        V_VAR v_var = v_irf.R808_refers_to_V_VAR();
        if ( StringUtil.equality("self", context().T().sub( "l", v_var.getName() )) ) {
            NamedReference self_ref = NamedReferenceImpl.create( context() );
            context().relate_R776_NamedReference_is_a_Expression( self_ref, expr );
            self_ref.setName("self()");
        }
        else {
            Variable existing_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), v_var.getName()));
            if ( existing_var.isEmpty() ) {
                context().transformVariable( v_var, smt );
            }
            Variable var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), v_var.getName()));
            VariableReference var_ref = VariableReferenceImpl.create( context() );
            context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, var );
            context().relate_R776_VariableReference_is_a_Expression( var_ref, expr );
            Type expr_type = var.R461_is_typed_by_TypeReference().R3800_based_on_Type();
            context().addTypeToImports( context().getFileForStatement( smt ), expr_type, ImportType.IMPL );
        }
    }

    public void transformInstanceReferenceTypes() throws XtumlException {
        ModelClassSet o_objs = context().ModelClass_instances();
        ModelClass o_obj;
        for ( Iterator _o_obj_iter = o_objs.elements().iterator(); _o_obj_iter.hasNext(); ) {
            o_obj = _o_obj_iter.next();
            PackageableElement packageableElem = o_obj.R8001_is_a_PackageableElement();
            EP_PKG pkg = packageableElem.R8000_contained_by_EP_PKG();
            InstanceReferenceDataType existing_irdt = o_obj.R123_is_available_as_a_reference_by_InstanceReferenceDataType().anyWhere(selected -> ((InstanceReferenceDataType)selected).getIsSet() == false);
            if ( existing_irdt.isEmpty() ) {
                PackageableElement pe = PackageableElementImpl.create( context() );
                context().relate_R8000_PackageableElement_contained_by_EP_PKG( pe, pkg );
                pe.setVisibility(Visibility.PUBLIC);
                pe.setType(ElementTypeConstants.DATATYPE);
                DataType dt = DataTypeImpl.create( context() );
                context().relate_R8001_DataType_is_a_PackageableElement( dt, pe );
                InstanceReferenceDataType irdt = InstanceReferenceDataTypeImpl.create( context() );
                irdt.setIsSet(false);
                context().relate_R17_InstanceReferenceDataType_is_a_DataType( irdt, dt );
                dt.setName(( "inst_ref<" + o_obj.getName() ) + ">");
                context().relate_R123_InstanceReferenceDataType_provides_reference_datatype_for_ModelClass( irdt, o_obj );
            }
            InstanceReferenceDataType existing_irdt_set = o_obj.R123_is_available_as_a_reference_by_InstanceReferenceDataType().anyWhere(selected -> ((InstanceReferenceDataType)selected).getIsSet() == true);
            if ( existing_irdt_set.isEmpty() ) {
                PackageableElement pe = PackageableElementImpl.create( context() );
                context().relate_R8000_PackageableElement_contained_by_EP_PKG( pe, pkg );
                pe.setVisibility(Visibility.PUBLIC);
                pe.setType(ElementTypeConstants.DATATYPE);
                DataType dt2 = DataTypeImpl.create( context() );
                context().relate_R8001_DataType_is_a_PackageableElement( dt2, pe );
                InstanceReferenceDataType irsdt = InstanceReferenceDataTypeImpl.create( context() );
                irsdt.setIsSet(true);
                context().relate_R17_InstanceReferenceDataType_is_a_DataType( irsdt, dt2 );
                dt2.setName(( "inst_ref_set<" + o_obj.getName() ) + ">");
                context().relate_R123_InstanceReferenceDataType_provides_reference_datatype_for_ModelClass( irsdt, o_obj );
            }
        }
    }

    public void transformInstanceSetReference( final InstanceSetReference p_v_isr,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        InstanceSetReference v_isr = p_v_isr;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_isr.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        V_VAR v_var = v_isr.R809_refers_to_V_VAR();
        Variable existing_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), v_var.getName()));
        if ( existing_var.isEmpty() ) {
            context().transformVariable( v_var, smt );
        }
        Variable var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), v_var.getName()));
        VariableReference var_ref = VariableReferenceImpl.create( context() );
        context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, var );
        context().relate_R776_VariableReference_is_a_Expression( var_ref, expr );
        Type expr_type = var.R461_is_typed_by_TypeReference().R3800_based_on_Type();
        context().addTypeToImports( context().getFileForStatement( smt ), expr_type, ImportType.IMPL );
    }

    public void transformInterface( final C_I p_c_i,  final String p_path ) throws XtumlException {
        C_I c_i = p_c_i;
        Iface iface = c_i.R421_Iface();
        if ( iface.isEmpty() ) {
            File file = FileImpl.create( context() );
            file.setName("I" + context().camelCaseName( c_i.getName(), false ));
            file.setPath(p_path);
            file.setPackage(context().pathToPackage( file.getPath() ));
            file.setExtension(".java");
            file.setExclude(false);
            iface = IfaceImpl.create( context() );
            context().relate_R401_Iface_is_a_File( iface, file );
            context().relate_R421_Iface_C_I( iface, c_i );
            ExecutablePropertySet c_eps = c_i.R4003_is_defined_by_ExecutableProperty();
            int index = 1;
            ExecutableProperty c_ep;
            for ( Iterator _c_ep_iter = c_eps.elements().iterator(); _c_ep_iter.hasNext(); ) {
                c_ep = _c_ep_iter.next();
                context().transformMessage( c_ep, iface, index );
                index = index + 1;
            }
        }
    }

    public void transformLiteralBoolean( final LiteralBoolean p_v_lbo,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        LiteralBoolean v_lbo = p_v_lbo;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_lbo.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        Literal lit = LiteralImpl.create( context() );
        context().relate_R776_Literal_is_a_Expression( lit, expr );
        if ( StringUtil.equality("true", context().T().sub( "l", v_lbo.getValue() )) ) {
            lit.setValue("true");
        }
        else {
            lit.setValue("false");
        }
    }

    public void transformLiteralEnumerator( final LiteralEnumerator p_v_len,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        LiteralEnumerator v_len = p_v_len;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_len.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        EnumeratorReference enum_ref = EnumeratorReferenceImpl.create( context() );
        context().relate_R776_EnumeratorReference_is_a_Expression( enum_ref, expr );
        S_ENUM s_enum = v_len.R824_has_value_S_ENUM();
        Enumerator enumer = s_enum.R27_is_defined_by_EnumerationDataType().R17_is_a_DataType().R423_Type().R407_is_a_EnumeratedType().R415_declares_Enumerator().anyWhere(selected -> StringUtil.equality(((Enumerator)selected).getName(), context().T().sub( "u", s_enum.getName() )));
        if ( !enumer.isEmpty() ) {
            File edt_file = enumer.R415_is_unique_value_of_EnumeratedType().R401_is_a_File();
            context().addFileToImports( context().getFileForStatement( smt ), edt_file, ImportType.IMPL );
            context().relate_R786_EnumeratorReference_refers_to_Enumerator( enum_ref, enumer );
        }
        else {
        }
    }

    public void transformLiteralInteger( final LiteralInteger p_v_lin,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        LiteralInteger v_lin = p_v_lin;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_lin.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        Literal lit = LiteralImpl.create( context() );
        context().relate_R776_Literal_is_a_Expression( lit, expr );
        lit.setValue(v_lin.getValue());
        if ( context().C_UTIL().isLong( lit.getValue() ) ) {
            lit.setValue(lit.getValue() + "L");
        }
    }

    public void transformLiteralReal( final LiteralReal p_v_lrl,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        LiteralReal v_lrl = p_v_lrl;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_lrl.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        Literal lit = LiteralImpl.create( context() );
        context().relate_R776_Literal_is_a_Expression( lit, expr );
        lit.setValue(v_lrl.getValue());
    }

    public void transformLiteralString( final LiteralString p_v_lst,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        LiteralString v_lst = p_v_lst;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_lst.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        Literal lit = LiteralImpl.create( context() );
        context().relate_R776_Literal_is_a_Expression( lit, expr );
        lit.setValue(v_lst.getValue());
    }

    public void transformMemberValueReference( final MemberValueReference p_v_mvl,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        MemberValueReference v_mvl = p_v_mvl;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_mvl.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        AttributeAccess acc = AttributeAccessImpl.create( context() );
        context().relate_R776_AttributeAccess_is_a_Expression( acc, expr );
        Value root_val = v_mvl.R837_Value();
        context().transformExpression( root_val, expr.getExpression_number() + ".1", smt );
        Expression root_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), expr.getExpression_number() + ".1"));
        context().relate_R785_AttributeAccess_refers_to_attribute_of_instance_expressed_by_Expression( acc, root_expr );
        Attribute attr = v_mvl.R836_is_value_of_StructureMember().R4760_Attribute();
        context().relate_R788_AttributeAccess_refers_to_Attribute( acc, attr );
    }

    public void transformMessage( final ExecutableProperty p_c_ep,  final Iface p_iface,  final int p_index ) throws XtumlException {
        ExecutableProperty c_ep = p_c_ep;
        Iface iface = p_iface;
        int index = p_index;
        InterfaceSignal c_as = c_ep.R4004_is_a_InterfaceSignal();
        InterfaceOperation c_io = c_ep.R4004_is_a_InterfaceOperation();
        Message msg = MessageImpl.create( context() );
        msg.setName(c_ep.getName());
        msg.setTo_provider(true);
        msg.setId(index);
        if ( !c_as.isEmpty() ) {
            msg.setTo_provider(c_as.getDirection().equality(IFDirectionType.CLIENTSERVER));
        }
        else if ( !c_io.isEmpty() ) {
            msg.setTo_provider(c_io.getDirection().equality(IFDirectionType.CLIENTSERVER));
        }
        context().relate_R419_Message_defines_message_format_for_Iface( msg, iface );
        context().relate_R4761_Message_ExecutableProperty( msg, c_ep );
        File file = iface.R401_is_a_File();
        context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.XtumlException", ImportType.IMPL );
        context().addStringToImports( file, "io.ciera.runtime.summit.interfaces.Message", ImportType.IMPL );
    }

    public void transformMessageValue( final MessageValue p_v_msv,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        MessageValue v_msv = p_v_msv;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_msv.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        ExecutableProperty c_ep = v_msv.R841_ProvidedExecutableProperty().R4501_implements_ExecutableProperty();
        if ( c_ep.isEmpty() ) {
            c_ep = v_msv.R845_RequiredExecutableProperty().R4500_implements_ExecutableProperty();
        }
        Port target_port = v_msv.R845_RequiredExecutableProperty().R4500_is_implemented_by_Requirement().R4009_is_a_InterfaceReference().R4016_originates_from_C_PO().R422_Port();
        if ( target_port.isEmpty() ) {
            target_port = v_msv.R841_ProvidedExecutableProperty().R4501_is_implemented_by_Provision().R4009_is_a_InterfaceReference().R4016_originates_from_C_PO().R422_Port();
        }
        final ExecutableProperty _final0_c_ep = c_ep;
        InvocableObject invocable = target_port.R420_provides_implementation_for_PortMessage().R427_is_a_InvocableObject().anyWhere(selected -> StringUtil.equality(((InvocableObject)selected).getName(), _final0_c_ep.getName()));
        if ( !invocable.isEmpty() ) {
            Invocation invoc = InvocationImpl.create( context() );
            context().relate_R776_Invocation_is_a_Expression( invoc, expr );
            context().relate_R792_Invocation_invokes_InvocableObject( invoc, invocable );
            Expression expr2 = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( expr2, smt );
            expr2.setExpression_number(expr.getExpression_number() + ".1");
            TypeReference void_type = context().TypeReference_getBuiltinTypeReference( "void" );
            context().relate_R795_Expression_expresses_value_of_TypeReference( expr2, void_type );
            NamedReference named_ref = NamedReferenceImpl.create( context() );
            context().relate_R776_NamedReference_is_a_Expression( named_ref, expr2 );
            context().relate_R798_Invocation_invokes_activity_on_Expression( invoc, expr2 );
            named_ref.setName(( "context()." + target_port.getPort_name() ) + "()");
            V_PARSet v_pars = v_msv.R842_has_V_PAR();
            context().transformActualParameters( invoc, v_pars, expr.getExpression_number(), 2 );
        }
        else {
        }
    }

    public void transformOperation( final O_TFR p_o_tfr,  final ModelInst p_obj ) throws XtumlException {
        O_TFR o_tfr = p_o_tfr;
        ModelInst obj = p_obj;
        Operation op = OperationImpl.create( context() );
        op.setIs_class_based(Scope.CLASS.equality(o_tfr.getInstance_Based()));
        context().relate_R416_Operation_provided_by_ModelInst( op, obj );
        InvocableObject invocable = InvocableObjectImpl.create( context() );
        invocable.setName(o_tfr.getName());
        invocable.setParent_name(op.getClass_name());
        invocable.setParent_package(op.getClass_package());
        context().relate_R427_Operation_is_a_InvocableObject( op, invocable );
        invocable.setActions(o_tfr.getAction_Semantics_internal());
        DataType s_dt = o_tfr.R116_return_code_is_defined_by_DataType();
        DimensionsSet s_dims = o_tfr.R122_return_value_may_have_Dimensions();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R428_InvocableObject_return_value_is_typed_by_TypeReference( invocable, type );
        OperationParameter o_tparm = o_tfr.R117_contains_OperationParameter().any();
        OperationParameter prev_o_tparm = o_tparm;
        while ( !prev_o_tparm.isEmpty() ) {
            o_tparm = prev_o_tparm;
            prev_o_tparm = o_tparm.R124_succeeds_OperationParameter();
        }
        while ( !o_tparm.isEmpty() ) {
            FormalParameter parm = FormalParameterImpl.create( context() );
            parm.setName("p_" + o_tparm.getName());
            parm.setBy_ref(1 == o_tparm.getBy_Ref());
            DataType parm_dt = o_tparm.R118_is_defined_by_DataType();
            s_dims = o_tparm.R121_may_have_Dimensions();
            TypeReference parm_type = context().TypeReference_getInstance( parm_dt, s_dims );
            context().relate_R431_FormalParameter_is_typed_by_TypeReference( parm, parm_type );
            context().linkParameter( invocable, parm );
            o_tparm = o_tparm.R124_precedes_OperationParameter();
        }
        Body act_act = o_tfr.R696_OperationBody().R698_is_a_Body();
        if ( !act_act.isEmpty() ) {
            context().relate_R432_InvocableObject_Body( invocable, act_act );
        }
        File class_file = obj.R401_is_a_File();
        context().addStringToImports( class_file, "io.ciera.runtime.summit.exceptions.EmptyInstanceException", ImportType.IMPL );
        if ( op.getIs_class_based() ) {
            context().addStringToImports( class_file, "io.ciera.runtime.summit.application.ActionHome", ImportType.IMPL );
        }
        context().addStringToImports( class_file, "io.ciera.runtime.summit.exceptions.XtumlException", ImportType.BOTH );
        Deferral o_def = o_tfr.R126_defers_execution_to_subtypes_across_Deferral();
        if ( !o_def.isEmpty() && o_def.getRequired() == 1 ) {
            op = OperationImpl.create( context() );
            op.setIs_class_based(Scope.CLASS.equality(o_tfr.getInstance_Based()));
            context().relate_R416_Operation_provided_by_ModelInst( op, obj );
            invocable = InvocableObjectImpl.create( context() );
            invocable.setName("_supertype_" + o_tfr.getName());
            invocable.setParent_name(op.getClass_name());
            invocable.setParent_package(op.getClass_package());
            context().relate_R427_Operation_is_a_InvocableObject( op, invocable );
            invocable.setActions(o_tfr.getAction_Semantics_internal());
            s_dt = o_tfr.R116_return_code_is_defined_by_DataType();
            s_dims = o_tfr.R122_return_value_may_have_Dimensions();
            type = context().TypeReference_getInstance( s_dt, s_dims );
            context().relate_R428_InvocableObject_return_value_is_typed_by_TypeReference( invocable, type );
            o_tparm = o_tfr.R117_contains_OperationParameter().any();
            prev_o_tparm = o_tparm;
            while ( !prev_o_tparm.isEmpty() ) {
                o_tparm = prev_o_tparm;
                prev_o_tparm = o_tparm.R124_succeeds_OperationParameter();
            }
            while ( !o_tparm.isEmpty() ) {
                FormalParameter parm = FormalParameterImpl.create( context() );
                parm.setName("p_" + o_tparm.getName());
                parm.setBy_ref(1 == o_tparm.getBy_Ref());
                DataType parm_dt = o_tparm.R118_is_defined_by_DataType();
                s_dims = o_tparm.R121_may_have_Dimensions();
                TypeReference parm_type = context().TypeReference_getInstance( parm_dt, s_dims );
                context().relate_R431_FormalParameter_is_typed_by_TypeReference( parm, parm_type );
                context().linkParameter( invocable, parm );
                o_tparm = o_tparm.R124_precedes_OperationParameter();
            }
            act_act = o_tfr.R696_OperationBody().R698_is_a_Body();
            if ( !act_act.isEmpty() ) {
                context().relate_R432_InvocableObject_Body( invocable, act_act );
            }
            class_file = obj.R401_is_a_File();
            context().addStringToImports( class_file, "io.ciera.runtime.summit.exceptions.EmptyInstanceException", ImportType.IMPL );
            if ( op.getIs_class_based() ) {
                context().addStringToImports( class_file, "io.ciera.runtime.summit.application.ActionHome", ImportType.IMPL );
            }
        }
        else if ( ( !o_def.isEmpty() && o_def.getRequired() == 0 ) && act_act.isEmpty() ) {
            act_act = BodyImpl.create( context() );
            OperationBody act_opb = OperationBodyImpl.create( context() );
            context().relate_R698_OperationBody_is_a_Body( act_opb, act_act );
            context().relate_R696_OperationBody_specifies_processing_for_O_TFR( act_opb, o_tfr );
            context().relate_R432_InvocableObject_Body( invocable, act_act );
        }
    }

    public void transformOperationInvocation( final OperationInvocation p_act_tfm,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        OperationInvocation act_tfm = p_act_tfm;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_tfm.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        O_TFR o_tfr = act_tfm.R673_is_an_invocation_of_O_TFR();
        InvocableObject invocable = o_tfr.R115_is_associated_with_ModelClass().R409_ModelInst().R416_provides_Operation().R427_is_a_InvocableObject().anyWhere(selected -> StringUtil.equality(((InvocableObject)selected).getName(), o_tfr.getName()));
        if ( !invocable.isEmpty() ) {
            ExpressionAsStatement eas = ExpressionAsStatementImpl.create( context() );
            context().relate_R451_ExpressionAsStatement_is_a_Statement( eas, smt );
            Expression expr = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( expr, smt );
            expr.setExpression_number("1");
            context().relate_R476_ExpressionAsStatement_executes_as_statement_Expression( eas, expr );
            TypeReference void_type = context().TypeReference_getBuiltinTypeReference( "void" );
            context().relate_R795_Expression_expresses_value_of_TypeReference( expr, void_type );
            Invocation invoc = InvocationImpl.create( context() );
            context().relate_R776_Invocation_is_a_Expression( invoc, expr );
            context().relate_R792_Invocation_invokes_InvocableObject( invoc, invocable );
            V_VAR op_v_var = act_tfm.R667_has_target_V_VAR();
            if ( op_v_var.isEmpty() ) {
                Expression expr2 = ExpressionImpl.create( context() );
                context().relate_R775_Expression_expressed_within_Statement( expr2, smt );
                expr2.setExpression_number("1.1");
                context().relate_R798_Invocation_invokes_activity_on_Expression( invoc, expr2 );
                void_type = context().TypeReference_getBuiltinTypeReference( "void" );
                context().relate_R795_Expression_expresses_value_of_TypeReference( expr2, void_type );
                NamedReference named_ref = NamedReferenceImpl.create( context() );
                context().relate_R776_NamedReference_is_a_Expression( named_ref, expr2 );
                ModelInst target_class = invocable.R427_is_a_Operation().R416_provided_by_ModelInst();
                named_ref.setName(( "new " + target_class.getName() ) + "Impl.CLASS(context())");
                File class_file = target_class.R401_is_a_File();
                context().addStringToImports( context().getFileForStatement( smt ), ( ( context().pathToPackage( class_file.getPath() ) + ".impl." ) + class_file.getName() ) + "Impl", ImportType.IMPL );
            }
            else {
                Expression expr2 = ExpressionImpl.create( context() );
                context().relate_R775_Expression_expressed_within_Statement( expr2, smt );
                expr2.setExpression_number("1.1");
                context().relate_R798_Invocation_invokes_activity_on_Expression( invoc, expr2 );
                DataType op_s_dt = op_v_var.R848_has_DataType();
                ModelClass op_obj = o_tfr.R115_is_associated_with_ModelClass();
                op_s_dt = context().getInstRefTypeForClass( op_s_dt, op_obj );
                DimensionsSet s_dims = op_v_var.R849_may_have_Dimensions();
                TypeReference op_type = context().TypeReference_getInstance( op_s_dt, s_dims );
                context().relate_R795_Expression_expresses_value_of_TypeReference( expr2, op_type );
                Variable op_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), op_v_var.getName()));
                if ( !op_var.isEmpty() ) {
                    VariableReference var_ref = VariableReferenceImpl.create( context() );
                    context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, op_var );
                    context().relate_R776_VariableReference_is_a_Expression( var_ref, expr2 );
                    Type type = expr2.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
                    context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
                }
                else if ( StringUtil.equality("self", op_v_var.getName()) ) {
                    NamedReference self_ref = NamedReferenceImpl.create( context() );
                    context().relate_R776_NamedReference_is_a_Expression( self_ref, expr2 );
                    self_ref.setName("self()");
                }
                else {
                }
            }
            V_PARSet v_pars = act_tfm.R627_takes_V_PAR();
            context().transformActualParameters( invoc, v_pars, "1", 2 );
        }
        else {
        }
    }

    public void transformOperationValue( final OperationValue p_v_trv,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        OperationValue v_trv = p_v_trv;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_trv.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        O_TFR o_tfr = v_trv.R829_O_TFR();
        InvocableObject invocable = o_tfr.R115_is_associated_with_ModelClass().R409_ModelInst().R416_provides_Operation().R427_is_a_InvocableObject().anyWhere(selected -> StringUtil.equality(((InvocableObject)selected).getName(), o_tfr.getName()));
        if ( !invocable.isEmpty() ) {
            Invocation invoc = InvocationImpl.create( context() );
            context().relate_R776_Invocation_is_a_Expression( invoc, expr );
            context().relate_R792_Invocation_invokes_InvocableObject( invoc, invocable );
            if ( Scope.INSTANCE.equality(o_tfr.getInstance_Based()) ) {
                V_VAR op_v_var = v_trv.R830_V_VAR();
                if ( !op_v_var.isEmpty() ) {
                    Expression expr2 = ExpressionImpl.create( context() );
                    context().relate_R775_Expression_expressed_within_Statement( expr2, smt );
                    expr2.setExpression_number(expr.getExpression_number() + ".1");
                    context().relate_R798_Invocation_invokes_activity_on_Expression( invoc, expr2 );
                    DataType op_s_dt = op_v_var.R848_has_DataType();
                    ModelClass op_obj = o_tfr.R115_is_associated_with_ModelClass();
                    op_s_dt = context().getInstRefTypeForClass( op_s_dt, op_obj );
                    s_dims = op_v_var.R849_may_have_Dimensions();
                    TypeReference op_type = context().TypeReference_getInstance( op_s_dt, s_dims );
                    context().relate_R795_Expression_expresses_value_of_TypeReference( expr2, op_type );
                    Variable op_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), op_v_var.getName()));
                    if ( !op_var.isEmpty() ) {
                        VariableReference var_ref = VariableReferenceImpl.create( context() );
                        context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, op_var );
                        context().relate_R776_VariableReference_is_a_Expression( var_ref, expr2 );
                        Type expr_type = expr2.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
                        context().addTypeToImports( context().getFileForStatement( smt ), expr_type, ImportType.IMPL );
                    }
                    else if ( StringUtil.equality("self", op_v_var.getName()) ) {
                        NamedReference self_ref = NamedReferenceImpl.create( context() );
                        context().relate_R776_NamedReference_is_a_Expression( self_ref, expr2 );
                        self_ref.setName("self()");
                    }
                    else {
                    }
                }
                else {
                    Expression expr2 = ExpressionImpl.create( context() );
                    context().relate_R775_Expression_expressed_within_Statement( expr2, smt );
                    expr2.setExpression_number(expr.getExpression_number() + ".1");
                    context().relate_R798_Invocation_invokes_activity_on_Expression( invoc, expr2 );
                    InstanceReferenceDataType s_irdt = o_tfr.R115_is_associated_with_ModelClass().R123_is_available_as_a_reference_by_InstanceReferenceDataType().anyWhere(selected -> !((InstanceReferenceDataType)selected).getIsSet());
                    s_dt = s_irdt.R17_is_a_DataType();
                    s_dims = new DimensionsSetImpl();
                    TypeReference op_type = context().TypeReference_getInstance( s_dt, s_dims );
                    context().relate_R795_Expression_expresses_value_of_TypeReference( expr2, op_type );
                    ModelInst op_cls = o_tfr.R115_is_associated_with_ModelClass().R409_ModelInst();
                    Selected sel = SelectedImpl.create( context() );
                    sel.setCast(op_cls.getName());
                    context().relate_R776_Selected_is_a_Expression( sel, expr2 );
                    Type sel_type = op_cls.R407_is_a_Type();
                    context().addTypeToImports( context().getFileForStatement( smt ), sel_type, ImportType.IMPL );
                }
            }
            else {
                Expression expr2 = ExpressionImpl.create( context() );
                context().relate_R775_Expression_expressed_within_Statement( expr2, smt );
                expr2.setExpression_number(expr.getExpression_number() + ".1");
                context().relate_R798_Invocation_invokes_activity_on_Expression( invoc, expr2 );
                TypeReference void_type = context().TypeReference_getBuiltinTypeReference( "void" );
                context().relate_R795_Expression_expresses_value_of_TypeReference( expr2, void_type );
                NamedReference named_ref = NamedReferenceImpl.create( context() );
                context().relate_R776_NamedReference_is_a_Expression( named_ref, expr2 );
                ModelInst target_class = invocable.R427_is_a_Operation().R416_provided_by_ModelInst();
                named_ref.setName(( "new " + target_class.getName() ) + "Impl.CLASS(context())");
                File class_file = target_class.R401_is_a_File();
                context().addStringToImports( context().getFileForStatement( smt ), ( ( context().pathToPackage( class_file.getPath() ) + ".impl." ) + class_file.getName() ) + "Impl", ImportType.IMPL );
            }
            V_PARSet v_pars = v_trv.R811_has_V_PAR();
            context().transformActualParameters( invoc, v_pars, expr.getExpression_number(), 2 );
        }
        else {
        }
    }

    public void transformPackage( final EP_PKG p_ep_pkg,  final ComponentDefinition p_containing_comp_def,  final String p_path,  final int p_pass ) throws XtumlException {
        EP_PKG ep_pkg = p_ep_pkg;
        String path = p_path;
        if ( 1 == p_pass ) {
            EP_PKG referred_ep_pkg = ep_pkg.R1402_refers_to_PackageReference().R1402_refers_to_EP_PKG();
            if ( !referred_ep_pkg.isEmpty() ) {
                ep_pkg = referred_ep_pkg;
            }
            ComponentDefinition containing_comp_def = p_containing_comp_def;
            PackageableElementSet pe_pes = ep_pkg.R8000_contains_PackageableElement();
            S_SYNCSet s_syncs = pe_pes.R8001_is_a_S_SYNC();
            S_SYNC s_sync;
            for ( Iterator _s_sync_iter = s_syncs.elements().iterator(); _s_sync_iter.hasNext(); ) {
                s_sync = _s_sync_iter.next();
                context().transformFunction( s_sync, containing_comp_def );
            }
            DataTypeSet edts = pe_pes.R8001_is_a_DataType().R17_is_a_EnumerationDataType().R17_is_a_DataType();
            DataType edt;
            for ( Iterator _edt_iter = edts.elements().iterator(); _edt_iter.hasNext(); ) {
                edt = _edt_iter.next();
                context().transformEnumeratedType( edt );
            }
            DataTypeSet udts = pe_pes.R8001_is_a_DataType().R17_is_a_UserDataType().R17_is_a_DataType();
            DataType udt;
            for ( Iterator _udt_iter = udts.elements().iterator(); _udt_iter.hasNext(); ) {
                udt = _udt_iter.next();
                context().transformUserDefinedType( udt );
            }
            DataTypeSet sdts = pe_pes.R8001_is_a_DataType().R17_is_a_StructuredDataType().R17_is_a_DataType();
            DataType sdt;
            for ( Iterator _sdt_iter = sdts.elements().iterator(); _sdt_iter.hasNext(); ) {
                sdt = _sdt_iter.next();
                context().transformStructuredType( sdt, containing_comp_def );
            }
            ExternalEntitySet s_ees = pe_pes.R8001_is_a_ExternalEntity();
            ExternalEntity s_ee;
            for ( Iterator _s_ee_iter = s_ees.elements().iterator(); _s_ee_iter.hasNext(); ) {
                s_ee = _s_ee_iter.next();
                context().transformUtility( s_ee, ep_pkg, containing_comp_def, false, ( path + "/" ) + context().T().sub( "rl", ep_pkg.getName() ) );
            }
            ModelClassSet o_objs = pe_pes.R8001_is_a_ModelClass();
            ModelClass o_obj;
            for ( Iterator _o_obj_iter = o_objs.elements().iterator(); _o_obj_iter.hasNext(); ) {
                o_obj = _o_obj_iter.next();
                context().transformClass( o_obj, containing_comp_def, ( path + "/" ) + context().T().sub( "rl", ep_pkg.getName() ) );
            }
            C_CSet c_cs = pe_pes.R8001_is_a_C_C();
            C_C c_c;
            for ( Iterator _c_c_iter = c_cs.elements().iterator(); _c_c_iter.hasNext(); ) {
                c_c = _c_c_iter.next();
                context().transformComponentDefinition( c_c, containing_comp_def, ( path + "/" ) + context().T().sub( "rl", ep_pkg.getName() ), 1 );
                context().transformComponentDefinition( c_c, containing_comp_def, ( path + "/" ) + context().T().sub( "rl", ep_pkg.getName() ), 2 );
                context().transformComponentDefinition( c_c, containing_comp_def, ( path + "/" ) + context().T().sub( "rl", ep_pkg.getName() ), 3 );
            }
            EP_PKGSet inner_ep_pkgs = pe_pes.R8001_is_a_EP_PKG();
            EP_PKG inner_ep_pkg;
            for ( Iterator _inner_ep_pkg_iter = inner_ep_pkgs.elements().iterator(); _inner_ep_pkg_iter.hasNext(); ) {
                inner_ep_pkg = _inner_ep_pkg_iter.next();
                context().transformPackage( inner_ep_pkg, containing_comp_def, ( path + "/" ) + context().T().sub( "rl", ep_pkg.getName() ), p_pass );
            }
        }
        else if ( 2 == p_pass ) {
            EP_PKG referred_ep_pkg = ep_pkg.R1402_refers_to_PackageReference().R1402_refers_to_EP_PKG();
            if ( !referred_ep_pkg.isEmpty() ) {
                ep_pkg = referred_ep_pkg;
            }
            ComponentDefinition containing_comp_def = p_containing_comp_def;
            PackageableElementSet pe_pes = ep_pkg.R8000_contains_PackageableElement();
            AssociationSet r_rels = pe_pes.R8001_is_a_Association();
            Association r_rel;
            for ( Iterator _r_rel_iter = r_rels.elements().iterator(); _r_rel_iter.hasNext(); ) {
                r_rel = _r_rel_iter.next();
                context().transformAssociation( r_rel, containing_comp_def );
            }
            EP_PKGSet inner_ep_pkgs = pe_pes.R8001_is_a_EP_PKG();
            EP_PKG inner_ep_pkg;
            for ( Iterator _inner_ep_pkg_iter = inner_ep_pkgs.elements().iterator(); _inner_ep_pkg_iter.hasNext(); ) {
                inner_ep_pkg = _inner_ep_pkg_iter.next();
                context().transformPackage( inner_ep_pkg, containing_comp_def, ( path + "/" ) + context().T().sub( "rl", ep_pkg.getName() ), p_pass );
            }
        }
        else {
            EP_PKG referred_ep_pkg = ep_pkg.R1402_refers_to_PackageReference().R1402_refers_to_EP_PKG();
            if ( !referred_ep_pkg.isEmpty() ) {
                ep_pkg = referred_ep_pkg;
            }
            ComponentDefinition containing_comp_def = p_containing_comp_def;
            PackageableElementSet pe_pes = ep_pkg.R8000_contains_PackageableElement();
            ModelClassSet o_objs = pe_pes.R8001_is_a_ModelClass();
            ModelInstSet objs = ((ModelInstSet)o_objs.R409_ModelInst().where(selected -> !((ModelInst)selected).getUnmanaged()));
            ModelInst obj;
            for ( Iterator _obj_iter = objs.elements().iterator(); _obj_iter.hasNext(); ) {
                obj = _obj_iter.next();
                context().transformSelectors( obj );
            }
            o_objs = pe_pes.R8001_is_a_ModelClass();
            objs = o_objs.R409_ModelInst();
            for ( Iterator _obj_iter = objs.elements().iterator(); _obj_iter.hasNext(); ) {
                obj = _obj_iter.next();
                context().transformAttributeReferences( obj );
            }
            EP_PKGSet inner_ep_pkgs = pe_pes.R8001_is_a_EP_PKG();
            EP_PKG inner_ep_pkg;
            for ( Iterator _inner_ep_pkg_iter = inner_ep_pkgs.elements().iterator(); _inner_ep_pkg_iter.hasNext(); ) {
                inner_ep_pkg = _inner_ep_pkg_iter.next();
                context().transformPackage( inner_ep_pkg, containing_comp_def, ( path + "/" ) + context().T().sub( "rl", ep_pkg.getName() ), p_pass );
            }
        }
    }

    public void transformParameterValue( final ParameterValue p_v_pvl,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        ParameterValue v_pvl = p_v_pvl;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_pvl.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        ParameterReference ref = ParameterReferenceImpl.create( context() );
        context().relate_R776_ParameterReference_is_a_Expression( ref, expr );
        String param_name = "";
        BridgeParameter brg_param = v_pvl.R831_is_a_value_of_BridgeParameter();
        if ( !brg_param.isEmpty() ) {
            param_name = brg_param.getName();
        }
        else {
            FunctionParameter fnc_param = v_pvl.R832_is_a_value_of_FunctionParameter();
            if ( !fnc_param.isEmpty() ) {
                param_name = fnc_param.getName();
            }
            else {
                OperationParameter op_param = v_pvl.R833_is_a_value_of_OperationParameter();
                if ( !op_param.isEmpty() ) {
                    param_name = op_param.getName();
                }
                else {
                    PropertyParameter ep_param = v_pvl.R843_is_a_value_of_PropertyParameter();
                    if ( !ep_param.isEmpty() ) {
                        param_name = ep_param.getName();
                    }
                    else {
                    }
                }
            }
        }
        final String _final0_param_name = param_name;
        FormalParameter formal_param = smt.R450_is_contained_by_CodeBlock().R4000_is_invoked_in_InvocableObject().R429_declares_signature_with_FormalParameter().anyWhere(selected -> StringUtil.equality(((FormalParameter)selected).getName(), "p_" + _final0_param_name));
        if ( !formal_param.isEmpty() ) {
            context().relate_R781_ParameterReference_refers_to_FormalParameter( ref, formal_param );
        }
        else {
        }
    }

    public void transformPort( final C_PO p_c_po,  final ComponentDefinition p_comp_def,  final String p_path ) throws XtumlException {
        C_PO c_po = p_c_po;
        ComponentDefinition comp_def = p_comp_def;
        C_C c_c = c_po.R4010_appears_in_C_C();
        PackageableElement pe = c_c.R8001_is_a_PackageableElement();
        File component_file = comp_def.R401_is_a_File();
        File file = FileImpl.create( context() );
        file.setName(comp_def.getName() + context().camelCaseName( c_po.getName(), false ));
        file.setPath(p_path);
        file.setPackage(context().pathToPackage( file.getPath() ));
        file.setExtension(".java");
        file.setExclude(false);
        Port port = PortImpl.create( context() );
        context().relate_R401_Port_is_a_File( port, file );
        context().relate_R422_Port_C_PO( port, c_po );
        port.setPort_name(context().camelCaseName( c_po.getName(), false ));
        final C_C _final0_c_c = c_c;
        final PackageableElement _final0_pe = pe;
        Mark base_class_mark = context().Mark_instances().anyWhere(selected -> ( StringUtil.equality(((Mark)selected).getMarkable_name(), "Port") && StringUtil.equality(((Mark)selected).getPath(), ( ( ( context().containerMarkingPath( _final0_pe ) + "::" ) + _final0_c_c.getName() ) + "::" ) + c_po.getName()) ) && StringUtil.equality(((Mark)selected).getFeature_name(), "BaseClass"));
        if ( !base_class_mark.isEmpty() ) {
            int index = 0;
            int i = context().STRING().indexof( base_class_mark.getValue(), "." );
            while ( i > 0 ) {
                index = ( index + i ) + 1;
                i = context().STRING().indexof( context().STRING().substr( base_class_mark.getValue(), index + 1, -1 ), "." );
            }
            port.setBase_class(context().STRING().substr( base_class_mark.getValue(), index + 1, -1 ));
            if ( index == 0 ) {
                context().addStringToImports( file, "io.ciera.runtime.summit.interfaces." + port.getBase_class(), ImportType.IMPL );
            }
            else {
                context().addStringToImports( file, base_class_mark.getValue(), ImportType.IMPL );
            }
        }
        else {
            port.setBase_class("Port");
            context().addStringToImports( file, "io.ciera.runtime.summit.interfaces.Port", ImportType.IMPL );
        }
        final PackageableElement _final1_pe = pe;
        final C_C _final1_c_c = c_c;
        Mark impl_class_mark = context().Mark_instances().anyWhere(selected -> ( StringUtil.equality(((Mark)selected).getMarkable_name(), "Port") && StringUtil.equality(((Mark)selected).getPath(), ( ( ( context().containerMarkingPath( _final1_pe ) + "::" ) + _final1_c_c.getName() ) + "::" ) + c_po.getName()) ) && StringUtil.equality(((Mark)selected).getFeature_name(), "ImplementationClass"));
        if ( !impl_class_mark.isEmpty() ) {
            int index = 0;
            int i = context().STRING().indexof( impl_class_mark.getValue(), "." );
            while ( i > 0 ) {
                index = ( index + i ) + 1;
                i = context().STRING().indexof( context().STRING().substr( impl_class_mark.getValue(), index + 1, -1 ), "." );
            }
            port.setImpl_class(context().STRING().substr( impl_class_mark.getValue(), index + 1, -1 ));
            if ( index == 0 ) {
                context().addStringToImports( component_file, "io.ciera.runtime.summit.interfaces." + port.getImpl_class(), ImportType.IMPL );
            }
            else {
                context().addStringToImports( component_file, impl_class_mark.getValue(), ImportType.IMPL );
            }
        }
        else {
            port.setImpl_class(port.getName());
        }
        if ( StringUtil.equality("HttpPort", port.getBase_class()) ) {
            c_c = c_po.R4010_appears_in_C_C();
            pe = c_c.R8001_is_a_PackageableElement();
            final C_C _final2_c_c = c_c;
            final PackageableElement _final2_pe = pe;
            Mark http_endpoint_mark = context().Mark_instances().anyWhere(selected -> ( StringUtil.equality(((Mark)selected).getMarkable_name(), "Port") && StringUtil.equality(((Mark)selected).getPath(), ( ( ( context().containerMarkingPath( _final2_pe ) + "::" ) + _final2_c_c.getName() ) + "::" ) + c_po.getName()) ) && StringUtil.equality(((Mark)selected).getFeature_name(), "HttpEndpoint"));
            port.setEndpoint(http_endpoint_mark.getValue());
        }
        Provision c_p = c_po.R4016_exposes_InterfaceReference().R4009_is_a_Provision().any();
        port.setProvider(!c_p.isEmpty());
        context().relate_R417_Port_passes_messages_for_ComponentDefinition( port, comp_def );
        C_I c_i = c_po.R4016_exposes_InterfaceReference().R4012_may_be_defined_by_C_I().any();
        Iface iface = c_i.R421_Iface();
        if ( iface.isEmpty() && !c_i.isEmpty() ) {
            EP_PKG ep_pkg = c_i.R8001_is_a_PackageableElement().R8000_contained_by_EP_PKG();
            if ( !ep_pkg.isEmpty() ) {
                context().transformInterface( c_i, context().ep_pkgToPath( ep_pkg ) );
            }
            iface = c_i.R421_Iface();
        }
        if ( !iface.isEmpty() ) {
            context().relate_R418_Port_implements_Iface( port, iface );
            MessageSet msgs = iface.R419_defines_communication_through_Message();
            Message msg;
            for ( Iterator _msg_iter = msgs.elements().iterator(); _msg_iter.hasNext(); ) {
                msg = _msg_iter.next();
                context().transformPortMessage( port, msg );
            }
            File iface_file = iface.R401_is_a_File();
            context().addFileToImports( file, iface_file, ImportType.IMPL );
        }
        else {
        }
        context().addFileToImports( component_file, file, ImportType.IMPL );
        context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.BadArgumentException", ImportType.IMPL );
        context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.XtumlException", ImportType.IMPL );
        context().addStringToImports( file, "io.ciera.runtime.summit.interfaces.IMessage", ImportType.IMPL );
        context().addStringToImports( file, "io.ciera.runtime.summit.interfaces.IPort", ImportType.IMPL );
        context().addFileToImports( file, component_file, ImportType.IMPL );
        File iface_file = iface.R401_is_a_File();
        context().addFileToImports( file, iface_file, ImportType.IMPL );
    }

    public void transformPortMessage( final Port p_port,  final Message p_msg ) throws XtumlException {
        Port port = p_port;
        Message msg = p_msg;
        File file = port.R401_is_a_File();
        ExecutableProperty c_ep = msg.R419_defines_message_format_for_Iface().R421_C_I().R4003_is_defined_by_ExecutableProperty().anyWhere(selected -> StringUtil.equality(((ExecutableProperty)selected).getName(), msg.getName()));
        C_PO c_po = port.R422_C_PO();
        PortMessage port_msg = PortMessageImpl.create( context() );
        context().relate_R420_PortMessage_is_implemented_within_Port( port_msg, port );
        context().relate_R420_PortMessage_provides_implementation_for_Message( port_msg, msg );
        InvocableObject invocable = InvocableObjectImpl.create( context() );
        invocable.setName(msg.getName());
        invocable.setParent_name(port.getName());
        invocable.setParent_package(port.getPackage());
        context().relate_R427_PortMessage_is_a_InvocableObject( port_msg, invocable );
        invocable.setActions("");
        Body act_act = BodyImpl.EMPTY_BODY;
        RequiredExecutableProperty spr_rep = c_po.R4016_exposes_InterfaceReference().R4009_is_a_Requirement().R4500_implements_RequiredExecutableProperty().anyWhere(selected -> ((RequiredExecutableProperty)selected).getExecutableProperty_Id().equality(c_ep.getId()));
        RequiredOperation spr_ro = spr_rep.R4502_is_a_RequiredOperation();
        if ( !spr_ro.isEmpty() ) {
            invocable.setActions(spr_ro.getAction_Semantics_internal());
            act_act = spr_ro.R685_RequiredOperationBody().R698_is_a_Body();
        }
        else {
            RequiredSignal spr_rs = spr_rep.R4502_is_a_RequiredSignal();
            if ( !spr_rs.isEmpty() ) {
                invocable.setActions(spr_rs.getAction_Semantics_internal());
                act_act = spr_rs.R684_RequiredSignalBody().R698_is_a_Body();
            }
            else {
                ProvidedExecutableProperty spr_pep = c_po.R4016_exposes_InterfaceReference().R4009_is_a_Provision().R4501_implements_ProvidedExecutableProperty().anyWhere(selected -> ((ProvidedExecutableProperty)selected).getExecutableProperty_Id().equality(c_ep.getId()));
                ProvidedOperation spr_po = spr_pep.R4503_is_a_ProvidedOperation();
                if ( !spr_po.isEmpty() ) {
                    invocable.setActions(spr_po.getAction_Semantics_internal());
                    act_act = spr_po.R687_ProvidedOperationBody().R698_is_a_Body();
                }
                else {
                    ProvidedSignal spr_ps = spr_pep.R4503_is_a_ProvidedSignal();
                    if ( !spr_ps.isEmpty() ) {
                        invocable.setActions(spr_ps.getAction_Semantics_internal());
                        act_act = spr_ps.R686_ProvidedSignalBody().R698_is_a_Body();
                    }
                }
            }
        }
        DataType s_dt = msg.R4761_ExecutableProperty().R4004_is_a_InterfaceOperation().R4008_has_return_defined_by_DataType();
        if ( !s_dt.isEmpty() ) {
            DimensionsSet s_dims = msg.R4761_ExecutableProperty().R4004_is_a_InterfaceOperation().R4018_return_value_may_have_Dimensions();
            TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
            context().relate_R428_InvocableObject_return_value_is_typed_by_TypeReference( invocable, type );
        }
        else {
            TypeReference type = context().TypeReference_getBuiltinTypeReference( "void" );
            context().relate_R428_InvocableObject_return_value_is_typed_by_TypeReference( invocable, type );
        }
        PropertyParameter c_pp = c_ep.R4006_is_parameter_to_PropertyParameter().any();
        PropertyParameter prev_c_pp = c_pp;
        while ( !prev_c_pp.isEmpty() ) {
            c_pp = prev_c_pp;
            prev_c_pp = c_pp.R4021_succeeds_PropertyParameter();
        }
        while ( !c_pp.isEmpty() ) {
            FormalParameter parm = FormalParameterImpl.create( context() );
            parm.setName("p_" + c_pp.getName());
            parm.setBy_ref(1 == c_pp.getBy_Ref());
            DataType parm_dt = c_pp.R4007_is_typed_by_DataType();
            DimensionsSet s_dims = c_pp.R4017_may_have_Dimensions();
            TypeReference parm_type_ref = context().TypeReference_getInstance( parm_dt, s_dims );
            context().relate_R431_FormalParameter_is_typed_by_TypeReference( parm, parm_type_ref );
            context().linkParameter( invocable, parm );
            c_pp = c_pp.R4021_precedes_PropertyParameter();
            if ( msg.getTo_provider() && port.getProvider() || !msg.getTo_provider() && !port.getProvider() ) {
                if ( StringUtil.equality("boolean", parm_type_ref.getType_name()) ) {
                    context().addStringToImports( file, "io.ciera.runtime.summit.types.BooleanUtil", ImportType.IMPL );
                }
                else if ( StringUtil.equality("int", parm_type_ref.getType_name()) ) {
                    context().addStringToImports( file, "io.ciera.runtime.summit.types.IntegerUtil", ImportType.IMPL );
                }
                else if ( StringUtil.equality("double", parm_type_ref.getType_name()) ) {
                    context().addStringToImports( file, "io.ciera.runtime.summit.types.RealUtil", ImportType.IMPL );
                }
                else if ( StringUtil.equality("String", parm_type_ref.getType_name()) ) {
                    context().addStringToImports( file, "io.ciera.runtime.summit.types.StringUtil", ImportType.IMPL );
                }
                else {
                    Type parm_type = parm_type_ref.R3800_based_on_Type();
                    context().addTypeToImports( file, parm_type, ImportType.IMPL );
                }
            }
        }
        if ( !act_act.isEmpty() ) {
            context().relate_R432_InvocableObject_Body( invocable, act_act );
        }
        else {
        }
    }

    public void transformRelate( final Relate p_act_rel,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        Relate act_rel = p_act_rel;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_rel.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        RelateSmt relsmt = RelateSmtImpl.create( context() );
        context().relate_R451_RelateSmt_is_a_Statement( relsmt, smt );
        Association r_rel = act_rel.R653_creates_Association();
        V_VAR one_v_var = act_rel.R615_one_V_VAR();
        ModelClass one_o_obj = one_v_var.R814_is_a_InstanceHandle().R818_refers_to_ModelClass();
        ModelInst one_class = one_o_obj.R409_ModelInst();
        String one_phrase = "";
        V_VAR other_v_var = act_rel.R616_other_V_VAR();
        ModelClass other_o_obj = other_v_var.R814_is_a_InstanceHandle().R818_refers_to_ModelClass();
        ModelInst other_class = other_o_obj.R409_ModelInst();
        String other_phrase = "";
        SimpleAssociation simp = r_rel.R206_is_a_SimpleAssociation();
        if ( !simp.isEmpty() ) {
            if ( one_o_obj.getObj_ID().equality(other_o_obj.getObj_ID()) ) {
                other_phrase = context().C_UTIL().stripTics( act_rel.getRelationship_phrase() );
                ClassInAssociation oir = r_rel.R201_abstracts_association_between_instances_of_ClassInAssociation().anyWhere(selected -> StringUtil.inequality(context().C_UTIL().stripTics( act_rel.getRelationship_phrase() ), context().oirGetPhrase( ((ClassInAssociation)selected).getOIR_ID() )));
                if ( !oir.isEmpty() ) {
                    one_phrase = context().oirGetPhrase( oir.getOIR_ID() );
                }
                else {
                }
            }
            else {
                ClassInAssociation one_oir = r_rel.R201_abstracts_association_between_instances_of_ClassInAssociation().anyWhere(selected -> ((ClassInAssociation)selected).getObj_ID().equality(one_o_obj.getObj_ID()));
                ClassInAssociation other_oir = r_rel.R201_abstracts_association_between_instances_of_ClassInAssociation().anyWhere(selected -> ((ClassInAssociation)selected).getObj_ID().equality(other_o_obj.getObj_ID()));
                if ( !one_oir.isEmpty() && !other_oir.isEmpty() ) {
                    one_phrase = context().oirGetPhrase( one_oir.getOIR_ID() );
                    other_phrase = context().oirGetPhrase( other_oir.getOIR_ID() );
                }
                else {
                }
            }
        }
        else {
            SubtypeSupertypeAssociation subsup = r_rel.R206_is_a_SubtypeSupertypeAssociation();
            if ( !subsup.isEmpty() ) {
                one_phrase = "is_a";
                other_phrase = "is_a";
            }
        }
        V_VAR form_v_var = V_VARImpl.EMPTY_V_VAR;
        V_VAR part_v_var = V_VARImpl.EMPTY_V_VAR;
        ModelClass form_obj = ModelClassImpl.EMPTY_MODELCLASS;
        ModelClass part_obj = ModelClassImpl.EMPTY_MODELCLASS;
        ComponentDefinition containing_comp_def = context().getCompDefForStatement( smt );
        if ( ( !containing_comp_def.isEmpty() && !one_class.isEmpty() ) && !other_class.isEmpty() ) {
            final String _final0_other_phrase = other_phrase;
            final String _final0_one_phrase = one_phrase;
            ClassRelationship rel = containing_comp_def.R448_maintains_instances_of_ClassRelationship().anyWhere(selected -> ((ClassRelationship)selected).getNum() == r_rel.getNumb() && ( ( ( StringUtil.equality(((ClassRelationship)selected).getForm_name(), one_class.getName()) && StringUtil.equality(((ClassRelationship)selected).getForm_phrase(), _final0_one_phrase) ) && StringUtil.equality(((ClassRelationship)selected).getPart_name(), other_class.getName()) ) && StringUtil.equality(((ClassRelationship)selected).getPart_phrase(), _final0_other_phrase) ));
            if ( !rel.isEmpty() ) {
                form_v_var = one_v_var;
                form_obj = one_o_obj;
                part_v_var = other_v_var;
                part_obj = other_o_obj;
            }
            else {
                final String _final1_one_phrase = one_phrase;
                final String _final1_other_phrase = other_phrase;
                rel = containing_comp_def.R448_maintains_instances_of_ClassRelationship().anyWhere(selected -> ((ClassRelationship)selected).getNum() == r_rel.getNumb() && ( ( ( StringUtil.equality(((ClassRelationship)selected).getForm_name(), other_class.getName()) && StringUtil.equality(((ClassRelationship)selected).getForm_phrase(), _final1_other_phrase) ) && StringUtil.equality(((ClassRelationship)selected).getPart_name(), one_class.getName()) ) && StringUtil.equality(((ClassRelationship)selected).getPart_phrase(), _final1_one_phrase) ));
                form_v_var = other_v_var;
                form_obj = other_o_obj;
                part_v_var = one_v_var;
                part_obj = one_o_obj;
            }
            if ( !rel.isEmpty() ) {
                context().relate_R481_RelateSmt_creates_instances_of_ClassRelationship( relsmt, rel );
            }
            else {
            }
        }
        else {
        }
        Expression form_expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( form_expr, smt );
        form_expr.setExpression_number("1");
        context().relate_R479_RelateSmt_relates_formalizing_Expression( relsmt, form_expr );
        DataType form_s_dt = form_v_var.R848_has_DataType();
        form_s_dt = context().getInstRefTypeForClass( form_s_dt, form_obj );
        DimensionsSet s_dims = form_v_var.R849_may_have_Dimensions();
        TypeReference form_type = context().TypeReference_getInstance( form_s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( form_expr, form_type );
        final V_VAR _final0_form_v_var = form_v_var;
        Variable form_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), _final0_form_v_var.getName()));
        if ( !form_var.isEmpty() ) {
            VariableReference var_ref = VariableReferenceImpl.create( context() );
            context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, form_var );
            context().relate_R776_VariableReference_is_a_Expression( var_ref, form_expr );
            Type type = form_expr.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
            context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
        }
        else if ( StringUtil.equality("self", form_v_var.getName()) ) {
            NamedReference self_ref = NamedReferenceImpl.create( context() );
            context().relate_R776_NamedReference_is_a_Expression( self_ref, form_expr );
            self_ref.setName("self()");
        }
        else {
        }
        Expression part_expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( part_expr, smt );
        part_expr.setExpression_number("2");
        context().relate_R480_RelateSmt_relates_participating_Expression( relsmt, part_expr );
        DataType part_s_dt = part_v_var.R848_has_DataType();
        part_s_dt = context().getInstRefTypeForClass( part_s_dt, part_obj );
        s_dims = part_v_var.R849_may_have_Dimensions();
        TypeReference part_type = context().TypeReference_getInstance( part_s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( part_expr, part_type );
        final V_VAR _final0_part_v_var = part_v_var;
        Variable part_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), _final0_part_v_var.getName()));
        if ( !part_var.isEmpty() ) {
            VariableReference var_ref = VariableReferenceImpl.create( context() );
            context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, part_var );
            context().relate_R776_VariableReference_is_a_Expression( var_ref, part_expr );
            Type type = part_expr.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
            context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
        }
        else if ( StringUtil.equality("self", part_v_var.getName()) ) {
            NamedReference self_ref = NamedReferenceImpl.create( context() );
            context().relate_R776_NamedReference_is_a_Expression( self_ref, part_expr );
            self_ref.setName("self()");
        }
        else {
        }
    }

    public void transformRelateUsing( final RelateUsing p_act_ru,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        RelateUsing act_ru = p_act_ru;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_ru.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        Association r_rel = act_ru.R654_creates_Association();
        V_VAR one_v_var = act_ru.R617_one_V_VAR();
        ModelClass one_o_obj = one_v_var.R814_is_a_InstanceHandle().R818_refers_to_ModelClass();
        ModelInst one_class = one_o_obj.R409_ModelInst();
        String one_phrase = "";
        V_VAR other_v_var = act_ru.R618_other_V_VAR();
        ModelClass other_o_obj = other_v_var.R814_is_a_InstanceHandle().R818_refers_to_ModelClass();
        ModelInst other_class = other_o_obj.R409_ModelInst();
        String other_phrase = "";
        V_VAR link_v_var = act_ru.R619_using_V_VAR();
        ModelClass link_o_obj = link_v_var.R814_is_a_InstanceHandle().R818_refers_to_ModelClass();
        ModelInst link_class = link_o_obj.R409_ModelInst();
        if ( one_o_obj.getObj_ID().equality(other_o_obj.getObj_ID()) ) {
            other_phrase = context().C_UTIL().stripTics( act_ru.getRelationship_phrase() );
            ClassInAssociationSet oirs = ((ClassInAssociationSet)r_rel.R201_abstracts_association_between_instances_of_ClassInAssociation().where(selected -> StringUtil.inequality(context().C_UTIL().stripTics( act_ru.getRelationship_phrase() ), context().oirGetPhrase( ((ClassInAssociation)selected).getOIR_ID() ))));
            ClassAsLink link = oirs.R203_is_a_ReferringClassInAssoc().R205_is_a_ClassAsLink().any();
            ClassInAssociation one_oir = ClassInAssociationImpl.EMPTY_CLASSINASSOCIATION;
            ClassInAssociation oir;
            for ( Iterator _oir_iter = oirs.elements().iterator(); _oir_iter.hasNext(); ) {
                oir = _oir_iter.next();
                if ( !link.isEmpty() && oir.getOIR_ID().inequality(link.getOIR_ID()) ) {
                    one_oir = oir;
                    one_phrase = context().oirGetPhrase( oir.getOIR_ID() );
                    break;
                }
            }
            if ( one_oir.isEmpty() ) {
            }
        }
        else {
            ClassInAssociation one_oir = r_rel.R201_abstracts_association_between_instances_of_ClassInAssociation().anyWhere(selected -> ((ClassInAssociation)selected).getObj_ID().equality(one_o_obj.getObj_ID()));
            ClassInAssociation other_oir = r_rel.R201_abstracts_association_between_instances_of_ClassInAssociation().anyWhere(selected -> ((ClassInAssociation)selected).getObj_ID().equality(other_o_obj.getObj_ID()));
            if ( !one_oir.isEmpty() && !other_oir.isEmpty() ) {
                one_phrase = context().oirGetPhrase( one_oir.getOIR_ID() );
                other_phrase = context().oirGetPhrase( other_oir.getOIR_ID() );
            }
            else {
            }
        }
        ClassRelationship rel1 = ClassRelationshipImpl.EMPTY_CLASSRELATIONSHIP;
        ClassRelationship rel2 = ClassRelationshipImpl.EMPTY_CLASSRELATIONSHIP;
        ComponentDefinition containing_comp_def = context().getCompDefForStatement( smt );
        if ( ( ( !containing_comp_def.isEmpty() && !one_class.isEmpty() ) && !other_class.isEmpty() ) && !link_class.isEmpty() ) {
            final String _final0_other_phrase = other_phrase;
            final String _final0_one_phrase = one_phrase;
            rel1 = containing_comp_def.R448_maintains_instances_of_ClassRelationship().anyWhere(selected -> ((ClassRelationship)selected).getNum() == r_rel.getNumb() && ( ( ( StringUtil.equality(((ClassRelationship)selected).getForm_name(), link_class.getName()) && StringUtil.equality(((ClassRelationship)selected).getForm_phrase(), _final0_other_phrase) ) && StringUtil.equality(((ClassRelationship)selected).getPart_name(), one_class.getName()) ) && StringUtil.equality(((ClassRelationship)selected).getPart_phrase(), _final0_one_phrase) ));
            final String _final1_other_phrase = other_phrase;
            final String _final1_one_phrase = one_phrase;
            rel2 = containing_comp_def.R448_maintains_instances_of_ClassRelationship().anyWhere(selected -> ((ClassRelationship)selected).getNum() == r_rel.getNumb() && ( ( ( StringUtil.equality(((ClassRelationship)selected).getForm_name(), link_class.getName()) && StringUtil.equality(((ClassRelationship)selected).getForm_phrase(), _final1_one_phrase) ) && StringUtil.equality(((ClassRelationship)selected).getPart_name(), other_class.getName()) ) && StringUtil.equality(((ClassRelationship)selected).getPart_phrase(), _final1_other_phrase) ));
        }
        else {
        }
        if ( !rel1.isEmpty() && !rel2.isEmpty() ) {
            RelateSmt relsmt1 = RelateSmtImpl.create( context() );
            context().relate_R451_RelateSmt_is_a_Statement( relsmt1, smt );
            context().relate_R481_RelateSmt_creates_instances_of_ClassRelationship( relsmt1, rel1 );
            Expression form_expr1 = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( form_expr1, smt );
            form_expr1.setExpression_number("1");
            context().relate_R479_RelateSmt_relates_formalizing_Expression( relsmt1, form_expr1 );
            DataType form_s_dt = link_v_var.R848_has_DataType();
            form_s_dt = context().getInstRefTypeForClass( form_s_dt, link_o_obj );
            DimensionsSet s_dims = link_v_var.R849_may_have_Dimensions();
            TypeReference form_type = context().TypeReference_getInstance( form_s_dt, s_dims );
            context().relate_R795_Expression_expresses_value_of_TypeReference( form_expr1, form_type );
            Variable form_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), link_v_var.getName()));
            if ( !form_var.isEmpty() ) {
                VariableReference var_ref = VariableReferenceImpl.create( context() );
                context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, form_var );
                context().relate_R776_VariableReference_is_a_Expression( var_ref, form_expr1 );
                Type type = form_expr1.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
                context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
            }
            else if ( StringUtil.equality("self", link_v_var.getName()) ) {
                NamedReference self_ref = NamedReferenceImpl.create( context() );
                context().relate_R776_NamedReference_is_a_Expression( self_ref, form_expr1 );
                self_ref.setName("self()");
            }
            else {
            }
            Expression part_expr1 = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( part_expr1, smt );
            part_expr1.setExpression_number("2");
            context().relate_R480_RelateSmt_relates_participating_Expression( relsmt1, part_expr1 );
            DataType part_s_dt = one_v_var.R848_has_DataType();
            part_s_dt = context().getInstRefTypeForClass( part_s_dt, one_o_obj );
            s_dims = one_v_var.R849_may_have_Dimensions();
            TypeReference part_type = context().TypeReference_getInstance( part_s_dt, s_dims );
            context().relate_R795_Expression_expresses_value_of_TypeReference( part_expr1, part_type );
            Variable part_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), one_v_var.getName()));
            if ( !part_var.isEmpty() ) {
                VariableReference var_ref = VariableReferenceImpl.create( context() );
                context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, part_var );
                context().relate_R776_VariableReference_is_a_Expression( var_ref, part_expr1 );
                Type type = part_expr1.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
                context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
            }
            else if ( StringUtil.equality("self", one_v_var.getName()) ) {
                NamedReference self_ref = NamedReferenceImpl.create( context() );
                context().relate_R776_NamedReference_is_a_Expression( self_ref, part_expr1 );
                self_ref.setName("self()");
            }
            else {
            }
            Statement smt2 = StatementImpl.create( context() );
            context().relate_R450_Statement_is_contained_by_CodeBlock( smt2, block );
            smt2.setStatement_number(context().STRING().itoa( context().STRING().atoi( smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( smt, smt2 );
            smt2.setActions("");
            RelateSmt relsmt2 = RelateSmtImpl.create( context() );
            context().relate_R451_RelateSmt_is_a_Statement( relsmt2, smt2 );
            context().relate_R481_RelateSmt_creates_instances_of_ClassRelationship( relsmt2, rel2 );
            Expression form_expr2 = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( form_expr2, smt2 );
            form_expr2.setExpression_number("1");
            context().relate_R479_RelateSmt_relates_formalizing_Expression( relsmt2, form_expr2 );
            context().relate_R795_Expression_expresses_value_of_TypeReference( form_expr2, form_type );
            form_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), link_v_var.getName()));
            if ( !form_var.isEmpty() ) {
                VariableReference var_ref = VariableReferenceImpl.create( context() );
                context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, form_var );
                context().relate_R776_VariableReference_is_a_Expression( var_ref, form_expr2 );
                Type type = form_expr2.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
                context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
            }
            else if ( StringUtil.equality("self", link_v_var.getName()) ) {
                NamedReference self_ref = NamedReferenceImpl.create( context() );
                context().relate_R776_NamedReference_is_a_Expression( self_ref, form_expr2 );
                self_ref.setName("self()");
            }
            else {
            }
            Expression part_expr2 = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( part_expr2, smt2 );
            part_expr2.setExpression_number("2");
            context().relate_R480_RelateSmt_relates_participating_Expression( relsmt2, part_expr2 );
            part_s_dt = other_v_var.R848_has_DataType();
            part_s_dt = context().getInstRefTypeForClass( part_s_dt, other_o_obj );
            s_dims = other_v_var.R849_may_have_Dimensions();
            part_type = context().TypeReference_getInstance( part_s_dt, s_dims );
            context().relate_R795_Expression_expresses_value_of_TypeReference( part_expr2, part_type );
            part_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), other_v_var.getName()));
            if ( !part_var.isEmpty() ) {
                VariableReference var_ref = VariableReferenceImpl.create( context() );
                context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, part_var );
                context().relate_R776_VariableReference_is_a_Expression( var_ref, part_expr2 );
                Type type = part_expr2.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
                context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
            }
            else if ( StringUtil.equality("self", other_v_var.getName()) ) {
                NamedReference self_ref = NamedReferenceImpl.create( context() );
                context().relate_R776_NamedReference_is_a_Expression( self_ref, part_expr2 );
                self_ref.setName("self()");
            }
            else {
            }
        }
        else {
        }
    }

    public void transformReturnStatement( final ReturnStmt p_act_ret,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        ReturnStmt act_ret = p_act_ret;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_ret.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        ReturnSmt ret = ReturnSmtImpl.create( context() );
        context().relate_R451_ReturnSmt_is_a_Statement( ret, smt );
        Value ret_val = act_ret.R668_has_Value();
        if ( !ret_val.isEmpty() ) {
            Body act_act = body.R432_Body();
            DataType ret_dt = context().getReturnType( act_act );
            DataType val_dt = ret_val.R820_has_type_DataType();
            if ( ( ret_dt.equality(val_dt) || StringUtil.equality(ret_dt.getName(), "real") && StringUtil.equality(val_dt.getName(), "integer") ) || StringUtil.equality(ret_dt.getName(), "timestamp") && StringUtil.equality(val_dt.getName(), "integer") ) {
                context().transformExpression( ret_val, "1", smt );
            }
            else {
                Expression prom_expr = ExpressionImpl.create( context() );
                context().relate_R775_Expression_expressed_within_Statement( prom_expr, smt );
                prom_expr.setExpression_number("1");
                DimensionsSet s_dims = new DimensionsSetImpl();
                TypeReference type = context().TypeReference_getInstance( ret_dt, s_dims );
                context().relate_R795_Expression_expresses_value_of_TypeReference( prom_expr, type );
                Promotion prom = PromotionImpl.create( context() );
                context().relate_R776_Promotion_is_a_Expression( prom, prom_expr );
                if ( context().typeIsBasedOn( val_dt, ret_dt ) ) {
                    prom.setCast(true);
                }
                else {
                    prom.setCast(false);
                    File file = context().getFileForStatement( smt );
                    Type l_type = type.R3800_based_on_Type();
                    context().addTypeToImports( file, l_type, ImportType.IMPL );
                }
                context().transformExpression( ret_val, "1.1", smt );
                Expression prom_val = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), "1.1"));
                context().relate_R3907_Promotion_promotes_Expression( prom, prom_val );
            }
            Expression ret_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), "1"));
            context().relate_R473_ReturnSmt_returns_value_specified_by_Expression( ret, ret_expr );
        }
    }

    public void transformSatisfaction( final Satisfaction p_c_sf ) throws XtumlException {
        Satisfaction c_sf = p_c_sf;
        Port provider = c_sf.R4002_satisfies_Provision().R4009_is_a_InterfaceReference().R4016_originates_from_C_PO().R422_Port();
        Port requirer = c_sf.R4002_defines_required_satisfication_Requirement().R4009_is_a_InterfaceReference().R4016_originates_from_C_PO().R422_Port();
        context().relate_R4160_Port_satisfies_provided_Port( requirer, provider );
    }

    public void transformSelect( final ACT_SEL p_act_sel,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        ACT_SEL act_sel = p_act_sel;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_sel.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        ExpressionAsStatement eas = ExpressionAsStatementImpl.create( context() );
        context().relate_R451_ExpressionAsStatement_is_a_Statement( eas, smt );
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number("1");
        BinaryOperation binop = BinaryOperationImpl.create( context() );
        context().relate_R776_BinaryOperation_is_a_Expression( binop, expr );
        binop.setOperator("=");
        binop.setInvocation(false);
        context().relate_R476_ExpressionAsStatement_executes_as_statement_Expression( eas, expr );
        V_VAR select_v_var = act_sel.R638_selection_V_VAR();
        Expression l_op = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( l_op, smt );
        l_op.setExpression_number("1.1");
        DataType select_s_dt = select_v_var.R848_has_DataType();
        ChainLink last_lnk = act_sel.R637_starts_with_ChainLink();
        ChainLink next_lnk = last_lnk.R604_precedes_ChainLink();
        while ( !next_lnk.isEmpty() ) {
            last_lnk = next_lnk;
            next_lnk = last_lnk.R604_precedes_ChainLink();
        }
        ModelClass select_obj = last_lnk.R678_specifies_instances_of_ModelClass();
        select_s_dt = context().getInstRefTypeForClass( select_s_dt, select_obj );
        DimensionsSet s_dims = select_v_var.R849_may_have_Dimensions();
        TypeReference select_type = context().TypeReference_getInstance( select_s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( l_op, select_type );
        Variable existing_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), select_v_var.getName()));
        if ( existing_var.isEmpty() ) {
            context().transformVariable( select_v_var, smt );
        }
        Variable select_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), select_v_var.getName()));
        VariableReference var_ref = VariableReferenceImpl.create( context() );
        context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, select_var );
        context().relate_R776_VariableReference_is_a_Expression( var_ref, l_op );
        context().relate_R779_BinaryOperation_has_left_Expression( binop, l_op );
        Type type = l_op.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
        context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
        Value where_clause_val = act_sel.R664_is_a_SelectRelatedWhere().R611_where_clause_Value();
        LiteralBoolean where_clause_lbo = where_clause_val.R801_is_a_LiteralBoolean();
        if ( !where_clause_lbo.isEmpty() && StringUtil.equality("false", context().T().sub( "l", where_clause_lbo.getValue() )) ) {
            Expression r_op = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( r_op, smt );
            r_op.setExpression_number("1.2");
            context().relate_R778_BinaryOperation_has_right_Expression( binop, r_op );
            context().relate_R795_Expression_expresses_value_of_TypeReference( r_op, select_type );
            NamedReference named_expr = NamedReferenceImpl.create( context() );
            context().relate_R776_NamedReference_is_a_Expression( named_expr, r_op );
            Type select_type_def = select_type.R3800_based_on_Type();
            named_expr.setName(select_type_def.getDefault_value());
            context().addStringToImports( context().getFileForStatement( smt ), ( ( select_type_def.getPackage() + ".impl." ) + select_type_def.getName() ) + "Impl", ImportType.IMPL );
        }
        else {
            ChainLink lnk = act_sel.R637_starts_with_ChainLink();
            next_lnk = lnk.R604_precedes_ChainLink();
            while ( !next_lnk.isEmpty() ) {
                lnk = next_lnk;
                next_lnk = lnk.R604_precedes_ChainLink();
            }
            if ( !where_clause_val.isEmpty() || StringUtil.equality("any", act_sel.getCardinality()) ) {
                Expression r_op = ExpressionImpl.create( context() );
                context().relate_R775_Expression_expressed_within_Statement( r_op, smt );
                r_op.setExpression_number("1.2");
                context().relate_R778_BinaryOperation_has_right_Expression( binop, r_op );
                context().relate_R795_Expression_expresses_value_of_TypeReference( r_op, select_type );
                context().transformSelectionLink( lnk, "1.2.1", smt );
                if ( !where_clause_val.isEmpty() ) {
                    Where where_expr = WhereImpl.create( context() );
                    context().relate_R776_Where_is_a_Expression( where_expr, r_op );
                    where_expr.setMultiplicity(act_sel.getCardinality());
                    where_expr.setSorted(SortType.NONE);
                    if ( StringUtil.equality("many", where_expr.getMultiplicity()) ) {
                        InstSet cls_set = select_obj.R409_ModelInst().R406_is_type_of_single_element_in_InstSet();
                        where_expr.setCast(cls_set.getName());
                    }
                    else if ( StringUtil.equality("one", where_expr.getMultiplicity()) ) {
                        ModelInst cls = select_obj.R409_ModelInst();
                        where_expr.setCast(cls.getName());
                    }
                    Expression select_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), "1.2.1"));
                    context().relate_R790_Where_filters_Expression( where_expr, select_expr );
                    context().transformExpression( where_clause_val, "1.2.2", smt );
                    Expression where_clause_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), "1.2.2"));
                    context().relate_R796_Where_has_condition_Expression( where_expr, where_clause_expr );
                    context().resolveSortedSelection( where_expr );
                }
                else {
                    Any any_expr = AnyImpl.create( context() );
                    context().relate_R776_Any_is_a_Expression( any_expr, r_op );
                    Expression select_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), "1.2.1"));
                    context().relate_R783_Any_gets_an_arbitrary_element_from_Expression( any_expr, select_expr );
                }
            }
            else {
                context().transformSelectionLink( lnk, "1.2", smt );
                Expression select_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), "1.2"));
                context().relate_R778_BinaryOperation_has_right_Expression( binop, select_expr );
            }
        }
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, select_type );
    }

    public void transformSelectFromInstances( final ACT_FIO p_act_fio,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        ACT_FIO act_fio = p_act_fio;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_fio.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        ExpressionAsStatement eas = ExpressionAsStatementImpl.create( context() );
        context().relate_R451_ExpressionAsStatement_is_a_Statement( eas, smt );
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number("1");
        BinaryOperation binop = BinaryOperationImpl.create( context() );
        context().relate_R776_BinaryOperation_is_a_Expression( binop, expr );
        binop.setOperator("=");
        binop.setInvocation(false);
        context().relate_R476_ExpressionAsStatement_executes_as_statement_Expression( eas, expr );
        V_VAR select_v_var = act_fio.R639_selection_V_VAR();
        Expression l_op = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( l_op, smt );
        l_op.setExpression_number("1.1");
        DataType select_s_dt = select_v_var.R848_has_DataType();
        ModelClass select_obj = act_fio.R677_from_extent_of_ModelClass();
        select_s_dt = context().getInstRefTypeForClass( select_s_dt, select_obj );
        DimensionsSet s_dims = select_v_var.R849_may_have_Dimensions();
        TypeReference select_type = context().TypeReference_getInstance( select_s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( l_op, select_type );
        Variable existing_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), select_v_var.getName()));
        if ( existing_var.isEmpty() ) {
            context().transformVariable( select_v_var, smt );
        }
        Variable select_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), select_v_var.getName()));
        VariableReference var_ref = VariableReferenceImpl.create( context() );
        context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, select_var );
        context().relate_R776_VariableReference_is_a_Expression( var_ref, l_op );
        context().relate_R779_BinaryOperation_has_left_Expression( binop, l_op );
        Type expr_type = l_op.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
        context().addTypeToImports( context().getFileForStatement( smt ), expr_type, ImportType.IMPL );
        InstancePopulationSelector selector = select_obj.R409_ModelInst().R449_extent_accessed_by_InstancePopulationSelector();
        Expression r_op = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( r_op, smt );
        r_op.setExpression_number("1.2");
        context().relate_R778_BinaryOperation_has_right_Expression( binop, r_op );
        InstanceReferenceDataType s_irdt = act_fio.R677_from_extent_of_ModelClass().R123_is_available_as_a_reference_by_InstanceReferenceDataType().anyWhere(selected -> ((InstanceReferenceDataType)selected).getIsSet());
        DataType s_dt = s_irdt.R17_is_a_DataType();
        s_dims = new DimensionsSetImpl();
        TypeReference fio_type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( r_op, fio_type );
        if ( StringUtil.equality("any", act_fio.getCardinality()) ) {
            Any any_expr = AnyImpl.create( context() );
            context().relate_R776_Any_is_a_Expression( any_expr, r_op );
            r_op = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( r_op, smt );
            r_op.setExpression_number("1.2.1");
            context().relate_R795_Expression_expresses_value_of_TypeReference( r_op, select_type );
            context().relate_R783_Any_gets_an_arbitrary_element_from_Expression( any_expr, r_op );
        }
        Select sel = SelectImpl.create( context() );
        context().relate_R776_Select_is_a_Expression( sel, r_op );
        SelectFromInstances sel_fi = SelectFromInstancesImpl.create( context() );
        context().relate_R789_SelectFromInstances_is_a_Select( sel_fi, sel );
        context().relate_R799_SelectFromInstances_selects_instances_through_InstancePopulationSelector( sel_fi, selector );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, select_type );
    }

    public void transformSelectFromInstancesWhere( final SelectFromInstancesWhere p_act_fiw,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        SelectFromInstancesWhere act_fiw = p_act_fiw;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_fiw.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        ExpressionAsStatement eas = ExpressionAsStatementImpl.create( context() );
        context().relate_R451_ExpressionAsStatement_is_a_Statement( eas, smt );
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number("1");
        BinaryOperation binop = BinaryOperationImpl.create( context() );
        context().relate_R776_BinaryOperation_is_a_Expression( binop, expr );
        binop.setOperator("=");
        binop.setInvocation(false);
        context().relate_R476_ExpressionAsStatement_executes_as_statement_Expression( eas, expr );
        V_VAR select_v_var = act_fiw.R665_result_V_VAR();
        Expression l_op = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( l_op, smt );
        l_op.setExpression_number("1.1");
        DataType select_s_dt = select_v_var.R848_has_DataType();
        ModelClass select_obj = act_fiw.R676_from_extent_of_ModelClass();
        select_s_dt = context().getInstRefTypeForClass( select_s_dt, select_obj );
        DimensionsSet s_dims = select_v_var.R849_may_have_Dimensions();
        TypeReference select_type = context().TypeReference_getInstance( select_s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( l_op, select_type );
        Variable existing_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), select_v_var.getName()));
        if ( existing_var.isEmpty() ) {
            context().transformVariable( select_v_var, smt );
        }
        Variable select_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), select_v_var.getName()));
        VariableReference var_ref = VariableReferenceImpl.create( context() );
        context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, select_var );
        context().relate_R776_VariableReference_is_a_Expression( var_ref, l_op );
        context().relate_R779_BinaryOperation_has_left_Expression( binop, l_op );
        Type type = l_op.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
        context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
        Value where_clause_val = act_fiw.R610_where_clause_Value();
        LiteralBoolean where_clause_lbo = where_clause_val.R801_is_a_LiteralBoolean();
        if ( !where_clause_lbo.isEmpty() && StringUtil.equality("false", context().T().sub( "l", where_clause_lbo.getValue() )) ) {
            Expression r_op = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( r_op, smt );
            r_op.setExpression_number("1.2");
            context().relate_R778_BinaryOperation_has_right_Expression( binop, r_op );
            context().relate_R795_Expression_expresses_value_of_TypeReference( r_op, select_type );
            NamedReference named_expr = NamedReferenceImpl.create( context() );
            context().relate_R776_NamedReference_is_a_Expression( named_expr, r_op );
            Type select_type_def = select_type.R3800_based_on_Type();
            named_expr.setName(select_type_def.getDefault_value());
            context().addStringToImports( context().getFileForStatement( smt ), ( ( select_type_def.getPackage() + ".impl." ) + select_type_def.getName() ) + "Impl", ImportType.IMPL );
        }
        else {
            InstancePopulationSelector selector = select_obj.R409_ModelInst().R449_extent_accessed_by_InstancePopulationSelector();
            Expression r_op = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( r_op, smt );
            r_op.setExpression_number("1.2");
            context().relate_R795_Expression_expresses_value_of_TypeReference( r_op, select_type );
            context().relate_R778_BinaryOperation_has_right_Expression( binop, r_op );
            Where where_expr = WhereImpl.create( context() );
            context().relate_R776_Where_is_a_Expression( where_expr, r_op );
            where_expr.setMultiplicity(act_fiw.getCardinality());
            where_expr.setSorted(SortType.NONE);
            if ( StringUtil.equality("many", where_expr.getMultiplicity()) ) {
                InstSet cls_set = select_obj.R409_ModelInst().R406_is_type_of_single_element_in_InstSet();
                where_expr.setCast(cls_set.getName());
            }
            else if ( StringUtil.equality("one", where_expr.getMultiplicity()) ) {
                ModelInst cls = select_obj.R409_ModelInst();
                where_expr.setCast(cls.getName());
            }
            Expression sel_expr = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( sel_expr, smt );
            sel_expr.setExpression_number("1.2.1");
            InstanceReferenceDataType s_irdt = act_fiw.R676_from_extent_of_ModelClass().R123_is_available_as_a_reference_by_InstanceReferenceDataType().anyWhere(selected -> ((InstanceReferenceDataType)selected).getIsSet());
            DataType s_dt = s_irdt.R17_is_a_DataType();
            s_dims = new DimensionsSetImpl();
            TypeReference fiw_type = context().TypeReference_getInstance( s_dt, s_dims );
            context().relate_R795_Expression_expresses_value_of_TypeReference( sel_expr, fiw_type );
            context().relate_R790_Where_filters_Expression( where_expr, sel_expr );
            Select sel = SelectImpl.create( context() );
            context().relate_R776_Select_is_a_Expression( sel, sel_expr );
            SelectFromInstances sel_fi = SelectFromInstancesImpl.create( context() );
            context().relate_R789_SelectFromInstances_is_a_Select( sel_fi, sel );
            context().relate_R799_SelectFromInstances_selects_instances_through_InstancePopulationSelector( sel_fi, selector );
            context().transformExpression( where_clause_val, "1.2.2", smt );
            Expression where_clause_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), "1.2.2"));
            context().relate_R796_Where_has_condition_Expression( where_expr, where_clause_expr );
            context().resolveSortedSelection( where_expr );
        }
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, select_type );
    }

    public void transformSelectedReference( final SelectedReference p_v_slr,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        SelectedReference v_slr = p_v_slr;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_slr.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        Selected sel = SelectedImpl.create( context() );
        context().relate_R776_Selected_is_a_Expression( sel, expr );
        Select select_expr = smt.R451_is_a_ExpressionAsStatement().R476_executes_as_statement_Expression().R776_is_a_BinaryOperation().R778_has_right_Expression().R776_is_a_Where().R790_filters_Expression().R776_is_a_Select();
        ModelInst sel_cls = select_expr.R789_is_a_SelectRelated().R797_selects_instances_through_Selector().R446_selects_instances_of_TypeReference().R3800_based_on_Type().R407_is_a_ModelInst();
        if ( sel_cls.isEmpty() ) {
            sel_cls = select_expr.R789_is_a_SelectRelated().R797_selects_instances_through_Selector().R446_selects_instances_of_TypeReference().R3800_based_on_Type().R407_is_a_InstSet().R406_defines_set_with_elements_of_type_ModelInst();
            if ( sel_cls.isEmpty() ) {
                sel_cls = select_expr.R789_is_a_SelectFromInstances().R799_selects_instances_through_InstancePopulationSelector().R449_selects_instances_of_ModelInst();
            }
        }
        sel.setCast(sel_cls.getName());
        Type sel_type = sel_cls.R407_is_a_Type();
        File file = context().getFileForStatement( smt );
        context().addTypeToImports( file, sel_type, ImportType.IMPL );
    }

    public void transformSelectionLink( final ChainLink p_act_lnk,  final String p_expr_number,  final Statement p_smt ) throws XtumlException {
        ChainLink act_lnk = p_act_lnk;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        ModelClass o_obj = act_lnk.R678_specifies_instances_of_ModelClass();
        InstanceReferenceDataType irdt = o_obj.R123_is_available_as_a_reference_by_InstanceReferenceDataType().anyWhere(selected -> ((InstanceReferenceDataType)selected).getIsSet() && context().act_lnkGetMult( act_lnk ).equality(Mult.MANY) || !((InstanceReferenceDataType)selected).getIsSet() && context().act_lnkGetMult( act_lnk ).equality(Mult.ONE));
        DataType s_dt = irdt.R17_is_a_DataType();
        if ( s_dt.isEmpty() ) {
        }
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        Select sel = SelectImpl.create( context() );
        context().relate_R776_Select_is_a_Expression( sel, expr );
        SelectRelated sel_rel = SelectRelatedImpl.create( context() );
        context().relate_R789_SelectRelated_is_a_Select( sel_rel, sel );
        ChainLink prev_lnk = act_lnk.R604_succeeds_ChainLink();
        ModelInst base_class = ModelInstImpl.EMPTY_MODELINST;
        if ( !prev_lnk.isEmpty() ) {
            context().transformSelectionLink( prev_lnk, expr_number + ".1", smt );
            Expression prev_lnk_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), expr_number + ".1"));
            context().relate_R791_SelectRelated_selects_instances_linked_from_instance_expressed_by_Expression( sel_rel, prev_lnk_expr );
            base_class = prev_lnk.R678_specifies_instances_of_ModelClass().R409_ModelInst();
        }
        else {
            Value base_val = act_lnk.R637_ACT_SEL().R613_starting_point_Value();
            context().transformExpression( base_val, expr_number + ".1", smt );
            Expression base_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), expr_number + ".1"));
            context().relate_R791_SelectRelated_selects_instances_linked_from_instance_expressed_by_Expression( sel_rel, base_expr );
            base_class = base_val.R801_is_a_InstanceReference().R808_refers_to_V_VAR().R814_is_a_InstanceHandle().R818_refers_to_ModelClass().R409_ModelInst();
            if ( base_class.isEmpty() ) {
                base_class = base_val.R801_is_a_InstanceSetReference().R809_refers_to_V_VAR().R814_is_a_V_INS().R819_refers_to_ModelClass().R409_ModelInst();
            }
        }
        Association r_rel = act_lnk.R681_specifies_traversal_of_Association();
        ModelInst target_class = o_obj.R409_ModelInst();
        String phrase = context().C_UTIL().stripTics( act_lnk.getRel_Phrase() );
        if ( StringUtil.equality("", phrase) ) {
            final ModelInst _final0_base_class = base_class;
            ClassRelationship relationship = context().ClassRelationship_instances().anyWhere(selected -> ( ((ClassRelationship)selected).getNum() == r_rel.getNumb() && StringUtil.equality(((ClassRelationship)selected).getForm_name(), target_class.getName()) ) && StringUtil.equality(((ClassRelationship)selected).getPart_name(), _final0_base_class.getName()));
            if ( !relationship.isEmpty() ) {
                phrase = relationship.getForm_phrase();
            }
            else {
                final ModelInst _final1_base_class = base_class;
                relationship = context().ClassRelationship_instances().anyWhere(selected -> ( ((ClassRelationship)selected).getNum() == r_rel.getNumb() && StringUtil.equality(((ClassRelationship)selected).getForm_name(), _final1_base_class.getName()) ) && StringUtil.equality(((ClassRelationship)selected).getPart_name(), target_class.getName()));
                if ( !relationship.isEmpty() ) {
                    phrase = relationship.getPart_phrase();
                }
            }
        }
        String selector_name = ( "R" + context().STRING().itoa( r_rel.getNumb() ) ) + "_";
        if ( StringUtil.inequality("", phrase) ) {
            selector_name = ( selector_name + context().T().sub( "_", phrase ) ) + "_";
        }
        selector_name = selector_name + target_class.getName();
        final String _final0_selector_name = selector_name;
        Selector selector = base_class.R442_selects_instances_through_InstanceSelector().R445_is_a_Selector().anyWhere(selected -> StringUtil.equality(((Selector)selected).getName(), _final0_selector_name));
        if ( selector.isEmpty() ) {
            final String _final1_selector_name = selector_name;
            selector = base_class.R406_is_type_of_single_element_in_InstSet().R444_selects_instances_through_SetSelector().R445_is_a_Selector().anyWhere(selected -> StringUtil.equality(((Selector)selected).getName(), _final1_selector_name));
        }
        if ( !selector.isEmpty() ) {
            context().relate_R797_SelectRelated_selects_instances_through_Selector( sel_rel, selector );
        }
        else {
        }
    }

    public void transformSelector( final ModelInst p_obj,  final ClassRelationship p_rel,  final Cond p_cond,  final Mult p_mult,  final boolean p_formalizer,  final String p_phrase,  final ModelInst p_other_obj ) throws XtumlException {
        ModelInst obj = p_obj;
        ClassRelationship rel = p_rel;
        ModelInst other_obj = p_other_obj;
        String name = ( "R" + context().STRING().itoa( rel.getNum() ) ) + "_";
        if ( StringUtil.inequality("", p_phrase) ) {
            name = ( name + context().T().sub( "_", p_phrase ) ) + "_";
        }
        name = name + other_obj.getName();
        InstSet obj_set = obj.R406_is_type_of_single_element_in_InstSet();
        Selector sel = SelectorImpl.create( context() );
        sel.setParent_name(obj_set.getName());
        sel.setParent_package(obj_set.getPackage());
        sel.setName(name);
        sel.setMultiplicity(p_mult);
        context().relate_R4512_Selector_traverses_across_ClassRelationship( sel, rel );
        SetSelector set_sel = SetSelectorImpl.create( context() );
        context().relate_R445_SetSelector_is_a_Selector( set_sel, sel );
        context().relate_R444_SetSelector_navigates_from_InstSet( set_sel, obj_set );
        Type set_type_def = other_obj.R406_is_type_of_single_element_in_InstSet().R407_is_a_Type();
        TypeReference set_type = context().TypeReference_getInstanceWithDimString( set_type_def, "" );
        context().relate_R446_Selector_selects_instances_of_TypeReference( sel, set_type );
        Type class_type_def = other_obj.R407_is_a_Type();
        TypeReference class_type = context().TypeReference_getInstanceWithDimString( class_type_def, "" );
        if ( Mult.ONE.equality(p_mult) ) {
            sel = SelectorImpl.create( context() );
            sel.setParent_name(obj.getName());
            sel.setParent_package(obj.getPackage());
            sel.setName(name);
            sel.setMultiplicity(p_mult);
            context().relate_R4512_Selector_traverses_across_ClassRelationship( sel, rel );
            InstanceSelector inst_sel = InstanceSelectorImpl.create( context() );
            inst_sel.setRel_num(rel.getNum());
            inst_sel.setConditionality(p_cond);
            inst_sel.setFormalizer(p_formalizer);
            context().relate_R445_InstanceSelector_is_a_Selector( inst_sel, sel );
            context().relate_R442_InstanceSelector_navigates_from_ModelInst( inst_sel, obj );
            context().relate_R4505_SetSelector_invokes_InstanceSelector( set_sel, inst_sel );
            context().relate_R446_Selector_selects_instances_of_TypeReference( sel, class_type );
        }
        else {
            sel = SelectorImpl.create( context() );
            sel.setParent_name(obj.getName());
            sel.setParent_package(obj.getPackage());
            sel.setName(name);
            sel.setMultiplicity(p_mult);
            context().relate_R4512_Selector_traverses_across_ClassRelationship( sel, rel );
            InstanceSelector inst_sel = InstanceSelectorImpl.create( context() );
            inst_sel.setRel_num(rel.getNum());
            inst_sel.setConditionality(p_cond);
            inst_sel.setFormalizer(p_formalizer);
            context().relate_R445_InstanceSelector_is_a_Selector( inst_sel, sel );
            context().relate_R442_InstanceSelector_navigates_from_ModelInst( inst_sel, obj );
            context().relate_R4505_SetSelector_invokes_InstanceSelector( set_sel, inst_sel );
            context().relate_R446_Selector_selects_instances_of_TypeReference( sel, set_type );
        }
        File file = obj.R401_is_a_File();
        context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.XtumlException", ImportType.BOTH );
        if ( Cond.UNCONDITIONAL.equality(p_cond) || Mult.ONE.equality(p_mult) ) {
        }
        if ( Mult.MANY.equality(p_mult) ) {
            context().addStringToImports( file, ( ( set_type.getType_package() + ".impl." ) + set_type.getType_name() ) + "Impl", ImportType.IMPL );
            Type type = class_type.R3800_based_on_Type();
            context().addTypeToImports( file, type, ImportType.BOTH );
        }
        else {
            context().addStringToImports( file, ( ( class_type.getType_package() + ".impl." ) + class_type.getType_name() ) + "Impl", ImportType.IMPL );
        }
        File set_file = obj_set.R401_is_a_File();
        context().addStringToImports( set_file, "io.ciera.runtime.summit.exceptions.XtumlException", ImportType.BOTH );
        context().addStringToImports( set_file, ( ( set_type.getType_package() + ".impl." ) + set_type.getType_name() ) + "Impl", ImportType.IMPL );
        File comp_file = obj.R408_forms_instance_population_of_ComponentDefinition().R401_is_a_File();
        if ( Mult.MANY.inequality(p_mult) ) {
            context().addStringToImports( comp_file, ( ( class_type.getType_package() + ".impl." ) + class_type.getType_name() ) + "Impl", ImportType.IMPL );
        }
    }

    public void transformSelectors( final ModelInst p_obj ) throws XtumlException {
        ModelInst obj = p_obj;
        ClassRelationshipSet form_to_part_rels = obj.R435_formalizes_ClassRelationship();
        ClassRelationship rel;
        for ( Iterator _rel_iter = form_to_part_rels.elements().iterator(); _rel_iter.hasNext(); ) {
            rel = _rel_iter.next();
            ModelInst part_obj = rel.R434_has_participating_ModelInst();
            context().transformSelector( obj, rel, rel.getPart_cond(), rel.getPart_mult(), true, rel.getPart_phrase(), part_obj );
        }
        ClassRelationshipSet part_to_form_rels = obj.R434_participates_in_ClassRelationship();
        for ( Iterator _rel_iter = part_to_form_rels.elements().iterator(); _rel_iter.hasNext(); ) {
            rel = _rel_iter.next();
            ModelInst form_obj = rel.R435_has_formalizing_ModelInst();
            context().transformSelector( obj, rel, rel.getForm_cond(), rel.getForm_mult(), false, rel.getForm_phrase(), form_obj );
        }
    }

    public void transformSignalInvocation( final SignalInvocation p_act_sgn,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        SignalInvocation act_sgn = p_act_sgn;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_sgn.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        RequiredSignal spr_rs = act_sgn.R660_is_invocation_of_RequiredSignal();
        ProvidedSignal spr_ps = act_sgn.R663_is_invocation_of_ProvidedSignal();
        ExecutableProperty c_ep = spr_rs.R4502_is_a_RequiredExecutableProperty().R4500_implements_ExecutableProperty();
        if ( c_ep.isEmpty() ) {
            c_ep = spr_ps.R4503_is_a_ProvidedExecutableProperty().R4501_implements_ExecutableProperty();
        }
        C_PO c_po = spr_rs.R4502_is_a_RequiredExecutableProperty().R4500_is_implemented_by_Requirement().R4009_is_a_InterfaceReference().R4016_originates_from_C_PO();
        if ( c_po.isEmpty() ) {
            c_po = spr_ps.R4503_is_a_ProvidedExecutableProperty().R4501_is_implemented_by_Provision().R4009_is_a_InterfaceReference().R4016_originates_from_C_PO();
        }
        Port target_port = c_po.R422_Port();
        final ExecutableProperty _final0_c_ep = c_ep;
        InvocableObject invocable = target_port.R420_provides_implementation_for_PortMessage().R427_is_a_InvocableObject().anyWhere(selected -> StringUtil.equality(((InvocableObject)selected).getName(), _final0_c_ep.getName()));
        if ( !invocable.isEmpty() ) {
            ExpressionAsStatement eas = ExpressionAsStatementImpl.create( context() );
            context().relate_R451_ExpressionAsStatement_is_a_Statement( eas, smt );
            Expression expr = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( expr, smt );
            expr.setExpression_number("1");
            context().relate_R476_ExpressionAsStatement_executes_as_statement_Expression( eas, expr );
            TypeReference void_type = context().TypeReference_getBuiltinTypeReference( "void" );
            context().relate_R795_Expression_expresses_value_of_TypeReference( expr, void_type );
            Invocation invoc = InvocationImpl.create( context() );
            context().relate_R776_Invocation_is_a_Expression( invoc, expr );
            context().relate_R792_Invocation_invokes_InvocableObject( invoc, invocable );
            Expression expr2 = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( expr2, smt );
            expr2.setExpression_number("1.1");
            context().relate_R798_Invocation_invokes_activity_on_Expression( invoc, expr2 );
            void_type = context().TypeReference_getBuiltinTypeReference( "void" );
            context().relate_R795_Expression_expresses_value_of_TypeReference( expr2, void_type );
            NamedReference named_ref = NamedReferenceImpl.create( context() );
            context().relate_R776_NamedReference_is_a_Expression( named_ref, expr2 );
            named_ref.setName(( "context()." + target_port.getPort_name() ) + "()");
            V_PARSet v_pars = act_sgn.R662_takes_V_PAR();
            context().transformActualParameters( invoc, v_pars, "1", 2 );
        }
        else {
        }
    }

    public void transformState( final StateMachineState p_sm_state,  final StateMachine p_sm,  final int p_number ) throws XtumlException {
        StateMachineState sm_state = p_sm_state;
        StateMachine sm = p_sm;
        int number = p_number;
        State state = StateImpl.create( context() );
        context().relate_R4751_State_StateMachine( state, sm );
        state.setFinal(sm_state.getFinal() == 1);
        state.setNumber(number);
        InvocableObject invocable = InvocableObjectImpl.create( context() );
        invocable.setName(context().T().sub( "_", sm_state.getName() ));
        invocable.setParent_name(sm.getName());
        invocable.setParent_package(sm.getPackage());
        context().relate_R427_State_is_a_InvocableObject( state, invocable );
        Action sm_act = sm_state.R511_MooreActionHome().R513_is_a_ActionHome().R514_houses_Action();
        invocable.setActions(sm_act.getAction_Semantics_internal());
        Body act_act = sm_act.R691_StateActionBody().R698_is_a_Body();
        if ( !act_act.isEmpty() ) {
            context().relate_R432_InvocableObject_Body( invocable, act_act );
        }
        TypeReference type = context().TypeReference_getBuiltinTypeReference( "void" );
        context().relate_R428_InvocableObject_return_value_is_typed_by_TypeReference( invocable, type );
        context().relate_R4758_StateMachineState_State( sm_state, state );
    }

    public void transformStateMachine( final SM_SM p_sm_sm,  final ModelInst p_obj ) throws XtumlException {
        SM_SM sm_sm = p_sm_sm;
        ModelInst obj = p_obj;
        File file = FileImpl.create( context() );
        file.setName(obj.getName() + "StateMachine");
        file.setPath(context().formatPath( obj.getPackage() ));
        file.setPackage(obj.getPackage());
        file.setExtension(".java");
        file.setExclude(false);
        StateMachine sm = StateMachineImpl.create( context() );
        context().relate_R401_StateMachine_is_a_File( sm, file );
        context().relate_R4750_StateMachine_models_behavior_of_ModelInst( sm, obj );
        StateMachineStateSet sm_states = sm_sm.R501_is_decomposed_into_StateMachineState();
        StateMachineState init_state = StateMachineStateImpl.EMPTY_STATEMACHINESTATE;
        StateMachineState sm_state;
        for ( Iterator _sm_state_iter = sm_states.elements().iterator(); _sm_state_iter.hasNext(); ) {
            sm_state = _sm_state_iter.next();
            if ( init_state.isEmpty() || sm_state.getNumb() < init_state.getNumb() ) {
                init_state = sm_state;
            }
        }
        if ( !init_state.isEmpty() ) {
            context().transformState( init_state, sm, 0 );
        }
        int number = 1;
        sm_states = ((StateMachineStateSet)sm_states.difference(init_state));
        for ( Iterator _sm_state_iter = sm_states.elements().iterator(); _sm_state_iter.hasNext(); ) {
            sm_state = _sm_state_iter.next();
            context().transformState( sm_state, sm, number );
            number = number + 1;
        }
        int id = 0;
        StateMachineEventSet sm_evts = sm_sm.R502_can_be_communicated_to_via_StateMachineEvent().R525_is_a_SEMEvent().R526_is_a_LocalEvent().R526_is_a_SEMEvent().R525_is_a_StateMachineEvent();
        StateMachineEvent sm_evt;
        for ( Iterator _sm_evt_iter = sm_evts.elements().iterator(); _sm_evt_iter.hasNext(); ) {
            sm_evt = _sm_evt_iter.next();
            context().transformEvent( sm_evt, sm, id );
            id = id + 1;
        }
        StateSet states = sm.R4751_declares_State();
        State state;
        for ( Iterator _state_iter = states.elements().iterator(); _state_iter.hasNext(); ) {
            state = _state_iter.next();
            TransitionTableRow row = TransitionTableRowImpl.create( context() );
            context().relate_R4753_TransitionTableRow_StateMachine( row, sm );
            context().relate_R4754_TransitionTableRow_State( row, state );
            row.setIndex(state.getNumber());
            EventSet evts = sm.R4752_declares_Event();
            Event evt;
            for ( Iterator _evt_iter = evts.elements().iterator(); _evt_iter.hasNext(); ) {
                evt = _evt_iter.next();
                TransitionTableCell cell = TransitionTableCellImpl.create( context() );
                context().relate_R4755_TransitionTableCell_TransitionTableRow( cell, row );
                context().relate_R4756_TransitionTableCell_receives_Event( cell, evt );
                cell.setIndex(evt.getId());
                sm_state = state.R4758_StateMachineState();
                sm_evt = evt.R4759_StateMachineEvent();
                final StateMachineState _final0_sm_state = sm_state;
                StateEventMatrixEntry sm_seme = sm_evt.R525_is_a_SEMEvent().R503_is_received_by_StateEventMatrixEntry().anyWhere(selected -> ((StateEventMatrixEntry)selected).getSMstt_ID().equality(_final0_sm_state.getSMstt_ID()));
                if ( !sm_seme.isEmpty() ) {
                }
                CantHappen cant_happen = sm_seme.R504_is_a_CantHappen();
                if ( !cant_happen.isEmpty() ) {
                    cell.setTransition_type(TransitionType.CANT_HAPPEN);
                }
                else {
                    EventIgnored event_ignored = sm_seme.R504_is_a_EventIgnored();
                    if ( !event_ignored.isEmpty() ) {
                        cell.setTransition_type(TransitionType.IGNORE);
                    }
                    else {
                        StateTransition txn = StateTransitionImpl.create( context() );
                        Transition sm_txn = sm_seme.R504_is_a_NewStateTransition().R507_is_a_Transition();
                        State dest_state = sm_txn.R506_is_destined_to_StateMachineState().R4758_State();
                        context().relate_R4757_StateTransition_transitions_to_State( txn, dest_state );
                        context().relate_R4757_StateTransition_TransitionTableCell( txn, cell );
                        cell.setTransition_type(TransitionType.TRANSITION);
                        InvocableObject invocable = InvocableObjectImpl.create( context() );
                        invocable.setName(( state.getName() + "_txn_" ) + dest_state.getName());
                        invocable.setParent_name(sm.getName());
                        invocable.setParent_package(sm.getPackage());
                        context().relate_R427_StateTransition_is_a_InvocableObject( txn, invocable );
                        Action sm_act = sm_txn.R530_houses_action_for_TransitionActionHome().R513_is_a_ActionHome().R514_houses_Action();
                        invocable.setActions(sm_act.getAction_Semantics_internal());
                        Body act_act = sm_act.R688_TransitionActionBody().R698_is_a_Body();
                        if ( !act_act.isEmpty() ) {
                            context().relate_R432_InvocableObject_Body( invocable, act_act );
                        }
                        TypeReference type = context().TypeReference_getBuiltinTypeReference( "void" );
                        context().relate_R428_InvocableObject_return_value_is_typed_by_TypeReference( invocable, type );
                    }
                }
            }
        }
        context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.XtumlException", ImportType.IMPL );
        context().addStringToImports( file, "io.ciera.runtime.summit.statemachine.ITransition", ImportType.IMPL );
        context().addStringToImports( file, "io.ciera.runtime.summit.statemachine.StateMachine", ImportType.IMPL );
        File class_file = obj.R401_is_a_File();
        File comp_file = obj.R408_forms_instance_population_of_ComponentDefinition().R401_is_a_File();
        context().addFileToImports( file, class_file, ImportType.IMPL );
        context().addFileToImports( file, comp_file, ImportType.IMPL );
    }

    public void transformStatement( final ACT_SMT p_act_smt,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        ACT_SMT act_smt = p_act_smt;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        if ( act_smt.isEmpty() || block.isEmpty() ) {
        }
        BridgeInvocation act_brg = act_smt.R603_is_a_BridgeInvocation();
        if ( !act_brg.isEmpty() ) {
            context().transformBridgeInvocation( act_brg, block, prev_smt );
        }
        else {
            FunctionInvocation act_fnc = act_smt.R603_is_a_FunctionInvocation();
            if ( !act_fnc.isEmpty() ) {
                context().transformFunctionInvocation( act_fnc, block, prev_smt );
            }
            else {
                OperationInvocation act_tfm = act_smt.R603_is_a_OperationInvocation();
                if ( !act_tfm.isEmpty() ) {
                    context().transformOperationInvocation( act_tfm, block, prev_smt );
                }
                else {
                    SignalInvocation act_sgn = act_smt.R603_is_a_SignalInvocation();
                    if ( !act_sgn.isEmpty() ) {
                        context().transformSignalInvocation( act_sgn, block, prev_smt );
                    }
                    else {
                        IfStmt act_if = act_smt.R603_is_a_IfStmt();
                        if ( !act_if.isEmpty() ) {
                            context().transformIfStatement( act_if, block, prev_smt );
                        }
                        else {
                            WhileStmt act_whl = act_smt.R603_is_a_WhileStmt();
                            if ( !act_whl.isEmpty() ) {
                                context().transformWhileStatement( act_whl, block, prev_smt );
                            }
                            else {
                                ACT_BRK act_brk = act_smt.R603_is_a_ACT_BRK();
                                if ( !act_brk.isEmpty() ) {
                                    context().transformBreakStatement( act_brk, block, prev_smt );
                                }
                                else {
                                    ACT_CON act_con = act_smt.R603_is_a_ACT_CON();
                                    if ( !act_con.isEmpty() ) {
                                        context().transformContinueStatement( act_con, block, prev_smt );
                                    }
                                    else {
                                        AssignToMember act_ai = act_smt.R603_is_a_AssignToMember();
                                        if ( !act_ai.isEmpty() ) {
                                            context().transformAssignToMember( act_ai, block, prev_smt );
                                        }
                                        else {
                                            ForStmt act_for = act_smt.R603_is_a_ForStmt();
                                            if ( !act_for.isEmpty() ) {
                                                context().transformForStatement( act_for, block, prev_smt );
                                            }
                                            else {
                                                ACT_FIO act_fio = act_smt.R603_is_a_ACT_FIO();
                                                if ( !act_fio.isEmpty() ) {
                                                    context().transformSelectFromInstances( act_fio, block, prev_smt );
                                                }
                                                else {
                                                    SelectFromInstancesWhere act_fiw = act_smt.R603_is_a_SelectFromInstancesWhere();
                                                    if ( !act_fiw.isEmpty() ) {
                                                        context().transformSelectFromInstancesWhere( act_fiw, block, prev_smt );
                                                    }
                                                    else {
                                                        ACT_SEL act_sel = act_smt.R603_is_a_ACT_SEL();
                                                        if ( !act_sel.isEmpty() ) {
                                                            context().transformSelect( act_sel, block, prev_smt );
                                                        }
                                                        else {
                                                            Create act_cr = act_smt.R603_is_a_Create();
                                                            if ( !act_cr.isEmpty() ) {
                                                                context().transformCreate( act_cr, block, prev_smt );
                                                            }
                                                            else {
                                                                CreateNoVariable act_cnv = act_smt.R603_is_a_CreateNoVariable();
                                                                if ( !act_cnv.isEmpty() ) {
                                                                    context().transformCreateNoVariable( act_cnv, block, prev_smt );
                                                                }
                                                                else {
                                                                    Control act_ctl = act_smt.R603_is_a_Control();
                                                                    if ( !act_ctl.isEmpty() ) {
                                                                        context().transformControl( act_ctl, block, prev_smt );
                                                                    }
                                                                    else {
                                                                        Delete act_del = act_smt.R603_is_a_Delete();
                                                                        if ( !act_del.isEmpty() ) {
                                                                            context().transformDelete( act_del, block, prev_smt );
                                                                        }
                                                                        else {
                                                                            ReturnStmt act_ret = act_smt.R603_is_a_ReturnStmt();
                                                                            if ( !act_ret.isEmpty() ) {
                                                                                context().transformReturnStatement( act_ret, block, prev_smt );
                                                                            }
                                                                            else {
                                                                                Relate act_rel = act_smt.R603_is_a_Relate();
                                                                                if ( !act_rel.isEmpty() ) {
                                                                                    context().transformRelate( act_rel, block, prev_smt );
                                                                                }
                                                                                else {
                                                                                    RelateUsing act_ru = act_smt.R603_is_a_RelateUsing();
                                                                                    if ( !act_ru.isEmpty() ) {
                                                                                        context().transformRelateUsing( act_ru, block, prev_smt );
                                                                                    }
                                                                                    else {
                                                                                        Unrelate act_unr = act_smt.R603_is_a_Unrelate();
                                                                                        if ( !act_unr.isEmpty() ) {
                                                                                            context().transformUnrelate( act_unr, block, prev_smt );
                                                                                        }
                                                                                        else {
                                                                                            UnrelateUsing act_uru = act_smt.R603_is_a_UnrelateUsing();
                                                                                            if ( !act_uru.isEmpty() ) {
                                                                                                context().transformUnrelateUsing( act_uru, block, prev_smt );
                                                                                            }
                                                                                            else {
                                                                                                EventSpecificationStatement e_ess = act_smt.R603_is_a_EventSpecificationStatement();
                                                                                                if ( !e_ess.isEmpty() ) {
                                                                                                    context().transformEventSpecificationStatement( e_ess, block, prev_smt );
                                                                                                }
                                                                                                else {
                                                                                                    GeneratePreexistingEvent e_gpr = act_smt.R603_is_a_GeneratePreexistingEvent();
                                                                                                    if ( !e_gpr.isEmpty() ) {
                                                                                                        context().transformGeneratePreexistingEventStatement( e_gpr, block, prev_smt );
                                                                                                    }
                                                                                                    else {
                                                                                                        context().LOG().LogFailure( "statement type not supported" );
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    public void transformStatements( final Block p_act_blk,  final CodeBlock p_block ) throws XtumlException {
        Block act_blk = p_act_blk;
        CodeBlock block = p_block;
        ACT_SMT act_smt = ACT_SMTImpl.EMPTY_ACT_SMT;
        ACT_SMTSet act_smts = act_blk.R602_contained_by_ACT_SMT();
        ACT_SMT smt;
        for ( Iterator _smt_iter = act_smts.elements().iterator(); _smt_iter.hasNext(); ) {
            smt = _smt_iter.next();
            if ( act_smt.isEmpty() ) {
                act_smt = smt;
            }
            else {
                if ( smt.getLineNumber() < act_smt.getLineNumber() || smt.getLineNumber() == act_smt.getLineNumber() && smt.getStartPosition() < act_smt.getStartPosition() ) {
                    act_smt = smt;
                }
            }
        }
        Statement prev_smt = StatementImpl.EMPTY_STATEMENT;
        int smt_num = 1;
        while ( !act_smt.isEmpty() ) {
            context().transformStatement( act_smt, block, prev_smt );
            final int _final0_smt_num = smt_num;
            prev_smt = block.R450_is_scope_for_Statement().anyWhere(selected -> StringUtil.equality(((Statement)selected).getStatement_number(), context().STRING().itoa( _final0_smt_num + 1 )));
            if ( !prev_smt.isEmpty() ) {
                smt_num = smt_num + 2;
            }
            else {
                final int _final1_smt_num = smt_num;
                prev_smt = block.R450_is_scope_for_Statement().anyWhere(selected -> StringUtil.equality(((Statement)selected).getStatement_number(), context().STRING().itoa( _final1_smt_num )));
                smt_num = smt_num + 1;
            }
            act_smt = act_smt.R661_succeeds_ACT_SMT();
            context().resolveArrayDeclaration( prev_smt );
        }
    }

    public void transformStructureMember( final StructureMember p_s_mbr,  final ModelInst p_obj,  final int p_index ) throws XtumlException {
        StructureMember s_mbr = p_s_mbr;
        ModelInst obj = p_obj;
        DataType s_dt = s_mbr.R45_is_defined_by_DataType();
        Attribute attr = AttributeImpl.create( context() );
        attr.setName("m_" + s_mbr.getName());
        attr.setBase_name(s_mbr.getName());
        attr.setOrder(p_index);
        context().relate_R410_Attribute_abstracts_data_for_ModelInst( attr, obj );
        context().relate_R4760_StructureMember_Attribute( s_mbr, attr );
        DimensionsSet s_dims = s_mbr.R53_may_have_Dimensions();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        ArrayTypeReference array_type = type.R3801_is_a_ArrayTypeReference();
        context().relate_R424_Attribute_is_typed_by_TypeReference( attr, type );
        AttributeAccessor getter = AttributeAccessorImpl.create( context() );
        getter.setAccessor_type(AttributeAccessorType.GETTER);
        context().relate_R4510_AttributeAccessor_gets_and_sets_Attribute( getter, attr );
        AttributeAccessor setter = AttributeAccessorImpl.create( context() );
        setter.setAccessor_type(AttributeAccessorType.SETTER);
        context().relate_R4510_AttributeAccessor_gets_and_sets_Attribute( setter, attr );
        File file = obj.R401_is_a_File();
        if ( StringUtil.equality(type.getType_name(), "boolean") ) {
            context().addStringToImports( file, "io.ciera.runtime.summit.types.BooleanUtil", ImportType.IMPL );
        }
        else if ( StringUtil.equality(type.getType_name(), "int") ) {
            context().addStringToImports( file, "io.ciera.runtime.summit.types.IntegerUtil", ImportType.IMPL );
        }
        else if ( StringUtil.equality(type.getType_name(), "long") ) {
            context().addStringToImports( file, "io.ciera.runtime.summit.types.LongUtil", ImportType.IMPL );
        }
        else if ( StringUtil.equality(type.getType_name(), "double") ) {
            context().addStringToImports( file, "io.ciera.runtime.summit.types.RealUtil", ImportType.IMPL );
        }
        else if ( StringUtil.equality(type.getType_name(), "String") ) {
            context().addStringToImports( file, "io.ciera.runtime.summit.types.StringUtil", ImportType.IMPL );
        }
        array_type = type.R3801_is_a_ArrayTypeReference();
        if ( !array_type.isEmpty() ) {
            context().addStringToImports( file, "io.ciera.runtime.summit.types.ArrayUtil", ImportType.IMPL );
        }
        context().addStringToImports( file, "org.json.JSONObject", ImportType.IMPL );
    }

    public void transformStructuredType( final DataType p_s_dt,  final ComponentDefinition p_containing_comp_def ) throws XtumlException {
        DataType s_dt = p_s_dt;
        StructuredDataType s_sdt = s_dt.R17_is_a_StructuredDataType();
        ComponentDefinition containing_comp_def = p_containing_comp_def;
        EP_PKG ep_pkg = s_dt.R8001_is_a_PackageableElement().R8000_contained_by_EP_PKG();
        File file = FileImpl.create( context() );
        file.setName(context().camelCaseName( s_dt.getName(), false ));
        file.setPath(context().ep_pkgToPath( ep_pkg ));
        file.setPackage(context().pathToPackage( file.getPath() ));
        file.setExtension(".java");
        file.setExclude(false);
        ModelInst obj = ModelInstImpl.create( context() );
        context().relate_R401_ModelInst_is_a_File( obj, file );
        obj.setUnmanaged(true);
        context().relate_R408_ModelInst_forms_instance_population_of_ComponentDefinition( obj, containing_comp_def );
        Type type = TypeImpl.create( context() );
        type.setName(obj.getName());
        type.setPackage(obj.getPackage());
        context().Type_resolve( type, s_dt );
        type.setDefault_value(( "new " + obj.getName() ) + "()");
        context().relate_R407_ModelInst_is_a_Type( obj, type );
        StructureMember s_mbr = s_sdt.R44_has_member_StructureMember().any();
        StructureMember prev_mbr = s_mbr.R46_succeeds_StructureMember();
        while ( !prev_mbr.isEmpty() ) {
            s_mbr = prev_mbr;
            prev_mbr = s_mbr.R46_succeeds_StructureMember();
        }
        int index = 0;
        while ( !s_mbr.isEmpty() ) {
            context().transformStructureMember( s_mbr, obj, index );
            index = index + 1;
            s_mbr = s_mbr.R46_precedes_StructureMember();
        }
        context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.XtumlException", ImportType.BOTH );
        context().addStringToImports( file, "io.ciera.runtime.summit.types.IXtumlType", ImportType.BOTH );
    }

    public void transformTransientValueReference( final TransientValueReference p_v_tvl,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        TransientValueReference v_tvl = p_v_tvl;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_tvl.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        V_VAR v_var = v_tvl.R805_references_V_VAR();
        Variable existing_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), v_var.getName()));
        if ( existing_var.isEmpty() ) {
            context().transformVariable( v_var, smt );
        }
        Variable var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), v_var.getName()));
        VariableReference var_ref = VariableReferenceImpl.create( context() );
        context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, var );
        context().relate_R776_VariableReference_is_a_Expression( var_ref, expr );
        Type expr_type = var.R461_is_typed_by_TypeReference().R3800_based_on_Type();
        context().addTypeToImports( context().getFileForStatement( smt ), expr_type, ImportType.IMPL );
    }

    public void transformUnaryOperation( final V_UNY p_v_uny,  final Statement p_smt,  final String p_expr_number ) throws XtumlException {
        V_UNY v_uny = p_v_uny;
        Statement smt = p_smt;
        String expr_number = p_expr_number;
        Expression expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( expr, smt );
        expr.setExpression_number(expr_number);
        DataType s_dt = v_uny.R801_is_a_Value().R820_has_type_DataType();
        DimensionsSet s_dims = new DimensionsSetImpl();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( expr, type );
        UnaryOperation unary = UnaryOperationImpl.create( context() );
        context().relate_R776_UnaryOperation_is_a_Expression( unary, expr );
        Value op_val = v_uny.R804_has_operand_Value();
        if ( StringUtil.equality("not_empty", context().T().sub( "l", v_uny.getOperator() )) ) {
            unary.setOperator("!");
            unary.setInvocation(false);
            Expression expr2 = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( expr2, smt );
            expr2.setExpression_number(expr.getExpression_number() + ".1");
            context().relate_R777_UnaryOperation_has_single_operand_Expression( unary, expr2 );
            TypeReference boolean_type = context().TypeReference_getBuiltinTypeReference( "boolean" );
            context().relate_R795_Expression_expresses_value_of_TypeReference( expr2, boolean_type );
            UnaryOperation unary2 = UnaryOperationImpl.create( context() );
            context().relate_R776_UnaryOperation_is_a_Expression( unary2, expr2 );
            unary2.setOperator("isEmpty");
            unary2.setInvocation(true);
            context().transformExpression( op_val, expr2.getExpression_number() + ".1", smt );
            Expression op_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), expr2.getExpression_number() + ".1"));
            context().relate_R777_UnaryOperation_has_single_operand_Expression( unary2, op_expr );
        }
        else {
            if ( StringUtil.equality("not", context().T().sub( "l", v_uny.getOperator() )) ) {
                unary.setOperator("!");
                unary.setInvocation(false);
            }
            else if ( StringUtil.equality("empty", context().T().sub( "l", v_uny.getOperator() )) ) {
                unary.setOperator("isEmpty");
                unary.setInvocation(true);
            }
            else if ( StringUtil.equality("cardinality", context().T().sub( "l", v_uny.getOperator() )) ) {
                unary.setOperator("size");
                unary.setInvocation(true);
            }
            else if ( StringUtil.equality("+", context().T().sub( "l", v_uny.getOperator() )) || StringUtil.equality("-", context().T().sub( "l", v_uny.getOperator() )) ) {
                unary.setOperator(v_uny.getOperator());
                unary.setInvocation(false);
            }
            else {
            }
            context().transformExpression( op_val, expr.getExpression_number() + ".1", smt );
            Expression op_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), expr.getExpression_number() + ".1"));
            context().relate_R777_UnaryOperation_has_single_operand_Expression( unary, op_expr );
        }
    }

    public void transformUnrelate( final Unrelate p_act_unr,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        Unrelate act_unr = p_act_unr;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_unr.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        UnrelateSmt unrelsmt = UnrelateSmtImpl.create( context() );
        context().relate_R451_UnrelateSmt_is_a_Statement( unrelsmt, smt );
        Association r_rel = act_unr.R655_destroys_Association();
        V_VAR one_v_var = act_unr.R620_one_V_VAR();
        ModelClass one_o_obj = one_v_var.R814_is_a_InstanceHandle().R818_refers_to_ModelClass();
        ModelInst one_class = one_o_obj.R409_ModelInst();
        String one_phrase = "";
        V_VAR other_v_var = act_unr.R621_other_V_VAR();
        ModelClass other_o_obj = other_v_var.R814_is_a_InstanceHandle().R818_refers_to_ModelClass();
        ModelInst other_class = other_o_obj.R409_ModelInst();
        String other_phrase = "";
        SimpleAssociation simp = r_rel.R206_is_a_SimpleAssociation();
        if ( !simp.isEmpty() ) {
            if ( one_o_obj.getObj_ID().equality(other_o_obj.getObj_ID()) ) {
                other_phrase = context().C_UTIL().stripTics( act_unr.getRelationship_phrase() );
                ClassInAssociation oir = r_rel.R201_abstracts_association_between_instances_of_ClassInAssociation().anyWhere(selected -> StringUtil.inequality(context().C_UTIL().stripTics( act_unr.getRelationship_phrase() ), context().oirGetPhrase( ((ClassInAssociation)selected).getOIR_ID() )));
                if ( !oir.isEmpty() ) {
                    one_phrase = context().oirGetPhrase( oir.getOIR_ID() );
                }
                else {
                }
            }
            else {
                ClassInAssociation one_oir = r_rel.R201_abstracts_association_between_instances_of_ClassInAssociation().anyWhere(selected -> ((ClassInAssociation)selected).getObj_ID().equality(one_o_obj.getObj_ID()));
                ClassInAssociation other_oir = r_rel.R201_abstracts_association_between_instances_of_ClassInAssociation().anyWhere(selected -> ((ClassInAssociation)selected).getObj_ID().equality(other_o_obj.getObj_ID()));
                if ( !one_oir.isEmpty() && !other_oir.isEmpty() ) {
                    one_phrase = context().oirGetPhrase( one_oir.getOIR_ID() );
                    other_phrase = context().oirGetPhrase( other_oir.getOIR_ID() );
                }
                else {
                }
            }
        }
        else {
            SubtypeSupertypeAssociation subsup = r_rel.R206_is_a_SubtypeSupertypeAssociation();
            if ( !subsup.isEmpty() ) {
                one_phrase = "is_a";
                other_phrase = "is_a";
            }
        }
        V_VAR form_v_var = V_VARImpl.EMPTY_V_VAR;
        V_VAR part_v_var = V_VARImpl.EMPTY_V_VAR;
        ModelClass form_obj = ModelClassImpl.EMPTY_MODELCLASS;
        ModelClass part_obj = ModelClassImpl.EMPTY_MODELCLASS;
        ComponentDefinition containing_comp_def = context().getCompDefForStatement( smt );
        if ( ( !containing_comp_def.isEmpty() && !one_class.isEmpty() ) && !other_class.isEmpty() ) {
            final String _final0_other_phrase = other_phrase;
            final String _final0_one_phrase = one_phrase;
            ClassRelationship rel = containing_comp_def.R448_maintains_instances_of_ClassRelationship().anyWhere(selected -> ((ClassRelationship)selected).getNum() == r_rel.getNumb() && ( ( ( StringUtil.equality(((ClassRelationship)selected).getForm_name(), one_class.getName()) && StringUtil.equality(((ClassRelationship)selected).getForm_phrase(), _final0_one_phrase) ) && StringUtil.equality(((ClassRelationship)selected).getPart_name(), other_class.getName()) ) && StringUtil.equality(((ClassRelationship)selected).getPart_phrase(), _final0_other_phrase) ));
            if ( !rel.isEmpty() ) {
                form_v_var = one_v_var;
                form_obj = one_o_obj;
                part_v_var = other_v_var;
                part_obj = other_o_obj;
            }
            else {
                final String _final1_other_phrase = other_phrase;
                final String _final1_one_phrase = one_phrase;
                rel = containing_comp_def.R448_maintains_instances_of_ClassRelationship().anyWhere(selected -> ((ClassRelationship)selected).getNum() == r_rel.getNumb() && ( ( ( StringUtil.equality(((ClassRelationship)selected).getForm_name(), other_class.getName()) && StringUtil.equality(((ClassRelationship)selected).getForm_phrase(), _final1_other_phrase) ) && StringUtil.equality(((ClassRelationship)selected).getPart_name(), one_class.getName()) ) && StringUtil.equality(((ClassRelationship)selected).getPart_phrase(), _final1_one_phrase) ));
                form_v_var = other_v_var;
                form_obj = other_o_obj;
                part_v_var = one_v_var;
                part_obj = one_o_obj;
            }
            if ( !rel.isEmpty() ) {
                context().relate_R484_UnrelateSmt_deletes_instances_of_ClassRelationship( unrelsmt, rel );
            }
            else {
            }
        }
        else {
        }
        Expression form_expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( form_expr, smt );
        form_expr.setExpression_number("1");
        context().relate_R483_UnrelateSmt_unrelates_formalizing_Expression( unrelsmt, form_expr );
        DataType form_s_dt = form_v_var.R848_has_DataType();
        form_s_dt = context().getInstRefTypeForClass( form_s_dt, form_obj );
        DimensionsSet s_dims = form_v_var.R849_may_have_Dimensions();
        TypeReference form_type = context().TypeReference_getInstance( form_s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( form_expr, form_type );
        final V_VAR _final0_form_v_var = form_v_var;
        Variable form_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), _final0_form_v_var.getName()));
        if ( !form_var.isEmpty() ) {
            VariableReference var_ref = VariableReferenceImpl.create( context() );
            context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, form_var );
            context().relate_R776_VariableReference_is_a_Expression( var_ref, form_expr );
            Type type = form_expr.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
            context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
        }
        else if ( StringUtil.equality("self", form_v_var.getName()) ) {
            NamedReference self_ref = NamedReferenceImpl.create( context() );
            context().relate_R776_NamedReference_is_a_Expression( self_ref, form_expr );
            self_ref.setName("self()");
        }
        else {
        }
        Expression part_expr = ExpressionImpl.create( context() );
        context().relate_R775_Expression_expressed_within_Statement( part_expr, smt );
        part_expr.setExpression_number("2");
        context().relate_R482_UnrelateSmt_unrelates_participating_Expression( unrelsmt, part_expr );
        DataType part_s_dt = part_v_var.R848_has_DataType();
        part_s_dt = context().getInstRefTypeForClass( part_s_dt, part_obj );
        s_dims = part_v_var.R849_may_have_Dimensions();
        TypeReference part_type = context().TypeReference_getInstance( part_s_dt, s_dims );
        context().relate_R795_Expression_expresses_value_of_TypeReference( part_expr, part_type );
        final V_VAR _final0_part_v_var = part_v_var;
        Variable part_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), _final0_part_v_var.getName()));
        if ( !part_var.isEmpty() ) {
            VariableReference var_ref = VariableReferenceImpl.create( context() );
            context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, part_var );
            context().relate_R776_VariableReference_is_a_Expression( var_ref, part_expr );
            Type type = part_expr.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
            context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
        }
        else if ( StringUtil.equality("self", part_v_var.getName()) ) {
            NamedReference self_ref = NamedReferenceImpl.create( context() );
            context().relate_R776_NamedReference_is_a_Expression( self_ref, part_expr );
            self_ref.setName("self()");
        }
        else {
        }
    }

    public void transformUnrelateUsing( final UnrelateUsing p_act_uru,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        UnrelateUsing act_uru = p_act_uru;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_uru.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        Association r_rel = act_uru.R656_destroys_Association();
        V_VAR one_v_var = act_uru.R622_one_V_VAR();
        ModelClass one_o_obj = one_v_var.R814_is_a_InstanceHandle().R818_refers_to_ModelClass();
        ModelInst one_class = one_o_obj.R409_ModelInst();
        String one_phrase = "";
        V_VAR other_v_var = act_uru.R623_other_V_VAR();
        ModelClass other_o_obj = other_v_var.R814_is_a_InstanceHandle().R818_refers_to_ModelClass();
        ModelInst other_class = other_o_obj.R409_ModelInst();
        String other_phrase = "";
        V_VAR link_v_var = act_uru.R624_using_V_VAR();
        ModelClass link_o_obj = link_v_var.R814_is_a_InstanceHandle().R818_refers_to_ModelClass();
        ModelInst link_class = link_o_obj.R409_ModelInst();
        if ( one_o_obj.getObj_ID().equality(other_o_obj.getObj_ID()) ) {
            other_phrase = context().C_UTIL().stripTics( act_uru.getRelationship_phrase() );
            ClassInAssociationSet oirs = ((ClassInAssociationSet)r_rel.R201_abstracts_association_between_instances_of_ClassInAssociation().where(selected -> StringUtil.inequality(context().C_UTIL().stripTics( act_uru.getRelationship_phrase() ), context().oirGetPhrase( ((ClassInAssociation)selected).getOIR_ID() ))));
            ClassAsLink link = oirs.R203_is_a_ReferringClassInAssoc().R205_is_a_ClassAsLink().any();
            ClassInAssociation one_oir = ClassInAssociationImpl.EMPTY_CLASSINASSOCIATION;
            ClassInAssociation oir;
            for ( Iterator _oir_iter = oirs.elements().iterator(); _oir_iter.hasNext(); ) {
                oir = _oir_iter.next();
                if ( !link.isEmpty() && oir.getOIR_ID().inequality(link.getOIR_ID()) ) {
                    one_oir = oir;
                    one_phrase = context().oirGetPhrase( oir.getOIR_ID() );
                    break;
                }
            }
            if ( one_oir.isEmpty() ) {
            }
        }
        else {
            ClassInAssociation one_oir = r_rel.R201_abstracts_association_between_instances_of_ClassInAssociation().anyWhere(selected -> ((ClassInAssociation)selected).getObj_ID().equality(one_o_obj.getObj_ID()));
            ClassInAssociation other_oir = r_rel.R201_abstracts_association_between_instances_of_ClassInAssociation().anyWhere(selected -> ((ClassInAssociation)selected).getObj_ID().equality(other_o_obj.getObj_ID()));
            if ( !one_oir.isEmpty() && !other_oir.isEmpty() ) {
                one_phrase = context().oirGetPhrase( one_oir.getOIR_ID() );
                other_phrase = context().oirGetPhrase( other_oir.getOIR_ID() );
            }
            else {
            }
        }
        ClassRelationship rel1 = ClassRelationshipImpl.EMPTY_CLASSRELATIONSHIP;
        ClassRelationship rel2 = ClassRelationshipImpl.EMPTY_CLASSRELATIONSHIP;
        ComponentDefinition containing_comp_def = context().getCompDefForStatement( smt );
        if ( ( ( !containing_comp_def.isEmpty() && !one_class.isEmpty() ) && !other_class.isEmpty() ) && !link_class.isEmpty() ) {
            final String _final0_other_phrase = other_phrase;
            final String _final0_one_phrase = one_phrase;
            rel1 = containing_comp_def.R448_maintains_instances_of_ClassRelationship().anyWhere(selected -> ((ClassRelationship)selected).getNum() == r_rel.getNumb() && ( ( ( StringUtil.equality(((ClassRelationship)selected).getForm_name(), link_class.getName()) && StringUtil.equality(((ClassRelationship)selected).getForm_phrase(), _final0_other_phrase) ) && StringUtil.equality(((ClassRelationship)selected).getPart_name(), one_class.getName()) ) && StringUtil.equality(((ClassRelationship)selected).getPart_phrase(), _final0_one_phrase) ));
            final String _final1_one_phrase = one_phrase;
            final String _final1_other_phrase = other_phrase;
            rel2 = containing_comp_def.R448_maintains_instances_of_ClassRelationship().anyWhere(selected -> ((ClassRelationship)selected).getNum() == r_rel.getNumb() && ( ( ( StringUtil.equality(((ClassRelationship)selected).getForm_name(), link_class.getName()) && StringUtil.equality(((ClassRelationship)selected).getForm_phrase(), _final1_one_phrase) ) && StringUtil.equality(((ClassRelationship)selected).getPart_name(), other_class.getName()) ) && StringUtil.equality(((ClassRelationship)selected).getPart_phrase(), _final1_other_phrase) ));
        }
        else {
        }
        if ( !rel1.isEmpty() && !rel2.isEmpty() ) {
            UnrelateSmt unrelsmt1 = UnrelateSmtImpl.create( context() );
            context().relate_R451_UnrelateSmt_is_a_Statement( unrelsmt1, smt );
            context().relate_R484_UnrelateSmt_deletes_instances_of_ClassRelationship( unrelsmt1, rel1 );
            Expression form_expr1 = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( form_expr1, smt );
            form_expr1.setExpression_number("1");
            context().relate_R483_UnrelateSmt_unrelates_formalizing_Expression( unrelsmt1, form_expr1 );
            DataType form_s_dt = link_v_var.R848_has_DataType();
            form_s_dt = context().getInstRefTypeForClass( form_s_dt, link_o_obj );
            DimensionsSet s_dims = link_v_var.R849_may_have_Dimensions();
            TypeReference form_type = context().TypeReference_getInstance( form_s_dt, s_dims );
            context().relate_R795_Expression_expresses_value_of_TypeReference( form_expr1, form_type );
            Variable form_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), link_v_var.getName()));
            if ( !form_var.isEmpty() ) {
                VariableReference var_ref = VariableReferenceImpl.create( context() );
                context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, form_var );
                context().relate_R776_VariableReference_is_a_Expression( var_ref, form_expr1 );
                Type type = form_expr1.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
                context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
            }
            else if ( StringUtil.equality("self", link_v_var.getName()) ) {
                NamedReference self_ref = NamedReferenceImpl.create( context() );
                context().relate_R776_NamedReference_is_a_Expression( self_ref, form_expr1 );
                self_ref.setName("self()");
            }
            else {
            }
            Expression part_expr1 = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( part_expr1, smt );
            part_expr1.setExpression_number("2");
            context().relate_R482_UnrelateSmt_unrelates_participating_Expression( unrelsmt1, part_expr1 );
            DataType part_s_dt = one_v_var.R848_has_DataType();
            part_s_dt = context().getInstRefTypeForClass( part_s_dt, one_o_obj );
            s_dims = one_v_var.R849_may_have_Dimensions();
            TypeReference part_type = context().TypeReference_getInstance( part_s_dt, s_dims );
            context().relate_R795_Expression_expresses_value_of_TypeReference( part_expr1, part_type );
            Variable part_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), one_v_var.getName()));
            if ( !part_var.isEmpty() ) {
                VariableReference var_ref = VariableReferenceImpl.create( context() );
                context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, part_var );
                context().relate_R776_VariableReference_is_a_Expression( var_ref, part_expr1 );
                Type type = part_expr1.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
                context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
            }
            else if ( StringUtil.equality("self", one_v_var.getName()) ) {
                NamedReference self_ref = NamedReferenceImpl.create( context() );
                context().relate_R776_NamedReference_is_a_Expression( self_ref, part_expr1 );
                self_ref.setName("self()");
            }
            else {
            }
            Statement smt2 = StatementImpl.create( context() );
            context().relate_R450_Statement_is_contained_by_CodeBlock( smt2, block );
            smt2.setStatement_number(context().STRING().itoa( context().STRING().atoi( smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( smt, smt2 );
            smt2.setActions("");
            UnrelateSmt unrelsmt2 = UnrelateSmtImpl.create( context() );
            context().relate_R451_UnrelateSmt_is_a_Statement( unrelsmt2, smt2 );
            context().relate_R484_UnrelateSmt_deletes_instances_of_ClassRelationship( unrelsmt2, rel2 );
            Expression form_expr2 = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( form_expr2, smt2 );
            form_expr2.setExpression_number("1");
            context().relate_R483_UnrelateSmt_unrelates_formalizing_Expression( unrelsmt2, form_expr2 );
            context().relate_R795_Expression_expresses_value_of_TypeReference( form_expr2, form_type );
            form_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), link_v_var.getName()));
            if ( !form_var.isEmpty() ) {
                VariableReference var_ref = VariableReferenceImpl.create( context() );
                context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, form_var );
                context().relate_R776_VariableReference_is_a_Expression( var_ref, form_expr2 );
                Type type = form_expr2.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
                context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
            }
            else if ( StringUtil.equality("self", link_v_var.getName()) ) {
                NamedReference self_ref = NamedReferenceImpl.create( context() );
                context().relate_R776_NamedReference_is_a_Expression( self_ref, form_expr2 );
                self_ref.setName("self()");
            }
            else {
            }
            Expression part_expr2 = ExpressionImpl.create( context() );
            context().relate_R775_Expression_expressed_within_Statement( part_expr2, smt2 );
            part_expr2.setExpression_number("2");
            context().relate_R482_UnrelateSmt_unrelates_participating_Expression( unrelsmt2, part_expr2 );
            part_s_dt = other_v_var.R848_has_DataType();
            part_s_dt = context().getInstRefTypeForClass( part_s_dt, other_o_obj );
            s_dims = other_v_var.R849_may_have_Dimensions();
            part_type = context().TypeReference_getInstance( part_s_dt, s_dims );
            context().relate_R795_Expression_expresses_value_of_TypeReference( part_expr2, part_type );
            part_var = smt.R450_is_contained_by_CodeBlock().R458_has_in_scope_VariableInScope().R458_has_in_scope_Variable().anyWhere(selected -> StringUtil.equality(((Variable)selected).getName(), other_v_var.getName()));
            if ( !part_var.isEmpty() ) {
                VariableReference var_ref = VariableReferenceImpl.create( context() );
                context().relate_R782_VariableReference_refers_to_local_Variable( var_ref, part_var );
                context().relate_R776_VariableReference_is_a_Expression( var_ref, part_expr2 );
                Type type = part_expr2.R795_expresses_value_of_TypeReference().R3800_based_on_Type();
                context().addTypeToImports( context().getFileForStatement( smt ), type, ImportType.IMPL );
            }
            else if ( StringUtil.equality("self", other_v_var.getName()) ) {
                NamedReference self_ref = NamedReferenceImpl.create( context() );
                context().relate_R776_NamedReference_is_a_Expression( self_ref, part_expr2 );
                self_ref.setName("self()");
            }
            else {
            }
        }
        else {
        }
    }

    public void transformUserDefinedType( final DataType p_s_dt ) throws XtumlException {
        DataType s_dt = p_s_dt;
        EP_PKG ep_pkg = s_dt.R8001_is_a_PackageableElement().R8000_contained_by_EP_PKG();
        File file = FileImpl.create( context() );
        file.setName(context().camelCaseName( s_dt.getName(), false ));
        file.setPath(context().ep_pkgToPath( ep_pkg ));
        file.setPackage(context().pathToPackage( file.getPath() ));
        file.setExtension(".java");
        file.setExclude(false);
        Type type = TypeImpl.create( context() );
        type.setName(file.getName());
        type.setPackage(file.getPackage());
        type.setDefault_value(( "new " + type.getName() ) + "()");
        context().Type_resolve( type, s_dt );
        UserDefinedType udt = UserDefinedTypeImpl.create( context() );
        context().relate_R407_UserDefinedType_is_a_Type( udt, type );
        context().relate_R401_UserDefinedType_is_a_File( udt, file );
        context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.NotImplementedException", ImportType.IMPL );
        context().addStringToImports( file, "io.ciera.runtime.summit.exceptions.XtumlException", ImportType.IMPL );
        context().addStringToImports( file, "io.ciera.runtime.summit.types.IXtumlType", ImportType.IMPL );
    }

    public void transformUtility( final ExternalEntity p_s_ee,  final EP_PKG p_ep_pkg,  final ComponentDefinition p_containing_comp_def,  final boolean p_exclude,  final String p_path ) throws XtumlException {
        ExternalEntity s_ee = p_s_ee;
        ComponentDefinition containing_comp_def = p_containing_comp_def;
        File file = FileImpl.create( context() );
        file.setName(context().camelCaseName( s_ee.getKey_Lett(), false ));
        file.setPath(p_path);
        file.setPackage(context().pathToPackage( file.getPath() ));
        file.setExtension(".java");
        file.setExclude(p_exclude);
        Utility utility = UtilityImpl.create( context() );
        context().relate_R401_Utility_is_a_File( utility, file );
        if ( !containing_comp_def.isEmpty() ) {
            UtilityReference util_ref = UtilityReferenceImpl.create( context() );
            context().relate_R4558_UtilityReference_contains_Utility( util_ref, utility );
            context().relate_R4558_UtilityReference_used_within_context_of_ComponentDefinition( util_ref, containing_comp_def );
            File component_file = containing_comp_def.R401_is_a_File();
            context().addFileToImports( component_file, file, ImportType.IMPL );
            context().addStringToImports( component_file, ( ( context().pathToPackage( file.getPath() ) + ".impl." ) + file.getName() ) + "Impl", ImportType.IMPL );
        }
        BridgeSet s_brgs = s_ee.R19_uses_Bridge();
        Bridge s_brg;
        for ( Iterator _s_brg_iter = s_brgs.elements().iterator(); _s_brg_iter.hasNext(); ) {
            s_brg = _s_brg_iter.next();
            context().transformUtilityFunction( s_brg, utility );
        }
        context().addFileToImports( file, file, ImportType.IMPL );
        context().addStringToImports( file, "io.ciera.runtime.summit.util.Utility", ImportType.IMPL );
        context().addStringToImports( file, "io.ciera.runtime.summit.components.IComponent", ImportType.IMPL );
    }

    public void transformUtilityFunction( final Bridge p_s_brg,  final Utility p_utility ) throws XtumlException {
        Bridge s_brg = p_s_brg;
        Utility utility = p_utility;
        UtilityFunction util_func = UtilityFunctionImpl.create( context() );
        context().relate_R4559_UtilityFunction_provided_by_Utility( util_func, utility );
        InvocableObject invocable = InvocableObjectImpl.create( context() );
        invocable.setName(s_brg.getName());
        invocable.setParent_name(utility.getName());
        invocable.setParent_package(utility.getPackage());
        context().relate_R427_UtilityFunction_is_a_InvocableObject( util_func, invocable );
        invocable.setActions(s_brg.getAction_Semantics_internal());
        DataType s_dt = s_brg.R20_return_value_defined_by_DataType();
        DimensionsSet s_dims = s_brg.R50_return_value_may_have_Dimensions();
        TypeReference type = context().TypeReference_getInstance( s_dt, s_dims );
        context().relate_R428_InvocableObject_return_value_is_typed_by_TypeReference( invocable, type );
        BridgeParameter s_bparm = s_brg.R21_is_part_of_BridgeParameter().any();
        BridgeParameter prev_s_bparm = s_bparm;
        while ( !prev_s_bparm.isEmpty() ) {
            s_bparm = prev_s_bparm;
            prev_s_bparm = s_bparm.R55_succeeds_BridgeParameter();
        }
        while ( !s_bparm.isEmpty() ) {
            FormalParameter parm = FormalParameterImpl.create( context() );
            parm.setName("p_" + s_bparm.getName());
            parm.setBy_ref(1 == s_bparm.getBy_Ref());
            DataType parm_dt = s_bparm.R22_is_defined_by_DataType();
            s_dims = s_bparm.R49_may_have_Dimensions();
            TypeReference parm_type = context().TypeReference_getInstance( parm_dt, s_dims );
            context().relate_R431_FormalParameter_is_typed_by_TypeReference( parm, parm_type );
            context().linkParameter( invocable, parm );
            s_bparm = s_bparm.R55_precedes_BridgeParameter();
        }
        context().relate_R4570_UtilityFunction_Bridge( util_func, s_brg );
    }

    public void transformVariable( final V_VAR p_v_var,  final Statement p_smt ) throws XtumlException {
        V_VAR v_var = p_v_var;
        Statement smt = p_smt;
        Variable new_var = VariableImpl.create( context() );
        context().relate_R457_Variable_is_declared_by_Statement( new_var, smt );
        new_var.setName(v_var.getName());
        CodeBlock scope = smt.R450_is_contained_by_CodeBlock();
        VariableInScope existing_var_in_scope = scope.R458_has_in_scope_VariableInScope().anyWhere(selected -> StringUtil.equality(((VariableInScope)selected).getVar_name(), new_var.getName()));
        if ( !existing_var_in_scope.isEmpty() ) {
            context().LOG().LogInfo( "warning: shadowing variable" );
            Variable existing_var = existing_var_in_scope.R458_has_in_scope_Variable();
            context().unrelate_R458_VariableInScope_has_in_scope_Variable( existing_var_in_scope, existing_var );
            context().unrelate_R458_VariableInScope_is_in_scope_for_CodeBlock( existing_var_in_scope, scope );
        }
        VariableInScope var_in_scope = VariableInScopeImpl.create( context() );
        context().relate_R458_VariableInScope_has_in_scope_Variable( var_in_scope, new_var );
        context().relate_R458_VariableInScope_is_in_scope_for_CodeBlock( var_in_scope, scope );
        DataType var_dt = v_var.R848_has_DataType();
        ModelClass var_obj = v_var.R814_is_a_InstanceHandle().R818_refers_to_ModelClass();
        if ( var_obj.isEmpty() ) {
            var_obj = v_var.R814_is_a_V_INS().R819_refers_to_ModelClass();
        }
        var_dt = context().getInstRefTypeForClass( var_dt, var_obj );
        DimensionsSet s_dims = v_var.R849_may_have_Dimensions();
        TypeReference var_type = context().TypeReference_getInstance( var_dt, s_dims );
        context().relate_R461_Variable_is_typed_by_TypeReference( new_var, var_type );
    }

    public void transformWhileStatement( final WhileStmt p_act_whl,  final CodeBlock p_block,  final Statement p_prev_smt ) throws XtumlException {
        WhileStmt act_whl = p_act_whl;
        CodeBlock block = p_block;
        Statement prev_smt = p_prev_smt;
        ACT_SMT act_smt = act_whl.R603_is_a_ACT_SMT();
        Statement smt = StatementImpl.create( context() );
        context().relate_R450_Statement_is_contained_by_CodeBlock( smt, block );
        if ( !prev_smt.isEmpty() ) {
            smt.setStatement_number(context().STRING().itoa( context().STRING().atoi( prev_smt.getStatement_number() ) + 1 ));
            context().relate_R477_Statement_executes_before_Statement( prev_smt, smt );
        }
        else {
            smt.setStatement_number("1");
        }
        InvocableObject body = block.R4000_is_invoked_in_InvocableObject();
        smt.setActions(context().getOalStatement( body.getActions(), act_smt.getLineNumber() ));
        InvocableObject empty_invocable = InvocableObjectImpl.EMPTY_INVOCABLEOBJECT;
        WhileSmt while_smt = WhileSmtImpl.create( context() );
        context().relate_R451_WhileSmt_is_a_Statement( while_smt, smt );
        Value while_val = act_whl.R626_continue_result_Value();
        context().transformExpression( while_val, "1", smt );
        Expression while_expr = smt.R775_may_contain_Expression().anyWhere(selected -> StringUtil.equality(((Expression)selected).getExpression_number(), "1"));
        context().relate_R472_WhileSmt_executes_block_while_true_Expression( while_smt, while_expr );
        String control_block_number = context().getNextBlockNumber( block );
        Block control_blk = act_whl.R608_controls_Block();
        context().transformBlock( empty_invocable, block, control_blk, control_block_number );
        CodeBlock control_block = block.R4000_is_invoked_in_InvocableObject().R4000_has_CodeBlock().anyWhere(selected -> StringUtil.equality(((CodeBlock)selected).getBlock_number(), control_block_number));
        context().relate_R456_WhileSmt_has_control_CodeBlock( while_smt, control_block );
    }

    public void translate() throws XtumlException {
        long start_time = context().TIM().current_clock();
        context().LOG().LogInfo( "Translating..." );
        context().LOG().LogInfo( "  Resolving associative selections..." );
        context().resolveAssociativeSelections();
        context().LOG().LogInfo( "  done." );
        context().LOG().LogTime( "  Elapsed time:", context().TIM().current_clock() - start_time );
        context().LOG().LogInfo( "  Translating builtin types..." );
        context().transformBuiltinTypes();
        context().LOG().LogInfo( "  done." );
        context().LOG().LogTime( "  Elapsed time:", context().TIM().current_clock() - start_time );
        context().LOG().LogInfo( "  Publishing IRDTs..." );
        context().transformInstanceReferenceTypes();
        context().LOG().LogInfo( "  done." );
        context().LOG().LogTime( "  Elapsed time:", context().TIM().current_clock() - start_time );
        context().LOG().LogInfo( "  Translating application package..." );
        Mark root_package_mark = context().Mark_instances().anyWhere(selected -> ( StringUtil.equality(((Mark)selected).getMarkable_name(), "*") && StringUtil.equality(((Mark)selected).getPath(), "*") ) && StringUtil.equality(((Mark)selected).getFeature_name(), "RootPackage"));
        if ( !root_package_mark.isEmpty() ) {
            EP_PKG root_package = EP_PKGImpl.EMPTY_EP_PKG;
            SystemModelSet s_syss = context().SystemModel_instances();
            SystemModel s_sys;
            for ( Iterator _s_sys_iter = s_syss.elements().iterator(); _s_sys_iter.hasNext(); ) {
                s_sys = _s_sys_iter.next();
                final SystemModel _final0_s_sys = s_sys;
                root_package = _final0_s_sys.R1401_contains_EP_PKG().anyWhere(selected -> StringUtil.equality(root_package_mark.getValue(), ( _final0_s_sys.getName() + "::" ) + ((EP_PKG)selected).getName()));
                if ( !root_package.isEmpty() ) {
                    break;
                }
            }
            if ( !root_package.isEmpty() ) {
                context().transformApplication( root_package, context().ep_pkgToPath( root_package ) );
            }
            else {
                context().LOG().LogFailure( "No root package found" );
                context().ARCH().exit( 1 );
            }
        }
        else {
            context().LOG().LogFailure( "No root package specified" );
            context().ARCH().exit( 1 );
        }
        context().LOG().LogInfo( "  done." );
        context().LOG().LogTime( "  Elapsed time:", context().TIM().current_clock() - start_time );
        context().LOG().LogInfo( "  Resolving type references..." );
        context().resolveTypeImports();
        context().LOG().LogInfo( "  done." );
        context().LOG().LogTime( "  Elapsed time:", context().TIM().current_clock() - start_time );
        context().LOG().LogInfo( "  Resolving user defined types..." );
        context().resolveUserDefinedTypes();
        context().LOG().LogInfo( "  done." );
        context().LOG().LogTime( "  Elapsed time:", context().TIM().current_clock() - start_time );
        context().LOG().LogInfo( "  Translating OAL bodies..." );
        InvocableObjectSet invocables = context().InvocableObject_instances();
        InvocableObject invocable;
        for ( Iterator _invocable_iter = invocables.elements().iterator(); _invocable_iter.hasNext(); ) {
            invocable = _invocable_iter.next();
            context().LOG().LogInfo( ( ( ( ( ( "  Translating '" + invocable.getParent_package() ) + "." ) + invocable.getParent_name() ) + "#" ) + invocable.getName() ) + "' ..." );
            context().transformBody( invocable );
        }
        context().LOG().LogInfo( "  done." );
        context().LOG().LogTime( "  Elapsed time:", context().TIM().current_clock() - start_time );
        context().LOG().LogInfo( "  Rendering application..." );
        FileSet files = context().File_instances();
        File file;
        for ( Iterator _file_iter = files.elements().iterator(); _file_iter.hasNext(); ) {
            file = _file_iter.next();
            if ( !file.getExclude() ) {
                file.render();
            }
        }
        context().LOG().LogInfo( "  done." );
        context().LOG().LogTime( "  Elapsed time:", context().TIM().current_clock() - start_time );
        context().LOG().LogInfo( "Done." );
        long elapsed_time = context().TIM().current_clock() - start_time;
        context().LOG().LogTime( "Elapsed time:", elapsed_time );
    }

    public boolean typeIsBasedOn( final DataType p_type,  final DataType p_parentType ) throws XtumlException {
        DataType s_dt = p_type;
        DataType parentType = p_parentType;
        while ( !s_dt.isEmpty() ) {
            if ( s_dt.equality(parentType) ) {
                return true;
            }
            else if ( StringUtil.equality(s_dt.getName(), "real") && StringUtil.equality(parentType.getName(), "integer") ) {
                return true;
            }
            else if ( StringUtil.equality(s_dt.getName(), "timestamp") && StringUtil.equality(parentType.getName(), "integer") ) {
                return true;
            }
            s_dt = s_dt.R17_is_a_UserDataType().R18_are_defined_within_DataType();
        }
        return false;
    }



    // relates and unrelates
    public void relate_R1000_MessageArgument_belongs_to_informal_MSG_M( MessageArgument form, MSG_M part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1000_MessageArgument_belongs_to_informal_MSG_M_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1000_has_an_informal_MessageArgument(form);
            form.setR1000_belongs_to_informal_MSG_M(part);
            form.setInformal_Msg_ID( part.getMsg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1000_MessageArgument_belongs_to_informal_MSG_M( MessageArgument form, MSG_M part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1000_MessageArgument_belongs_to_informal_MSG_M_extent.remove( R1000_MessageArgument_belongs_to_informal_MSG_M_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1000_has_an_informal_MessageArgument(form);
            form.setR1000_belongs_to_informal_MSG_M(MSG_MImpl.EMPTY_MSG_M);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1001_MessageArgument_belongs_to_formal_MSG_M( MessageArgument form, MSG_M part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1001_MessageArgument_belongs_to_formal_MSG_M_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1001_has_a_formal_MessageArgument(form);
            form.setR1001_belongs_to_formal_MSG_M(part);
            form.setFormal_Msg_ID( part.getMsg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1001_MessageArgument_belongs_to_formal_MSG_M( MessageArgument form, MSG_M part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1001_MessageArgument_belongs_to_formal_MSG_M_extent.remove( R1001_MessageArgument_belongs_to_formal_MSG_M_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1001_has_a_formal_MessageArgument(form);
            form.setR1001_belongs_to_formal_MSG_M(MSG_MImpl.EMPTY_MSG_M);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1007_MSG_M_has_destination_InteractionParticipant( MSG_M form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1007_MSG_M_has_destination_InteractionParticipant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1007_receives_MSG_M(form);
            form.setR1007_has_destination_InteractionParticipant(part);
            form.setSender_Part_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1007_MSG_M_has_destination_InteractionParticipant( MSG_M form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1007_MSG_M_has_destination_InteractionParticipant_extent.remove( R1007_MSG_M_has_destination_InteractionParticipant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1007_receives_MSG_M(form);
            form.setR1007_has_destination_InteractionParticipant(InteractionParticipantImpl.EMPTY_INTERACTIONPARTICIPANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1008_MSG_M_has_source_InteractionParticipant( MSG_M form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1008_MSG_M_has_source_InteractionParticipant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1008_sends_MSG_M(form);
            form.setR1008_has_source_InteractionParticipant(part);
            form.setReceiver_Part_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1008_MSG_M_has_source_InteractionParticipant( MSG_M form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1008_MSG_M_has_source_InteractionParticipant_extent.remove( R1008_MSG_M_has_source_InteractionParticipant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1008_sends_MSG_M(form);
            form.setR1008_has_source_InteractionParticipant(InteractionParticipantImpl.EMPTY_INTERACTIONPARTICIPANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1009_EventMessage_generates_StateMachineEvent( EventMessage form, StateMachineEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1009_EventMessage_generates_StateMachineEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1009_is_generated_by_EventMessage(form);
            form.setR1009_generates_StateMachineEvent(part);
            form.setSMevt_ID( part.getSMevt_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1009_EventMessage_generates_StateMachineEvent( EventMessage form, StateMachineEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1009_EventMessage_generates_StateMachineEvent_extent.remove( R1009_EventMessage_generates_StateMachineEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1009_is_generated_by_EventMessage(form);
            form.setR1009_generates_StateMachineEvent(StateMachineEventImpl.EMPTY_STATEMACHINEEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1010_FunctionMessage_is_invocation_of_S_SYNC( FunctionMessage form, S_SYNC part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1010_FunctionMessage_is_invocation_of_S_SYNC_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1010_is_invoked_by_FunctionMessage(form);
            form.setR1010_is_invocation_of_S_SYNC(part);
            form.setSync_ID( part.getSync_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1010_FunctionMessage_is_invocation_of_S_SYNC( FunctionMessage form, S_SYNC part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1010_FunctionMessage_is_invocation_of_S_SYNC_extent.remove( R1010_FunctionMessage_is_invocation_of_S_SYNC_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1010_is_invoked_by_FunctionMessage(form);
            form.setR1010_is_invocation_of_S_SYNC(S_SYNCImpl.EMPTY_S_SYNC);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1011_OperationMessage_is_invocation_of_O_TFR( OperationMessage form, O_TFR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1011_OperationMessage_is_invocation_of_O_TFR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1011_is_invoked_by_OperationMessage(form);
            form.setR1011_is_invocation_of_O_TFR(part);
            form.setTfr_ID( part.getTfr_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1011_OperationMessage_is_invocation_of_O_TFR( OperationMessage form, O_TFR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1011_OperationMessage_is_invocation_of_O_TFR_extent.remove( R1011_OperationMessage_is_invocation_of_O_TFR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1011_is_invoked_by_OperationMessage(form);
            form.setR1011_is_invocation_of_O_TFR(O_TFRImpl.EMPTY_O_TFR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1012_BridgeMessage_is_invocation_of_Bridge( BridgeMessage form, Bridge part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1012_BridgeMessage_is_invocation_of_Bridge_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1012_is_invoked_by_BridgeMessage(form);
            form.setR1012_is_invocation_of_Bridge(part);
            form.setBrg_ID( part.getBrg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1012_BridgeMessage_is_invocation_of_Bridge( BridgeMessage form, Bridge part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1012_BridgeMessage_is_invocation_of_Bridge_extent.remove( R1012_BridgeMessage_is_invocation_of_Bridge_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1012_is_invoked_by_BridgeMessage(form);
            form.setR1012_is_invocation_of_Bridge(BridgeImpl.EMPTY_BRIDGE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1013_BridgeArgument_is_a_MessageArgument( BridgeArgument form, MessageArgument part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1013_BridgeArgument_is_a_MessageArgument_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1013_is_a_BridgeArgument(form);
            form.setR1013_is_a_MessageArgument(part);
            form.setArg_ID( part.getArg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1013_BridgeArgument_is_a_MessageArgument( BridgeArgument form, MessageArgument part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1013_BridgeArgument_is_a_MessageArgument_extent.remove( R1013_BridgeArgument_is_a_MessageArgument_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1013_is_a_BridgeArgument(BridgeArgumentImpl.EMPTY_BRIDGEARGUMENT);
            form.setR1013_is_a_MessageArgument(MessageArgumentImpl.EMPTY_MESSAGEARGUMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1013_EventArgument_is_a_MessageArgument( EventArgument form, MessageArgument part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1013_EventArgument_is_a_MessageArgument_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1013_is_a_EventArgument(form);
            form.setR1013_is_a_MessageArgument(part);
            form.setArg_ID( part.getArg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1013_EventArgument_is_a_MessageArgument( EventArgument form, MessageArgument part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1013_EventArgument_is_a_MessageArgument_extent.remove( R1013_EventArgument_is_a_MessageArgument_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1013_is_a_EventArgument(EventArgumentImpl.EMPTY_EVENTARGUMENT);
            form.setR1013_is_a_MessageArgument(MessageArgumentImpl.EMPTY_MESSAGEARGUMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1013_ExecutablePropertyArgument_is_a_MessageArgument( ExecutablePropertyArgument form, MessageArgument part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1013_ExecutablePropertyArgument_is_a_MessageArgument_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1013_is_a_ExecutablePropertyArgument(form);
            form.setR1013_is_a_MessageArgument(part);
            form.setArg_ID( part.getArg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1013_ExecutablePropertyArgument_is_a_MessageArgument( ExecutablePropertyArgument form, MessageArgument part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1013_ExecutablePropertyArgument_is_a_MessageArgument_extent.remove( R1013_ExecutablePropertyArgument_is_a_MessageArgument_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1013_is_a_ExecutablePropertyArgument(ExecutablePropertyArgumentImpl.EMPTY_EXECUTABLEPROPERTYARGUMENT);
            form.setR1013_is_a_MessageArgument(MessageArgumentImpl.EMPTY_MESSAGEARGUMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1013_FunctionArgument_is_a_MessageArgument( FunctionArgument form, MessageArgument part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1013_FunctionArgument_is_a_MessageArgument_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1013_is_a_FunctionArgument(form);
            form.setR1013_is_a_MessageArgument(part);
            form.setArg_ID( part.getArg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1013_FunctionArgument_is_a_MessageArgument( FunctionArgument form, MessageArgument part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1013_FunctionArgument_is_a_MessageArgument_extent.remove( R1013_FunctionArgument_is_a_MessageArgument_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1013_is_a_FunctionArgument(FunctionArgumentImpl.EMPTY_FUNCTIONARGUMENT);
            form.setR1013_is_a_MessageArgument(MessageArgumentImpl.EMPTY_MESSAGEARGUMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1013_InformalArgument_is_a_MessageArgument( InformalArgument form, MessageArgument part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1013_InformalArgument_is_a_MessageArgument_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1013_is_a_InformalArgument(form);
            form.setR1013_is_a_MessageArgument(part);
            form.setArg_ID( part.getArg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1013_InformalArgument_is_a_MessageArgument( InformalArgument form, MessageArgument part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1013_InformalArgument_is_a_MessageArgument_extent.remove( R1013_InformalArgument_is_a_MessageArgument_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1013_is_a_InformalArgument(InformalArgumentImpl.EMPTY_INFORMALARGUMENT);
            form.setR1013_is_a_MessageArgument(MessageArgumentImpl.EMPTY_MESSAGEARGUMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1013_OperationArgument_is_a_MessageArgument( OperationArgument form, MessageArgument part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1013_OperationArgument_is_a_MessageArgument_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1013_is_a_OperationArgument(form);
            form.setR1013_is_a_MessageArgument(part);
            form.setArg_ID( part.getArg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1013_OperationArgument_is_a_MessageArgument( OperationArgument form, MessageArgument part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1013_OperationArgument_is_a_MessageArgument_extent.remove( R1013_OperationArgument_is_a_MessageArgument_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1013_is_a_OperationArgument(OperationArgumentImpl.EMPTY_OPERATIONARGUMENT);
            form.setR1013_is_a_MessageArgument(MessageArgumentImpl.EMPTY_MESSAGEARGUMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1014_BridgeArgument_is_represented_by_BridgeParameter( BridgeArgument form, BridgeParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1014_BridgeArgument_is_represented_by_BridgeParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1014_represents_BridgeArgument(form);
            form.setR1014_is_represented_by_BridgeParameter(part);
            form.setBParm_ID( part.getBParm_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1014_BridgeArgument_is_represented_by_BridgeParameter( BridgeArgument form, BridgeParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1014_BridgeArgument_is_represented_by_BridgeParameter_extent.remove( R1014_BridgeArgument_is_represented_by_BridgeParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1014_represents_BridgeArgument(form);
            form.setR1014_is_represented_by_BridgeParameter(BridgeParameterImpl.EMPTY_BRIDGEPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1015_OperationArgument_is_represented_by_OperationParameter( OperationArgument form, OperationParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1015_OperationArgument_is_represented_by_OperationParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1015_represents_OperationArgument(form);
            form.setR1015_is_represented_by_OperationParameter(part);
            form.setTParm_ID( part.getTParm_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1015_OperationArgument_is_represented_by_OperationParameter( OperationArgument form, OperationParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1015_OperationArgument_is_represented_by_OperationParameter_extent.remove( R1015_OperationArgument_is_represented_by_OperationParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1015_represents_OperationArgument(form);
            form.setR1015_is_represented_by_OperationParameter(OperationParameterImpl.EMPTY_OPERATIONPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1016_FunctionArgument_is_represented_by_FunctionParameter( FunctionArgument form, FunctionParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1016_FunctionArgument_is_represented_by_FunctionParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1016_represents_FunctionArgument(form);
            form.setR1016_is_represented_by_FunctionParameter(part);
            form.setSParm_ID( part.getSParm_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1016_FunctionArgument_is_represented_by_FunctionParameter( FunctionArgument form, FunctionParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1016_FunctionArgument_is_represented_by_FunctionParameter_extent.remove( R1016_FunctionArgument_is_represented_by_FunctionParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1016_represents_FunctionArgument(form);
            form.setR1016_is_represented_by_FunctionParameter(FunctionParameterImpl.EMPTY_FUNCTIONPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1017_EventArgument_is_represented_by_StateMachineEventDataItem( EventArgument form, StateMachineEventDataItem part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1017_EventArgument_is_represented_by_StateMachineEventDataItem_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1017_represents_EventArgument(form);
            form.setR1017_is_represented_by_StateMachineEventDataItem(part);
            form.setSM_ID( part.getSM_ID() );
            form.setSMedi_ID( part.getSMedi_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1017_EventArgument_is_represented_by_StateMachineEventDataItem( EventArgument form, StateMachineEventDataItem part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1017_EventArgument_is_represented_by_StateMachineEventDataItem_extent.remove( R1017_EventArgument_is_represented_by_StateMachineEventDataItem_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1017_represents_EventArgument(form);
            form.setR1017_is_represented_by_StateMachineEventDataItem(StateMachineEventDataItemImpl.EMPTY_STATEMACHINEEVENTDATAITEM);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1018_AsynchronousMessage_is_a_MSG_M( AsynchronousMessage form, MSG_M part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1018_AsynchronousMessage_is_a_MSG_M_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1018_is_a_AsynchronousMessage(form);
            form.setR1018_is_a_MSG_M(part);
            form.setMsg_ID( part.getMsg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1018_AsynchronousMessage_is_a_MSG_M( AsynchronousMessage form, MSG_M part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1018_AsynchronousMessage_is_a_MSG_M_extent.remove( R1018_AsynchronousMessage_is_a_MSG_M_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1018_is_a_AsynchronousMessage(AsynchronousMessageImpl.EMPTY_ASYNCHRONOUSMESSAGE);
            form.setR1018_is_a_MSG_M(MSG_MImpl.EMPTY_MSG_M);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1018_ReturnMessage_is_a_MSG_M( ReturnMessage form, MSG_M part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1018_ReturnMessage_is_a_MSG_M_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1018_is_a_ReturnMessage(form);
            form.setR1018_is_a_MSG_M(part);
            form.setMsg_ID( part.getMsg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1018_ReturnMessage_is_a_MSG_M( ReturnMessage form, MSG_M part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1018_ReturnMessage_is_a_MSG_M_extent.remove( R1018_ReturnMessage_is_a_MSG_M_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1018_is_a_ReturnMessage(ReturnMessageImpl.EMPTY_RETURNMESSAGE);
            form.setR1018_is_a_MSG_M(MSG_MImpl.EMPTY_MSG_M);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1018_SynchronousMessage_is_a_MSG_M( SynchronousMessage form, MSG_M part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1018_SynchronousMessage_is_a_MSG_M_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1018_is_a_SynchronousMessage(form);
            form.setR1018_is_a_MSG_M(part);
            form.setMsg_ID( part.getMsg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1018_SynchronousMessage_is_a_MSG_M( SynchronousMessage form, MSG_M part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1018_SynchronousMessage_is_a_MSG_M_extent.remove( R1018_SynchronousMessage_is_a_MSG_M_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1018_is_a_SynchronousMessage(SynchronousMessageImpl.EMPTY_SYNCHRONOUSMESSAGE);
            form.setR1018_is_a_MSG_M(MSG_MImpl.EMPTY_MSG_M);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1019_EventMessage_is_a_AsynchronousMessage( EventMessage form, AsynchronousMessage part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1019_EventMessage_is_a_AsynchronousMessage_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1019_is_a_EventMessage(form);
            form.setR1019_is_a_AsynchronousMessage(part);
            form.setMsg_ID( part.getMsg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1019_EventMessage_is_a_AsynchronousMessage( EventMessage form, AsynchronousMessage part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1019_EventMessage_is_a_AsynchronousMessage_extent.remove( R1019_EventMessage_is_a_AsynchronousMessage_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1019_is_a_EventMessage(EventMessageImpl.EMPTY_EVENTMESSAGE);
            form.setR1019_is_a_AsynchronousMessage(AsynchronousMessageImpl.EMPTY_ASYNCHRONOUSMESSAGE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1019_InformalAsynchronousMessage_is_a_AsynchronousMessage( InformalAsynchronousMessage form, AsynchronousMessage part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1019_InformalAsynchronousMessage_is_a_AsynchronousMessage_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1019_is_a_InformalAsynchronousMessage(form);
            form.setR1019_is_a_AsynchronousMessage(part);
            form.setMsg_ID( part.getMsg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1019_InformalAsynchronousMessage_is_a_AsynchronousMessage( InformalAsynchronousMessage form, AsynchronousMessage part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1019_InformalAsynchronousMessage_is_a_AsynchronousMessage_extent.remove( R1019_InformalAsynchronousMessage_is_a_AsynchronousMessage_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1019_is_a_InformalAsynchronousMessage(InformalAsynchronousMessageImpl.EMPTY_INFORMALASYNCHRONOUSMESSAGE);
            form.setR1019_is_a_AsynchronousMessage(AsynchronousMessageImpl.EMPTY_ASYNCHRONOUSMESSAGE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1019_SignalMessage_is_a_AsynchronousMessage( SignalMessage form, AsynchronousMessage part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1019_SignalMessage_is_a_AsynchronousMessage_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1019_is_a_SignalMessage(form);
            form.setR1019_is_a_AsynchronousMessage(part);
            form.setMsg_ID( part.getMsg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1019_SignalMessage_is_a_AsynchronousMessage( SignalMessage form, AsynchronousMessage part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1019_SignalMessage_is_a_AsynchronousMessage_extent.remove( R1019_SignalMessage_is_a_AsynchronousMessage_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1019_is_a_SignalMessage(SignalMessageImpl.EMPTY_SIGNALMESSAGE);
            form.setR1019_is_a_AsynchronousMessage(AsynchronousMessageImpl.EMPTY_ASYNCHRONOUSMESSAGE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R101_ImportedClass_represents_ModelClass( ImportedClass form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R101_ImportedClass_represents_ModelClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR101_has_presence_in_other_subsystems_ImportedClass(form);
            form.setR101_represents_ModelClass(part);
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R101_ImportedClass_represents_ModelClass( ImportedClass form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R101_ImportedClass_represents_ModelClass_extent.remove( R101_ImportedClass_represents_ModelClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR101_has_presence_in_other_subsystems_ImportedClass(form);
            form.setR101_represents_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1020_BridgeMessage_is_a_SynchronousMessage( BridgeMessage form, SynchronousMessage part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1020_BridgeMessage_is_a_SynchronousMessage_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1020_is_a_BridgeMessage(form);
            form.setR1020_is_a_SynchronousMessage(part);
            form.setMsg_ID( part.getMsg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1020_BridgeMessage_is_a_SynchronousMessage( BridgeMessage form, SynchronousMessage part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1020_BridgeMessage_is_a_SynchronousMessage_extent.remove( R1020_BridgeMessage_is_a_SynchronousMessage_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1020_is_a_BridgeMessage(BridgeMessageImpl.EMPTY_BRIDGEMESSAGE);
            form.setR1020_is_a_SynchronousMessage(SynchronousMessageImpl.EMPTY_SYNCHRONOUSMESSAGE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1020_FunctionMessage_is_a_SynchronousMessage( FunctionMessage form, SynchronousMessage part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1020_FunctionMessage_is_a_SynchronousMessage_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1020_is_a_FunctionMessage(form);
            form.setR1020_is_a_SynchronousMessage(part);
            form.setMsg_ID( part.getMsg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1020_FunctionMessage_is_a_SynchronousMessage( FunctionMessage form, SynchronousMessage part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1020_FunctionMessage_is_a_SynchronousMessage_extent.remove( R1020_FunctionMessage_is_a_SynchronousMessage_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1020_is_a_FunctionMessage(FunctionMessageImpl.EMPTY_FUNCTIONMESSAGE);
            form.setR1020_is_a_SynchronousMessage(SynchronousMessageImpl.EMPTY_SYNCHRONOUSMESSAGE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1020_InformalSynchronousMessage_is_a_SynchronousMessage( InformalSynchronousMessage form, SynchronousMessage part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1020_InformalSynchronousMessage_is_a_SynchronousMessage_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1020_is_a_InformalSynchronousMessage(form);
            form.setR1020_is_a_SynchronousMessage(part);
            form.setMsg_ID( part.getMsg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1020_InformalSynchronousMessage_is_a_SynchronousMessage( InformalSynchronousMessage form, SynchronousMessage part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1020_InformalSynchronousMessage_is_a_SynchronousMessage_extent.remove( R1020_InformalSynchronousMessage_is_a_SynchronousMessage_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1020_is_a_InformalSynchronousMessage(InformalSynchronousMessageImpl.EMPTY_INFORMALSYNCHRONOUSMESSAGE);
            form.setR1020_is_a_SynchronousMessage(SynchronousMessageImpl.EMPTY_SYNCHRONOUSMESSAGE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1020_InterfaceOperationMessage_is_a_SynchronousMessage( InterfaceOperationMessage form, SynchronousMessage part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1020_InterfaceOperationMessage_is_a_SynchronousMessage_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1020_is_a_InterfaceOperationMessage(form);
            form.setR1020_is_a_SynchronousMessage(part);
            form.setMsg_ID( part.getMsg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1020_InterfaceOperationMessage_is_a_SynchronousMessage( InterfaceOperationMessage form, SynchronousMessage part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1020_InterfaceOperationMessage_is_a_SynchronousMessage_extent.remove( R1020_InterfaceOperationMessage_is_a_SynchronousMessage_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1020_is_a_InterfaceOperationMessage(InterfaceOperationMessageImpl.EMPTY_INTERFACEOPERATIONMESSAGE);
            form.setR1020_is_a_SynchronousMessage(SynchronousMessageImpl.EMPTY_SYNCHRONOUSMESSAGE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1020_OperationMessage_is_a_SynchronousMessage( OperationMessage form, SynchronousMessage part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1020_OperationMessage_is_a_SynchronousMessage_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1020_is_a_OperationMessage(form);
            form.setR1020_is_a_SynchronousMessage(part);
            form.setMsg_ID( part.getMsg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1020_OperationMessage_is_a_SynchronousMessage( OperationMessage form, SynchronousMessage part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1020_OperationMessage_is_a_SynchronousMessage_extent.remove( R1020_OperationMessage_is_a_SynchronousMessage_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1020_is_a_OperationMessage(OperationMessageImpl.EMPTY_OPERATIONMESSAGE);
            form.setR1020_is_a_SynchronousMessage(SynchronousMessageImpl.EMPTY_SYNCHRONOUSMESSAGE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1021_SignalMessage_sends_InterfaceSignal( SignalMessage form, InterfaceSignal part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1021_SignalMessage_sends_InterfaceSignal_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1021_sent_by_SignalMessage(form);
            form.setR1021_sends_InterfaceSignal(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1021_SignalMessage_sends_InterfaceSignal( SignalMessage form, InterfaceSignal part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1021_SignalMessage_sends_InterfaceSignal_extent.remove( R1021_SignalMessage_sends_InterfaceSignal_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1021_sent_by_SignalMessage(form);
            form.setR1021_sends_InterfaceSignal(InterfaceSignalImpl.EMPTY_INTERFACESIGNAL);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1022_InterfaceOperationMessage_sends_InterfaceOperation( InterfaceOperationMessage form, InterfaceOperation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1022_InterfaceOperationMessage_sends_InterfaceOperation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1022_sent_by_InterfaceOperationMessage(form);
            form.setR1022_sends_InterfaceOperation(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1022_InterfaceOperationMessage_sends_InterfaceOperation( InterfaceOperationMessage form, InterfaceOperation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1022_InterfaceOperationMessage_sends_InterfaceOperation_extent.remove( R1022_InterfaceOperationMessage_sends_InterfaceOperation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1022_sent_by_InterfaceOperationMessage(form);
            form.setR1022_sends_InterfaceOperation(InterfaceOperationImpl.EMPTY_INTERFACEOPERATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1023_ExecutablePropertyArgument_is_represented_by_PropertyParameter( ExecutablePropertyArgument form, PropertyParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1023_ExecutablePropertyArgument_is_represented_by_PropertyParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1023_represents_ExecutablePropertyArgument(form);
            form.setR1023_is_represented_by_PropertyParameter(part);
            form.setPP_Id( part.getPP_Id() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1023_ExecutablePropertyArgument_is_represented_by_PropertyParameter( ExecutablePropertyArgument form, PropertyParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1023_ExecutablePropertyArgument_is_represented_by_PropertyParameter_extent.remove( R1023_ExecutablePropertyArgument_is_represented_by_PropertyParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1023_represents_ExecutablePropertyArgument(form);
            form.setR1023_is_represented_by_PropertyParameter(PropertyParameterImpl.EMPTY_PROPERTYPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R102_O_ATTR_abstracts_characteristics_of_ModelClass( O_ATTR form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R102_O_ATTR_abstracts_characteristics_of_ModelClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR102_has_characteristics_abstracted_by_O_ATTR(form);
            form.setR102_abstracts_characteristics_of_ModelClass(part);
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R102_O_ATTR_abstracts_characteristics_of_ModelClass( O_ATTR form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R102_O_ATTR_abstracts_characteristics_of_ModelClass_extent.remove( R102_O_ATTR_abstracts_characteristics_of_ModelClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR102_has_characteristics_abstracted_by_O_ATTR(form);
            form.setR102_abstracts_characteristics_of_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R103_O_ATTR_succeeds_O_ATTR( O_ATTR form, O_ATTR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R103_O_ATTR_succeeds_O_ATTR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR103_precedes_O_ATTR(form);
            form.setR103_succeeds_O_ATTR(part);
            form.setObj_ID( part.getObj_ID() );
            form.setPAttr_ID( part.getAttr_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R103_O_ATTR_succeeds_O_ATTR( O_ATTR form, O_ATTR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R103_O_ATTR_succeeds_O_ATTR_extent.remove( R103_O_ATTR_succeeds_O_ATTR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR103_precedes_O_ATTR(O_ATTRImpl.EMPTY_O_ATTR);
            form.setR103_succeeds_O_ATTR(O_ATTRImpl.EMPTY_O_ATTR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R104_ClassIdentifier_identifies_ModelClass( ClassIdentifier form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R104_ClassIdentifier_identifies_ModelClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR104_is_identified_by_ClassIdentifier(form);
            form.setR104_identifies_ModelClass(part);
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R104_ClassIdentifier_identifies_ModelClass( ClassIdentifier form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R104_ClassIdentifier_identifies_ModelClass_extent.remove( R104_ClassIdentifier_identifies_ModelClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR104_is_identified_by_ClassIdentifier(form);
            form.setR104_identifies_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R105_ClassIdentifierAttribute_is_made_up_of__O_ATTR( ClassIdentifierAttribute form, O_ATTR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R105_ClassIdentifierAttribute_is_made_up_of__O_ATTR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR105_is_part_of__ClassIdentifierAttribute(form);
            form.setR105_is_made_up_of__O_ATTR(part);
            form.setAttr_ID( part.getAttr_ID() );
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R105_ClassIdentifierAttribute_is_made_up_of__O_ATTR( ClassIdentifierAttribute form, O_ATTR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R105_ClassIdentifierAttribute_is_made_up_of__O_ATTR_extent.remove( R105_ClassIdentifierAttribute_is_made_up_of__O_ATTR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR105_is_part_of__ClassIdentifierAttribute(form);
            form.setR105_is_made_up_of__O_ATTR(O_ATTRImpl.EMPTY_O_ATTR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R105_ClassIdentifierAttribute_is_part_of__ClassIdentifier( ClassIdentifierAttribute form, ClassIdentifier part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R105_ClassIdentifierAttribute_is_part_of__ClassIdentifier_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR105_is_made_up_of__ClassIdentifierAttribute(form);
            form.setR105_is_part_of__ClassIdentifier(part);
            form.setOid_ID( part.getOid_ID() );
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R105_ClassIdentifierAttribute_is_part_of__ClassIdentifier( ClassIdentifierAttribute form, ClassIdentifier part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R105_ClassIdentifierAttribute_is_part_of__ClassIdentifier_extent.remove( R105_ClassIdentifierAttribute_is_part_of__ClassIdentifier_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR105_is_made_up_of__ClassIdentifierAttribute(form);
            form.setR105_is_part_of__ClassIdentifier(ClassIdentifierImpl.EMPTY_CLASSIDENTIFIER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R106_BaseAttribute_is_a_O_ATTR( BaseAttribute form, O_ATTR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R106_BaseAttribute_is_a_O_ATTR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR106_is_a_BaseAttribute(form);
            form.setR106_is_a_O_ATTR(part);
            form.setAttr_ID( part.getAttr_ID() );
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R106_BaseAttribute_is_a_O_ATTR( BaseAttribute form, O_ATTR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R106_BaseAttribute_is_a_O_ATTR_extent.remove( R106_BaseAttribute_is_a_O_ATTR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR106_is_a_BaseAttribute(BaseAttributeImpl.EMPTY_BASEATTRIBUTE);
            form.setR106_is_a_O_ATTR(O_ATTRImpl.EMPTY_O_ATTR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R106_ReferentialAttribute_is_a_O_ATTR( ReferentialAttribute form, O_ATTR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R106_ReferentialAttribute_is_a_O_ATTR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR106_is_a_ReferentialAttribute(form);
            form.setR106_is_a_O_ATTR(part);
            form.setAttr_ID( part.getAttr_ID() );
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R106_ReferentialAttribute_is_a_O_ATTR( ReferentialAttribute form, O_ATTR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R106_ReferentialAttribute_is_a_O_ATTR_extent.remove( R106_ReferentialAttribute_is_a_O_ATTR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR106_is_a_ReferentialAttribute(ReferentialAttributeImpl.EMPTY_REFERENTIALATTRIBUTE);
            form.setR106_is_a_O_ATTR(O_ATTRImpl.EMPTY_O_ATTR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R107_DerivedBaseAttribute_is_a_BaseAttribute( DerivedBaseAttribute form, BaseAttribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R107_DerivedBaseAttribute_is_a_BaseAttribute_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR107_is_a_DerivedBaseAttribute(form);
            form.setR107_is_a_BaseAttribute(part);
            form.setObj_ID( part.getObj_ID() );
            form.setAttr_ID( part.getAttr_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R107_DerivedBaseAttribute_is_a_BaseAttribute( DerivedBaseAttribute form, BaseAttribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R107_DerivedBaseAttribute_is_a_BaseAttribute_extent.remove( R107_DerivedBaseAttribute_is_a_BaseAttribute_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR107_is_a_DerivedBaseAttribute(DerivedBaseAttributeImpl.EMPTY_DERIVEDBASEATTRIBUTE);
            form.setR107_is_a_BaseAttribute(BaseAttributeImpl.EMPTY_BASEATTRIBUTE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R107_NewBaseAttribute_is_a_BaseAttribute( NewBaseAttribute form, BaseAttribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R107_NewBaseAttribute_is_a_BaseAttribute_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR107_is_a_NewBaseAttribute(form);
            form.setR107_is_a_BaseAttribute(part);
            form.setObj_ID( part.getObj_ID() );
            form.setAttr_ID( part.getAttr_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R107_NewBaseAttribute_is_a_BaseAttribute( NewBaseAttribute form, BaseAttribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R107_NewBaseAttribute_is_a_BaseAttribute_extent.remove( R107_NewBaseAttribute_is_a_BaseAttribute_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR107_is_a_NewBaseAttribute(NewBaseAttributeImpl.EMPTY_NEWBASEATTRIBUTE);
            form.setR107_is_a_BaseAttribute(BaseAttributeImpl.EMPTY_BASEATTRIBUTE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R108_AttributeReferenceInClass_is_resolved_by_ReferentialAttribute( AttributeReferenceInClass form, ReferentialAttribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R108_AttributeReferenceInClass_is_resolved_by_ReferentialAttribute_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR108_resolves__AttributeReferenceInClass(form);
            form.setR108_is_resolved_by_ReferentialAttribute(part);
            form.setAttr_ID( part.getAttr_ID() );
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R108_AttributeReferenceInClass_is_resolved_by_ReferentialAttribute( AttributeReferenceInClass form, ReferentialAttribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R108_AttributeReferenceInClass_is_resolved_by_ReferentialAttribute_extent.remove( R108_AttributeReferenceInClass_is_resolved_by_ReferentialAttribute_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR108_resolves__AttributeReferenceInClass(form);
            form.setR108_is_resolved_by_ReferentialAttribute(ReferentialAttributeImpl.EMPTY_REFERENTIALATTRIBUTE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R109_ReferredToClassInAssoc_is_identified_in_this_association_by_ClassIdentifier( ReferredToClassInAssoc form, ClassIdentifier part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R109_ReferredToClassInAssoc_is_identified_in_this_association_by_ClassIdentifier_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR109_identifies_for_this_association__ReferredToClassInAssoc(form);
            form.setR109_is_identified_in_this_association_by_ClassIdentifier(part);
            form.setObj_ID( part.getObj_ID() );
            form.setOid_ID( part.getOid_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R109_ReferredToClassInAssoc_is_identified_in_this_association_by_ClassIdentifier( ReferredToClassInAssoc form, ClassIdentifier part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R109_ReferredToClassInAssoc_is_identified_in_this_association_by_ClassIdentifier_extent.remove( R109_ReferredToClassInAssoc_is_identified_in_this_association_by_ClassIdentifier_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR109_identifies_for_this_association__ReferredToClassInAssoc(form);
            form.setR109_is_identified_in_this_association_by_ClassIdentifier(ClassIdentifierImpl.EMPTY_CLASSIDENTIFIER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1103_ActivityEdge_target_ActivityNode( ActivityEdge form, ActivityNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1103_ActivityEdge_target_ActivityNode_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1103_incoming_ActivityEdge(form);
            form.setR1103_target_ActivityNode(part);
            form.setTargetId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1103_ActivityEdge_target_ActivityNode( ActivityEdge form, ActivityNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1103_ActivityEdge_target_ActivityNode_extent.remove( R1103_ActivityEdge_target_ActivityNode_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1103_incoming_ActivityEdge(form);
            form.setR1103_target_ActivityNode(ActivityNodeImpl.EMPTY_ACTIVITYNODE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1104_ActivityEdge_source_ActivityNode( ActivityEdge form, ActivityNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1104_ActivityEdge_source_ActivityNode_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1104_outgoing_ActivityEdge(form);
            form.setR1104_source_ActivityNode(part);
            form.setSourceId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1104_ActivityEdge_source_ActivityNode( ActivityEdge form, ActivityNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1104_ActivityEdge_source_ActivityNode_extent.remove( R1104_ActivityEdge_source_ActivityNode_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1104_outgoing_ActivityEdge(form);
            form.setR1104_source_ActivityNode(ActivityNodeImpl.EMPTY_ACTIVITYNODE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1105_ActionNode_is_a_ActivityNode( ActionNode form, ActivityNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1105_ActionNode_is_a_ActivityNode_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1105_is_a_ActionNode(form);
            form.setR1105_is_a_ActivityNode(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1105_ActionNode_is_a_ActivityNode( ActionNode form, ActivityNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1105_ActionNode_is_a_ActivityNode_extent.remove( R1105_ActionNode_is_a_ActivityNode_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1105_is_a_ActionNode(ActionNodeImpl.EMPTY_ACTIONNODE);
            form.setR1105_is_a_ActivityNode(ActivityNodeImpl.EMPTY_ACTIVITYNODE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1105_ControlNode_is_a_ActivityNode( ControlNode form, ActivityNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1105_ControlNode_is_a_ActivityNode_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1105_is_a_ControlNode(form);
            form.setR1105_is_a_ActivityNode(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1105_ControlNode_is_a_ActivityNode( ControlNode form, ActivityNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1105_ControlNode_is_a_ActivityNode_extent.remove( R1105_ControlNode_is_a_ActivityNode_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1105_is_a_ControlNode(ControlNodeImpl.EMPTY_CONTROLNODE);
            form.setR1105_is_a_ActivityNode(ActivityNodeImpl.EMPTY_ACTIVITYNODE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1105_ObjectNode_is_a_ActivityNode( ObjectNode form, ActivityNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1105_ObjectNode_is_a_ActivityNode_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1105_is_a_ObjectNode(form);
            form.setR1105_is_a_ActivityNode(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1105_ObjectNode_is_a_ActivityNode( ObjectNode form, ActivityNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1105_ObjectNode_is_a_ActivityNode_extent.remove( R1105_ObjectNode_is_a_ActivityNode_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1105_is_a_ObjectNode(ObjectNodeImpl.EMPTY_OBJECTNODE);
            form.setR1105_is_a_ActivityNode(ActivityNodeImpl.EMPTY_ACTIVITYNODE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1106_ActivityFinalNode_is_a_ControlNode( ActivityFinalNode form, ControlNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1106_ActivityFinalNode_is_a_ControlNode_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1106_is_a_ActivityFinalNode(form);
            form.setR1106_is_a_ControlNode(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1106_ActivityFinalNode_is_a_ControlNode( ActivityFinalNode form, ControlNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1106_ActivityFinalNode_is_a_ControlNode_extent.remove( R1106_ActivityFinalNode_is_a_ControlNode_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1106_is_a_ActivityFinalNode(ActivityFinalNodeImpl.EMPTY_ACTIVITYFINALNODE);
            form.setR1106_is_a_ControlNode(ControlNodeImpl.EMPTY_CONTROLNODE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1106_DecisionMergeNode_is_a_ControlNode( DecisionMergeNode form, ControlNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1106_DecisionMergeNode_is_a_ControlNode_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1106_is_a_DecisionMergeNode(form);
            form.setR1106_is_a_ControlNode(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1106_DecisionMergeNode_is_a_ControlNode( DecisionMergeNode form, ControlNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1106_DecisionMergeNode_is_a_ControlNode_extent.remove( R1106_DecisionMergeNode_is_a_ControlNode_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1106_is_a_DecisionMergeNode(DecisionMergeNodeImpl.EMPTY_DECISIONMERGENODE);
            form.setR1106_is_a_ControlNode(ControlNodeImpl.EMPTY_CONTROLNODE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1106_FlowFinalNode_is_a_ControlNode( FlowFinalNode form, ControlNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1106_FlowFinalNode_is_a_ControlNode_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1106_is_a_FlowFinalNode(form);
            form.setR1106_is_a_ControlNode(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1106_FlowFinalNode_is_a_ControlNode( FlowFinalNode form, ControlNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1106_FlowFinalNode_is_a_ControlNode_extent.remove( R1106_FlowFinalNode_is_a_ControlNode_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1106_is_a_FlowFinalNode(FlowFinalNodeImpl.EMPTY_FLOWFINALNODE);
            form.setR1106_is_a_ControlNode(ControlNodeImpl.EMPTY_CONTROLNODE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1106_ForkJoinNode_is_a_ControlNode( ForkJoinNode form, ControlNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1106_ForkJoinNode_is_a_ControlNode_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1106_is_a_ForkJoinNode(form);
            form.setR1106_is_a_ControlNode(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1106_ForkJoinNode_is_a_ControlNode( ForkJoinNode form, ControlNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1106_ForkJoinNode_is_a_ControlNode_extent.remove( R1106_ForkJoinNode_is_a_ControlNode_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1106_is_a_ForkJoinNode(ForkJoinNodeImpl.EMPTY_FORKJOINNODE);
            form.setR1106_is_a_ControlNode(ControlNodeImpl.EMPTY_CONTROLNODE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1106_InitialNode_is_a_ControlNode( InitialNode form, ControlNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1106_InitialNode_is_a_ControlNode_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1106_is_a_InitialNode(form);
            form.setR1106_is_a_ControlNode(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1106_InitialNode_is_a_ControlNode( InitialNode form, ControlNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1106_InitialNode_is_a_ControlNode_extent.remove( R1106_InitialNode_is_a_ControlNode_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1106_is_a_InitialNode(InitialNodeImpl.EMPTY_INITIALNODE);
            form.setR1106_is_a_ControlNode(ControlNodeImpl.EMPTY_CONTROLNODE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1107_AcceptEvent_is_a_ActionNode( AcceptEvent form, ActionNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1107_AcceptEvent_is_a_ActionNode_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1107_is_a_AcceptEvent(form);
            form.setR1107_is_a_ActionNode(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1107_AcceptEvent_is_a_ActionNode( AcceptEvent form, ActionNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1107_AcceptEvent_is_a_ActionNode_extent.remove( R1107_AcceptEvent_is_a_ActionNode_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1107_is_a_AcceptEvent(AcceptEventImpl.EMPTY_ACCEPTEVENT);
            form.setR1107_is_a_ActionNode(ActionNodeImpl.EMPTY_ACTIONNODE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1107_ActivityDiagramAction_is_a_ActionNode( ActivityDiagramAction form, ActionNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1107_ActivityDiagramAction_is_a_ActionNode_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1107_is_a_ActivityDiagramAction(form);
            form.setR1107_is_a_ActionNode(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1107_ActivityDiagramAction_is_a_ActionNode( ActivityDiagramAction form, ActionNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1107_ActivityDiagramAction_is_a_ActionNode_extent.remove( R1107_ActivityDiagramAction_is_a_ActionNode_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1107_is_a_ActivityDiagramAction(ActivityDiagramActionImpl.EMPTY_ACTIVITYDIAGRAMACTION);
            form.setR1107_is_a_ActionNode(ActionNodeImpl.EMPTY_ACTIONNODE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1107_SendSignal_is_a_ActionNode( SendSignal form, ActionNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1107_SendSignal_is_a_ActionNode_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1107_is_a_SendSignal(form);
            form.setR1107_is_a_ActionNode(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1107_SendSignal_is_a_ActionNode( SendSignal form, ActionNode part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1107_SendSignal_is_a_ActionNode_extent.remove( R1107_SendSignal_is_a_ActionNode_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1107_is_a_SendSignal(SendSignalImpl.EMPTY_SENDSIGNAL);
            form.setR1107_is_a_ActionNode(ActionNodeImpl.EMPTY_ACTIONNODE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R110_ReferredToIdentifierAttribute_identifies_for_this_association_ReferredToClassInAssoc( ReferredToIdentifierAttribute form, ReferredToClassInAssoc part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R110_ReferredToIdentifierAttribute_identifies_for_this_association_ReferredToClassInAssoc_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR110_is_identified_in_this_association_by_ReferredToIdentifierAttribute(form);
            form.setR110_identifies_for_this_association_ReferredToClassInAssoc(part);
            form.setOIR_ID( part.getOIR_ID() );
            form.setObj_ID( part.getObj_ID() );
            form.setOid_ID( part.getOid_ID() );
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R110_ReferredToIdentifierAttribute_identifies_for_this_association_ReferredToClassInAssoc( ReferredToIdentifierAttribute form, ReferredToClassInAssoc part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R110_ReferredToIdentifierAttribute_identifies_for_this_association_ReferredToClassInAssoc_extent.remove( R110_ReferredToIdentifierAttribute_identifies_for_this_association_ReferredToClassInAssoc_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR110_is_identified_in_this_association_by_ReferredToIdentifierAttribute(form);
            form.setR110_identifies_for_this_association_ReferredToClassInAssoc(ReferredToClassInAssocImpl.EMPTY_REFERREDTOCLASSINASSOC);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R110_ReferredToIdentifierAttribute_is_identified_in_this_association_by_ClassIdentifierAttribute( ReferredToIdentifierAttribute form, ClassIdentifierAttribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R110_ReferredToIdentifierAttribute_is_identified_in_this_association_by_ClassIdentifierAttribute_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR110_identifies_for_this_association_ReferredToIdentifierAttribute(form);
            form.setR110_is_identified_in_this_association_by_ClassIdentifierAttribute(part);
            form.setObj_ID( part.getObj_ID() );
            form.setAttr_ID( part.getAttr_ID() );
            form.setOid_ID( part.getOid_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R110_ReferredToIdentifierAttribute_is_identified_in_this_association_by_ClassIdentifierAttribute( ReferredToIdentifierAttribute form, ClassIdentifierAttribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R110_ReferredToIdentifierAttribute_is_identified_in_this_association_by_ClassIdentifierAttribute_extent.remove( R110_ReferredToIdentifierAttribute_is_identified_in_this_association_by_ClassIdentifierAttribute_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR110_identifies_for_this_association_ReferredToIdentifierAttribute(form);
            form.setR110_is_identified_in_this_association_by_ClassIdentifierAttribute(ClassIdentifierAttributeImpl.EMPTY_CLASSIDENTIFIERATTRIBUTE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1112_AcceptEventAction_is_a_AcceptEvent( AcceptEventAction form, AcceptEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1112_AcceptEventAction_is_a_AcceptEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1112_is_a_AcceptEventAction(form);
            form.setR1112_is_a_AcceptEvent(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1112_AcceptEventAction_is_a_AcceptEvent( AcceptEventAction form, AcceptEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1112_AcceptEventAction_is_a_AcceptEvent_extent.remove( R1112_AcceptEventAction_is_a_AcceptEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1112_is_a_AcceptEventAction(AcceptEventActionImpl.EMPTY_ACCEPTEVENTACTION);
            form.setR1112_is_a_AcceptEvent(AcceptEventImpl.EMPTY_ACCEPTEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1112_AcceptTimeEventAction_is_a_AcceptEvent( AcceptTimeEventAction form, AcceptEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1112_AcceptTimeEventAction_is_a_AcceptEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1112_is_a_AcceptTimeEventAction(form);
            form.setR1112_is_a_AcceptEvent(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1112_AcceptTimeEventAction_is_a_AcceptEvent( AcceptTimeEventAction form, AcceptEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1112_AcceptTimeEventAction_is_a_AcceptEvent_extent.remove( R1112_AcceptTimeEventAction_is_a_AcceptEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1112_is_a_AcceptTimeEventAction(AcceptTimeEventActionImpl.EMPTY_ACCEPTTIMEEVENTACTION);
            form.setR1112_is_a_AcceptEvent(AcceptEventImpl.EMPTY_ACCEPTEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R111_AttributeReferenceInClass_is_used_to_refer_class_by_ReferringClassInAssoc( AttributeReferenceInClass form, ReferringClassInAssoc part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R111_AttributeReferenceInClass_is_used_to_refer_class_by_ReferringClassInAssoc_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR111_refers_across_association_via_AttributeReferenceInClass(form);
            form.setR111_is_used_to_refer_class_by_ReferringClassInAssoc(part);
            form.setRel_ID( part.getRel_ID() );
            form.setObj_ID( part.getObj_ID() );
            form.setOIR_ID( part.getOIR_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R111_AttributeReferenceInClass_is_used_to_refer_class_by_ReferringClassInAssoc( AttributeReferenceInClass form, ReferringClassInAssoc part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R111_AttributeReferenceInClass_is_used_to_refer_class_by_ReferringClassInAssoc_extent.remove( R111_AttributeReferenceInClass_is_used_to_refer_class_by_ReferringClassInAssoc_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR111_refers_across_association_via_AttributeReferenceInClass(form);
            form.setR111_is_used_to_refer_class_by_ReferringClassInAssoc(ReferringClassInAssocImpl.EMPTY_REFERRINGCLASSINASSOC);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R111_AttributeReferenceInClass_refers_across_association_via_ReferredToIdentifierAttribute( AttributeReferenceInClass form, ReferredToIdentifierAttribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R111_AttributeReferenceInClass_refers_across_association_via_ReferredToIdentifierAttribute_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR111_is_used_to_refer_class_by_AttributeReferenceInClass(form);
            form.setR111_refers_across_association_via_ReferredToIdentifierAttribute(part);
            form.setROid_ID( part.getOid_ID() );
            form.setROIR_ID( part.getOIR_ID() );
            form.setRAttr_ID( part.getAttr_ID() );
            form.setRel_ID( part.getRel_ID() );
            form.setRObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R111_AttributeReferenceInClass_refers_across_association_via_ReferredToIdentifierAttribute( AttributeReferenceInClass form, ReferredToIdentifierAttribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R111_AttributeReferenceInClass_refers_across_association_via_ReferredToIdentifierAttribute_extent.remove( R111_AttributeReferenceInClass_refers_across_association_via_ReferredToIdentifierAttribute_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR111_is_used_to_refer_class_by_AttributeReferenceInClass(form);
            form.setR111_refers_across_association_via_ReferredToIdentifierAttribute(ReferredToIdentifierAttributeImpl.EMPTY_REFERREDTOIDENTIFIERATTRIBUTE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1128_CommunicationLink_may_be_formalized_against_Association( CommunicationLink form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1128_CommunicationLink_may_be_formalized_against_Association_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1128_represents_formal_instance_CommunicationLink(form);
            form.setR1128_may_be_formalized_against_Association(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1128_CommunicationLink_may_be_formalized_against_Association( CommunicationLink form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1128_CommunicationLink_may_be_formalized_against_Association_extent.remove( R1128_CommunicationLink_may_be_formalized_against_Association_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1128_represents_formal_instance_CommunicationLink(form);
            form.setR1128_may_be_formalized_against_Association(AssociationImpl.EMPTY_ASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R112_AttributeReferenceInClass_succeeds_AttributeReferenceInClass( AttributeReferenceInClass form, AttributeReferenceInClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R112_AttributeReferenceInClass_succeeds_AttributeReferenceInClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR112_precedes_AttributeReferenceInClass(form);
            form.setR112_succeeds_AttributeReferenceInClass(part);
            form.setPARef_ID( part.getARef_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R112_AttributeReferenceInClass_succeeds_AttributeReferenceInClass( AttributeReferenceInClass form, AttributeReferenceInClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R112_AttributeReferenceInClass_succeeds_AttributeReferenceInClass_extent.remove( R112_AttributeReferenceInClass_succeeds_AttributeReferenceInClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR112_precedes_AttributeReferenceInClass(AttributeReferenceInClassImpl.EMPTY_ATTRIBUTEREFERENCEINCLASS);
            form.setR112_succeeds_AttributeReferenceInClass(AttributeReferenceInClassImpl.EMPTY_ATTRIBUTEREFERENCEINCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1133_CommunicationLink_starts_at_InteractionParticipant( CommunicationLink form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1133_CommunicationLink_starts_at_InteractionParticipant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1133_is_start_point_CommunicationLink(form);
            form.setR1133_starts_at_InteractionParticipant(part);
            form.setStart_Part_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1133_CommunicationLink_starts_at_InteractionParticipant( CommunicationLink form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1133_CommunicationLink_starts_at_InteractionParticipant_extent.remove( R1133_CommunicationLink_starts_at_InteractionParticipant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1133_is_start_point_CommunicationLink(form);
            form.setR1133_starts_at_InteractionParticipant(InteractionParticipantImpl.EMPTY_INTERACTIONPARTICIPANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1134_CommunicationLink_is_destined_for_InteractionParticipant( CommunicationLink form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1134_CommunicationLink_is_destined_for_InteractionParticipant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1134_is_destination_CommunicationLink(form);
            form.setR1134_is_destined_for_InteractionParticipant(part);
            form.setDestination_Part_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1134_CommunicationLink_is_destined_for_InteractionParticipant( CommunicationLink form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1134_CommunicationLink_is_destined_for_InteractionParticipant_extent.remove( R1134_CommunicationLink_is_destined_for_InteractionParticipant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1134_is_destination_CommunicationLink(form);
            form.setR1134_is_destined_for_InteractionParticipant(InteractionParticipantImpl.EMPTY_INTERACTIONPARTICIPANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R113_ReferentialAttribute_navigates_back_to_BaseAttribute( ReferentialAttribute form, BaseAttribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R113_ReferentialAttribute_navigates_back_to_BaseAttribute_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR113_can_be_the_base_of_ReferentialAttribute(form);
            form.setR113_navigates_back_to_BaseAttribute(part);
            form.setBAttr_ID( part.getAttr_ID() );
            form.setBObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R113_ReferentialAttribute_navigates_back_to_BaseAttribute( ReferentialAttribute form, BaseAttribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R113_ReferentialAttribute_navigates_back_to_BaseAttribute_extent.remove( R113_ReferentialAttribute_navigates_back_to_BaseAttribute_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR113_can_be_the_base_of_ReferentialAttribute(form);
            form.setR113_navigates_back_to_BaseAttribute(BaseAttributeImpl.EMPTY_BASEATTRIBUTE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R114_O_ATTR_defines_type_of_DataType( O_ATTR form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R114_O_ATTR_defines_type_of_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR114_is_defined_by_O_ATTR(form);
            form.setR114_defines_type_of_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R114_O_ATTR_defines_type_of_DataType( O_ATTR form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R114_O_ATTR_defines_type_of_DataType_extent.remove( R114_O_ATTR_defines_type_of_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR114_is_defined_by_O_ATTR(form);
            form.setR114_defines_type_of_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R115_O_TFR_is_associated_with_ModelClass( O_TFR form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R115_O_TFR_is_associated_with_ModelClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR115_may_contain_O_TFR(form);
            form.setR115_is_associated_with_ModelClass(part);
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R115_O_TFR_is_associated_with_ModelClass( O_TFR form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R115_O_TFR_is_associated_with_ModelClass_extent.remove( R115_O_TFR_is_associated_with_ModelClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR115_may_contain_O_TFR(form);
            form.setR115_is_associated_with_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R116_O_TFR_return_code_is_defined_by_DataType( O_TFR form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R116_O_TFR_return_code_is_defined_by_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR116_defines_the_type_of_return_code_O_TFR(form);
            form.setR116_return_code_is_defined_by_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R116_O_TFR_return_code_is_defined_by_DataType( O_TFR form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R116_O_TFR_return_code_is_defined_by_DataType_extent.remove( R116_O_TFR_return_code_is_defined_by_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR116_defines_the_type_of_return_code_O_TFR(form);
            form.setR116_return_code_is_defined_by_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R117_OperationParameter_is_part_of__O_TFR( OperationParameter form, O_TFR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R117_OperationParameter_is_part_of__O_TFR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR117_contains_OperationParameter(form);
            form.setR117_is_part_of__O_TFR(part);
            form.setTfr_ID( part.getTfr_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R117_OperationParameter_is_part_of__O_TFR( OperationParameter form, O_TFR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R117_OperationParameter_is_part_of__O_TFR_extent.remove( R117_OperationParameter_is_part_of__O_TFR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR117_contains_OperationParameter(form);
            form.setR117_is_part_of__O_TFR(O_TFRImpl.EMPTY_O_TFR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R118_OperationParameter_is_defined_by_DataType( OperationParameter form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R118_OperationParameter_is_defined_by_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR118_defines_the_type_of__OperationParameter(form);
            form.setR118_is_defined_by_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R118_OperationParameter_is_defined_by_DataType( OperationParameter form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R118_OperationParameter_is_defined_by_DataType_extent.remove( R118_OperationParameter_is_defined_by_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR118_defines_the_type_of__OperationParameter(form);
            form.setR118_is_defined_by_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1206_UseCaseAssociation_starts_at_InteractionParticipant( UseCaseAssociation form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1206_UseCaseAssociation_starts_at_InteractionParticipant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1206_is_source_UseCaseAssociation(form);
            form.setR1206_starts_at_InteractionParticipant(part);
            form.setSource_Part_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1206_UseCaseAssociation_starts_at_InteractionParticipant( UseCaseAssociation form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1206_UseCaseAssociation_starts_at_InteractionParticipant_extent.remove( R1206_UseCaseAssociation_starts_at_InteractionParticipant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1206_is_source_UseCaseAssociation(form);
            form.setR1206_starts_at_InteractionParticipant(InteractionParticipantImpl.EMPTY_INTERACTIONPARTICIPANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1207_UseCaseAssociation_ends_at_InteractionParticipant( UseCaseAssociation form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1207_UseCaseAssociation_ends_at_InteractionParticipant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1207_is_destination_UseCaseAssociation(form);
            form.setR1207_ends_at_InteractionParticipant(part);
            form.setDestination_Part_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1207_UseCaseAssociation_ends_at_InteractionParticipant( UseCaseAssociation form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1207_UseCaseAssociation_ends_at_InteractionParticipant_extent.remove( R1207_UseCaseAssociation_ends_at_InteractionParticipant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1207_is_destination_UseCaseAssociation(form);
            form.setR1207_ends_at_InteractionParticipant(InteractionParticipantImpl.EMPTY_INTERACTIONPARTICIPANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R120_Dimensions_specifies_occurrences_of_O_ATTR( Dimensions form, O_ATTR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R120_Dimensions_specifies_occurrences_of_O_ATTR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR120_may_have_Dimensions(form);
            form.setR120_specifies_occurrences_of_O_ATTR(part);
            form.setObj_ID( part.getObj_ID() );
            form.setAttr_ID( part.getAttr_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R120_Dimensions_specifies_occurrences_of_O_ATTR( Dimensions form, O_ATTR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R120_Dimensions_specifies_occurrences_of_O_ATTR_extent.remove( R120_Dimensions_specifies_occurrences_of_O_ATTR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR120_may_have_Dimensions(form);
            form.setR120_specifies_occurrences_of_O_ATTR(O_ATTRImpl.EMPTY_O_ATTR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1210_BinaryAssociation_is_a_UseCaseAssociation( BinaryAssociation form, UseCaseAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1210_BinaryAssociation_is_a_UseCaseAssociation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1210_is_a_BinaryAssociation(form);
            form.setR1210_is_a_UseCaseAssociation(part);
            form.setAssoc_ID( part.getAssoc_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1210_BinaryAssociation_is_a_UseCaseAssociation( BinaryAssociation form, UseCaseAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1210_BinaryAssociation_is_a_UseCaseAssociation_extent.remove( R1210_BinaryAssociation_is_a_UseCaseAssociation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1210_is_a_BinaryAssociation(BinaryAssociationImpl.EMPTY_BINARYASSOCIATION);
            form.setR1210_is_a_UseCaseAssociation(UseCaseAssociationImpl.EMPTY_USECASEASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1210_Extend_is_a_UseCaseAssociation( Extend form, UseCaseAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1210_Extend_is_a_UseCaseAssociation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1210_is_a_Extend(form);
            form.setR1210_is_a_UseCaseAssociation(part);
            form.setAssoc_ID( part.getAssoc_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1210_Extend_is_a_UseCaseAssociation( Extend form, UseCaseAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1210_Extend_is_a_UseCaseAssociation_extent.remove( R1210_Extend_is_a_UseCaseAssociation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1210_is_a_Extend(ExtendImpl.EMPTY_EXTEND);
            form.setR1210_is_a_UseCaseAssociation(UseCaseAssociationImpl.EMPTY_USECASEASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1210_Generalization_is_a_UseCaseAssociation( Generalization form, UseCaseAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1210_Generalization_is_a_UseCaseAssociation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1210_is_a_Generalization(form);
            form.setR1210_is_a_UseCaseAssociation(part);
            form.setAssoc_ID( part.getAssoc_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1210_Generalization_is_a_UseCaseAssociation( Generalization form, UseCaseAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1210_Generalization_is_a_UseCaseAssociation_extent.remove( R1210_Generalization_is_a_UseCaseAssociation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1210_is_a_Generalization(GeneralizationImpl.EMPTY_GENERALIZATION);
            form.setR1210_is_a_UseCaseAssociation(UseCaseAssociationImpl.EMPTY_USECASEASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1210_Include_is_a_UseCaseAssociation( Include form, UseCaseAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1210_Include_is_a_UseCaseAssociation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1210_is_a_Include(form);
            form.setR1210_is_a_UseCaseAssociation(part);
            form.setAssoc_ID( part.getAssoc_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1210_Include_is_a_UseCaseAssociation( Include form, UseCaseAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1210_Include_is_a_UseCaseAssociation_extent.remove( R1210_Include_is_a_UseCaseAssociation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1210_is_a_Include(IncludeImpl.EMPTY_INCLUDE);
            form.setR1210_is_a_UseCaseAssociation(UseCaseAssociationImpl.EMPTY_USECASEASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R121_Dimensions_specifies_occurrences_of_OperationParameter( Dimensions form, OperationParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R121_Dimensions_specifies_occurrences_of_OperationParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR121_may_have_Dimensions(form);
            form.setR121_specifies_occurrences_of_OperationParameter(part);
            form.setTParm_ID( part.getTParm_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R121_Dimensions_specifies_occurrences_of_OperationParameter( Dimensions form, OperationParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R121_Dimensions_specifies_occurrences_of_OperationParameter_extent.remove( R121_Dimensions_specifies_occurrences_of_OperationParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR121_may_have_Dimensions(form);
            form.setR121_specifies_occurrences_of_OperationParameter(OperationParameterImpl.EMPTY_OPERATIONPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R122_Dimensions_defines_return_value_dimensions_for_O_TFR( Dimensions form, O_TFR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R122_Dimensions_defines_return_value_dimensions_for_O_TFR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR122_return_value_may_have_Dimensions(form);
            form.setR122_defines_return_value_dimensions_for_O_TFR(part);
            form.setTfr_ID( part.getTfr_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R122_Dimensions_defines_return_value_dimensions_for_O_TFR( Dimensions form, O_TFR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R122_Dimensions_defines_return_value_dimensions_for_O_TFR_extent.remove( R122_Dimensions_defines_return_value_dimensions_for_O_TFR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR122_return_value_may_have_Dimensions(form);
            form.setR122_defines_return_value_dimensions_for_O_TFR(O_TFRImpl.EMPTY_O_TFR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R123_InstanceReferenceDataType_provides_reference_datatype_for_ModelClass( InstanceReferenceDataType form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R123_InstanceReferenceDataType_provides_reference_datatype_for_ModelClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR123_is_available_as_a_reference_by_InstanceReferenceDataType(form);
            form.setR123_provides_reference_datatype_for_ModelClass(part);
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R123_InstanceReferenceDataType_provides_reference_datatype_for_ModelClass( InstanceReferenceDataType form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R123_InstanceReferenceDataType_provides_reference_datatype_for_ModelClass_extent.remove( R123_InstanceReferenceDataType_provides_reference_datatype_for_ModelClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR123_is_available_as_a_reference_by_InstanceReferenceDataType(form);
            form.setR123_provides_reference_datatype_for_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R124_OperationParameter_succeeds_OperationParameter( OperationParameter form, OperationParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R124_OperationParameter_succeeds_OperationParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR124_precedes_OperationParameter(form);
            form.setR124_succeeds_OperationParameter(part);
            form.setPrevious_TParm_ID( part.getTParm_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R124_OperationParameter_succeeds_OperationParameter( OperationParameter form, OperationParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R124_OperationParameter_succeeds_OperationParameter_extent.remove( R124_OperationParameter_succeeds_OperationParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR124_precedes_OperationParameter(OperationParameterImpl.EMPTY_OPERATIONPARAMETER);
            form.setR124_succeeds_OperationParameter(OperationParameterImpl.EMPTY_OPERATIONPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R125_O_TFR_succeeds_O_TFR( O_TFR form, O_TFR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R125_O_TFR_succeeds_O_TFR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR125_precedes_O_TFR(form);
            form.setR125_succeeds_O_TFR(part);
            form.setPrevious_Tfr_ID( part.getTfr_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R125_O_TFR_succeeds_O_TFR( O_TFR form, O_TFR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R125_O_TFR_succeeds_O_TFR_extent.remove( R125_O_TFR_succeeds_O_TFR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR125_precedes_O_TFR(O_TFRImpl.EMPTY_O_TFR);
            form.setR125_succeeds_O_TFR(O_TFRImpl.EMPTY_O_TFR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R126_Deferral_defers_execution_to_subtypes_across_Association( Deferral form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R126_Deferral_defers_execution_to_subtypes_across_Association_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR126_delegates_execution_of_Deferral(form);
            form.setR126_defers_execution_to_subtypes_across_Association(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R126_Deferral_defers_execution_to_subtypes_across_Association( Deferral form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R126_Deferral_defers_execution_to_subtypes_across_Association_extent.remove( R126_Deferral_defers_execution_to_subtypes_across_Association_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR126_delegates_execution_of_Deferral(form);
            form.setR126_defers_execution_to_subtypes_across_Association(AssociationImpl.EMPTY_ASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R126_Deferral_delegates_execution_of_O_TFR( Deferral form, O_TFR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R126_Deferral_delegates_execution_of_O_TFR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR126_defers_execution_to_subtypes_across_Deferral(form);
            form.setR126_delegates_execution_of_O_TFR(part);
            form.setTfr_ID( part.getTfr_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R126_Deferral_delegates_execution_of_O_TFR( Deferral form, O_TFR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R126_Deferral_delegates_execution_of_O_TFR_extent.remove( R126_Deferral_delegates_execution_of_O_TFR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR126_defers_execution_to_subtypes_across_Deferral(DeferralImpl.EMPTY_DEFERRAL);
            form.setR126_delegates_execution_of_O_TFR(O_TFRImpl.EMPTY_O_TFR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1401_EP_PKG_directly_contained_under_SystemModel( EP_PKG form, SystemModel part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1401_EP_PKG_directly_contained_under_SystemModel_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1401_contains_EP_PKG(form);
            form.setR1401_directly_contained_under_SystemModel(part);
            form.setSys_ID( part.getSys_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1401_EP_PKG_directly_contained_under_SystemModel( EP_PKG form, SystemModel part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1401_EP_PKG_directly_contained_under_SystemModel_extent.remove( R1401_EP_PKG_directly_contained_under_SystemModel_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1401_contains_EP_PKG(form);
            form.setR1401_directly_contained_under_SystemModel(SystemModelImpl.EMPTY_SYSTEMMODEL);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1402_PackageReference_is_referenced_by_EP_PKG( PackageReference form, EP_PKG part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1402_PackageReference_is_referenced_by_EP_PKG_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1402_refers_to_PackageReference(form);
            form.setR1402_is_referenced_by_EP_PKG(part);
            form.setReferring_Package_ID( part.getPackage_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1402_PackageReference_is_referenced_by_EP_PKG( PackageReference form, EP_PKG part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1402_PackageReference_is_referenced_by_EP_PKG_extent.remove( R1402_PackageReference_is_referenced_by_EP_PKG_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1402_refers_to_PackageReference(PackageReferenceImpl.EMPTY_PACKAGEREFERENCE);
            form.setR1402_is_referenced_by_EP_PKG(EP_PKGImpl.EMPTY_EP_PKG);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1402_PackageReference_refers_to_EP_PKG( PackageReference form, EP_PKG part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1402_PackageReference_refers_to_EP_PKG_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1402_is_referenced_by_PackageReference(form);
            form.setR1402_refers_to_EP_PKG(part);
            form.setReferred_Package_ID( part.getPackage_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1402_PackageReference_refers_to_EP_PKG( PackageReference form, EP_PKG part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1402_PackageReference_refers_to_EP_PKG_extent.remove( R1402_PackageReference_refers_to_EP_PKG_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1402_is_referenced_by_PackageReference(form);
            form.setR1402_refers_to_EP_PKG(EP_PKGImpl.EMPTY_EP_PKG);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1405_EP_PKG_SystemModel( EP_PKG form, SystemModel part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1405_EP_PKG_SystemModel_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1405_contains_EP_PKG(form);
            form.setR1405_SystemModel(part);
            form.setDirect_Sys_ID( part.getSys_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1405_EP_PKG_SystemModel( EP_PKG form, SystemModel part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1405_EP_PKG_SystemModel_extent.remove( R1405_EP_PKG_SystemModel_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1405_contains_EP_PKG(form);
            form.setR1405_SystemModel(SystemModelImpl.EMPTY_SYSTEMMODEL);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1500_SymbolicConstant_is_defined_by_DataType( SymbolicConstant form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1500_SymbolicConstant_is_defined_by_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1500_defines_the_type_of_SymbolicConstant(form);
            form.setR1500_is_defined_by_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1500_SymbolicConstant_is_defined_by_DataType( SymbolicConstant form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1500_SymbolicConstant_is_defined_by_DataType_extent.remove( R1500_SymbolicConstant_is_defined_by_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1500_defines_the_type_of_SymbolicConstant(form);
            form.setR1500_is_defined_by_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1502_LeafSymbolicConstant_is_a_SymbolicConstant( LeafSymbolicConstant form, SymbolicConstant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1502_LeafSymbolicConstant_is_a_SymbolicConstant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1502_is_a_LeafSymbolicConstant(form);
            form.setR1502_is_a_SymbolicConstant(part);
            form.setConst_ID( part.getConst_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1502_LeafSymbolicConstant_is_a_SymbolicConstant( LeafSymbolicConstant form, SymbolicConstant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1502_LeafSymbolicConstant_is_a_SymbolicConstant_extent.remove( R1502_LeafSymbolicConstant_is_a_SymbolicConstant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1502_is_a_LeafSymbolicConstant(LeafSymbolicConstantImpl.EMPTY_LEAFSYMBOLICCONSTANT);
            form.setR1502_is_a_SymbolicConstant(SymbolicConstantImpl.EMPTY_SYMBOLICCONSTANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1503_LiteralSymbolicConstant_is_a_LeafSymbolicConstant( LiteralSymbolicConstant form, LeafSymbolicConstant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1503_LiteralSymbolicConstant_is_a_LeafSymbolicConstant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1503_is_a_LiteralSymbolicConstant(form);
            form.setR1503_is_a_LeafSymbolicConstant(part);
            form.setConst_ID( part.getConst_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1503_LiteralSymbolicConstant_is_a_LeafSymbolicConstant( LiteralSymbolicConstant form, LeafSymbolicConstant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1503_LiteralSymbolicConstant_is_a_LeafSymbolicConstant_extent.remove( R1503_LiteralSymbolicConstant_is_a_LeafSymbolicConstant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1503_is_a_LiteralSymbolicConstant(LiteralSymbolicConstantImpl.EMPTY_LITERALSYMBOLICCONSTANT);
            form.setR1503_is_a_LeafSymbolicConstant(LeafSymbolicConstantImpl.EMPTY_LEAFSYMBOLICCONSTANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1504_SymbolicConstant_is_contained_by_ConstantSpecification( SymbolicConstant form, ConstantSpecification part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1504_SymbolicConstant_is_contained_by_ConstantSpecification_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1504_contains_SymbolicConstant(form);
            form.setR1504_is_contained_by_ConstantSpecification(part);
            form.setConstant_Spec_ID( part.getConstant_Spec_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1504_SymbolicConstant_is_contained_by_ConstantSpecification( SymbolicConstant form, ConstantSpecification part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1504_SymbolicConstant_is_contained_by_ConstantSpecification_extent.remove( R1504_SymbolicConstant_is_contained_by_ConstantSpecification_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1504_contains_SymbolicConstant(form);
            form.setR1504_is_contained_by_ConstantSpecification(ConstantSpecificationImpl.EMPTY_CONSTANTSPECIFICATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1505_SymbolicConstant_succeeds_SymbolicConstant( SymbolicConstant form, SymbolicConstant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1505_SymbolicConstant_succeeds_SymbolicConstant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1505_precedes_SymbolicConstant(form);
            form.setR1505_succeeds_SymbolicConstant(part);
            form.setPrevious_Const_ID( part.getConst_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1505_SymbolicConstant_succeeds_SymbolicConstant( SymbolicConstant form, SymbolicConstant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1505_SymbolicConstant_succeeds_SymbolicConstant_extent.remove( R1505_SymbolicConstant_succeeds_SymbolicConstant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1505_precedes_SymbolicConstant(SymbolicConstantImpl.EMPTY_SYMBOLICCONSTANT);
            form.setR1505_succeeds_SymbolicConstant(SymbolicConstantImpl.EMPTY_SYMBOLICCONSTANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1650_Terminator_Deployment( Terminator form, Deployment part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1650_Terminator_Deployment_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1650_Terminator(form);
            form.setR1650_Deployment(part);
            form.setDeployment_ID( part.getDeployment_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1650_Terminator_Deployment( Terminator form, Deployment part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1650_Terminator_Deployment_extent.remove( R1650_Terminator_Deployment_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1650_Terminator(form);
            form.setR1650_Deployment(DeploymentImpl.EMPTY_DEPLOYMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1651_TerminatorService_Terminator( TerminatorService form, Terminator part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1651_TerminatorService_Terminator_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1651_TerminatorService(form);
            form.setR1651_Terminator(part);
            form.setTerm_ID( part.getTerm_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1651_TerminatorService_Terminator( TerminatorService form, Terminator part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1651_TerminatorService_Terminator_extent.remove( R1651_TerminatorService_Terminator_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1651_TerminatorService(form);
            form.setR1651_Terminator(TerminatorImpl.EMPTY_TERMINATOR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1652_TerminatorServiceParameter_TerminatorService( TerminatorServiceParameter form, TerminatorService part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1652_TerminatorServiceParameter_TerminatorService_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1652_TerminatorServiceParameter(form);
            form.setR1652_TerminatorService(part);
            form.setSvc_ID( part.getSvc_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1652_TerminatorServiceParameter_TerminatorService( TerminatorServiceParameter form, TerminatorService part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1652_TerminatorServiceParameter_TerminatorService_extent.remove( R1652_TerminatorServiceParameter_TerminatorService_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1652_TerminatorServiceParameter(form);
            form.setR1652_TerminatorService(TerminatorServiceImpl.EMPTY_TERMINATORSERVICE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1653_TerminatorServiceParameter_DataType( TerminatorServiceParameter form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1653_TerminatorServiceParameter_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1653_TerminatorServiceParameter(form);
            form.setR1653_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1653_TerminatorServiceParameter_DataType( TerminatorServiceParameter form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1653_TerminatorServiceParameter_DataType_extent.remove( R1653_TerminatorServiceParameter_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1653_TerminatorServiceParameter(form);
            form.setR1653_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1654_TerminatorServiceParameter_succeeds_TerminatorServiceParameter( TerminatorServiceParameter form, TerminatorServiceParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1654_TerminatorServiceParameter_succeeds_TerminatorServiceParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1654_precedes_TerminatorServiceParameter(form);
            form.setR1654_succeeds_TerminatorServiceParameter(part);
            form.setPrevious_TSParm_ID( part.getTSParm_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1654_TerminatorServiceParameter_succeeds_TerminatorServiceParameter( TerminatorServiceParameter form, TerminatorServiceParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1654_TerminatorServiceParameter_succeeds_TerminatorServiceParameter_extent.remove( R1654_TerminatorServiceParameter_succeeds_TerminatorServiceParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1654_precedes_TerminatorServiceParameter(TerminatorServiceParameterImpl.EMPTY_TERMINATORSERVICEPARAMETER);
            form.setR1654_succeeds_TerminatorServiceParameter(TerminatorServiceParameterImpl.EMPTY_TERMINATORSERVICEPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1655_Dimensions_TerminatorServiceParameter( Dimensions form, TerminatorServiceParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1655_Dimensions_TerminatorServiceParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1655_Dimensions(form);
            form.setR1655_TerminatorServiceParameter(part);
            form.setTSParm_ID( part.getTSParm_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1655_Dimensions_TerminatorServiceParameter( Dimensions form, TerminatorServiceParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1655_Dimensions_TerminatorServiceParameter_extent.remove( R1655_Dimensions_TerminatorServiceParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1655_Dimensions(form);
            form.setR1655_TerminatorServiceParameter(TerminatorServiceParameterImpl.EMPTY_TERMINATORSERVICEPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1656_TerminatorService_DataType( TerminatorService form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1656_TerminatorService_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1656_TerminatorService(form);
            form.setR1656_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1656_TerminatorService_DataType( TerminatorService form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1656_TerminatorService_DataType_extent.remove( R1656_TerminatorService_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1656_TerminatorService(form);
            form.setR1656_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1657_Dimensions_TerminatorService( Dimensions form, TerminatorService part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1657_Dimensions_TerminatorService_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1657_Dimensions(form);
            form.setR1657_TerminatorService(part);
            form.setSvc_ID( part.getSvc_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1657_Dimensions_TerminatorService( Dimensions form, TerminatorService part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1657_Dimensions_TerminatorService_extent.remove( R1657_Dimensions_TerminatorService_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1657_Dimensions(form);
            form.setR1657_TerminatorService(TerminatorServiceImpl.EMPTY_TERMINATORSERVICE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1658_TerminatorServiceSequence_Terminator( TerminatorServiceSequence form, Terminator part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1658_TerminatorServiceSequence_Terminator_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1658_TerminatorServiceSequence(form);
            form.setR1658_Terminator(part);
            form.setTerm_ID( part.getTerm_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1658_TerminatorServiceSequence_Terminator( TerminatorServiceSequence form, Terminator part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1658_TerminatorServiceSequence_Terminator_extent.remove( R1658_TerminatorServiceSequence_Terminator_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1658_TerminatorServiceSequence(TerminatorServiceSequenceImpl.EMPTY_TERMINATORSERVICESEQUENCE);
            form.setR1658_Terminator(TerminatorImpl.EMPTY_TERMINATOR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1659_ServiceInSequence_TerminatorServiceSequence( ServiceInSequence form, TerminatorServiceSequence part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1659_ServiceInSequence_TerminatorServiceSequence_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR1659_described_by_ServiceInSequence(form);
            form.setR1659_TerminatorServiceSequence(part);
            form.setSeq_ID( part.getSeq_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1659_ServiceInSequence_TerminatorServiceSequence( ServiceInSequence form, TerminatorServiceSequence part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1659_ServiceInSequence_TerminatorServiceSequence_extent.remove( R1659_ServiceInSequence_TerminatorServiceSequence_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR1659_described_by_ServiceInSequence(form);
            form.setR1659_TerminatorServiceSequence(TerminatorServiceSequenceImpl.EMPTY_TERMINATORSERVICESEQUENCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1660_ServiceInSequence_TerminatorService( ServiceInSequence form, TerminatorService part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1660_ServiceInSequence_TerminatorService_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1660_ServiceInSequence(form);
            form.setR1660_TerminatorService(part);
            form.setSvc_ID( part.getSvc_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1660_ServiceInSequence_TerminatorService( ServiceInSequence form, TerminatorService part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1660_ServiceInSequence_TerminatorService_extent.remove( R1660_ServiceInSequence_TerminatorService_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1660_ServiceInSequence(ServiceInSequenceImpl.EMPTY_SERVICEINSEQUENCE);
            form.setR1660_TerminatorService(TerminatorServiceImpl.EMPTY_TERMINATORSERVICE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R1661_ServiceInSequence_succeeds_ServiceInSequence( ServiceInSequence form, ServiceInSequence part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R1661_ServiceInSequence_succeeds_ServiceInSequence_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1661_precedes_ServiceInSequence(form);
            form.setR1661_succeeds_ServiceInSequence(part);
            form.setPrevious_Svc_ID( part.getSvc_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R1661_ServiceInSequence_succeeds_ServiceInSequence( ServiceInSequence form, ServiceInSequence part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R1661_ServiceInSequence_succeeds_ServiceInSequence_extent.remove( R1661_ServiceInSequence_succeeds_ServiceInSequence_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR1661_precedes_ServiceInSequence(ServiceInSequenceImpl.EMPTY_SERVICEINSEQUENCE);
            form.setR1661_succeeds_ServiceInSequence(ServiceInSequenceImpl.EMPTY_SERVICEINSEQUENCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R17_CoreDataType_is_a_DataType( CoreDataType form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R17_CoreDataType_is_a_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR17_is_a_CoreDataType(form);
            form.setR17_is_a_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R17_CoreDataType_is_a_DataType( CoreDataType form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R17_CoreDataType_is_a_DataType_extent.remove( R17_CoreDataType_is_a_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR17_is_a_CoreDataType(CoreDataTypeImpl.EMPTY_COREDATATYPE);
            form.setR17_is_a_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R17_EnumerationDataType_is_a_DataType( EnumerationDataType form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R17_EnumerationDataType_is_a_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR17_is_a_EnumerationDataType(form);
            form.setR17_is_a_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R17_EnumerationDataType_is_a_DataType( EnumerationDataType form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R17_EnumerationDataType_is_a_DataType_extent.remove( R17_EnumerationDataType_is_a_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR17_is_a_EnumerationDataType(EnumerationDataTypeImpl.EMPTY_ENUMERATIONDATATYPE);
            form.setR17_is_a_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R17_InstanceReferenceDataType_is_a_DataType( InstanceReferenceDataType form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R17_InstanceReferenceDataType_is_a_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR17_is_a_InstanceReferenceDataType(form);
            form.setR17_is_a_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R17_InstanceReferenceDataType_is_a_DataType( InstanceReferenceDataType form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R17_InstanceReferenceDataType_is_a_DataType_extent.remove( R17_InstanceReferenceDataType_is_a_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR17_is_a_InstanceReferenceDataType(InstanceReferenceDataTypeImpl.EMPTY_INSTANCEREFERENCEDATATYPE);
            form.setR17_is_a_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R17_StructuredDataType_is_a_DataType( StructuredDataType form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R17_StructuredDataType_is_a_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR17_is_a_StructuredDataType(form);
            form.setR17_is_a_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R17_StructuredDataType_is_a_DataType( StructuredDataType form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R17_StructuredDataType_is_a_DataType_extent.remove( R17_StructuredDataType_is_a_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR17_is_a_StructuredDataType(StructuredDataTypeImpl.EMPTY_STRUCTUREDDATATYPE);
            form.setR17_is_a_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R17_UserDataType_is_a_DataType( UserDataType form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R17_UserDataType_is_a_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR17_is_a_UserDataType(form);
            form.setR17_is_a_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R17_UserDataType_is_a_DataType( UserDataType form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R17_UserDataType_is_a_DataType_extent.remove( R17_UserDataType_is_a_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR17_is_a_UserDataType(UserDataTypeImpl.EMPTY_USERDATATYPE);
            form.setR17_is_a_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R18_UserDataType_are_defined_within_DataType( UserDataType form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R18_UserDataType_are_defined_within_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR18_defines_domain_of_UserDataType(form);
            form.setR18_are_defined_within_DataType(part);
            form.setCDT_DT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R18_UserDataType_are_defined_within_DataType( UserDataType form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R18_UserDataType_are_defined_within_DataType_extent.remove( R18_UserDataType_are_defined_within_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR18_defines_domain_of_UserDataType(form);
            form.setR18_are_defined_within_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R19_Bridge_provides_access_to_ExternalEntity( Bridge form, ExternalEntity part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R19_Bridge_provides_access_to_ExternalEntity_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR19_uses_Bridge(form);
            form.setR19_provides_access_to_ExternalEntity(part);
            form.setEE_ID( part.getEE_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R19_Bridge_provides_access_to_ExternalEntity( Bridge form, ExternalEntity part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R19_Bridge_provides_access_to_ExternalEntity_extent.remove( R19_Bridge_provides_access_to_ExternalEntity_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR19_uses_Bridge(form);
            form.setR19_provides_access_to_ExternalEntity(ExternalEntityImpl.EMPTY_EXTERNALENTITY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R201_ClassInAssociation_abstracts_association_between_instances_of_ModelClass( ClassInAssociation form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R201_ClassInAssociation_abstracts_association_between_instances_of_ModelClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR201_has_instance_associations_abstracted_ClassInAssociation(form);
            form.setR201_abstracts_association_between_instances_of_ModelClass(part);
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R201_ClassInAssociation_abstracts_association_between_instances_of_ModelClass( ClassInAssociation form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R201_ClassInAssociation_abstracts_association_between_instances_of_ModelClass_extent.remove( R201_ClassInAssociation_abstracts_association_between_instances_of_ModelClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR201_has_instance_associations_abstracted_ClassInAssociation(form);
            form.setR201_abstracts_association_between_instances_of_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R201_ClassInAssociation_has_instance_associations_abstracted_Association( ClassInAssociation form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R201_ClassInAssociation_has_instance_associations_abstracted_Association_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR201_abstracts_association_between_instances_of_ClassInAssociation(form);
            form.setR201_has_instance_associations_abstracted_Association(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R201_ClassInAssociation_has_instance_associations_abstracted_Association( ClassInAssociation form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R201_ClassInAssociation_has_instance_associations_abstracted_Association_extent.remove( R201_ClassInAssociation_has_instance_associations_abstracted_Association_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR201_abstracts_association_between_instances_of_ClassInAssociation(form);
            form.setR201_has_instance_associations_abstracted_Association(AssociationImpl.EMPTY_ASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R202_ClassInAssociation_may_be_represented_by_ImportedClass( ClassInAssociation form, ImportedClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R202_ClassInAssociation_may_be_represented_by_ImportedClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR202_is_used_for_spanning_associations_as_ClassInAssociation(form);
            form.setR202_may_be_represented_by_ImportedClass(part);
            form.setIObj_ID( part.getIObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R202_ClassInAssociation_may_be_represented_by_ImportedClass( ClassInAssociation form, ImportedClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R202_ClassInAssociation_may_be_represented_by_ImportedClass_extent.remove( R202_ClassInAssociation_may_be_represented_by_ImportedClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR202_is_used_for_spanning_associations_as_ClassInAssociation(form);
            form.setR202_may_be_represented_by_ImportedClass(ImportedClassImpl.EMPTY_IMPORTEDCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R203_ClassAsDerivedOneSide_is_a_ClassInAssociation( ClassAsDerivedOneSide form, ClassInAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R203_ClassAsDerivedOneSide_is_a_ClassInAssociation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR203_is_a_ClassAsDerivedOneSide(form);
            form.setR203_is_a_ClassInAssociation(part);
            form.setRel_ID( part.getRel_ID() );
            form.setObj_ID( part.getObj_ID() );
            form.setOIR_ID( part.getOIR_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R203_ClassAsDerivedOneSide_is_a_ClassInAssociation( ClassAsDerivedOneSide form, ClassInAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R203_ClassAsDerivedOneSide_is_a_ClassInAssociation_extent.remove( R203_ClassAsDerivedOneSide_is_a_ClassInAssociation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR203_is_a_ClassAsDerivedOneSide(ClassAsDerivedOneSideImpl.EMPTY_CLASSASDERIVEDONESIDE);
            form.setR203_is_a_ClassInAssociation(ClassInAssociationImpl.EMPTY_CLASSINASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R203_ClassAsDerivedOtherSide_is_a_ClassInAssociation( ClassAsDerivedOtherSide form, ClassInAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R203_ClassAsDerivedOtherSide_is_a_ClassInAssociation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR203_is_a_ClassAsDerivedOtherSide(form);
            form.setR203_is_a_ClassInAssociation(part);
            form.setObj_ID( part.getObj_ID() );
            form.setOIR_ID( part.getOIR_ID() );
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R203_ClassAsDerivedOtherSide_is_a_ClassInAssociation( ClassAsDerivedOtherSide form, ClassInAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R203_ClassAsDerivedOtherSide_is_a_ClassInAssociation_extent.remove( R203_ClassAsDerivedOtherSide_is_a_ClassInAssociation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR203_is_a_ClassAsDerivedOtherSide(ClassAsDerivedOtherSideImpl.EMPTY_CLASSASDERIVEDOTHERSIDE);
            form.setR203_is_a_ClassInAssociation(ClassInAssociationImpl.EMPTY_CLASSINASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R203_ReferredToClassInAssoc_is_a_ClassInAssociation( ReferredToClassInAssoc form, ClassInAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R203_ReferredToClassInAssoc_is_a_ClassInAssociation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR203_is_a_ReferredToClassInAssoc(form);
            form.setR203_is_a_ClassInAssociation(part);
            form.setOIR_ID( part.getOIR_ID() );
            form.setObj_ID( part.getObj_ID() );
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R203_ReferredToClassInAssoc_is_a_ClassInAssociation( ReferredToClassInAssoc form, ClassInAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R203_ReferredToClassInAssoc_is_a_ClassInAssociation_extent.remove( R203_ReferredToClassInAssoc_is_a_ClassInAssociation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR203_is_a_ReferredToClassInAssoc(ReferredToClassInAssocImpl.EMPTY_REFERREDTOCLASSINASSOC);
            form.setR203_is_a_ClassInAssociation(ClassInAssociationImpl.EMPTY_CLASSINASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R203_ReferringClassInAssoc_is_a_ClassInAssociation( ReferringClassInAssoc form, ClassInAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R203_ReferringClassInAssoc_is_a_ClassInAssociation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR203_is_a_ReferringClassInAssoc(form);
            form.setR203_is_a_ClassInAssociation(part);
            form.setOIR_ID( part.getOIR_ID() );
            form.setObj_ID( part.getObj_ID() );
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R203_ReferringClassInAssoc_is_a_ClassInAssociation( ReferringClassInAssoc form, ClassInAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R203_ReferringClassInAssoc_is_a_ClassInAssociation_extent.remove( R203_ReferringClassInAssoc_is_a_ClassInAssociation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR203_is_a_ReferringClassInAssoc(ReferringClassInAssocImpl.EMPTY_REFERRINGCLASSINASSOC);
            form.setR203_is_a_ClassInAssociation(ClassInAssociationImpl.EMPTY_CLASSINASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R204_ClassAsAssociatedOneSide_is_a_ReferredToClassInAssoc( ClassAsAssociatedOneSide form, ReferredToClassInAssoc part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R204_ClassAsAssociatedOneSide_is_a_ReferredToClassInAssoc_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR204_is_a_ClassAsAssociatedOneSide(form);
            form.setR204_is_a_ReferredToClassInAssoc(part);
            form.setOIR_ID( part.getOIR_ID() );
            form.setObj_ID( part.getObj_ID() );
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R204_ClassAsAssociatedOneSide_is_a_ReferredToClassInAssoc( ClassAsAssociatedOneSide form, ReferredToClassInAssoc part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R204_ClassAsAssociatedOneSide_is_a_ReferredToClassInAssoc_extent.remove( R204_ClassAsAssociatedOneSide_is_a_ReferredToClassInAssoc_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR204_is_a_ClassAsAssociatedOneSide(ClassAsAssociatedOneSideImpl.EMPTY_CLASSASASSOCIATEDONESIDE);
            form.setR204_is_a_ReferredToClassInAssoc(ReferredToClassInAssocImpl.EMPTY_REFERREDTOCLASSINASSOC);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R204_ClassAsAssociatedOtherSide_is_a_ReferredToClassInAssoc( ClassAsAssociatedOtherSide form, ReferredToClassInAssoc part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R204_ClassAsAssociatedOtherSide_is_a_ReferredToClassInAssoc_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR204_is_a_ClassAsAssociatedOtherSide(form);
            form.setR204_is_a_ReferredToClassInAssoc(part);
            form.setObj_ID( part.getObj_ID() );
            form.setRel_ID( part.getRel_ID() );
            form.setOIR_ID( part.getOIR_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R204_ClassAsAssociatedOtherSide_is_a_ReferredToClassInAssoc( ClassAsAssociatedOtherSide form, ReferredToClassInAssoc part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R204_ClassAsAssociatedOtherSide_is_a_ReferredToClassInAssoc_extent.remove( R204_ClassAsAssociatedOtherSide_is_a_ReferredToClassInAssoc_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR204_is_a_ClassAsAssociatedOtherSide(ClassAsAssociatedOtherSideImpl.EMPTY_CLASSASASSOCIATEDOTHERSIDE);
            form.setR204_is_a_ReferredToClassInAssoc(ReferredToClassInAssocImpl.EMPTY_REFERREDTOCLASSINASSOC);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R204_ClassAsSimpleParticipant_is_a_ReferredToClassInAssoc( ClassAsSimpleParticipant form, ReferredToClassInAssoc part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R204_ClassAsSimpleParticipant_is_a_ReferredToClassInAssoc_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR204_is_a_ClassAsSimpleParticipant(form);
            form.setR204_is_a_ReferredToClassInAssoc(part);
            form.setOIR_ID( part.getOIR_ID() );
            form.setRel_ID( part.getRel_ID() );
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R204_ClassAsSimpleParticipant_is_a_ReferredToClassInAssoc( ClassAsSimpleParticipant form, ReferredToClassInAssoc part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R204_ClassAsSimpleParticipant_is_a_ReferredToClassInAssoc_extent.remove( R204_ClassAsSimpleParticipant_is_a_ReferredToClassInAssoc_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR204_is_a_ClassAsSimpleParticipant(ClassAsSimpleParticipantImpl.EMPTY_CLASSASSIMPLEPARTICIPANT);
            form.setR204_is_a_ReferredToClassInAssoc(ReferredToClassInAssocImpl.EMPTY_REFERREDTOCLASSINASSOC);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R204_ClassAsSupertype_is_a_ReferredToClassInAssoc( ClassAsSupertype form, ReferredToClassInAssoc part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R204_ClassAsSupertype_is_a_ReferredToClassInAssoc_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR204_is_a_ClassAsSupertype(form);
            form.setR204_is_a_ReferredToClassInAssoc(part);
            form.setRel_ID( part.getRel_ID() );
            form.setOIR_ID( part.getOIR_ID() );
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R204_ClassAsSupertype_is_a_ReferredToClassInAssoc( ClassAsSupertype form, ReferredToClassInAssoc part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R204_ClassAsSupertype_is_a_ReferredToClassInAssoc_extent.remove( R204_ClassAsSupertype_is_a_ReferredToClassInAssoc_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR204_is_a_ClassAsSupertype(ClassAsSupertypeImpl.EMPTY_CLASSASSUPERTYPE);
            form.setR204_is_a_ReferredToClassInAssoc(ReferredToClassInAssocImpl.EMPTY_REFERREDTOCLASSINASSOC);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R205_ClassAsLink_is_a_ReferringClassInAssoc( ClassAsLink form, ReferringClassInAssoc part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R205_ClassAsLink_is_a_ReferringClassInAssoc_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR205_is_a_ClassAsLink(form);
            form.setR205_is_a_ReferringClassInAssoc(part);
            form.setRel_ID( part.getRel_ID() );
            form.setOIR_ID( part.getOIR_ID() );
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R205_ClassAsLink_is_a_ReferringClassInAssoc( ClassAsLink form, ReferringClassInAssoc part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R205_ClassAsLink_is_a_ReferringClassInAssoc_extent.remove( R205_ClassAsLink_is_a_ReferringClassInAssoc_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR205_is_a_ClassAsLink(ClassAsLinkImpl.EMPTY_CLASSASLINK);
            form.setR205_is_a_ReferringClassInAssoc(ReferringClassInAssocImpl.EMPTY_REFERRINGCLASSINASSOC);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R205_ClassAsSimpleFormalizer_is_a_ReferringClassInAssoc( ClassAsSimpleFormalizer form, ReferringClassInAssoc part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R205_ClassAsSimpleFormalizer_is_a_ReferringClassInAssoc_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR205_is_a_ClassAsSimpleFormalizer(form);
            form.setR205_is_a_ReferringClassInAssoc(part);
            form.setRel_ID( part.getRel_ID() );
            form.setOIR_ID( part.getOIR_ID() );
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R205_ClassAsSimpleFormalizer_is_a_ReferringClassInAssoc( ClassAsSimpleFormalizer form, ReferringClassInAssoc part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R205_ClassAsSimpleFormalizer_is_a_ReferringClassInAssoc_extent.remove( R205_ClassAsSimpleFormalizer_is_a_ReferringClassInAssoc_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR205_is_a_ClassAsSimpleFormalizer(ClassAsSimpleFormalizerImpl.EMPTY_CLASSASSIMPLEFORMALIZER);
            form.setR205_is_a_ReferringClassInAssoc(ReferringClassInAssocImpl.EMPTY_REFERRINGCLASSINASSOC);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R205_ClassAsSubtype_is_a_ReferringClassInAssoc( ClassAsSubtype form, ReferringClassInAssoc part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R205_ClassAsSubtype_is_a_ReferringClassInAssoc_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR205_is_a_ClassAsSubtype(form);
            form.setR205_is_a_ReferringClassInAssoc(part);
            form.setRel_ID( part.getRel_ID() );
            form.setOIR_ID( part.getOIR_ID() );
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R205_ClassAsSubtype_is_a_ReferringClassInAssoc( ClassAsSubtype form, ReferringClassInAssoc part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R205_ClassAsSubtype_is_a_ReferringClassInAssoc_extent.remove( R205_ClassAsSubtype_is_a_ReferringClassInAssoc_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR205_is_a_ClassAsSubtype(ClassAsSubtypeImpl.EMPTY_CLASSASSUBTYPE);
            form.setR205_is_a_ReferringClassInAssoc(ReferringClassInAssocImpl.EMPTY_REFERRINGCLASSINASSOC);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R206_DerivedAssociation_is_a_Association( DerivedAssociation form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R206_DerivedAssociation_is_a_Association_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR206_is_a_DerivedAssociation(form);
            form.setR206_is_a_Association(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R206_DerivedAssociation_is_a_Association( DerivedAssociation form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R206_DerivedAssociation_is_a_Association_extent.remove( R206_DerivedAssociation_is_a_Association_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR206_is_a_DerivedAssociation(DerivedAssociationImpl.EMPTY_DERIVEDASSOCIATION);
            form.setR206_is_a_Association(AssociationImpl.EMPTY_ASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R206_LinkedAssociation_is_a_Association( LinkedAssociation form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R206_LinkedAssociation_is_a_Association_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR206_is_a_LinkedAssociation(form);
            form.setR206_is_a_Association(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R206_LinkedAssociation_is_a_Association( LinkedAssociation form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R206_LinkedAssociation_is_a_Association_extent.remove( R206_LinkedAssociation_is_a_Association_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR206_is_a_LinkedAssociation(LinkedAssociationImpl.EMPTY_LINKEDASSOCIATION);
            form.setR206_is_a_Association(AssociationImpl.EMPTY_ASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R206_SimpleAssociation_is_a_Association( SimpleAssociation form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R206_SimpleAssociation_is_a_Association_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR206_is_a_SimpleAssociation(form);
            form.setR206_is_a_Association(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R206_SimpleAssociation_is_a_Association( SimpleAssociation form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R206_SimpleAssociation_is_a_Association_extent.remove( R206_SimpleAssociation_is_a_Association_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR206_is_a_SimpleAssociation(SimpleAssociationImpl.EMPTY_SIMPLEASSOCIATION);
            form.setR206_is_a_Association(AssociationImpl.EMPTY_ASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R206_SubtypeSupertypeAssociation_is_a_Association( SubtypeSupertypeAssociation form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R206_SubtypeSupertypeAssociation_is_a_Association_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR206_is_a_SubtypeSupertypeAssociation(form);
            form.setR206_is_a_Association(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R206_SubtypeSupertypeAssociation_is_a_Association( SubtypeSupertypeAssociation form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R206_SubtypeSupertypeAssociation_is_a_Association_extent.remove( R206_SubtypeSupertypeAssociation_is_a_Association_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR206_is_a_SubtypeSupertypeAssociation(SubtypeSupertypeAssociationImpl.EMPTY_SUBTYPESUPERTYPEASSOCIATION);
            form.setR206_is_a_Association(AssociationImpl.EMPTY_ASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R207_ClassAsSimpleParticipant_is_related_to_formalizer_via_SimpleAssociation( ClassAsSimpleParticipant form, SimpleAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R207_ClassAsSimpleParticipant_is_related_to_formalizer_via_SimpleAssociation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR207_relates_ClassAsSimpleParticipant(form);
            form.setR207_is_related_to_formalizer_via_SimpleAssociation(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R207_ClassAsSimpleParticipant_is_related_to_formalizer_via_SimpleAssociation( ClassAsSimpleParticipant form, SimpleAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R207_ClassAsSimpleParticipant_is_related_to_formalizer_via_SimpleAssociation_extent.remove( R207_ClassAsSimpleParticipant_is_related_to_formalizer_via_SimpleAssociation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR207_relates_ClassAsSimpleParticipant(form);
            form.setR207_is_related_to_formalizer_via_SimpleAssociation(SimpleAssociationImpl.EMPTY_SIMPLEASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R208_ClassAsSimpleFormalizer_is_related_to_participant_via_SimpleAssociation( ClassAsSimpleFormalizer form, SimpleAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R208_ClassAsSimpleFormalizer_is_related_to_participant_via_SimpleAssociation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR208_relates_ClassAsSimpleFormalizer(form);
            form.setR208_is_related_to_participant_via_SimpleAssociation(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R208_ClassAsSimpleFormalizer_is_related_to_participant_via_SimpleAssociation( ClassAsSimpleFormalizer form, SimpleAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R208_ClassAsSimpleFormalizer_is_related_to_participant_via_SimpleAssociation_extent.remove( R208_ClassAsSimpleFormalizer_is_related_to_participant_via_SimpleAssociation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR208_relates_ClassAsSimpleFormalizer(ClassAsSimpleFormalizerImpl.EMPTY_CLASSASSIMPLEFORMALIZER);
            form.setR208_is_related_to_participant_via_SimpleAssociation(SimpleAssociationImpl.EMPTY_SIMPLEASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R209_ClassAsAssociatedOneSide_is_related_to_other_side_via_LinkedAssociation( ClassAsAssociatedOneSide form, LinkedAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R209_ClassAsAssociatedOneSide_is_related_to_other_side_via_LinkedAssociation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR209_relates_ClassAsAssociatedOneSide(form);
            form.setR209_is_related_to_other_side_via_LinkedAssociation(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R209_ClassAsAssociatedOneSide_is_related_to_other_side_via_LinkedAssociation( ClassAsAssociatedOneSide form, LinkedAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R209_ClassAsAssociatedOneSide_is_related_to_other_side_via_LinkedAssociation_extent.remove( R209_ClassAsAssociatedOneSide_is_related_to_other_side_via_LinkedAssociation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR209_relates_ClassAsAssociatedOneSide(ClassAsAssociatedOneSideImpl.EMPTY_CLASSASASSOCIATEDONESIDE);
            form.setR209_is_related_to_other_side_via_LinkedAssociation(LinkedAssociationImpl.EMPTY_LINKEDASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R20_Bridge_return_value_defined_by_DataType( Bridge form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R20_Bridge_return_value_defined_by_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR20_defines_the_return_value_Bridge(form);
            form.setR20_return_value_defined_by_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R20_Bridge_return_value_defined_by_DataType( Bridge form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R20_Bridge_return_value_defined_by_DataType_extent.remove( R20_Bridge_return_value_defined_by_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR20_defines_the_return_value_Bridge(form);
            form.setR20_return_value_defined_by_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R210_ClassAsAssociatedOtherSide_is_related_to_one_side_via_LinkedAssociation( ClassAsAssociatedOtherSide form, LinkedAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R210_ClassAsAssociatedOtherSide_is_related_to_one_side_via_LinkedAssociation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR210_relates_ClassAsAssociatedOtherSide(form);
            form.setR210_is_related_to_one_side_via_LinkedAssociation(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R210_ClassAsAssociatedOtherSide_is_related_to_one_side_via_LinkedAssociation( ClassAsAssociatedOtherSide form, LinkedAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R210_ClassAsAssociatedOtherSide_is_related_to_one_side_via_LinkedAssociation_extent.remove( R210_ClassAsAssociatedOtherSide_is_related_to_one_side_via_LinkedAssociation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR210_relates_ClassAsAssociatedOtherSide(ClassAsAssociatedOtherSideImpl.EMPTY_CLASSASASSOCIATEDOTHERSIDE);
            form.setR210_is_related_to_one_side_via_LinkedAssociation(LinkedAssociationImpl.EMPTY_LINKEDASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R211_ClassAsLink_formalizes_association_between_associated_classes_LinkedAssociation( ClassAsLink form, LinkedAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R211_ClassAsLink_formalizes_association_between_associated_classes_LinkedAssociation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR211_uses_a_formalizer_ClassAsLink(form);
            form.setR211_formalizes_association_between_associated_classes_LinkedAssociation(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R211_ClassAsLink_formalizes_association_between_associated_classes_LinkedAssociation( ClassAsLink form, LinkedAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R211_ClassAsLink_formalizes_association_between_associated_classes_LinkedAssociation_extent.remove( R211_ClassAsLink_formalizes_association_between_associated_classes_LinkedAssociation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR211_uses_a_formalizer_ClassAsLink(ClassAsLinkImpl.EMPTY_CLASSASLINK);
            form.setR211_formalizes_association_between_associated_classes_LinkedAssociation(LinkedAssociationImpl.EMPTY_LINKEDASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R212_ClassAsSupertype_is_related_to_subtypes_via_SubtypeSupertypeAssociation( ClassAsSupertype form, SubtypeSupertypeAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R212_ClassAsSupertype_is_related_to_subtypes_via_SubtypeSupertypeAssociation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR212_relates_ClassAsSupertype(form);
            form.setR212_is_related_to_subtypes_via_SubtypeSupertypeAssociation(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R212_ClassAsSupertype_is_related_to_subtypes_via_SubtypeSupertypeAssociation( ClassAsSupertype form, SubtypeSupertypeAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R212_ClassAsSupertype_is_related_to_subtypes_via_SubtypeSupertypeAssociation_extent.remove( R212_ClassAsSupertype_is_related_to_subtypes_via_SubtypeSupertypeAssociation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR212_relates_ClassAsSupertype(ClassAsSupertypeImpl.EMPTY_CLASSASSUPERTYPE);
            form.setR212_is_related_to_subtypes_via_SubtypeSupertypeAssociation(SubtypeSupertypeAssociationImpl.EMPTY_SUBTYPESUPERTYPEASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R213_ClassAsSubtype_is_related_to_supertype_via_SubtypeSupertypeAssociation( ClassAsSubtype form, SubtypeSupertypeAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R213_ClassAsSubtype_is_related_to_supertype_via_SubtypeSupertypeAssociation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR213_relates_ClassAsSubtype(form);
            form.setR213_is_related_to_supertype_via_SubtypeSupertypeAssociation(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R213_ClassAsSubtype_is_related_to_supertype_via_SubtypeSupertypeAssociation( ClassAsSubtype form, SubtypeSupertypeAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R213_ClassAsSubtype_is_related_to_supertype_via_SubtypeSupertypeAssociation_extent.remove( R213_ClassAsSubtype_is_related_to_supertype_via_SubtypeSupertypeAssociation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR213_relates_ClassAsSubtype(form);
            form.setR213_is_related_to_supertype_via_SubtypeSupertypeAssociation(SubtypeSupertypeAssociationImpl.EMPTY_SUBTYPESUPERTYPEASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R214_ClassAsDerivedOneSide_is_related_to_other_type_via_DerivedAssociation( ClassAsDerivedOneSide form, DerivedAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R214_ClassAsDerivedOneSide_is_related_to_other_type_via_DerivedAssociation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR214_relates_ClassAsDerivedOneSide(form);
            form.setR214_is_related_to_other_type_via_DerivedAssociation(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R214_ClassAsDerivedOneSide_is_related_to_other_type_via_DerivedAssociation( ClassAsDerivedOneSide form, DerivedAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R214_ClassAsDerivedOneSide_is_related_to_other_type_via_DerivedAssociation_extent.remove( R214_ClassAsDerivedOneSide_is_related_to_other_type_via_DerivedAssociation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR214_relates_ClassAsDerivedOneSide(ClassAsDerivedOneSideImpl.EMPTY_CLASSASDERIVEDONESIDE);
            form.setR214_is_related_to_other_type_via_DerivedAssociation(DerivedAssociationImpl.EMPTY_DERIVEDASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R215_ClassAsDerivedOtherSide_is_related_to_one_side_via_DerivedAssociation( ClassAsDerivedOtherSide form, DerivedAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R215_ClassAsDerivedOtherSide_is_related_to_one_side_via_DerivedAssociation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR215_relates_ClassAsDerivedOtherSide(form);
            form.setR215_is_related_to_one_side_via_DerivedAssociation(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R215_ClassAsDerivedOtherSide_is_related_to_one_side_via_DerivedAssociation( ClassAsDerivedOtherSide form, DerivedAssociation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R215_ClassAsDerivedOtherSide_is_related_to_one_side_via_DerivedAssociation_extent.remove( R215_ClassAsDerivedOtherSide_is_related_to_one_side_via_DerivedAssociation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR215_relates_ClassAsDerivedOtherSide(ClassAsDerivedOtherSideImpl.EMPTY_CLASSASDERIVEDOTHERSIDE);
            form.setR215_is_related_to_one_side_via_DerivedAssociation(DerivedAssociationImpl.EMPTY_DERIVEDASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R21_BridgeParameter_contains_Bridge( BridgeParameter form, Bridge part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R21_BridgeParameter_contains_Bridge_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR21_is_part_of_BridgeParameter(form);
            form.setR21_contains_Bridge(part);
            form.setBrg_ID( part.getBrg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R21_BridgeParameter_contains_Bridge( BridgeParameter form, Bridge part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R21_BridgeParameter_contains_Bridge_extent.remove( R21_BridgeParameter_contains_Bridge_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR21_is_part_of_BridgeParameter(form);
            form.setR21_contains_Bridge(BridgeImpl.EMPTY_BRIDGE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R22_BridgeParameter_is_defined_by_DataType( BridgeParameter form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R22_BridgeParameter_is_defined_by_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR22_defines_the_type_of_BridgeParameter(form);
            form.setR22_is_defined_by_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R22_BridgeParameter_is_defined_by_DataType( BridgeParameter form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R22_BridgeParameter_is_defined_by_DataType_extent.remove( R22_BridgeParameter_is_defined_by_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR22_defines_the_type_of_BridgeParameter(form);
            form.setR22_is_defined_by_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R24_FunctionParameter_is_defined_for_S_SYNC( FunctionParameter form, S_SYNC part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R24_FunctionParameter_is_defined_for_S_SYNC_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR24_defines_FunctionParameter(form);
            form.setR24_is_defined_for_S_SYNC(part);
            form.setSync_ID( part.getSync_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R24_FunctionParameter_is_defined_for_S_SYNC( FunctionParameter form, S_SYNC part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R24_FunctionParameter_is_defined_for_S_SYNC_extent.remove( R24_FunctionParameter_is_defined_for_S_SYNC_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR24_defines_FunctionParameter(form);
            form.setR24_is_defined_for_S_SYNC(S_SYNCImpl.EMPTY_S_SYNC);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R25_S_SYNC_has_return_type_of_DataType( S_SYNC form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R25_S_SYNC_has_return_type_of_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR25_defines_return_type_S_SYNC(form);
            form.setR25_has_return_type_of_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R25_S_SYNC_has_return_type_of_DataType( S_SYNC form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R25_S_SYNC_has_return_type_of_DataType_extent.remove( R25_S_SYNC_has_return_type_of_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR25_defines_return_type_S_SYNC(form);
            form.setR25_has_return_type_of_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R26_FunctionParameter_is_typed_by__DataType( FunctionParameter form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R26_FunctionParameter_is_typed_by__DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR26_describes_type_of_FunctionParameter(form);
            form.setR26_is_typed_by__DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R26_FunctionParameter_is_typed_by__DataType( FunctionParameter form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R26_FunctionParameter_is_typed_by__DataType_extent.remove( R26_FunctionParameter_is_typed_by__DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR26_describes_type_of_FunctionParameter(form);
            form.setR26_is_typed_by__DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R27_S_ENUM_is_defined_by_EnumerationDataType( S_ENUM form, EnumerationDataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R27_S_ENUM_is_defined_by_EnumerationDataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR27_defines_S_ENUM(form);
            form.setR27_is_defined_by_EnumerationDataType(part);
            form.setEDT_DT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R27_S_ENUM_is_defined_by_EnumerationDataType( S_ENUM form, EnumerationDataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R27_S_ENUM_is_defined_by_EnumerationDataType_extent.remove( R27_S_ENUM_is_defined_by_EnumerationDataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR27_defines_S_ENUM(form);
            form.setR27_is_defined_by_EnumerationDataType(EnumerationDataTypeImpl.EMPTY_ENUMERATIONDATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2821_Mark_is_marked_by_Feature( Mark form, Feature part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2821_Mark_is_marked_by_Feature_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2821_marks_Mark(form);
            form.setR2821_is_marked_by_Feature(part);
            form.setFeature_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2821_Mark_is_marked_by_Feature( Mark form, Feature part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2821_Mark_is_marked_by_Feature_extent.remove( R2821_Mark_is_marked_by_Feature_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2821_marks_Mark(form);
            form.setR2821_is_marked_by_Feature(FeatureImpl.EMPTY_FEATURE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2821_Mark_marks_MarkableElementType( Mark form, MarkableElementType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2821_Mark_marks_MarkableElementType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2821_is_marked_by_Mark(form);
            form.setR2821_marks_MarkableElementType(part);
            form.setMarkable_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2821_Mark_marks_MarkableElementType( Mark form, MarkableElementType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2821_Mark_marks_MarkableElementType_extent.remove( R2821_Mark_marks_MarkableElementType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2821_is_marked_by_Mark(form);
            form.setR2821_marks_MarkableElementType(MarkableElementTypeImpl.EMPTY_MARKABLEELEMENTTYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2822_MarkableElementType_makes_available_Feature( MarkableElementType form, Feature part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2822_MarkableElementType_makes_available_Feature_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2822_is_available_for_MarkableElementType(form);
            form.addR2822_makes_available_Feature(part);
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2822_MarkableElementType_makes_available_Feature( MarkableElementType form, Feature part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2822_MarkableElementType_makes_available_Feature_extent.remove( R2822_MarkableElementType_makes_available_Feature_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2822_is_available_for_MarkableElementType(form);
            form.removeR2822_makes_available_Feature(part);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2823_Mark_precedes_Mark( Mark form, Mark part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2823_Mark_precedes_Mark_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2823_succeeds_Mark(form);
            form.setR2823_precedes_Mark(part);
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2823_Mark_precedes_Mark( Mark form, Mark part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2823_Mark_precedes_Mark_extent.remove( R2823_Mark_precedes_Mark_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2823_succeeds_Mark(MarkImpl.EMPTY_MARK);
            form.setR2823_precedes_Mark(MarkImpl.EMPTY_MARK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2901_Link_originates_at_LinkParticipation( Link form, LinkParticipation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2901_Link_originates_at_LinkParticipation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2901_is_origin_of_Link(form);
            form.setR2901_originates_at_LinkParticipation(part);
            form.setRel_ID( part.getRel_ID() );
            form.setFromInst_ID( part.getInst_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2901_Link_originates_at_LinkParticipation( Link form, LinkParticipation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2901_Link_originates_at_LinkParticipation_extent.remove( R2901_Link_originates_at_LinkParticipation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2901_is_origin_of_Link(form);
            form.setR2901_originates_at_LinkParticipation(LinkParticipationImpl.EMPTY_LINKPARTICIPATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2902_Link_ends_at_LinkParticipation( Link form, LinkParticipation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2902_Link_ends_at_LinkParticipation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2902_is_destination_of_Link(form);
            form.setR2902_ends_at_LinkParticipation(part);
            form.setRel_ID( part.getRel_ID() );
            form.setToInst_ID( part.getInst_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2902_Link_ends_at_LinkParticipation( Link form, LinkParticipation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2902_Link_ends_at_LinkParticipation_extent.remove( R2902_Link_ends_at_LinkParticipation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2902_is_destination_of_Link(form);
            form.setR2902_ends_at_LinkParticipation(LinkParticipationImpl.EMPTY_LINKPARTICIPATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2903_Link_has_associator_LinkParticipation( Link form, LinkParticipation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2903_Link_has_associator_LinkParticipation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2903_is_associator_for_Link(form);
            form.setR2903_has_associator_LinkParticipation(part);
            form.setAssocInst_ID( part.getInst_ID() );
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2903_Link_has_associator_LinkParticipation( Link form, LinkParticipation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2903_Link_has_associator_LinkParticipation_extent.remove( R2903_Link_has_associator_LinkParticipation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2903_is_associator_for_Link(form);
            form.setR2903_has_associator_LinkParticipation(LinkParticipationImpl.EMPTY_LINKPARTICIPATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2904_Link_is_instance_of_Association( Link form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2904_Link_is_instance_of_Association_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2904_has_instances_Link(form);
            form.setR2904_is_instance_of_Association(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2904_Link_is_instance_of_Association( Link form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2904_Link_is_instance_of_Association_extent.remove( R2904_Link_is_instance_of_Association_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2904_has_instances_Link(form);
            form.setR2904_is_instance_of_Association(AssociationImpl.EMPTY_ASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2906_PendingEvent_is_instance_of_StateMachineEvent( PendingEvent form, StateMachineEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2906_PendingEvent_is_instance_of_StateMachineEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2906_has_instances_PendingEvent(form);
            form.setR2906_is_instance_of_StateMachineEvent(part);
            form.setSMevt_ID( part.getSMevt_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2906_PendingEvent_is_instance_of_StateMachineEvent( PendingEvent form, StateMachineEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2906_PendingEvent_is_instance_of_StateMachineEvent_extent.remove( R2906_PendingEvent_is_instance_of_StateMachineEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2906_has_instances_PendingEvent(form);
            form.setR2906_is_instance_of_StateMachineEvent(StateMachineEventImpl.EMPTY_STATEMACHINEEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2907_PendingEvent_is_pending_for_I_INS( PendingEvent form, I_INS part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2907_PendingEvent_is_pending_for_I_INS_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2907_has_waiting_PendingEvent(form);
            form.setR2907_is_pending_for_I_INS(part);
            form.setTarget_Inst_ID( part.getInst_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2907_PendingEvent_is_pending_for_I_INS( PendingEvent form, I_INS part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2907_PendingEvent_is_pending_for_I_INS_extent.remove( R2907_PendingEvent_is_pending_for_I_INS_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2907_has_waiting_PendingEvent(form);
            form.setR2907_is_pending_for_I_INS(I_INSImpl.EMPTY_I_INS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2908_PendingEvent_will_be_processed_after_PendingEvent( PendingEvent form, PendingEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2908_PendingEvent_will_be_processed_after_PendingEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2908_will_be_processed_before_PendingEvent(form);
            form.setR2908_will_be_processed_after_PendingEvent(part);
            form.setNextEvent_ID( part.getEvent_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2908_PendingEvent_will_be_processed_after_PendingEvent( PendingEvent form, PendingEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2908_PendingEvent_will_be_processed_after_PendingEvent_extent.remove( R2908_PendingEvent_will_be_processed_after_PendingEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2908_will_be_processed_before_PendingEvent(PendingEventImpl.EMPTY_PENDINGEVENT);
            form.setR2908_will_be_processed_after_PendingEvent(PendingEventImpl.EMPTY_PENDINGEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2909_AttributeValue_defines_value_for_characteristic_of_I_INS( AttributeValue form, I_INS part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2909_AttributeValue_defines_value_for_characteristic_of_I_INS_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2909_has_characteristic_abstracted_by_AttributeValue(form);
            form.setR2909_defines_value_for_characteristic_of_I_INS(part);
            form.setInst_ID( part.getInst_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2909_AttributeValue_defines_value_for_characteristic_of_I_INS( AttributeValue form, I_INS part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2909_AttributeValue_defines_value_for_characteristic_of_I_INS_extent.remove( R2909_AttributeValue_defines_value_for_characteristic_of_I_INS_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2909_has_characteristic_abstracted_by_AttributeValue(form);
            form.setR2909_defines_value_for_characteristic_of_I_INS(I_INSImpl.EMPTY_I_INS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2910_AttributeValue_is_instance_of_O_ATTR( AttributeValue form, O_ATTR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2910_AttributeValue_is_instance_of_O_ATTR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2910_has_instances_AttributeValue(form);
            form.setR2910_is_instance_of_O_ATTR(part);
            form.setObj_ID( part.getObj_ID() );
            form.setAttr_ID( part.getAttr_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2910_AttributeValue_is_instance_of_O_ATTR( AttributeValue form, O_ATTR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2910_AttributeValue_is_instance_of_O_ATTR_extent.remove( R2910_AttributeValue_is_instance_of_O_ATTR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2910_has_instances_AttributeValue(form);
            form.setR2910_is_instance_of_O_ATTR(O_ATTRImpl.EMPTY_O_ATTR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2915_I_INS_occupies_StateMachineState( I_INS form, StateMachineState part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2915_I_INS_occupies_StateMachineState_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2915_defines_state_of_I_INS(form);
            form.setR2915_occupies_StateMachineState(part);
            form.setSMstt_ID( part.getSMstt_ID() );
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2915_I_INS_occupies_StateMachineState( I_INS form, StateMachineState part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2915_I_INS_occupies_StateMachineState_extent.remove( R2915_I_INS_occupies_StateMachineState_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2915_defines_state_of_I_INS(form);
            form.setR2915_occupies_StateMachineState(StateMachineStateImpl.EMPTY_STATEMACHINESTATE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2923_BlockInStackFrame_is_executed_within_the_context_of_StackFrame( BlockInStackFrame form, StackFrame part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2923_BlockInStackFrame_is_executed_within_the_context_of_StackFrame_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2923_supplies_context_for_BlockInStackFrame(form);
            form.setR2923_is_executed_within_the_context_of_StackFrame(part);
            form.setStack_Frame_ID( part.getStack_Frame_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2923_BlockInStackFrame_is_executed_within_the_context_of_StackFrame( BlockInStackFrame form, StackFrame part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2923_BlockInStackFrame_is_executed_within_the_context_of_StackFrame_extent.remove( R2923_BlockInStackFrame_is_executed_within_the_context_of_StackFrame_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2923_supplies_context_for_BlockInStackFrame(form);
            form.setR2923_is_executed_within_the_context_of_StackFrame(StackFrameImpl.EMPTY_STACKFRAME);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2923_BlockInStackFrame_supplies_context_for_Block( BlockInStackFrame form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2923_BlockInStackFrame_supplies_context_for_Block_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2923_is_executed_within_the_context_of_BlockInStackFrame(form);
            form.setR2923_supplies_context_for_Block(part);
            form.setBlock_ID( part.getBlock_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2923_BlockInStackFrame_supplies_context_for_Block( BlockInStackFrame form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2923_BlockInStackFrame_supplies_context_for_Block_extent.remove( R2923_BlockInStackFrame_supplies_context_for_Block_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2923_is_executed_within_the_context_of_BlockInStackFrame(form);
            form.setR2923_supplies_context_for_Block(BlockImpl.EMPTY_BLOCK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2928_StackFrame_next_context_StackFrame( StackFrame form, StackFrame part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2928_StackFrame_next_context_StackFrame_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2928_previous_context_StackFrame(form);
            form.setR2928_next_context_StackFrame(part);
            form.setChild_Stack_Frame_ID( part.getStack_Frame_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2928_StackFrame_next_context_StackFrame( StackFrame form, StackFrame part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2928_StackFrame_next_context_StackFrame_extent.remove( R2928_StackFrame_next_context_StackFrame_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2928_previous_context_StackFrame(StackFrameImpl.EMPTY_STACKFRAME);
            form.setR2928_next_context_StackFrame(StackFrameImpl.EMPTY_STACKFRAME);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2929_StackFrame_is_processed_by_Stack( StackFrame form, Stack part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2929_StackFrame_is_processed_by_Stack_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2929_has_a_top_StackFrame(form);
            form.setR2929_is_processed_by_Stack(part);
            form.setTop_Stack_Frame_Stack_ID( part.getStack_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2929_StackFrame_is_processed_by_Stack( StackFrame form, Stack part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2929_StackFrame_is_processed_by_Stack_extent.remove( R2929_StackFrame_is_processed_by_Stack_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2929_has_a_top_StackFrame(StackFrameImpl.EMPTY_STACKFRAME);
            form.setR2929_is_processed_by_Stack(StackImpl.EMPTY_STACK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2930_Stack_is_controlled_by_ComponentInstance( Stack form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2930_Stack_is_controlled_by_ComponentInstance_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2930_controls_Stack(form);
            form.setR2930_is_controlled_by_ComponentInstance(part);
            form.setExecution_Engine_ID( part.getExecution_Engine_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2930_Stack_is_controlled_by_ComponentInstance( Stack form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2930_Stack_is_controlled_by_ComponentInstance_extent.remove( R2930_Stack_is_controlled_by_ComponentInstance_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2930_controls_Stack(StackImpl.EMPTY_STACK);
            form.setR2930_is_controlled_by_ComponentInstance(ComponentInstanceImpl.EMPTY_COMPONENTINSTANCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2933_DataItemValue_PendingEvent( DataItemValue form, PendingEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2933_DataItemValue_PendingEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2933_DataItemValue(form);
            form.setR2933_PendingEvent(part);
            form.setEvent_ID( part.getEvent_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2933_DataItemValue_PendingEvent( DataItemValue form, PendingEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2933_DataItemValue_PendingEvent_extent.remove( R2933_DataItemValue_PendingEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2933_DataItemValue(form);
            form.setR2933_PendingEvent(PendingEventImpl.EMPTY_PENDINGEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2934_DataItemValue_StateMachineEventDataItem( DataItemValue form, StateMachineEventDataItem part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2934_DataItemValue_StateMachineEventDataItem_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2934_DataItemValue(form);
            form.setR2934_StateMachineEventDataItem(part);
            form.setSMedi_ID( part.getSMedi_ID() );
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2934_DataItemValue_StateMachineEventDataItem( DataItemValue form, StateMachineEventDataItem part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2934_DataItemValue_StateMachineEventDataItem_extent.remove( R2934_DataItemValue_StateMachineEventDataItem_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2934_DataItemValue(form);
            form.setR2934_StateMachineEventDataItem(StateMachineEventDataItemImpl.EMPTY_STATEMACHINEEVENTDATAITEM);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2935_PendingEvent_targets_I_INS( PendingEvent form, I_INS part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2935_PendingEvent_targets_I_INS_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2935_is_target_of_PendingEvent(form);
            form.setR2935_targets_I_INS(part);
            form.setTarget_Inst_ID( part.getInst_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2935_PendingEvent_targets_I_INS( PendingEvent form, I_INS part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2935_PendingEvent_targets_I_INS_extent.remove( R2935_PendingEvent_targets_I_INS_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2935_is_target_of_PendingEvent(form);
            form.setR2935_targets_I_INS(I_INSImpl.EMPTY_I_INS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2937_PendingEvent_was_sent_from_I_INS( PendingEvent form, I_INS part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2937_PendingEvent_was_sent_from_I_INS_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2937_sends_PendingEvent(form);
            form.setR2937_was_sent_from_I_INS(part);
            form.setSent_By_Inst_ID( part.getInst_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2937_PendingEvent_was_sent_from_I_INS( PendingEvent form, I_INS part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2937_PendingEvent_was_sent_from_I_INS_extent.remove( R2937_PendingEvent_was_sent_from_I_INS_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2937_sends_PendingEvent(form);
            form.setR2937_was_sent_from_I_INS(I_INSImpl.EMPTY_I_INS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2939_PendingEvent_will_be_processed_before_PendingEvent( PendingEvent form, PendingEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2939_PendingEvent_will_be_processed_before_PendingEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2939_will_be_processed_after_PendingEvent(form);
            form.setR2939_will_be_processed_before_PendingEvent(part);
            form.setNext_self_Event_ID( part.getEvent_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2939_PendingEvent_will_be_processed_before_PendingEvent( PendingEvent form, PendingEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2939_PendingEvent_will_be_processed_before_PendingEvent_extent.remove( R2939_PendingEvent_will_be_processed_before_PendingEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2939_will_be_processed_after_PendingEvent(PendingEventImpl.EMPTY_PENDINGEVENT);
            form.setR2939_will_be_processed_before_PendingEvent(PendingEventImpl.EMPTY_PENDINGEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2940_Timer_provides_delayed_delivery_of_PendingEvent( Timer form, PendingEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2940_Timer_provides_delayed_delivery_of_PendingEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2940_delivered_by_Timer(form);
            form.setR2940_provides_delayed_delivery_of_PendingEvent(part);
            form.setEvent_ID( part.getEvent_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2940_Timer_provides_delayed_delivery_of_PendingEvent( Timer form, PendingEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2940_Timer_provides_delayed_delivery_of_PendingEvent_extent.remove( R2940_Timer_provides_delayed_delivery_of_PendingEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2940_delivered_by_Timer(TimerImpl.EMPTY_TIMER);
            form.setR2940_provides_delayed_delivery_of_PendingEvent(PendingEventImpl.EMPTY_PENDINGEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2941_BlockInStackFrame_is_currently_visiting_ACT_SMT( BlockInStackFrame form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2941_BlockInStackFrame_is_currently_visiting_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2941_is_visited_within_scope_of_BlockInStackFrame(form);
            form.setR2941_is_currently_visiting_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2941_BlockInStackFrame_is_currently_visiting_ACT_SMT( BlockInStackFrame form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2941_BlockInStackFrame_is_currently_visiting_ACT_SMT_extent.remove( R2941_BlockInStackFrame_is_currently_visiting_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2941_is_visited_within_scope_of_BlockInStackFrame(form);
            form.setR2941_is_currently_visiting_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2943_StackFrame_processed_by_Stack( StackFrame form, Stack part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2943_StackFrame_processed_by_Stack_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2943_executes_StackFrame(form);
            form.setR2943_processed_by_Stack(part);
            form.setStack_ID( part.getStack_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2943_StackFrame_processed_by_Stack( StackFrame form, Stack part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2943_StackFrame_processed_by_Stack_extent.remove( R2943_StackFrame_processed_by_Stack_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2943_executes_StackFrame(form);
            form.setR2943_processed_by_Stack(StackImpl.EMPTY_STACK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2944_EventQueueEntry_ComponentInstance( EventQueueEntry form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2944_EventQueueEntry_ComponentInstance_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2944_EventQueueEntry(form);
            form.setR2944_ComponentInstance(part);
            form.setExecution_Engine_ID( part.getExecution_Engine_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2944_EventQueueEntry_ComponentInstance( EventQueueEntry form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2944_EventQueueEntry_ComponentInstance_extent.remove( R2944_EventQueueEntry_ComponentInstance_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2944_EventQueueEntry(form);
            form.setR2944_ComponentInstance(ComponentInstanceImpl.EMPTY_COMPONENTINSTANCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2944_EventQueueEntry_PendingEvent( EventQueueEntry form, PendingEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2944_EventQueueEntry_PendingEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2944_EventQueueEntry(form);
            form.setR2944_PendingEvent(part);
            form.setEvent_ID( part.getEvent_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2944_EventQueueEntry_PendingEvent( EventQueueEntry form, PendingEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2944_EventQueueEntry_PendingEvent_extent.remove( R2944_EventQueueEntry_PendingEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2944_EventQueueEntry(EventQueueEntryImpl.EMPTY_EVENTQUEUEENTRY);
            form.setR2944_PendingEvent(PendingEventImpl.EMPTY_PENDINGEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2945_EventQueueEntry_follows_EventQueueEntry( EventQueueEntry form, EventQueueEntry part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2945_EventQueueEntry_follows_EventQueueEntry_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2945_precedes_EventQueueEntry(form);
            form.setR2945_follows_EventQueueEntry(part);
            form.setNext_Event_Queue_Entry_ID( part.getEvent_Queue_Entry_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2945_EventQueueEntry_follows_EventQueueEntry( EventQueueEntry form, EventQueueEntry part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2945_EventQueueEntry_follows_EventQueueEntry_extent.remove( R2945_EventQueueEntry_follows_EventQueueEntry_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2945_precedes_EventQueueEntry(EventQueueEntryImpl.EMPTY_EVENTQUEUEENTRY);
            form.setR2945_follows_EventQueueEntry(EventQueueEntryImpl.EMPTY_EVENTQUEUEENTRY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2946_SelfQueueEntry_ComponentInstance( SelfQueueEntry form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2946_SelfQueueEntry_ComponentInstance_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2946_SelfQueueEntry(form);
            form.setR2946_ComponentInstance(part);
            form.setExecution_Engine_ID( part.getExecution_Engine_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2946_SelfQueueEntry_ComponentInstance( SelfQueueEntry form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2946_SelfQueueEntry_ComponentInstance_extent.remove( R2946_SelfQueueEntry_ComponentInstance_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2946_SelfQueueEntry(form);
            form.setR2946_ComponentInstance(ComponentInstanceImpl.EMPTY_COMPONENTINSTANCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2946_SelfQueueEntry_PendingEvent( SelfQueueEntry form, PendingEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2946_SelfQueueEntry_PendingEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2946_SelfQueueEntry(form);
            form.setR2946_PendingEvent(part);
            form.setEvent_ID( part.getEvent_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2946_SelfQueueEntry_PendingEvent( SelfQueueEntry form, PendingEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2946_SelfQueueEntry_PendingEvent_extent.remove( R2946_SelfQueueEntry_PendingEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2946_SelfQueueEntry(SelfQueueEntryImpl.EMPTY_SELFQUEUEENTRY);
            form.setR2946_PendingEvent(PendingEventImpl.EMPTY_PENDINGEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2947_SelfQueueEntry_follows_SelfQueueEntry( SelfQueueEntry form, SelfQueueEntry part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2947_SelfQueueEntry_follows_SelfQueueEntry_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2947_precedes_SelfQueueEntry(form);
            form.setR2947_follows_SelfQueueEntry(part);
            form.setNext_Self_Queue_Entry_ID( part.getSelf_Queue_Entry_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2947_SelfQueueEntry_follows_SelfQueueEntry( SelfQueueEntry form, SelfQueueEntry part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2947_SelfQueueEntry_follows_SelfQueueEntry_extent.remove( R2947_SelfQueueEntry_follows_SelfQueueEntry_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2947_precedes_SelfQueueEntry(SelfQueueEntryImpl.EMPTY_SELFQUEUEENTRY);
            form.setR2947_follows_SelfQueueEntry(SelfQueueEntryImpl.EMPTY_SELFQUEUEENTRY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2949_Monitor_monitored_by_ComponentInstance( Monitor form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2949_Monitor_monitored_by_ComponentInstance_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2949_monitors_Monitor(form);
            form.setR2949_monitored_by_ComponentInstance(part);
            form.setExecution_Engine_ID( part.getExecution_Engine_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2949_Monitor_monitored_by_ComponentInstance( Monitor form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2949_Monitor_monitored_by_ComponentInstance_extent.remove( R2949_Monitor_monitored_by_ComponentInstance_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2949_monitors_Monitor(form);
            form.setR2949_monitored_by_ComponentInstance(ComponentInstanceImpl.EMPTY_COMPONENTINSTANCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2949_Monitor_monitors_I_INS( Monitor form, I_INS part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2949_Monitor_monitors_I_INS_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2949_monitored_by_Monitor(form);
            form.setR2949_monitors_I_INS(part);
            form.setInst_ID( part.getInst_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2949_Monitor_monitors_I_INS( Monitor form, I_INS part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2949_Monitor_monitors_I_INS_extent.remove( R2949_Monitor_monitors_I_INS_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2949_monitored_by_Monitor(MonitorImpl.EMPTY_MONITOR);
            form.setR2949_monitors_I_INS(I_INSImpl.EMPTY_I_INS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2951_ValueInStackFrame_StackFrame( ValueInStackFrame form, StackFrame part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2951_ValueInStackFrame_StackFrame_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2951_ValueInStackFrame(form);
            form.setR2951_StackFrame(part);
            form.setStack_Frame_ID( part.getStack_Frame_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2951_ValueInStackFrame_StackFrame( ValueInStackFrame form, StackFrame part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2951_ValueInStackFrame_StackFrame_extent.remove( R2951_ValueInStackFrame_StackFrame_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2951_ValueInStackFrame(form);
            form.setR2951_StackFrame(StackFrameImpl.EMPTY_STACKFRAME);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2953_I_INS_entered_last_state_via_Transition( I_INS form, Transition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2953_I_INS_entered_last_state_via_Transition_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2953_caused_last_state_change_to_I_INS(form);
            form.setR2953_entered_last_state_via_Transition(part);
            form.setTrans_ID( part.getTrans_ID() );
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2953_I_INS_entered_last_state_via_Transition( I_INS form, Transition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2953_I_INS_entered_last_state_via_Transition_extent.remove( R2953_I_INS_entered_last_state_via_Transition_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2953_caused_last_state_change_to_I_INS(form);
            form.setR2953_entered_last_state_via_Transition(TransitionImpl.EMPTY_TRANSITION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2954_StackFrame_has_context_I_INS( StackFrame form, I_INS part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2954_StackFrame_has_context_I_INS_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2954_provides_context_for_StackFrame(form);
            form.setR2954_has_context_I_INS(part);
            form.setInst_ID( part.getInst_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2954_StackFrame_has_context_I_INS( StackFrame form, I_INS part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2954_StackFrame_has_context_I_INS_extent.remove( R2954_StackFrame_has_context_I_INS_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2954_provides_context_for_StackFrame(form);
            form.setR2954_has_context_I_INS(I_INSImpl.EMPTY_I_INS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2955_ComponentInstance_is_verifying_instance_of_C_C( ComponentInstance form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2955_ComponentInstance_is_verifying_instance_of_C_C_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2955_instance_being_verified_by_ComponentInstance(form);
            form.setR2955_is_verifying_instance_of_C_C(part);
            form.setComponent_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2955_ComponentInstance_is_verifying_instance_of_C_C( ComponentInstance form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2955_ComponentInstance_is_verifying_instance_of_C_C_extent.remove( R2955_ComponentInstance_is_verifying_instance_of_C_C_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2955_instance_being_verified_by_ComponentInstance(form);
            form.setR2955_is_verifying_instance_of_C_C(C_CImpl.EMPTY_C_C);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2956_DataItemValue_PropertyParameter( DataItemValue form, PropertyParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2956_DataItemValue_PropertyParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2956_DataItemValue(form);
            form.setR2956_PropertyParameter(part);
            form.setPP_Id( part.getPP_Id() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2956_DataItemValue_PropertyParameter( DataItemValue form, PropertyParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2956_DataItemValue_PropertyParameter_extent.remove( R2956_DataItemValue_PropertyParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2956_DataItemValue(form);
            form.setR2956_PropertyParameter(PropertyParameterImpl.EMPTY_PROPERTYPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2957_I_INS_created_by_ComponentInstance( I_INS form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2957_I_INS_created_by_ComponentInstance_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2957_creates_I_INS(form);
            form.setR2957_created_by_ComponentInstance(part);
            form.setExecution_Engine_ID( part.getExecution_Engine_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2957_I_INS_created_by_ComponentInstance( I_INS form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2957_I_INS_created_by_ComponentInstance_extent.remove( R2957_I_INS_created_by_ComponentInstance_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2957_creates_I_INS(form);
            form.setR2957_created_by_ComponentInstance(ComponentInstanceImpl.EMPTY_COMPONENTINSTANCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2958_LinkParticipation_I_INS( LinkParticipation form, I_INS part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2958_LinkParticipation_I_INS_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2958_LinkParticipation(form);
            form.setR2958_I_INS(part);
            form.setInst_ID( part.getInst_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2958_LinkParticipation_I_INS( LinkParticipation form, I_INS part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2958_LinkParticipation_I_INS_extent.remove( R2958_LinkParticipation_I_INS_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2958_LinkParticipation(form);
            form.setR2958_I_INS(I_INSImpl.EMPTY_I_INS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2959_LinkParticipation_Association( LinkParticipation form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2959_LinkParticipation_Association_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2959_LinkParticipation(form);
            form.setR2959_Association(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2959_LinkParticipation_Association( LinkParticipation form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2959_LinkParticipation_Association_extent.remove( R2959_LinkParticipation_Association_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2959_LinkParticipation(form);
            form.setR2959_Association(AssociationImpl.EMPTY_ASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2963_ComponentInstance_is_verifying_instance_of_ComponentReference( ComponentInstance form, ComponentReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2963_ComponentInstance_is_verifying_instance_of_ComponentReference_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2963_instance_being_verified_by_ComponentInstance(form);
            form.setR2963_is_verifying_instance_of_ComponentReference(part);
            form.setImportedComponent_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2963_ComponentInstance_is_verifying_instance_of_ComponentReference( ComponentInstance form, ComponentReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2963_ComponentInstance_is_verifying_instance_of_ComponentReference_extent.remove( R2963_ComponentInstance_is_verifying_instance_of_ComponentReference_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2963_instance_being_verified_by_ComponentInstance(form);
            form.setR2963_is_verifying_instance_of_ComponentReference(ComponentReferenceImpl.EMPTY_COMPONENTREFERENCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2964_PendingEvent_is_pending_in_ComponentInstance( PendingEvent form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2964_PendingEvent_is_pending_in_ComponentInstance_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2964_houses_PendingEvent(form);
            form.setR2964_is_pending_in_ComponentInstance(part);
            form.setExecution_Engine_ID( part.getExecution_Engine_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2964_PendingEvent_is_pending_in_ComponentInstance( PendingEvent form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2964_PendingEvent_is_pending_in_ComponentInstance_extent.remove( R2964_PendingEvent_is_pending_in_ComponentInstance_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2964_houses_PendingEvent(form);
            form.setR2964_is_pending_in_ComponentInstance(ComponentInstanceImpl.EMPTY_COMPONENTINSTANCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2965_StackFrame_blocked_by_StackFrame( StackFrame form, StackFrame part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2965_StackFrame_blocked_by_StackFrame_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2965_blocks_StackFrame(form);
            form.setR2965_blocked_by_StackFrame(part);
            form.setBlocking_Stack_Frame_ID( part.getStack_Frame_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2965_StackFrame_blocked_by_StackFrame( StackFrame form, StackFrame part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2965_StackFrame_blocked_by_StackFrame_extent.remove( R2965_StackFrame_blocked_by_StackFrame_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2965_blocks_StackFrame(StackFrameImpl.EMPTY_STACKFRAME);
            form.setR2965_blocked_by_StackFrame(StackFrameImpl.EMPTY_STACKFRAME);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2966_IntercomponentQueueEntry_has_queued_StackFrame( IntercomponentQueueEntry form, StackFrame part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2966_IntercomponentQueueEntry_has_queued_StackFrame_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2966_is_enqueued_with_IntercomponentQueueEntry(form);
            form.setR2966_has_queued_StackFrame(part);
            form.setStack_Frame_ID( part.getStack_Frame_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2966_IntercomponentQueueEntry_has_queued_StackFrame( IntercomponentQueueEntry form, StackFrame part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2966_IntercomponentQueueEntry_has_queued_StackFrame_extent.remove( R2966_IntercomponentQueueEntry_has_queued_StackFrame_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2966_is_enqueued_with_IntercomponentQueueEntry(IntercomponentQueueEntryImpl.EMPTY_INTERCOMPONENTQUEUEENTRY);
            form.setR2966_has_queued_StackFrame(StackFrameImpl.EMPTY_STACKFRAME);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2966_IntercomponentQueueEntry_is_enqueued_with_Stack( IntercomponentQueueEntry form, Stack part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2966_IntercomponentQueueEntry_is_enqueued_with_Stack_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2966_has_queued_IntercomponentQueueEntry(form);
            form.setR2966_is_enqueued_with_Stack(part);
            form.setStack_ID( part.getStack_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2966_IntercomponentQueueEntry_is_enqueued_with_Stack( IntercomponentQueueEntry form, Stack part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2966_IntercomponentQueueEntry_is_enqueued_with_Stack_extent.remove( R2966_IntercomponentQueueEntry_is_enqueued_with_Stack_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2966_has_queued_IntercomponentQueueEntry(form);
            form.setR2966_is_enqueued_with_Stack(StackImpl.EMPTY_STACK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2967_StackFrame_holds_return_value_for_Stack( StackFrame form, Stack part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2967_StackFrame_holds_return_value_for_Stack_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2967_has_return_values_on_StackFrame(form);
            form.setR2967_holds_return_value_for_Stack(part);
            form.setValue_Q_Stack_ID( part.getStack_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2967_StackFrame_holds_return_value_for_Stack( StackFrame form, Stack part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2967_StackFrame_holds_return_value_for_Stack_extent.remove( R2967_StackFrame_holds_return_value_for_Stack_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2967_has_return_values_on_StackFrame(form);
            form.setR2967_holds_return_value_for_Stack(StackImpl.EMPTY_STACK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2968_RuntimeChannel_is_interface_provider_to_ComponentInstance( RuntimeChannel form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2968_RuntimeChannel_is_interface_provider_to_ComponentInstance_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2968_is_interface_requirer_of_RuntimeChannel(form);
            form.setR2968_is_interface_provider_to_ComponentInstance(part);
            form.setExecution_Engine_ID( part.getExecution_Engine_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2968_RuntimeChannel_is_interface_provider_to_ComponentInstance( RuntimeChannel form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2968_RuntimeChannel_is_interface_provider_to_ComponentInstance_extent.remove( R2968_RuntimeChannel_is_interface_provider_to_ComponentInstance_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2968_is_interface_requirer_of_RuntimeChannel(form);
            form.setR2968_is_interface_provider_to_ComponentInstance(ComponentInstanceImpl.EMPTY_COMPONENTINSTANCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2968_RuntimeChannel_is_interface_requirer_of_ComponentInstance( RuntimeChannel form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2968_RuntimeChannel_is_interface_requirer_of_ComponentInstance_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2968_is_interface_provider_to_RuntimeChannel(form);
            form.setR2968_is_interface_requirer_of_ComponentInstance(part);
            form.setOther_Execution_Engine_ID( part.getExecution_Engine_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2968_RuntimeChannel_is_interface_requirer_of_ComponentInstance( RuntimeChannel form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2968_RuntimeChannel_is_interface_requirer_of_ComponentInstance_extent.remove( R2968_RuntimeChannel_is_interface_requirer_of_ComponentInstance_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2968_is_interface_provider_to_RuntimeChannel(form);
            form.setR2968_is_interface_requirer_of_ComponentInstance(ComponentInstanceImpl.EMPTY_COMPONENTINSTANCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2969_RuntimeChannel_implements_Satisfaction( RuntimeChannel form, Satisfaction part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2969_RuntimeChannel_implements_Satisfaction_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2969_is_implemented_at_runtime_by_RuntimeChannel(form);
            form.setR2969_implements_Satisfaction(part);
            form.setSatisfaction_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2969_RuntimeChannel_implements_Satisfaction( RuntimeChannel form, Satisfaction part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2969_RuntimeChannel_implements_Satisfaction_extent.remove( R2969_RuntimeChannel_implements_Satisfaction_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2969_is_implemented_at_runtime_by_RuntimeChannel(form);
            form.setR2969_implements_Satisfaction(SatisfactionImpl.EMPTY_SATISFACTION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2970_ComponentInstance_is_verifying_EP_PKG( ComponentInstance form, EP_PKG part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2970_ComponentInstance_is_verifying_EP_PKG_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2970_is_being_verified_by_ComponentInstance(form);
            form.setR2970_is_verifying_EP_PKG(part);
            form.setPackage_ID( part.getPackage_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2970_ComponentInstance_is_verifying_EP_PKG( ComponentInstance form, EP_PKG part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2970_ComponentInstance_is_verifying_EP_PKG_extent.remove( R2970_ComponentInstance_is_verifying_EP_PKG_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2970_is_being_verified_by_ComponentInstance(ComponentInstanceImpl.EMPTY_COMPONENTINSTANCE);
            form.setR2970_is_verifying_EP_PKG(EP_PKGImpl.EMPTY_EP_PKG);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2972_RuntimeChannel_implements_Delegation( RuntimeChannel form, Delegation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2972_RuntimeChannel_implements_Delegation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2972_is_implemented_at_runtime_by_RuntimeChannel(form);
            form.setR2972_implements_Delegation(part);
            form.setDelegation_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2972_RuntimeChannel_implements_Delegation( RuntimeChannel form, Delegation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2972_RuntimeChannel_implements_Delegation_extent.remove( R2972_RuntimeChannel_implements_Delegation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2972_is_implemented_at_runtime_by_RuntimeChannel(form);
            form.setR2972_implements_Delegation(DelegationImpl.EMPTY_DELEGATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2973_RuntimeChannel_requirer_RuntimeChannel( RuntimeChannel form, RuntimeChannel part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2973_RuntimeChannel_requirer_RuntimeChannel_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2973_provider_RuntimeChannel(form);
            form.setR2973_requirer_RuntimeChannel(part);
            form.setNext_provider_Channel_Id( part.getChannel_Id() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2973_RuntimeChannel_requirer_RuntimeChannel( RuntimeChannel form, RuntimeChannel part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2973_RuntimeChannel_requirer_RuntimeChannel_extent.remove( R2973_RuntimeChannel_requirer_RuntimeChannel_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2973_provider_RuntimeChannel(RuntimeChannelImpl.EMPTY_RUNTIMECHANNEL);
            form.setR2973_requirer_RuntimeChannel(RuntimeChannelImpl.EMPTY_RUNTIMECHANNEL);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2974_ComponentInstanceContainer_ComponentInstance( ComponentInstanceContainer form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2974_ComponentInstanceContainer_ComponentInstance_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2974_ComponentInstanceContainer(form);
            form.setR2974_ComponentInstance(part);
            form.setContainer_ID( part.getExecution_Engine_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2974_ComponentInstanceContainer_ComponentInstance( ComponentInstanceContainer form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2974_ComponentInstanceContainer_ComponentInstance_extent.remove( R2974_ComponentInstanceContainer_ComponentInstance_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR2974_ComponentInstanceContainer(ComponentInstanceContainerImpl.EMPTY_COMPONENTINSTANCECONTAINER);
            form.setR2974_ComponentInstance(ComponentInstanceImpl.EMPTY_COMPONENTINSTANCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2975_ComponentInstance_ComponentInstanceContainer( ComponentInstance form, ComponentInstanceContainer part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2975_ComponentInstance_ComponentInstanceContainer_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2975_ComponentInstance(form);
            form.setR2975_ComponentInstanceContainer(part);
            form.setContainer_ID( part.getContainer_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2975_ComponentInstance_ComponentInstanceContainer( ComponentInstance form, ComponentInstanceContainer part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2975_ComponentInstance_ComponentInstanceContainer_extent.remove( R2975_ComponentInstance_ComponentInstanceContainer_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2975_ComponentInstance(form);
            form.setR2975_ComponentInstanceContainer(ComponentInstanceContainerImpl.EMPTY_COMPONENTINSTANCECONTAINER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2976_PendingEvent_originates_from_ComponentInstance( PendingEvent form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2976_PendingEvent_originates_from_ComponentInstance_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2976_sends_PendingEvent(form);
            form.setR2976_originates_from_ComponentInstance(part);
            form.setOriginating_Execution_Engine_ID( part.getExecution_Engine_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2976_PendingEvent_originates_from_ComponentInstance( PendingEvent form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2976_PendingEvent_originates_from_ComponentInstance_extent.remove( R2976_PendingEvent_originates_from_ComponentInstance_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2976_sends_PendingEvent(form);
            form.setR2976_originates_from_ComponentInstance(ComponentInstanceImpl.EMPTY_COMPONENTINSTANCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2977_IntercomponentQueueEntry_enqueued_by_ComponentInstance( IntercomponentQueueEntry form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2977_IntercomponentQueueEntry_enqueued_by_ComponentInstance_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2977_IntercomponentQueueEntry(form);
            form.setR2977_enqueued_by_ComponentInstance(part);
            form.setExecution_Engine_ID( part.getExecution_Engine_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2977_IntercomponentQueueEntry_enqueued_by_ComponentInstance( IntercomponentQueueEntry form, ComponentInstance part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2977_IntercomponentQueueEntry_enqueued_by_ComponentInstance_extent.remove( R2977_IntercomponentQueueEntry_enqueued_by_ComponentInstance_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2977_IntercomponentQueueEntry(form);
            form.setR2977_enqueued_by_ComponentInstance(ComponentInstanceImpl.EMPTY_COMPONENTINSTANCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R2978_ValueInStackFrame_Value( ValueInStackFrame form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R2978_ValueInStackFrame_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR2978_ValueInStackFrame(form);
            form.setR2978_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R2978_ValueInStackFrame_Value( ValueInStackFrame form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R2978_ValueInStackFrame_Value_extent.remove( R2978_ValueInStackFrame_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR2978_ValueInStackFrame(form);
            form.setR2978_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R3800_TypeReference_based_on_Type( TypeReference form, Type part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R3800_TypeReference_based_on_Type_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR3800_referred_to_by_TypeReference(form);
            form.setR3800_based_on_Type(part);
            form.setType_name( part.getName() );
            form.setType_package( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R3800_TypeReference_based_on_Type( TypeReference form, Type part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R3800_TypeReference_based_on_Type_extent.remove( R3800_TypeReference_based_on_Type_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR3800_referred_to_by_TypeReference(form);
            form.setR3800_based_on_Type(TypeImpl.EMPTY_TYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R3801_ArrayTypeReference_is_a_TypeReference( ArrayTypeReference form, TypeReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R3801_ArrayTypeReference_is_a_TypeReference_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR3801_is_a_ArrayTypeReference(form);
            form.setR3801_is_a_TypeReference(part);
            form.setName( part.getType_name() );
            form.setType_reference_name( part.getType_reference_name() );
            form.setPackage( part.getType_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R3801_ArrayTypeReference_is_a_TypeReference( ArrayTypeReference form, TypeReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R3801_ArrayTypeReference_is_a_TypeReference_extent.remove( R3801_ArrayTypeReference_is_a_TypeReference_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR3801_is_a_ArrayTypeReference(ArrayTypeReferenceImpl.EMPTY_ARRAYTYPEREFERENCE);
            form.setR3801_is_a_TypeReference(TypeReferenceImpl.EMPTY_TYPEREFERENCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R3801_BasicTypeReference_is_a_TypeReference( BasicTypeReference form, TypeReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R3801_BasicTypeReference_is_a_TypeReference_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR3801_is_a_BasicTypeReference(form);
            form.setR3801_is_a_TypeReference(part);
            form.setPackage( part.getType_package() );
            form.setName( part.getType_name() );
            form.setType_reference_name( part.getType_reference_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R3801_BasicTypeReference_is_a_TypeReference( BasicTypeReference form, TypeReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R3801_BasicTypeReference_is_a_TypeReference_extent.remove( R3801_BasicTypeReference_is_a_TypeReference_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR3801_is_a_BasicTypeReference(BasicTypeReferenceImpl.EMPTY_BASICTYPEREFERENCE);
            form.setR3801_is_a_TypeReference(TypeReferenceImpl.EMPTY_TYPEREFERENCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R3802_UserDefinedType_based_on_Type( UserDefinedType form, Type part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R3802_UserDefinedType_based_on_Type_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR3802_used_as_base_for_UserDefinedType(form);
            form.setR3802_based_on_Type(part);
            form.setBase_type_package( part.getPackage() );
            form.setBase_type_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R3802_UserDefinedType_based_on_Type( UserDefinedType form, Type part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R3802_UserDefinedType_based_on_Type_extent.remove( R3802_UserDefinedType_based_on_Type_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR3802_used_as_base_for_UserDefinedType(form);
            form.setR3802_based_on_Type(TypeImpl.EMPTY_TYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R3900_ArrayElementReference_has_root_Expression( ArrayElementReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R3900_ArrayElementReference_has_root_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR3900_is_root_for_ArrayElementReference(form);
            form.setR3900_has_root_Expression(part);
            form.setParent_name( part.getParent_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setRoot_expression_number( part.getExpression_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_package( part.getParent_package() );
            form.setBody_name( part.getBody_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R3900_ArrayElementReference_has_root_Expression( ArrayElementReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R3900_ArrayElementReference_has_root_Expression_extent.remove( R3900_ArrayElementReference_has_root_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR3900_is_root_for_ArrayElementReference(ArrayElementReferenceImpl.EMPTY_ARRAYELEMENTREFERENCE);
            form.setR3900_has_root_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R3901_ArrayElementReference_has_index_Expression( ArrayElementReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R3901_ArrayElementReference_has_index_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR3901_is_index_for_ArrayElementReference(form);
            form.setR3901_has_index_Expression(part);
            form.setParent_package( part.getParent_package() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_name( part.getParent_name() );
            form.setBody_name( part.getBody_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setIndex_expression_number( part.getExpression_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R3901_ArrayElementReference_has_index_Expression( ArrayElementReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R3901_ArrayElementReference_has_index_Expression_extent.remove( R3901_ArrayElementReference_has_index_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR3901_is_index_for_ArrayElementReference(ArrayElementReferenceImpl.EMPTY_ARRAYELEMENTREFERENCE);
            form.setR3901_has_index_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R3902_EventCreation_has_target_Expression( EventCreation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R3902_EventCreation_has_target_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR3902_EventCreation(form);
            form.setR3902_has_target_Expression(part);
            form.setBody_name( part.getBody_name() );
            form.setTarget_expression_number( part.getExpression_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_name( part.getParent_name() );
            form.setParent_package( part.getParent_package() );
            form.setStatement_number( part.getStatement_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R3902_EventCreation_has_target_Expression( EventCreation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R3902_EventCreation_has_target_Expression_extent.remove( R3902_EventCreation_has_target_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR3902_EventCreation(EventCreationImpl.EMPTY_EVENTCREATION);
            form.setR3902_has_target_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R3903_EventCreation_has_base_Expression( EventCreation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R3903_EventCreation_has_base_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR3903_EventCreation(form);
            form.setR3903_has_base_Expression(part);
            form.setBlock_number( part.getBlock_number() );
            form.setParent_package( part.getParent_package() );
            form.setStatement_number( part.getStatement_number() );
            form.setEvt_expression_number( part.getExpression_number() );
            form.setParent_name( part.getParent_name() );
            form.setBody_name( part.getBody_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R3903_EventCreation_has_base_Expression( EventCreation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R3903_EventCreation_has_base_Expression_extent.remove( R3903_EventCreation_has_base_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR3903_EventCreation(EventCreationImpl.EMPTY_EVENTCREATION);
            form.setR3903_has_base_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R3904_ActualParameter_FormalParameter( ActualParameter form, FormalParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R3904_ActualParameter_FormalParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR3904_ActualParameter(form);
            form.setR3904_FormalParameter(part);
            form.setInvoked_parent_package( part.getParent_package() );
            form.setInvoked_parent_name( part.getParent_name() );
            form.setParam_name( part.getName() );
            form.setInvoked_name( part.getInvocable_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R3904_ActualParameter_FormalParameter( ActualParameter form, FormalParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R3904_ActualParameter_FormalParameter_extent.remove( R3904_ActualParameter_FormalParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR3904_ActualParameter(form);
            form.setR3904_FormalParameter(FormalParameterImpl.EMPTY_FORMALPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R3905_ActualParameter_precedes_ActualParameter( ActualParameter form, ActualParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R3905_ActualParameter_precedes_ActualParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR3905_follows_ActualParameter(form);
            form.setR3905_precedes_ActualParameter(part);
            form.setBody_name( part.getBody_name() );
            form.setNext_expression_number( part.getExpression_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_name( part.getParent_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_package( part.getParent_package() );
            form.setInvocation_expression_number( part.getInvocation_expression_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R3905_ActualParameter_precedes_ActualParameter( ActualParameter form, ActualParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R3905_ActualParameter_precedes_ActualParameter_extent.remove( R3905_ActualParameter_precedes_ActualParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR3905_follows_ActualParameter(ActualParameterImpl.EMPTY_ACTUALPARAMETER);
            form.setR3905_precedes_ActualParameter(ActualParameterImpl.EMPTY_ACTUALPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R3906_Where_sorts_set_by_Attribute( Where form, Attribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R3906_Where_sorts_set_by_Attribute_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR3906_used_as_sort_field_for_Where(form);
            form.setR3906_sorts_set_by_Attribute(part);
            form.setAttr_class_package( part.getClass_package() );
            form.setAttr_class_name( part.getClass_name() );
            form.setAttr_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R3906_Where_sorts_set_by_Attribute( Where form, Attribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R3906_Where_sorts_set_by_Attribute_extent.remove( R3906_Where_sorts_set_by_Attribute_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR3906_used_as_sort_field_for_Where(form);
            form.setR3906_sorts_set_by_Attribute(AttributeImpl.EMPTY_ATTRIBUTE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R3907_Promotion_promotes_Expression( Promotion form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R3907_Promotion_promotes_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR3907_promoted_by_Promotion(form);
            form.setR3907_promotes_Expression(part);
            form.setBlock_number( part.getBlock_number() );
            form.setStatement_number( part.getStatement_number() );
            form.setInput_expression_number( part.getExpression_number() );
            form.setBody_name( part.getBody_name() );
            form.setParent_package( part.getParent_package() );
            form.setParent_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R3907_Promotion_promotes_Expression( Promotion form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R3907_Promotion_promotes_Expression_extent.remove( R3907_Promotion_promotes_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR3907_promoted_by_Promotion(PromotionImpl.EMPTY_PROMOTION);
            form.setR3907_promotes_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R3908_ArrayLengthAccess_has_root_Expression( ArrayLengthAccess form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R3908_ArrayLengthAccess_has_root_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR3908_is_root_for_ArrayLengthAccess(form);
            form.setR3908_has_root_Expression(part);
            form.setParent_package( part.getParent_package() );
            form.setBlock_number( part.getBlock_number() );
            form.setRoot_expression_number( part.getExpression_number() );
            form.setParent_name( part.getParent_name() );
            form.setBody_name( part.getBody_name() );
            form.setStatement_number( part.getStatement_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R3908_ArrayLengthAccess_has_root_Expression( ArrayLengthAccess form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R3908_ArrayLengthAccess_has_root_Expression_extent.remove( R3908_ArrayLengthAccess_has_root_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR3908_is_root_for_ArrayLengthAccess(ArrayLengthAccessImpl.EMPTY_ARRAYLENGTHACCESS);
            form.setR3908_has_root_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4000_CodeBlock_is_invoked_in_InvocableObject( CodeBlock form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4000_CodeBlock_is_invoked_in_InvocableObject_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4000_has_CodeBlock(form);
            form.setR4000_is_invoked_in_InvocableObject(part);
            form.setParent_package( part.getParent_package() );
            form.setBody_name( part.getName() );
            form.setParent_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4000_CodeBlock_is_invoked_in_InvocableObject( CodeBlock form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4000_CodeBlock_is_invoked_in_InvocableObject_extent.remove( R4000_CodeBlock_is_invoked_in_InvocableObject_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4000_has_CodeBlock(form);
            form.setR4000_is_invoked_in_InvocableObject(InvocableObjectImpl.EMPTY_INVOCABLEOBJECT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4002_Satisfaction_defines_required_satisfication_Requirement( Satisfaction form, Requirement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4002_Satisfaction_defines_required_satisfication_Requirement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4002_satisfies_Satisfaction(form);
            form.setR4002_defines_required_satisfication_Requirement(part);
            form.setRequirement_Id( part.getRequirement_Id() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4002_Satisfaction_defines_required_satisfication_Requirement( Satisfaction form, Requirement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4002_Satisfaction_defines_required_satisfication_Requirement_extent.remove( R4002_Satisfaction_defines_required_satisfication_Requirement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4002_satisfies_Satisfaction(form);
            form.setR4002_defines_required_satisfication_Requirement(RequirementImpl.EMPTY_REQUIREMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4002_Satisfaction_satisfies_Provision( Satisfaction form, Provision part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4002_Satisfaction_satisfies_Provision_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4002_defines_required_satisfication_Satisfaction(form);
            form.setR4002_satisfies_Provision(part);
            form.setProvision_Id( part.getProvision_Id() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4002_Satisfaction_satisfies_Provision( Satisfaction form, Provision part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4002_Satisfaction_satisfies_Provision_extent.remove( R4002_Satisfaction_satisfies_Provision_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4002_defines_required_satisfication_Satisfaction(form);
            form.setR4002_satisfies_Provision(ProvisionImpl.EMPTY_PROVISION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4003_ExecutableProperty_provides_signature_of_C_I( ExecutableProperty form, C_I part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4003_ExecutableProperty_provides_signature_of_C_I_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4003_is_defined_by_ExecutableProperty(form);
            form.setR4003_provides_signature_of_C_I(part);
            form.setInterface_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4003_ExecutableProperty_provides_signature_of_C_I( ExecutableProperty form, C_I part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4003_ExecutableProperty_provides_signature_of_C_I_extent.remove( R4003_ExecutableProperty_provides_signature_of_C_I_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4003_is_defined_by_ExecutableProperty(form);
            form.setR4003_provides_signature_of_C_I(C_IImpl.EMPTY_C_I);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4004_InterfaceOperation_is_a_ExecutableProperty( InterfaceOperation form, ExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4004_InterfaceOperation_is_a_ExecutableProperty_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4004_is_a_InterfaceOperation(form);
            form.setR4004_is_a_ExecutableProperty(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4004_InterfaceOperation_is_a_ExecutableProperty( InterfaceOperation form, ExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4004_InterfaceOperation_is_a_ExecutableProperty_extent.remove( R4004_InterfaceOperation_is_a_ExecutableProperty_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4004_is_a_InterfaceOperation(InterfaceOperationImpl.EMPTY_INTERFACEOPERATION);
            form.setR4004_is_a_ExecutableProperty(ExecutablePropertyImpl.EMPTY_EXECUTABLEPROPERTY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4004_InterfaceSignal_is_a_ExecutableProperty( InterfaceSignal form, ExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4004_InterfaceSignal_is_a_ExecutableProperty_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4004_is_a_InterfaceSignal(form);
            form.setR4004_is_a_ExecutableProperty(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4004_InterfaceSignal_is_a_ExecutableProperty( InterfaceSignal form, ExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4004_InterfaceSignal_is_a_ExecutableProperty_extent.remove( R4004_InterfaceSignal_is_a_ExecutableProperty_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4004_is_a_InterfaceSignal(InterfaceSignalImpl.EMPTY_INTERFACESIGNAL);
            form.setR4004_is_a_ExecutableProperty(ExecutablePropertyImpl.EMPTY_EXECUTABLEPROPERTY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4006_PropertyParameter_parameterizes_ExecutableProperty( PropertyParameter form, ExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4006_PropertyParameter_parameterizes_ExecutableProperty_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4006_is_parameter_to_PropertyParameter(form);
            form.setR4006_parameterizes_ExecutableProperty(part);
            form.setSignal_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4006_PropertyParameter_parameterizes_ExecutableProperty( PropertyParameter form, ExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4006_PropertyParameter_parameterizes_ExecutableProperty_extent.remove( R4006_PropertyParameter_parameterizes_ExecutableProperty_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4006_is_parameter_to_PropertyParameter(form);
            form.setR4006_parameterizes_ExecutableProperty(ExecutablePropertyImpl.EMPTY_EXECUTABLEPROPERTY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4007_PropertyParameter_is_typed_by_DataType( PropertyParameter form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4007_PropertyParameter_is_typed_by_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4007_Defines_the_type_PropertyParameter(form);
            form.setR4007_is_typed_by_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4007_PropertyParameter_is_typed_by_DataType( PropertyParameter form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4007_PropertyParameter_is_typed_by_DataType_extent.remove( R4007_PropertyParameter_is_typed_by_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4007_Defines_the_type_PropertyParameter(form);
            form.setR4007_is_typed_by_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4008_InterfaceOperation_has_return_defined_by_DataType( InterfaceOperation form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4008_InterfaceOperation_has_return_defined_by_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4008_defines_return_type_InterfaceOperation(form);
            form.setR4008_has_return_defined_by_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4008_InterfaceOperation_has_return_defined_by_DataType( InterfaceOperation form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4008_InterfaceOperation_has_return_defined_by_DataType_extent.remove( R4008_InterfaceOperation_has_return_defined_by_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4008_defines_return_type_InterfaceOperation(form);
            form.setR4008_has_return_defined_by_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4009_Provision_is_a_InterfaceReference( Provision form, InterfaceReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4009_Provision_is_a_InterfaceReference_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4009_is_a_Provision(form);
            form.setR4009_is_a_InterfaceReference(part);
            form.setProvision_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4009_Provision_is_a_InterfaceReference( Provision form, InterfaceReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4009_Provision_is_a_InterfaceReference_extent.remove( R4009_Provision_is_a_InterfaceReference_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4009_is_a_Provision(ProvisionImpl.EMPTY_PROVISION);
            form.setR4009_is_a_InterfaceReference(InterfaceReferenceImpl.EMPTY_INTERFACEREFERENCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4009_Requirement_is_a_InterfaceReference( Requirement form, InterfaceReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4009_Requirement_is_a_InterfaceReference_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4009_is_a_Requirement(form);
            form.setR4009_is_a_InterfaceReference(part);
            form.setRequirement_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4009_Requirement_is_a_InterfaceReference( Requirement form, InterfaceReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4009_Requirement_is_a_InterfaceReference_extent.remove( R4009_Requirement_is_a_InterfaceReference_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4009_is_a_Requirement(RequirementImpl.EMPTY_REQUIREMENT);
            form.setR4009_is_a_InterfaceReference(InterfaceReferenceImpl.EMPTY_INTERFACEREFERENCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4010_C_PO_appears_in_C_C( C_PO form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4010_C_PO_appears_in_C_C_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4010_communicates_through_C_PO(form);
            form.setR4010_appears_in_C_C(part);
            form.setComponent_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4010_C_PO_appears_in_C_C( C_PO form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4010_C_PO_appears_in_C_C_extent.remove( R4010_C_PO_appears_in_C_C_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4010_communicates_through_C_PO(form);
            form.setR4010_appears_in_C_C(C_CImpl.EMPTY_C_C);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4012_InterfaceReference_may_be_defined_by_C_I( InterfaceReference form, C_I part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4012_InterfaceReference_may_be_defined_by_C_I_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4012_is_formal_definition_InterfaceReference(form);
            form.setR4012_may_be_defined_by_C_I(part);
            form.setFormal_Interface_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4012_InterfaceReference_may_be_defined_by_C_I( InterfaceReference form, C_I part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4012_InterfaceReference_may_be_defined_by_C_I_extent.remove( R4012_InterfaceReference_may_be_defined_by_C_I_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4012_is_formal_definition_InterfaceReference(form);
            form.setR4012_may_be_defined_by_C_I(C_IImpl.EMPTY_C_I);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4013_InterfaceReferenceInDelegation_handles_delegation_for_InterfaceReference( InterfaceReferenceInDelegation form, InterfaceReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4013_InterfaceReferenceInDelegation_handles_delegation_for_InterfaceReference_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4013_may_delegate_through_InterfaceReferenceInDelegation(form);
            form.setR4013_handles_delegation_for_InterfaceReference(part);
            form.setReference_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4013_InterfaceReferenceInDelegation_handles_delegation_for_InterfaceReference( InterfaceReferenceInDelegation form, InterfaceReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4013_InterfaceReferenceInDelegation_handles_delegation_for_InterfaceReference_extent.remove( R4013_InterfaceReferenceInDelegation_handles_delegation_for_InterfaceReference_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4013_may_delegate_through_InterfaceReferenceInDelegation(form);
            form.setR4013_handles_delegation_for_InterfaceReference(InterfaceReferenceImpl.EMPTY_INTERFACEREFERENCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4013_InterfaceReferenceInDelegation_may_delegate_through_Delegation( InterfaceReferenceInDelegation form, Delegation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4013_InterfaceReferenceInDelegation_may_delegate_through_Delegation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4013_handles_delegation_for_InterfaceReferenceInDelegation(form);
            form.setR4013_may_delegate_through_Delegation(part);
            form.setDelegation_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4013_InterfaceReferenceInDelegation_may_delegate_through_Delegation( InterfaceReferenceInDelegation form, Delegation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4013_InterfaceReferenceInDelegation_may_delegate_through_Delegation_extent.remove( R4013_InterfaceReferenceInDelegation_may_delegate_through_Delegation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4013_handles_delegation_for_InterfaceReferenceInDelegation(form);
            form.setR4013_may_delegate_through_Delegation(DelegationImpl.EMPTY_DELEGATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4014_InterfaceReference_receives_delegation_via_Delegation( InterfaceReference form, Delegation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4014_InterfaceReference_receives_delegation_via_Delegation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4014_provides_delegation_to_InterfaceReference(form);
            form.setR4014_receives_delegation_via_Delegation(part);
            form.setDelegation_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4014_InterfaceReference_receives_delegation_via_Delegation( InterfaceReference form, Delegation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4014_InterfaceReference_receives_delegation_via_Delegation_extent.remove( R4014_InterfaceReference_receives_delegation_via_Delegation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4014_provides_delegation_to_InterfaceReference(form);
            form.setR4014_receives_delegation_via_Delegation(DelegationImpl.EMPTY_DELEGATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4016_InterfaceReference_originates_from_C_PO( InterfaceReference form, C_PO part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4016_InterfaceReference_originates_from_C_PO_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4016_exposes_InterfaceReference(form);
            form.setR4016_originates_from_C_PO(part);
            form.setPort_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4016_InterfaceReference_originates_from_C_PO( InterfaceReference form, C_PO part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4016_InterfaceReference_originates_from_C_PO_extent.remove( R4016_InterfaceReference_originates_from_C_PO_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4016_exposes_InterfaceReference(form);
            form.setR4016_originates_from_C_PO(C_POImpl.EMPTY_C_PO);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4017_Dimensions_specifies_occurrences_of_PropertyParameter( Dimensions form, PropertyParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4017_Dimensions_specifies_occurrences_of_PropertyParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4017_may_have_Dimensions(form);
            form.setR4017_specifies_occurrences_of_PropertyParameter(part);
            form.setPP_Id( part.getPP_Id() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4017_Dimensions_specifies_occurrences_of_PropertyParameter( Dimensions form, PropertyParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4017_Dimensions_specifies_occurrences_of_PropertyParameter_extent.remove( R4017_Dimensions_specifies_occurrences_of_PropertyParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4017_may_have_Dimensions(form);
            form.setR4017_specifies_occurrences_of_PropertyParameter(PropertyParameterImpl.EMPTY_PROPERTYPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4018_Dimensions_defines_return_value_dimensions_for__InterfaceOperation( Dimensions form, InterfaceOperation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4018_Dimensions_defines_return_value_dimensions_for__InterfaceOperation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4018_return_value_may_have_Dimensions(form);
            form.setR4018_defines_return_value_dimensions_for__InterfaceOperation(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4018_Dimensions_defines_return_value_dimensions_for__InterfaceOperation( Dimensions form, InterfaceOperation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4018_Dimensions_defines_return_value_dimensions_for__InterfaceOperation_extent.remove( R4018_Dimensions_defines_return_value_dimensions_for__InterfaceOperation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4018_return_value_may_have_Dimensions(form);
            form.setR4018_defines_return_value_dimensions_for__InterfaceOperation(InterfaceOperationImpl.EMPTY_INTERFACEOPERATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4019_InterfaceOperation_succeeds_InterfaceOperation( InterfaceOperation form, InterfaceOperation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4019_InterfaceOperation_succeeds_InterfaceOperation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4019_precedes_InterfaceOperation(form);
            form.setR4019_succeeds_InterfaceOperation(part);
            form.setPrevious_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4019_InterfaceOperation_succeeds_InterfaceOperation( InterfaceOperation form, InterfaceOperation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4019_InterfaceOperation_succeeds_InterfaceOperation_extent.remove( R4019_InterfaceOperation_succeeds_InterfaceOperation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4019_precedes_InterfaceOperation(InterfaceOperationImpl.EMPTY_INTERFACEOPERATION);
            form.setR4019_succeeds_InterfaceOperation(InterfaceOperationImpl.EMPTY_INTERFACEOPERATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R401_Application_is_a_File( Application form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R401_Application_is_a_File_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_Application(form);
            form.setR401_is_a_File(part);
            form.setPackage( part.getPackage() );
            form.setName( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R401_Application_is_a_File( Application form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R401_Application_is_a_File_extent.remove( R401_Application_is_a_File_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_Application(ApplicationImpl.EMPTY_APPLICATION);
            form.setR401_is_a_File(FileImpl.EMPTY_FILE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R401_ComponentDefinition_is_a_File( ComponentDefinition form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R401_ComponentDefinition_is_a_File_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_ComponentDefinition(form);
            form.setR401_is_a_File(part);
            form.setName( part.getName() );
            form.setPackage( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R401_ComponentDefinition_is_a_File( ComponentDefinition form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R401_ComponentDefinition_is_a_File_extent.remove( R401_ComponentDefinition_is_a_File_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_ComponentDefinition(ComponentDefinitionImpl.EMPTY_COMPONENTDEFINITION);
            form.setR401_is_a_File(FileImpl.EMPTY_FILE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R401_EnumeratedType_is_a_File( EnumeratedType form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R401_EnumeratedType_is_a_File_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_EnumeratedType(form);
            form.setR401_is_a_File(part);
            form.setPackage( part.getPackage() );
            form.setName( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R401_EnumeratedType_is_a_File( EnumeratedType form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R401_EnumeratedType_is_a_File_extent.remove( R401_EnumeratedType_is_a_File_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_EnumeratedType(EnumeratedTypeImpl.EMPTY_ENUMERATEDTYPE);
            form.setR401_is_a_File(FileImpl.EMPTY_FILE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R401_GeneralFile_is_a_File( GeneralFile form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R401_GeneralFile_is_a_File_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_GeneralFile(form);
            form.setR401_is_a_File(part);
            form.setPackage( part.getPackage() );
            form.setName( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R401_GeneralFile_is_a_File( GeneralFile form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R401_GeneralFile_is_a_File_extent.remove( R401_GeneralFile_is_a_File_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_GeneralFile(GeneralFileImpl.EMPTY_GENERALFILE);
            form.setR401_is_a_File(FileImpl.EMPTY_FILE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R401_Iface_is_a_File( Iface form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R401_Iface_is_a_File_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_Iface(form);
            form.setR401_is_a_File(part);
            form.setPackage( part.getPackage() );
            form.setName( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R401_Iface_is_a_File( Iface form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R401_Iface_is_a_File_extent.remove( R401_Iface_is_a_File_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_Iface(IfaceImpl.EMPTY_IFACE);
            form.setR401_is_a_File(FileImpl.EMPTY_FILE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R401_InstSet_is_a_File( InstSet form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R401_InstSet_is_a_File_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_InstSet(form);
            form.setR401_is_a_File(part);
            form.setPackage( part.getPackage() );
            form.setName( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R401_InstSet_is_a_File( InstSet form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R401_InstSet_is_a_File_extent.remove( R401_InstSet_is_a_File_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_InstSet(InstSetImpl.EMPTY_INSTSET);
            form.setR401_is_a_File(FileImpl.EMPTY_FILE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R401_ModelInst_is_a_File( ModelInst form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R401_ModelInst_is_a_File_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_ModelInst(form);
            form.setR401_is_a_File(part);
            form.setName( part.getName() );
            form.setPackage( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R401_ModelInst_is_a_File( ModelInst form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R401_ModelInst_is_a_File_extent.remove( R401_ModelInst_is_a_File_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_ModelInst(ModelInstImpl.EMPTY_MODELINST);
            form.setR401_is_a_File(FileImpl.EMPTY_FILE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R401_Port_is_a_File( Port form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R401_Port_is_a_File_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_Port(form);
            form.setR401_is_a_File(part);
            form.setPackage( part.getPackage() );
            form.setName( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R401_Port_is_a_File( Port form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R401_Port_is_a_File_extent.remove( R401_Port_is_a_File_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_Port(PortImpl.EMPTY_PORT);
            form.setR401_is_a_File(FileImpl.EMPTY_FILE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R401_StateMachine_is_a_File( StateMachine form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R401_StateMachine_is_a_File_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_StateMachine(form);
            form.setR401_is_a_File(part);
            form.setPackage( part.getPackage() );
            form.setName( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R401_StateMachine_is_a_File( StateMachine form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R401_StateMachine_is_a_File_extent.remove( R401_StateMachine_is_a_File_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_StateMachine(StateMachineImpl.EMPTY_STATEMACHINE);
            form.setR401_is_a_File(FileImpl.EMPTY_FILE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R401_UserDefinedType_is_a_File( UserDefinedType form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R401_UserDefinedType_is_a_File_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_UserDefinedType(form);
            form.setR401_is_a_File(part);
            form.setPackage( part.getPackage() );
            form.setName( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R401_UserDefinedType_is_a_File( UserDefinedType form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R401_UserDefinedType_is_a_File_extent.remove( R401_UserDefinedType_is_a_File_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_UserDefinedType(UserDefinedTypeImpl.EMPTY_USERDEFINEDTYPE);
            form.setR401_is_a_File(FileImpl.EMPTY_FILE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R401_Utility_is_a_File( Utility form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R401_Utility_is_a_File_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_Utility(form);
            form.setR401_is_a_File(part);
            form.setName( part.getName() );
            form.setPackage( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R401_Utility_is_a_File( Utility form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R401_Utility_is_a_File_extent.remove( R401_Utility_is_a_File_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR401_is_a_Utility(UtilityImpl.EMPTY_UTILITY);
            form.setR401_is_a_File(FileImpl.EMPTY_FILE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4020_InterfaceSignal_succeeds_InterfaceSignal( InterfaceSignal form, InterfaceSignal part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4020_InterfaceSignal_succeeds_InterfaceSignal_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4020_precedes_InterfaceSignal(form);
            form.setR4020_succeeds_InterfaceSignal(part);
            form.setPrevious_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4020_InterfaceSignal_succeeds_InterfaceSignal( InterfaceSignal form, InterfaceSignal part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4020_InterfaceSignal_succeeds_InterfaceSignal_extent.remove( R4020_InterfaceSignal_succeeds_InterfaceSignal_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4020_precedes_InterfaceSignal(InterfaceSignalImpl.EMPTY_INTERFACESIGNAL);
            form.setR4020_succeeds_InterfaceSignal(InterfaceSignalImpl.EMPTY_INTERFACESIGNAL);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4021_PropertyParameter_succeeds_PropertyParameter( PropertyParameter form, PropertyParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4021_PropertyParameter_succeeds_PropertyParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4021_precedes_PropertyParameter(form);
            form.setR4021_succeeds_PropertyParameter(part);
            form.setPrevious_PP_Id( part.getPP_Id() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4021_PropertyParameter_succeeds_PropertyParameter( PropertyParameter form, PropertyParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4021_PropertyParameter_succeeds_PropertyParameter_extent.remove( R4021_PropertyParameter_succeeds_PropertyParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4021_precedes_PropertyParameter(PropertyParameterImpl.EMPTY_PROPERTYPARAMETER);
            form.setR4021_succeeds_PropertyParameter(PropertyParameterImpl.EMPTY_PROPERTYPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4027_ApplicationExecutor_executes_tasks_for_Application( ApplicationExecutor form, Application part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4027_ApplicationExecutor_executes_tasks_for_Application_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4027_delegates_execution_to_ApplicationExecutor(form);
            form.setR4027_executes_tasks_for_Application(part);
            form.setApp_name( part.getName() );
            form.setApp_package( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4027_ApplicationExecutor_executes_tasks_for_Application( ApplicationExecutor form, Application part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4027_ApplicationExecutor_executes_tasks_for_Application_extent.remove( R4027_ApplicationExecutor_executes_tasks_for_Application_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4027_delegates_execution_to_ApplicationExecutor(form);
            form.setR4027_executes_tasks_for_Application(ApplicationImpl.EMPTY_APPLICATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4028_ComponentInstantiation_is_executed_by_ApplicationExecutor( ComponentInstantiation form, ApplicationExecutor part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4028_ComponentInstantiation_is_executed_by_ApplicationExecutor_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4028_provides_execution_context_for_ComponentInstantiation(form);
            form.setR4028_is_executed_by_ApplicationExecutor(part);
            form.setApp_package( part.getApp_package() );
            form.setExecutor_index( part.getIndex() );
            form.setApp_name( part.getApp_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4028_ComponentInstantiation_is_executed_by_ApplicationExecutor( ComponentInstantiation form, ApplicationExecutor part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4028_ComponentInstantiation_is_executed_by_ApplicationExecutor_extent.remove( R4028_ComponentInstantiation_is_executed_by_ApplicationExecutor_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4028_provides_execution_context_for_ComponentInstantiation(form);
            form.setR4028_is_executed_by_ApplicationExecutor(ApplicationExecutorImpl.EMPTY_APPLICATIONEXECUTOR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4029_ComponentInstantiation_precedes_ComponentInstantiation( ComponentInstantiation form, ComponentInstantiation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4029_ComponentInstantiation_precedes_ComponentInstantiation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4029_follows_ComponentInstantiation(form);
            form.setR4029_precedes_ComponentInstantiation(part);
            form.setApp_name( part.getApp_name() );
            form.setNext_comp_name( part.getComp_name() );
            form.setApp_package( part.getApp_package() );
            form.setNext_comp_package( part.getComp_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4029_ComponentInstantiation_precedes_ComponentInstantiation( ComponentInstantiation form, ComponentInstantiation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4029_ComponentInstantiation_precedes_ComponentInstantiation_extent.remove( R4029_ComponentInstantiation_precedes_ComponentInstantiation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4029_follows_ComponentInstantiation(ComponentInstantiationImpl.EMPTY_COMPONENTINSTANTIATION);
            form.setR4029_precedes_ComponentInstantiation(ComponentInstantiationImpl.EMPTY_COMPONENTINSTANTIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R402_TypeImportReference_imports_type_into_context_of_File( TypeImportReference form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R402_TypeImportReference_imports_type_into_context_of_File_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR402_imports_type_via_TypeImportReference(form);
            form.setR402_imports_type_into_context_of_File(part);
            form.setFile_package( part.getPackage() );
            form.setFile_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R402_TypeImportReference_imports_type_into_context_of_File( TypeImportReference form, File part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R402_TypeImportReference_imports_type_into_context_of_File_extent.remove( R402_TypeImportReference_imports_type_into_context_of_File_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR402_imports_type_via_TypeImportReference(form);
            form.setR402_imports_type_into_context_of_File(FileImpl.EMPTY_FILE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R402_TypeImportReference_imports_type_via_TypeImport( TypeImportReference form, TypeImport part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R402_TypeImportReference_imports_type_via_TypeImport_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR402_imports_type_into_context_of_TypeImportReference(form);
            form.setR402_imports_type_via_TypeImport(part);
            form.setFully_qualified_name( part.getFully_qualified_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R402_TypeImportReference_imports_type_via_TypeImport( TypeImportReference form, TypeImport part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R402_TypeImportReference_imports_type_via_TypeImport_extent.remove( R402_TypeImportReference_imports_type_via_TypeImport_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR402_imports_type_into_context_of_TypeImportReference(form);
            form.setR402_imports_type_via_TypeImport(TypeImportImpl.EMPTY_TYPEIMPORT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R404_FormalParameter_precedes_FormalParameter( FormalParameter form, FormalParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R404_FormalParameter_precedes_FormalParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR404_follows_FormalParameter(form);
            form.setR404_precedes_FormalParameter(part);
            form.setNext_name( part.getName() );
            form.setParent_name( part.getParent_name() );
            form.setParent_package( part.getParent_package() );
            form.setInvocable_name( part.getInvocable_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R404_FormalParameter_precedes_FormalParameter( FormalParameter form, FormalParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R404_FormalParameter_precedes_FormalParameter_extent.remove( R404_FormalParameter_precedes_FormalParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR404_follows_FormalParameter(FormalParameterImpl.EMPTY_FORMALPARAMETER);
            form.setR404_precedes_FormalParameter(FormalParameterImpl.EMPTY_FORMALPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R405_Function_can_execute_synchronously_within_ComponentDefinition( Function form, ComponentDefinition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R405_Function_can_execute_synchronously_within_ComponentDefinition_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR405_provides_synchronous_Function(form);
            form.setR405_can_execute_synchronously_within_ComponentDefinition(part);
            form.setComp_name( part.getName() );
            form.setComp_package( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R405_Function_can_execute_synchronously_within_ComponentDefinition( Function form, ComponentDefinition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R405_Function_can_execute_synchronously_within_ComponentDefinition_extent.remove( R405_Function_can_execute_synchronously_within_ComponentDefinition_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR405_provides_synchronous_Function(form);
            form.setR405_can_execute_synchronously_within_ComponentDefinition(ComponentDefinitionImpl.EMPTY_COMPONENTDEFINITION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R406_InstSet_defines_set_with_elements_of_type_ModelInst( InstSet form, ModelInst part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R406_InstSet_defines_set_with_elements_of_type_ModelInst_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR406_is_type_of_single_element_in_InstSet(form);
            form.setR406_defines_set_with_elements_of_type_ModelInst(part);
            form.setComp_package( part.getComp_package() );
            form.setClass_package( part.getPackage() );
            form.setClass_name( part.getName() );
            form.setComp_name( part.getComp_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R406_InstSet_defines_set_with_elements_of_type_ModelInst( InstSet form, ModelInst part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R406_InstSet_defines_set_with_elements_of_type_ModelInst_extent.remove( R406_InstSet_defines_set_with_elements_of_type_ModelInst_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR406_is_type_of_single_element_in_InstSet(InstSetImpl.EMPTY_INSTSET);
            form.setR406_defines_set_with_elements_of_type_ModelInst(ModelInstImpl.EMPTY_MODELINST);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R407_BuiltInType_is_a_Type( BuiltInType form, Type part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R407_BuiltInType_is_a_Type_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR407_is_a_BuiltInType(form);
            form.setR407_is_a_Type(part);
            form.setPackage( part.getPackage() );
            form.setName( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R407_BuiltInType_is_a_Type( BuiltInType form, Type part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R407_BuiltInType_is_a_Type_extent.remove( R407_BuiltInType_is_a_Type_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR407_is_a_BuiltInType(BuiltInTypeImpl.EMPTY_BUILTINTYPE);
            form.setR407_is_a_Type(TypeImpl.EMPTY_TYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R407_EnumeratedType_is_a_Type( EnumeratedType form, Type part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R407_EnumeratedType_is_a_Type_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR407_is_a_EnumeratedType(form);
            form.setR407_is_a_Type(part);
            form.setPackage( part.getPackage() );
            form.setName( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R407_EnumeratedType_is_a_Type( EnumeratedType form, Type part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R407_EnumeratedType_is_a_Type_extent.remove( R407_EnumeratedType_is_a_Type_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR407_is_a_EnumeratedType(EnumeratedTypeImpl.EMPTY_ENUMERATEDTYPE);
            form.setR407_is_a_Type(TypeImpl.EMPTY_TYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R407_InstSet_is_a_Type( InstSet form, Type part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R407_InstSet_is_a_Type_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR407_is_a_InstSet(form);
            form.setR407_is_a_Type(part);
            form.setPackage( part.getPackage() );
            form.setName( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R407_InstSet_is_a_Type( InstSet form, Type part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R407_InstSet_is_a_Type_extent.remove( R407_InstSet_is_a_Type_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR407_is_a_InstSet(InstSetImpl.EMPTY_INSTSET);
            form.setR407_is_a_Type(TypeImpl.EMPTY_TYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R407_ModelInst_is_a_Type( ModelInst form, Type part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R407_ModelInst_is_a_Type_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR407_is_a_ModelInst(form);
            form.setR407_is_a_Type(part);
            form.setName( part.getName() );
            form.setPackage( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R407_ModelInst_is_a_Type( ModelInst form, Type part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R407_ModelInst_is_a_Type_extent.remove( R407_ModelInst_is_a_Type_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR407_is_a_ModelInst(ModelInstImpl.EMPTY_MODELINST);
            form.setR407_is_a_Type(TypeImpl.EMPTY_TYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R407_UnresolvedType_is_a_Type( UnresolvedType form, Type part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R407_UnresolvedType_is_a_Type_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR407_is_a_UnresolvedType(form);
            form.setR407_is_a_Type(part);
            form.setPackage( part.getPackage() );
            form.setName( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R407_UnresolvedType_is_a_Type( UnresolvedType form, Type part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R407_UnresolvedType_is_a_Type_extent.remove( R407_UnresolvedType_is_a_Type_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR407_is_a_UnresolvedType(UnresolvedTypeImpl.EMPTY_UNRESOLVEDTYPE);
            form.setR407_is_a_Type(TypeImpl.EMPTY_TYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R407_UserDefinedType_is_a_Type( UserDefinedType form, Type part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R407_UserDefinedType_is_a_Type_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR407_is_a_UserDefinedType(form);
            form.setR407_is_a_Type(part);
            form.setName( part.getName() );
            form.setPackage( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R407_UserDefinedType_is_a_Type( UserDefinedType form, Type part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R407_UserDefinedType_is_a_Type_extent.remove( R407_UserDefinedType_is_a_Type_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR407_is_a_UserDefinedType(UserDefinedTypeImpl.EMPTY_USERDEFINEDTYPE);
            form.setR407_is_a_Type(TypeImpl.EMPTY_TYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R408_ModelInst_forms_instance_population_of_ComponentDefinition( ModelInst form, ComponentDefinition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R408_ModelInst_forms_instance_population_of_ComponentDefinition_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR408_maintains_instances_of_ModelInst(form);
            form.setR408_forms_instance_population_of_ComponentDefinition(part);
            form.setComp_package( part.getPackage() );
            form.setComp_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R408_ModelInst_forms_instance_population_of_ComponentDefinition( ModelInst form, ComponentDefinition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R408_ModelInst_forms_instance_population_of_ComponentDefinition_extent.remove( R408_ModelInst_forms_instance_population_of_ComponentDefinition_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR408_maintains_instances_of_ModelInst(form);
            form.setR408_forms_instance_population_of_ComponentDefinition(ComponentDefinitionImpl.EMPTY_COMPONENTDEFINITION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R409_ModelInst_ModelClass( ModelInst form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R409_ModelInst_ModelClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR409_ModelInst(form);
            form.setR409_ModelClass(part);
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R409_ModelInst_ModelClass( ModelInst form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R409_ModelInst_ModelClass_extent.remove( R409_ModelInst_ModelClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR409_ModelInst(ModelInstImpl.EMPTY_MODELINST);
            form.setR409_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R410_Attribute_abstracts_data_for_ModelInst( Attribute form, ModelInst part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R410_Attribute_abstracts_data_for_ModelInst_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR410_data_abstracted_by_Attribute(form);
            form.setR410_abstracts_data_for_ModelInst(part);
            form.setComp_name( part.getComp_name() );
            form.setClass_name( part.getName() );
            form.setComp_package( part.getComp_package() );
            form.setClass_package( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R410_Attribute_abstracts_data_for_ModelInst( Attribute form, ModelInst part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R410_Attribute_abstracts_data_for_ModelInst_extent.remove( R410_Attribute_abstracts_data_for_ModelInst_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR410_data_abstracted_by_Attribute(form);
            form.setR410_abstracts_data_for_ModelInst(ModelInstImpl.EMPTY_MODELINST);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R414_O_ATTR_Attribute( O_ATTR form, Attribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R414_O_ATTR_Attribute_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR414_O_ATTR(form);
            form.setR414_Attribute(part);
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R414_O_ATTR_Attribute( O_ATTR form, Attribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R414_O_ATTR_Attribute_extent.remove( R414_O_ATTR_Attribute_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR414_O_ATTR(O_ATTRImpl.EMPTY_O_ATTR);
            form.setR414_Attribute(AttributeImpl.EMPTY_ATTRIBUTE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R415_Enumerator_is_unique_value_of_EnumeratedType( Enumerator form, EnumeratedType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R415_Enumerator_is_unique_value_of_EnumeratedType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR415_declares_Enumerator(form);
            form.setR415_is_unique_value_of_EnumeratedType(part);
            form.setType_name( part.getName() );
            form.setType_package( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R415_Enumerator_is_unique_value_of_EnumeratedType( Enumerator form, EnumeratedType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R415_Enumerator_is_unique_value_of_EnumeratedType_extent.remove( R415_Enumerator_is_unique_value_of_EnumeratedType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR415_declares_Enumerator(form);
            form.setR415_is_unique_value_of_EnumeratedType(EnumeratedTypeImpl.EMPTY_ENUMERATEDTYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4160_Port_satisfies_provided_Port( Port form, Port part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4160_Port_satisfies_provided_Port_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4160_satisfies_required_Port(form);
            form.setR4160_satisfies_provided_Port(part);
            form.setProvider_port_name( part.getName() );
            form.setProvider_port_package( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4160_Port_satisfies_provided_Port( Port form, Port part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4160_Port_satisfies_provided_Port_extent.remove( R4160_Port_satisfies_provided_Port_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4160_satisfies_required_Port(PortImpl.EMPTY_PORT);
            form.setR4160_satisfies_provided_Port(PortImpl.EMPTY_PORT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R416_Operation_provided_by_ModelInst( Operation form, ModelInst part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R416_Operation_provided_by_ModelInst_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR416_provides_Operation(form);
            form.setR416_provided_by_ModelInst(part);
            form.setComp_name( part.getComp_name() );
            form.setClass_name( part.getName() );
            form.setComp_package( part.getComp_package() );
            form.setClass_package( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R416_Operation_provided_by_ModelInst( Operation form, ModelInst part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R416_Operation_provided_by_ModelInst_extent.remove( R416_Operation_provided_by_ModelInst_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR416_provides_Operation(form);
            form.setR416_provided_by_ModelInst(ModelInstImpl.EMPTY_MODELINST);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R417_Port_passes_messages_for_ComponentDefinition( Port form, ComponentDefinition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R417_Port_passes_messages_for_ComponentDefinition_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR417_communicates_through_Port(form);
            form.setR417_passes_messages_for_ComponentDefinition(part);
            form.setComp_name( part.getName() );
            form.setComp_package( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R417_Port_passes_messages_for_ComponentDefinition( Port form, ComponentDefinition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R417_Port_passes_messages_for_ComponentDefinition_extent.remove( R417_Port_passes_messages_for_ComponentDefinition_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR417_communicates_through_Port(form);
            form.setR417_passes_messages_for_ComponentDefinition(ComponentDefinitionImpl.EMPTY_COMPONENTDEFINITION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R418_Port_implements_Iface( Port form, Iface part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R418_Port_implements_Iface_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR418_is_implemented_by_Port(form);
            form.setR418_implements_Iface(part);
            form.setIface_name( part.getName() );
            form.setIface_package( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R418_Port_implements_Iface( Port form, Iface part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R418_Port_implements_Iface_extent.remove( R418_Port_implements_Iface_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR418_is_implemented_by_Port(form);
            form.setR418_implements_Iface(IfaceImpl.EMPTY_IFACE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R419_Message_defines_message_format_for_Iface( Message form, Iface part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R419_Message_defines_message_format_for_Iface_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR419_defines_communication_through_Message(form);
            form.setR419_defines_message_format_for_Iface(part);
            form.setIface_name( part.getName() );
            form.setIface_package( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R419_Message_defines_message_format_for_Iface( Message form, Iface part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R419_Message_defines_message_format_for_Iface_extent.remove( R419_Message_defines_message_format_for_Iface_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR419_defines_communication_through_Message(form);
            form.setR419_defines_message_format_for_Iface(IfaceImpl.EMPTY_IFACE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4201_ComponentReference_represents_C_C( ComponentReference form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4201_ComponentReference_represents_C_C_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4201_is_represented_by_ComponentReference(form);
            form.setR4201_represents_C_C(part);
            form.setAssignedComp_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4201_ComponentReference_represents_C_C( ComponentReference form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4201_ComponentReference_represents_C_C_extent.remove( R4201_ComponentReference_represents_C_C_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4201_is_represented_by_ComponentReference(form);
            form.setR4201_represents_C_C(C_CImpl.EMPTY_C_C);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4205_ComponentReference_nested_in_C_C( ComponentReference form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4205_ComponentReference_nested_in_C_C_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4205_nests_ComponentReference(form);
            form.setR4205_nested_in_C_C(part);
            form.setParentComp_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4205_ComponentReference_nested_in_C_C( ComponentReference form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4205_ComponentReference_nested_in_C_C_extent.remove( R4205_ComponentReference_nested_in_C_C_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4205_nests_ComponentReference(form);
            form.setR4205_nested_in_C_C(C_CImpl.EMPTY_C_C);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R420_PortMessage_is_implemented_within_Port( PortMessage form, Port part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R420_PortMessage_is_implemented_within_Port_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR420_provides_implementation_for_PortMessage(form);
            form.setR420_is_implemented_within_Port(part);
            form.setPort_name( part.getName() );
            form.setPort_package( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R420_PortMessage_is_implemented_within_Port( PortMessage form, Port part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R420_PortMessage_is_implemented_within_Port_extent.remove( R420_PortMessage_is_implemented_within_Port_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR420_provides_implementation_for_PortMessage(form);
            form.setR420_is_implemented_within_Port(PortImpl.EMPTY_PORT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R420_PortMessage_provides_implementation_for_Message( PortMessage form, Message part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R420_PortMessage_provides_implementation_for_Message_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR420_is_implemented_within_PortMessage(form);
            form.setR420_provides_implementation_for_Message(part);
            form.setIface_name( part.getIface_name() );
            form.setIface_package( part.getIface_package() );
            form.setMsg_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R420_PortMessage_provides_implementation_for_Message( PortMessage form, Message part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R420_PortMessage_provides_implementation_for_Message_extent.remove( R420_PortMessage_provides_implementation_for_Message_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR420_is_implemented_within_PortMessage(form);
            form.setR420_provides_implementation_for_Message(MessageImpl.EMPTY_MESSAGE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R421_Iface_C_I( Iface form, C_I part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R421_Iface_C_I_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR421_Iface(form);
            form.setR421_C_I(part);
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R421_Iface_C_I( Iface form, C_I part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R421_Iface_C_I_extent.remove( R421_Iface_C_I_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR421_Iface(IfaceImpl.EMPTY_IFACE);
            form.setR421_C_I(C_IImpl.EMPTY_C_I);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R422_Port_C_PO( Port form, C_PO part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R422_Port_C_PO_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR422_Port(form);
            form.setR422_C_PO(part);
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R422_Port_C_PO( Port form, C_PO part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R422_Port_C_PO_extent.remove( R422_Port_C_PO_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR422_Port(PortImpl.EMPTY_PORT);
            form.setR422_C_PO(C_POImpl.EMPTY_C_PO);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R423_Type_DataType( Type form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R423_Type_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR423_Type(form);
            form.setR423_DataType(part);
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R423_Type_DataType( Type form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R423_Type_DataType_extent.remove( R423_Type_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR423_Type(TypeImpl.EMPTY_TYPE);
            form.setR423_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R424_Attribute_is_typed_by_TypeReference( Attribute form, TypeReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R424_Attribute_is_typed_by_TypeReference_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR424_defines_type_for_Attribute(form);
            form.setR424_is_typed_by_TypeReference(part);
            form.setType_reference_name( part.getType_reference_name() );
            form.setType_name( part.getType_name() );
            form.setType_package( part.getType_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R424_Attribute_is_typed_by_TypeReference( Attribute form, TypeReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R424_Attribute_is_typed_by_TypeReference_extent.remove( R424_Attribute_is_typed_by_TypeReference_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR424_defines_type_for_Attribute(form);
            form.setR424_is_typed_by_TypeReference(TypeReferenceImpl.EMPTY_TYPEREFERENCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R426_ComponentInstantiation_is_broken_into_ComponentDefinition( ComponentInstantiation form, ComponentDefinition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R426_ComponentInstantiation_is_broken_into_ComponentDefinition_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR426_is_instantiated_by_ComponentInstantiation(form);
            form.setR426_is_broken_into_ComponentDefinition(part);
            form.setComp_name( part.getName() );
            form.setComp_package( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R426_ComponentInstantiation_is_broken_into_ComponentDefinition( ComponentInstantiation form, ComponentDefinition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R426_ComponentInstantiation_is_broken_into_ComponentDefinition_extent.remove( R426_ComponentInstantiation_is_broken_into_ComponentDefinition_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR426_is_instantiated_by_ComponentInstantiation(form);
            form.setR426_is_broken_into_ComponentDefinition(ComponentDefinitionImpl.EMPTY_COMPONENTDEFINITION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R426_ComponentInstantiation_is_instantiated_by_Application( ComponentInstantiation form, Application part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R426_ComponentInstantiation_is_instantiated_by_Application_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR426_is_broken_into_ComponentInstantiation(form);
            form.setR426_is_instantiated_by_Application(part);
            form.setApp_package( part.getPackage() );
            form.setApp_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R426_ComponentInstantiation_is_instantiated_by_Application( ComponentInstantiation form, Application part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R426_ComponentInstantiation_is_instantiated_by_Application_extent.remove( R426_ComponentInstantiation_is_instantiated_by_Application_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR426_is_broken_into_ComponentInstantiation(form);
            form.setR426_is_instantiated_by_Application(ApplicationImpl.EMPTY_APPLICATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R427_AttributeDerivation_is_a_InvocableObject( AttributeDerivation form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R427_AttributeDerivation_is_a_InvocableObject_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR427_is_a_AttributeDerivation(form);
            form.setR427_is_a_InvocableObject(part);
            form.setClass_name( part.getParent_name() );
            form.setClass_package( part.getParent_package() );
            form.setAttribute_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R427_AttributeDerivation_is_a_InvocableObject( AttributeDerivation form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R427_AttributeDerivation_is_a_InvocableObject_extent.remove( R427_AttributeDerivation_is_a_InvocableObject_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR427_is_a_AttributeDerivation(AttributeDerivationImpl.EMPTY_ATTRIBUTEDERIVATION);
            form.setR427_is_a_InvocableObject(InvocableObjectImpl.EMPTY_INVOCABLEOBJECT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R427_Event_is_a_InvocableObject( Event form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R427_Event_is_a_InvocableObject_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR427_is_a_Event(form);
            form.setR427_is_a_InvocableObject(part);
            form.setSm_name( part.getParent_name() );
            form.setName( part.getName() );
            form.setSm_package( part.getParent_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R427_Event_is_a_InvocableObject( Event form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R427_Event_is_a_InvocableObject_extent.remove( R427_Event_is_a_InvocableObject_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR427_is_a_Event(EventImpl.EMPTY_EVENT);
            form.setR427_is_a_InvocableObject(InvocableObjectImpl.EMPTY_INVOCABLEOBJECT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R427_Function_is_a_InvocableObject( Function form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R427_Function_is_a_InvocableObject_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR427_is_a_Function(form);
            form.setR427_is_a_InvocableObject(part);
            form.setComp_package( part.getParent_package() );
            form.setName( part.getName() );
            form.setComp_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R427_Function_is_a_InvocableObject( Function form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R427_Function_is_a_InvocableObject_extent.remove( R427_Function_is_a_InvocableObject_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR427_is_a_Function(FunctionImpl.EMPTY_FUNCTION);
            form.setR427_is_a_InvocableObject(InvocableObjectImpl.EMPTY_INVOCABLEOBJECT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R427_GenericInvocable_is_a_InvocableObject( GenericInvocable form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R427_GenericInvocable_is_a_InvocableObject_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR427_is_a_GenericInvocable(form);
            form.setR427_is_a_InvocableObject(part);
            form.setParent_package( part.getParent_package() );
            form.setName( part.getName() );
            form.setParent_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R427_GenericInvocable_is_a_InvocableObject( GenericInvocable form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R427_GenericInvocable_is_a_InvocableObject_extent.remove( R427_GenericInvocable_is_a_InvocableObject_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR427_is_a_GenericInvocable(GenericInvocableImpl.EMPTY_GENERICINVOCABLE);
            form.setR427_is_a_InvocableObject(InvocableObjectImpl.EMPTY_INVOCABLEOBJECT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R427_Operation_is_a_InvocableObject( Operation form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R427_Operation_is_a_InvocableObject_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR427_is_a_Operation(form);
            form.setR427_is_a_InvocableObject(part);
            form.setName( part.getName() );
            form.setClass_package( part.getParent_package() );
            form.setClass_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R427_Operation_is_a_InvocableObject( Operation form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R427_Operation_is_a_InvocableObject_extent.remove( R427_Operation_is_a_InvocableObject_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR427_is_a_Operation(OperationImpl.EMPTY_OPERATION);
            form.setR427_is_a_InvocableObject(InvocableObjectImpl.EMPTY_INVOCABLEOBJECT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R427_PortMessage_is_a_InvocableObject( PortMessage form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R427_PortMessage_is_a_InvocableObject_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR427_is_a_PortMessage(form);
            form.setR427_is_a_InvocableObject(part);
            form.setPort_name( part.getParent_name() );
            form.setMsg_name( part.getName() );
            form.setPort_package( part.getParent_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R427_PortMessage_is_a_InvocableObject( PortMessage form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R427_PortMessage_is_a_InvocableObject_extent.remove( R427_PortMessage_is_a_InvocableObject_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR427_is_a_PortMessage(PortMessageImpl.EMPTY_PORTMESSAGE);
            form.setR427_is_a_InvocableObject(InvocableObjectImpl.EMPTY_INVOCABLEOBJECT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R427_StateTransition_is_a_InvocableObject( StateTransition form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R427_StateTransition_is_a_InvocableObject_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR427_is_a_StateTransition(form);
            form.setR427_is_a_InvocableObject(part);
            form.setSm_name( part.getParent_name() );
            form.setSm_package( part.getParent_package() );
            form.setName( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R427_StateTransition_is_a_InvocableObject( StateTransition form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R427_StateTransition_is_a_InvocableObject_extent.remove( R427_StateTransition_is_a_InvocableObject_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR427_is_a_StateTransition(StateTransitionImpl.EMPTY_STATETRANSITION);
            form.setR427_is_a_InvocableObject(InvocableObjectImpl.EMPTY_INVOCABLEOBJECT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R427_State_is_a_InvocableObject( State form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R427_State_is_a_InvocableObject_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR427_is_a_State(form);
            form.setR427_is_a_InvocableObject(part);
            form.setSm_package( part.getParent_package() );
            form.setName( part.getName() );
            form.setSm_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R427_State_is_a_InvocableObject( State form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R427_State_is_a_InvocableObject_extent.remove( R427_State_is_a_InvocableObject_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR427_is_a_State(StateImpl.EMPTY_STATE);
            form.setR427_is_a_InvocableObject(InvocableObjectImpl.EMPTY_INVOCABLEOBJECT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R427_UtilityFunction_is_a_InvocableObject( UtilityFunction form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R427_UtilityFunction_is_a_InvocableObject_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR427_is_a_UtilityFunction(form);
            form.setR427_is_a_InvocableObject(part);
            form.setUtility_package( part.getParent_package() );
            form.setUtility_name( part.getParent_name() );
            form.setName( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R427_UtilityFunction_is_a_InvocableObject( UtilityFunction form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R427_UtilityFunction_is_a_InvocableObject_extent.remove( R427_UtilityFunction_is_a_InvocableObject_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR427_is_a_UtilityFunction(UtilityFunctionImpl.EMPTY_UTILITYFUNCTION);
            form.setR427_is_a_InvocableObject(InvocableObjectImpl.EMPTY_INVOCABLEOBJECT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R428_InvocableObject_return_value_is_typed_by_TypeReference( InvocableObject form, TypeReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R428_InvocableObject_return_value_is_typed_by_TypeReference_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR428_defines_return_type_for_InvocableObject(form);
            form.setR428_return_value_is_typed_by_TypeReference(part);
            form.setType_reference_name( part.getType_reference_name() );
            form.setType_name( part.getType_name() );
            form.setType_package( part.getType_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R428_InvocableObject_return_value_is_typed_by_TypeReference( InvocableObject form, TypeReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R428_InvocableObject_return_value_is_typed_by_TypeReference_extent.remove( R428_InvocableObject_return_value_is_typed_by_TypeReference_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR428_defines_return_type_for_InvocableObject(form);
            form.setR428_return_value_is_typed_by_TypeReference(TypeReferenceImpl.EMPTY_TYPEREFERENCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R429_FormalParameter_shapes_data_for_InvocableObject( FormalParameter form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R429_FormalParameter_shapes_data_for_InvocableObject_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR429_declares_signature_with_FormalParameter(form);
            form.setR429_shapes_data_for_InvocableObject(part);
            form.setParent_package( part.getParent_package() );
            form.setInvocable_name( part.getName() );
            form.setParent_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R429_FormalParameter_shapes_data_for_InvocableObject( FormalParameter form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R429_FormalParameter_shapes_data_for_InvocableObject_extent.remove( R429_FormalParameter_shapes_data_for_InvocableObject_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR429_declares_signature_with_FormalParameter(form);
            form.setR429_shapes_data_for_InvocableObject(InvocableObjectImpl.EMPTY_INVOCABLEOBJECT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R431_FormalParameter_is_typed_by_TypeReference( FormalParameter form, TypeReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R431_FormalParameter_is_typed_by_TypeReference_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR431_defines_type_for_FormalParameter(form);
            form.setR431_is_typed_by_TypeReference(part);
            form.setType_reference_name( part.getType_reference_name() );
            form.setType_name( part.getType_name() );
            form.setType_package( part.getType_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R431_FormalParameter_is_typed_by_TypeReference( FormalParameter form, TypeReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R431_FormalParameter_is_typed_by_TypeReference_extent.remove( R431_FormalParameter_is_typed_by_TypeReference_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR431_defines_type_for_FormalParameter(form);
            form.setR431_is_typed_by_TypeReference(TypeReferenceImpl.EMPTY_TYPEREFERENCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R432_InvocableObject_Body( InvocableObject form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R432_InvocableObject_Body_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR432_InvocableObject(form);
            form.setR432_Body(part);
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R432_InvocableObject_Body( InvocableObject form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R432_InvocableObject_Body_extent.remove( R432_InvocableObject_Body_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR432_InvocableObject(InvocableObjectImpl.EMPTY_INVOCABLEOBJECT);
            form.setR432_Body(BodyImpl.EMPTY_BODY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R434_ClassRelationship_has_participating_ModelInst( ClassRelationship form, ModelInst part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R434_ClassRelationship_has_participating_ModelInst_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR434_participates_in_ClassRelationship(form);
            form.setR434_has_participating_ModelInst(part);
            form.setPart_package( part.getPackage() );
            form.setPart_name( part.getName() );
            form.setComp_name( part.getComp_name() );
            form.setComp_package( part.getComp_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R434_ClassRelationship_has_participating_ModelInst( ClassRelationship form, ModelInst part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R434_ClassRelationship_has_participating_ModelInst_extent.remove( R434_ClassRelationship_has_participating_ModelInst_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR434_participates_in_ClassRelationship(form);
            form.setR434_has_participating_ModelInst(ModelInstImpl.EMPTY_MODELINST);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R435_ClassRelationship_has_formalizing_ModelInst( ClassRelationship form, ModelInst part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R435_ClassRelationship_has_formalizing_ModelInst_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR435_formalizes_ClassRelationship(form);
            form.setR435_has_formalizing_ModelInst(part);
            form.setForm_name( part.getName() );
            form.setComp_package( part.getComp_package() );
            form.setComp_name( part.getComp_name() );
            form.setForm_package( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R435_ClassRelationship_has_formalizing_ModelInst( ClassRelationship form, ModelInst part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R435_ClassRelationship_has_formalizing_ModelInst_extent.remove( R435_ClassRelationship_has_formalizing_ModelInst_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR435_formalizes_ClassRelationship(form);
            form.setR435_has_formalizing_ModelInst(ModelInstImpl.EMPTY_MODELINST);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R436_ClassRelationship_is_other_half_of_associative_ClassRelationship( ClassRelationship form, ClassRelationship part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R436_ClassRelationship_is_other_half_of_associative_ClassRelationship_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR436_is_one_half_of_associative_ClassRelationship(form);
            form.setR436_is_other_half_of_associative_ClassRelationship(part);
            form.setPeer_comp_name( part.getComp_name() );
            form.setPeer_name( part.getName() );
            form.setPeer_package( part.getComp_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R436_ClassRelationship_is_other_half_of_associative_ClassRelationship( ClassRelationship form, ClassRelationship part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R436_ClassRelationship_is_other_half_of_associative_ClassRelationship_extent.remove( R436_ClassRelationship_is_other_half_of_associative_ClassRelationship_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR436_is_one_half_of_associative_ClassRelationship(ClassRelationshipImpl.EMPTY_CLASSRELATIONSHIP);
            form.setR436_is_other_half_of_associative_ClassRelationship(ClassRelationshipImpl.EMPTY_CLASSRELATIONSHIP);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R441_AttributeDerivation_calculates_value_for_AttributeAccessor( AttributeDerivation form, AttributeAccessor part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R441_AttributeDerivation_calculates_value_for_AttributeAccessor_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR441_value_derived_by_AttributeDerivation(form);
            form.setR441_calculates_value_for_AttributeAccessor(part);
            form.setClass_name( part.getClass_name() );
            form.setAttribute_name( part.getAttribute_name() );
            form.setClass_package( part.getClass_package() );
            form.setAccessor_type( part.getAccessor_type() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R441_AttributeDerivation_calculates_value_for_AttributeAccessor( AttributeDerivation form, AttributeAccessor part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R441_AttributeDerivation_calculates_value_for_AttributeAccessor_extent.remove( R441_AttributeDerivation_calculates_value_for_AttributeAccessor_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR441_value_derived_by_AttributeDerivation(AttributeDerivationImpl.EMPTY_ATTRIBUTEDERIVATION);
            form.setR441_calculates_value_for_AttributeAccessor(AttributeAccessorImpl.EMPTY_ATTRIBUTEACCESSOR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R442_InstanceSelector_navigates_from_ModelInst( InstanceSelector form, ModelInst part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R442_InstanceSelector_navigates_from_ModelInst_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR442_selects_instances_through_InstanceSelector(form);
            form.setR442_navigates_from_ModelInst(part);
            form.setClass_package( part.getPackage() );
            form.setComp_name( part.getComp_name() );
            form.setComp_package( part.getComp_package() );
            form.setClass_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R442_InstanceSelector_navigates_from_ModelInst( InstanceSelector form, ModelInst part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R442_InstanceSelector_navigates_from_ModelInst_extent.remove( R442_InstanceSelector_navigates_from_ModelInst_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR442_selects_instances_through_InstanceSelector(form);
            form.setR442_navigates_from_ModelInst(ModelInstImpl.EMPTY_MODELINST);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R444_SetSelector_navigates_from_InstSet( SetSelector form, InstSet part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R444_SetSelector_navigates_from_InstSet_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR444_selects_instances_through_SetSelector(form);
            form.setR444_navigates_from_InstSet(part);
            form.setSet_parent_package( part.getPackage() );
            form.setSet_parent_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R444_SetSelector_navigates_from_InstSet( SetSelector form, InstSet part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R444_SetSelector_navigates_from_InstSet_extent.remove( R444_SetSelector_navigates_from_InstSet_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR444_selects_instances_through_SetSelector(form);
            form.setR444_navigates_from_InstSet(InstSetImpl.EMPTY_INSTSET);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R445_InstanceSelector_is_a_Selector( InstanceSelector form, Selector part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R445_InstanceSelector_is_a_Selector_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR445_is_a_InstanceSelector(form);
            form.setR445_is_a_Selector(part);
            form.setName( part.getName() );
            form.setClass_package( part.getParent_package() );
            form.setClass_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R445_InstanceSelector_is_a_Selector( InstanceSelector form, Selector part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R445_InstanceSelector_is_a_Selector_extent.remove( R445_InstanceSelector_is_a_Selector_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR445_is_a_InstanceSelector(InstanceSelectorImpl.EMPTY_INSTANCESELECTOR);
            form.setR445_is_a_Selector(SelectorImpl.EMPTY_SELECTOR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R445_SetSelector_is_a_Selector( SetSelector form, Selector part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R445_SetSelector_is_a_Selector_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR445_is_a_SetSelector(form);
            form.setR445_is_a_Selector(part);
            form.setSet_parent_name( part.getParent_name() );
            form.setName( part.getName() );
            form.setSet_parent_package( part.getParent_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R445_SetSelector_is_a_Selector( SetSelector form, Selector part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R445_SetSelector_is_a_Selector_extent.remove( R445_SetSelector_is_a_Selector_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR445_is_a_SetSelector(SetSelectorImpl.EMPTY_SETSELECTOR);
            form.setR445_is_a_Selector(SelectorImpl.EMPTY_SELECTOR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R446_Selector_selects_instances_of_TypeReference( Selector form, TypeReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R446_Selector_selects_instances_of_TypeReference_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR446_shapes_return_of_Selector(form);
            form.setR446_selects_instances_of_TypeReference(part);
            form.setType_package( part.getType_package() );
            form.setType_reference_name( part.getType_reference_name() );
            form.setType_name( part.getType_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R446_Selector_selects_instances_of_TypeReference( Selector form, TypeReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R446_Selector_selects_instances_of_TypeReference_extent.remove( R446_Selector_selects_instances_of_TypeReference_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR446_shapes_return_of_Selector(form);
            form.setR446_selects_instances_of_TypeReference(TypeReferenceImpl.EMPTY_TYPEREFERENCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R447_InstancePopulationSelector_selects_instances_out_of_population_of_ComponentDefinition( InstancePopulationSelector form, ComponentDefinition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R447_InstancePopulationSelector_selects_instances_out_of_population_of_ComponentDefinition_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR447_selects_instances_through_InstancePopulationSelector(form);
            form.setR447_selects_instances_out_of_population_of_ComponentDefinition(part);
            form.setComp_package( part.getPackage() );
            form.setComp_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R447_InstancePopulationSelector_selects_instances_out_of_population_of_ComponentDefinition( InstancePopulationSelector form, ComponentDefinition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R447_InstancePopulationSelector_selects_instances_out_of_population_of_ComponentDefinition_extent.remove( R447_InstancePopulationSelector_selects_instances_out_of_population_of_ComponentDefinition_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR447_selects_instances_through_InstancePopulationSelector(form);
            form.setR447_selects_instances_out_of_population_of_ComponentDefinition(ComponentDefinitionImpl.EMPTY_COMPONENTDEFINITION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R448_ClassRelationship_forms_relationship_population_of_ComponentDefinition( ClassRelationship form, ComponentDefinition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R448_ClassRelationship_forms_relationship_population_of_ComponentDefinition_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR448_maintains_instances_of_ClassRelationship(form);
            form.setR448_forms_relationship_population_of_ComponentDefinition(part);
            form.setComp_package( part.getPackage() );
            form.setComp_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R448_ClassRelationship_forms_relationship_population_of_ComponentDefinition( ClassRelationship form, ComponentDefinition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R448_ClassRelationship_forms_relationship_population_of_ComponentDefinition_extent.remove( R448_ClassRelationship_forms_relationship_population_of_ComponentDefinition_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR448_maintains_instances_of_ClassRelationship(form);
            form.setR448_forms_relationship_population_of_ComponentDefinition(ComponentDefinitionImpl.EMPTY_COMPONENTDEFINITION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R449_InstancePopulationSelector_selects_instances_of_ModelInst( InstancePopulationSelector form, ModelInst part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R449_InstancePopulationSelector_selects_instances_of_ModelInst_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR449_extent_accessed_by_InstancePopulationSelector(form);
            form.setR449_selects_instances_of_ModelInst(part);
            form.setComp_package( part.getComp_package() );
            form.setClass_name( part.getName() );
            form.setComp_name( part.getComp_name() );
            form.setClass_package( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R449_InstancePopulationSelector_selects_instances_of_ModelInst( InstancePopulationSelector form, ModelInst part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R449_InstancePopulationSelector_selects_instances_of_ModelInst_extent.remove( R449_InstancePopulationSelector_selects_instances_of_ModelInst_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR449_extent_accessed_by_InstancePopulationSelector(InstancePopulationSelectorImpl.EMPTY_INSTANCEPOPULATIONSELECTOR);
            form.setR449_selects_instances_of_ModelInst(ModelInstImpl.EMPTY_MODELINST);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R44_StructureMember_has_parent_StructuredDataType( StructureMember form, StructuredDataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R44_StructureMember_has_parent_StructuredDataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR44_has_member_StructureMember(form);
            form.setR44_has_parent_StructuredDataType(part);
            form.setParent_DT_DT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R44_StructureMember_has_parent_StructuredDataType( StructureMember form, StructuredDataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R44_StructureMember_has_parent_StructuredDataType_extent.remove( R44_StructureMember_has_parent_StructuredDataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR44_has_member_StructureMember(form);
            form.setR44_has_parent_StructuredDataType(StructuredDataTypeImpl.EMPTY_STRUCTUREDDATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4500_RequiredExecutableProperty_implements_ExecutableProperty( RequiredExecutableProperty form, ExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4500_RequiredExecutableProperty_implements_ExecutableProperty_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4500_is_implemented_by_RequiredExecutableProperty(form);
            form.setR4500_implements_ExecutableProperty(part);
            form.setExecutableProperty_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4500_RequiredExecutableProperty_implements_ExecutableProperty( RequiredExecutableProperty form, ExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4500_RequiredExecutableProperty_implements_ExecutableProperty_extent.remove( R4500_RequiredExecutableProperty_implements_ExecutableProperty_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4500_is_implemented_by_RequiredExecutableProperty(form);
            form.setR4500_implements_ExecutableProperty(ExecutablePropertyImpl.EMPTY_EXECUTABLEPROPERTY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4500_RequiredExecutableProperty_is_implemented_by_Requirement( RequiredExecutableProperty form, Requirement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4500_RequiredExecutableProperty_is_implemented_by_Requirement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4500_implements_RequiredExecutableProperty(form);
            form.setR4500_is_implemented_by_Requirement(part);
            form.setRequirement_Id( part.getRequirement_Id() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4500_RequiredExecutableProperty_is_implemented_by_Requirement( RequiredExecutableProperty form, Requirement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4500_RequiredExecutableProperty_is_implemented_by_Requirement_extent.remove( R4500_RequiredExecutableProperty_is_implemented_by_Requirement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4500_implements_RequiredExecutableProperty(form);
            form.setR4500_is_implemented_by_Requirement(RequirementImpl.EMPTY_REQUIREMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4501_ProvidedExecutableProperty_implements_ExecutableProperty( ProvidedExecutableProperty form, ExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4501_ProvidedExecutableProperty_implements_ExecutableProperty_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4501_is_implemented_by_ProvidedExecutableProperty(form);
            form.setR4501_implements_ExecutableProperty(part);
            form.setExecutableProperty_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4501_ProvidedExecutableProperty_implements_ExecutableProperty( ProvidedExecutableProperty form, ExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4501_ProvidedExecutableProperty_implements_ExecutableProperty_extent.remove( R4501_ProvidedExecutableProperty_implements_ExecutableProperty_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4501_is_implemented_by_ProvidedExecutableProperty(form);
            form.setR4501_implements_ExecutableProperty(ExecutablePropertyImpl.EMPTY_EXECUTABLEPROPERTY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4501_ProvidedExecutableProperty_is_implemented_by_Provision( ProvidedExecutableProperty form, Provision part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4501_ProvidedExecutableProperty_is_implemented_by_Provision_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4501_implements_ProvidedExecutableProperty(form);
            form.setR4501_is_implemented_by_Provision(part);
            form.setProvision_Id( part.getProvision_Id() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4501_ProvidedExecutableProperty_is_implemented_by_Provision( ProvidedExecutableProperty form, Provision part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4501_ProvidedExecutableProperty_is_implemented_by_Provision_extent.remove( R4501_ProvidedExecutableProperty_is_implemented_by_Provision_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4501_implements_ProvidedExecutableProperty(form);
            form.setR4501_is_implemented_by_Provision(ProvisionImpl.EMPTY_PROVISION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4502_RequiredOperation_is_a_RequiredExecutableProperty( RequiredOperation form, RequiredExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4502_RequiredOperation_is_a_RequiredExecutableProperty_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4502_is_a_RequiredOperation(form);
            form.setR4502_is_a_RequiredExecutableProperty(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4502_RequiredOperation_is_a_RequiredExecutableProperty( RequiredOperation form, RequiredExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4502_RequiredOperation_is_a_RequiredExecutableProperty_extent.remove( R4502_RequiredOperation_is_a_RequiredExecutableProperty_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4502_is_a_RequiredOperation(RequiredOperationImpl.EMPTY_REQUIREDOPERATION);
            form.setR4502_is_a_RequiredExecutableProperty(RequiredExecutablePropertyImpl.EMPTY_REQUIREDEXECUTABLEPROPERTY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4502_RequiredSignal_is_a_RequiredExecutableProperty( RequiredSignal form, RequiredExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4502_RequiredSignal_is_a_RequiredExecutableProperty_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4502_is_a_RequiredSignal(form);
            form.setR4502_is_a_RequiredExecutableProperty(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4502_RequiredSignal_is_a_RequiredExecutableProperty( RequiredSignal form, RequiredExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4502_RequiredSignal_is_a_RequiredExecutableProperty_extent.remove( R4502_RequiredSignal_is_a_RequiredExecutableProperty_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4502_is_a_RequiredSignal(RequiredSignalImpl.EMPTY_REQUIREDSIGNAL);
            form.setR4502_is_a_RequiredExecutableProperty(RequiredExecutablePropertyImpl.EMPTY_REQUIREDEXECUTABLEPROPERTY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4503_ProvidedOperation_is_a_ProvidedExecutableProperty( ProvidedOperation form, ProvidedExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4503_ProvidedOperation_is_a_ProvidedExecutableProperty_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4503_is_a_ProvidedOperation(form);
            form.setR4503_is_a_ProvidedExecutableProperty(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4503_ProvidedOperation_is_a_ProvidedExecutableProperty( ProvidedOperation form, ProvidedExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4503_ProvidedOperation_is_a_ProvidedExecutableProperty_extent.remove( R4503_ProvidedOperation_is_a_ProvidedExecutableProperty_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4503_is_a_ProvidedOperation(ProvidedOperationImpl.EMPTY_PROVIDEDOPERATION);
            form.setR4503_is_a_ProvidedExecutableProperty(ProvidedExecutablePropertyImpl.EMPTY_PROVIDEDEXECUTABLEPROPERTY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4503_ProvidedSignal_is_a_ProvidedExecutableProperty( ProvidedSignal form, ProvidedExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4503_ProvidedSignal_is_a_ProvidedExecutableProperty_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4503_is_a_ProvidedSignal(form);
            form.setR4503_is_a_ProvidedExecutableProperty(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4503_ProvidedSignal_is_a_ProvidedExecutableProperty( ProvidedSignal form, ProvidedExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4503_ProvidedSignal_is_a_ProvidedExecutableProperty_extent.remove( R4503_ProvidedSignal_is_a_ProvidedExecutableProperty_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4503_is_a_ProvidedSignal(ProvidedSignalImpl.EMPTY_PROVIDEDSIGNAL);
            form.setR4503_is_a_ProvidedExecutableProperty(ProvidedExecutablePropertyImpl.EMPTY_PROVIDEDEXECUTABLEPROPERTY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4505_SetSelector_invokes_InstanceSelector( SetSelector form, InstanceSelector part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4505_SetSelector_invokes_InstanceSelector_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4505_invoked_by_SetSelector(form);
            form.setR4505_invokes_InstanceSelector(part);
            form.setSelector_name( part.getName() );
            form.setSelector_class_package( part.getClass_package() );
            form.setSelector_class_name( part.getClass_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4505_SetSelector_invokes_InstanceSelector( SetSelector form, InstanceSelector part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4505_SetSelector_invokes_InstanceSelector_extent.remove( R4505_SetSelector_invokes_InstanceSelector_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4505_invoked_by_SetSelector(form);
            form.setR4505_invokes_InstanceSelector(InstanceSelectorImpl.EMPTY_INSTANCESELECTOR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4506_AttributeReference_has_value_provided_by_Attribute( AttributeReference form, Attribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4506_AttributeReference_has_value_provided_by_Attribute_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4506_provides_value_for_AttributeReference(form);
            form.setR4506_has_value_provided_by_Attribute(part);
            form.setReferred_to_attribute_name( part.getName() );
            form.setReferred_to_attribute_class_package( part.getClass_package() );
            form.setReferred_to_attribute_class_name( part.getClass_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4506_AttributeReference_has_value_provided_by_Attribute( AttributeReference form, Attribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4506_AttributeReference_has_value_provided_by_Attribute_extent.remove( R4506_AttributeReference_has_value_provided_by_Attribute_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4506_provides_value_for_AttributeReference(form);
            form.setR4506_has_value_provided_by_Attribute(AttributeImpl.EMPTY_ATTRIBUTE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4506_AttributeReference_provides_value_for_Attribute( AttributeReference form, Attribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4506_AttributeReference_provides_value_for_Attribute_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4506_has_value_provided_by_AttributeReference(form);
            form.setR4506_provides_value_for_Attribute(part);
            form.setReferring_attribute_class_package( part.getClass_package() );
            form.setReferring_attribute_class_name( part.getClass_name() );
            form.setReferring_attribute_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4506_AttributeReference_provides_value_for_Attribute( AttributeReference form, Attribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4506_AttributeReference_provides_value_for_Attribute_extent.remove( R4506_AttributeReference_provides_value_for_Attribute_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4506_has_value_provided_by_AttributeReference(form);
            form.setR4506_provides_value_for_Attribute(AttributeImpl.EMPTY_ATTRIBUTE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R450_Statement_is_contained_by_CodeBlock( Statement form, CodeBlock part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R450_Statement_is_contained_by_CodeBlock_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR450_is_scope_for_Statement(form);
            form.setR450_is_contained_by_CodeBlock(part);
            form.setParent_package( part.getParent_package() );
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
            form.setParent_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R450_Statement_is_contained_by_CodeBlock( Statement form, CodeBlock part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R450_Statement_is_contained_by_CodeBlock_extent.remove( R450_Statement_is_contained_by_CodeBlock_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR450_is_scope_for_Statement(form);
            form.setR450_is_contained_by_CodeBlock(CodeBlockImpl.EMPTY_CODEBLOCK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4510_AttributeAccessor_gets_and_sets_Attribute( AttributeAccessor form, Attribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4510_AttributeAccessor_gets_and_sets_Attribute_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4510_value_accessed_through_AttributeAccessor(form);
            form.setR4510_gets_and_sets_Attribute(part);
            form.setClass_name( part.getClass_name() );
            form.setClass_package( part.getClass_package() );
            form.setAttribute_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4510_AttributeAccessor_gets_and_sets_Attribute( AttributeAccessor form, Attribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4510_AttributeAccessor_gets_and_sets_Attribute_extent.remove( R4510_AttributeAccessor_gets_and_sets_Attribute_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4510_value_accessed_through_AttributeAccessor(form);
            form.setR4510_gets_and_sets_Attribute(AttributeImpl.EMPTY_ATTRIBUTE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4511_AttributeReference_refers_to_another_attribute_through_ClassRelationship( AttributeReference form, ClassRelationship part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4511_AttributeReference_refers_to_another_attribute_through_ClassRelationship_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4511_provides_link_for_AttributeReference(form);
            form.setR4511_refers_to_another_attribute_through_ClassRelationship(part);
            form.setPart_name( part.getPart_name() );
            form.setRel_num( part.getNum() );
            form.setPart_phrase( part.getPart_phrase() );
            form.setForm_phrase( part.getForm_phrase() );
            form.setForm_name( part.getForm_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4511_AttributeReference_refers_to_another_attribute_through_ClassRelationship( AttributeReference form, ClassRelationship part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4511_AttributeReference_refers_to_another_attribute_through_ClassRelationship_extent.remove( R4511_AttributeReference_refers_to_another_attribute_through_ClassRelationship_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4511_provides_link_for_AttributeReference(form);
            form.setR4511_refers_to_another_attribute_through_ClassRelationship(ClassRelationshipImpl.EMPTY_CLASSRELATIONSHIP);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4512_Selector_traverses_across_ClassRelationship( Selector form, ClassRelationship part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4512_Selector_traverses_across_ClassRelationship_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4512_traversed_by_Selector(form);
            form.setR4512_traverses_across_ClassRelationship(part);
            form.setRel_comp_package( part.getComp_package() );
            form.setRel_comp_name( part.getComp_name() );
            form.setRel_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4512_Selector_traverses_across_ClassRelationship( Selector form, ClassRelationship part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4512_Selector_traverses_across_ClassRelationship_extent.remove( R4512_Selector_traverses_across_ClassRelationship_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4512_traversed_by_Selector(form);
            form.setR4512_traverses_across_ClassRelationship(ClassRelationshipImpl.EMPTY_CLASSRELATIONSHIP);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R451_BreakSmt_is_a_Statement( BreakSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R451_BreakSmt_is_a_Statement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_BreakSmt(form);
            form.setR451_is_a_Statement(part);
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_name( part.getParent_name() );
            form.setParent_package( part.getParent_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R451_BreakSmt_is_a_Statement( BreakSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R451_BreakSmt_is_a_Statement_extent.remove( R451_BreakSmt_is_a_Statement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_BreakSmt(BreakSmtImpl.EMPTY_BREAKSMT);
            form.setR451_is_a_Statement(StatementImpl.EMPTY_STATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R451_ContinueSmt_is_a_Statement( ContinueSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R451_ContinueSmt_is_a_Statement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_ContinueSmt(form);
            form.setR451_is_a_Statement(part);
            form.setStatement_number( part.getStatement_number() );
            form.setParent_package( part.getParent_package() );
            form.setBody_name( part.getBody_name() );
            form.setParent_name( part.getParent_name() );
            form.setBlock_number( part.getBlock_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R451_ContinueSmt_is_a_Statement( ContinueSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R451_ContinueSmt_is_a_Statement_extent.remove( R451_ContinueSmt_is_a_Statement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_ContinueSmt(ContinueSmtImpl.EMPTY_CONTINUESMT);
            form.setR451_is_a_Statement(StatementImpl.EMPTY_STATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R451_DeleteSmt_is_a_Statement( DeleteSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R451_DeleteSmt_is_a_Statement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_DeleteSmt(form);
            form.setR451_is_a_Statement(part);
            form.setParent_package( part.getParent_package() );
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
            form.setParent_name( part.getParent_name() );
            form.setStatement_number( part.getStatement_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R451_DeleteSmt_is_a_Statement( DeleteSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R451_DeleteSmt_is_a_Statement_extent.remove( R451_DeleteSmt_is_a_Statement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_DeleteSmt(DeleteSmtImpl.EMPTY_DELETESMT);
            form.setR451_is_a_Statement(StatementImpl.EMPTY_STATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R451_ExpressionAsStatement_is_a_Statement( ExpressionAsStatement form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R451_ExpressionAsStatement_is_a_Statement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_ExpressionAsStatement(form);
            form.setR451_is_a_Statement(part);
            form.setBody_name( part.getBody_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_package( part.getParent_package() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R451_ExpressionAsStatement_is_a_Statement( ExpressionAsStatement form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R451_ExpressionAsStatement_is_a_Statement_extent.remove( R451_ExpressionAsStatement_is_a_Statement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_ExpressionAsStatement(ExpressionAsStatementImpl.EMPTY_EXPRESSIONASSTATEMENT);
            form.setR451_is_a_Statement(StatementImpl.EMPTY_STATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R451_ForSmt_is_a_Statement( ForSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R451_ForSmt_is_a_Statement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_ForSmt(form);
            form.setR451_is_a_Statement(part);
            form.setParent_name( part.getParent_name() );
            form.setBody_name( part.getBody_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_package( part.getParent_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R451_ForSmt_is_a_Statement( ForSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R451_ForSmt_is_a_Statement_extent.remove( R451_ForSmt_is_a_Statement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_ForSmt(ForSmtImpl.EMPTY_FORSMT);
            form.setR451_is_a_Statement(StatementImpl.EMPTY_STATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R451_Generate_is_a_Statement( Generate form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R451_Generate_is_a_Statement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_Generate(form);
            form.setR451_is_a_Statement(part);
            form.setParent_package( part.getParent_package() );
            form.setBody_name( part.getBody_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R451_Generate_is_a_Statement( Generate form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R451_Generate_is_a_Statement_extent.remove( R451_Generate_is_a_Statement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_Generate(GenerateImpl.EMPTY_GENERATE);
            form.setR451_is_a_Statement(StatementImpl.EMPTY_STATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R451_Halt_is_a_Statement( Halt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R451_Halt_is_a_Statement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_Halt(form);
            form.setR451_is_a_Statement(part);
            form.setName( part.getBody_name() );
            form.setParent_package( part.getParent_package() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_name( part.getParent_name() );
            form.setBlock_number( part.getBlock_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R451_Halt_is_a_Statement( Halt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R451_Halt_is_a_Statement_extent.remove( R451_Halt_is_a_Statement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_Halt(HaltImpl.EMPTY_HALT);
            form.setR451_is_a_Statement(StatementImpl.EMPTY_STATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R451_IfSmt_is_a_Statement( IfSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R451_IfSmt_is_a_Statement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_IfSmt(form);
            form.setR451_is_a_Statement(part);
            form.setBlock_number( part.getBlock_number() );
            form.setParent_package( part.getParent_package() );
            form.setBody_name( part.getBody_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R451_IfSmt_is_a_Statement( IfSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R451_IfSmt_is_a_Statement_extent.remove( R451_IfSmt_is_a_Statement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_IfSmt(IfSmtImpl.EMPTY_IFSMT);
            form.setR451_is_a_Statement(StatementImpl.EMPTY_STATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R451_NullSmt_is_a_Statement( NullSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R451_NullSmt_is_a_Statement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_NullSmt(form);
            form.setR451_is_a_Statement(part);
            form.setStatement_number( part.getStatement_number() );
            form.setParent_name( part.getParent_name() );
            form.setName( part.getBody_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_package( part.getParent_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R451_NullSmt_is_a_Statement( NullSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R451_NullSmt_is_a_Statement_extent.remove( R451_NullSmt_is_a_Statement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_NullSmt(NullSmtImpl.EMPTY_NULLSMT);
            form.setR451_is_a_Statement(StatementImpl.EMPTY_STATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R451_RelateSmt_is_a_Statement( RelateSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R451_RelateSmt_is_a_Statement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_RelateSmt(form);
            form.setR451_is_a_Statement(part);
            form.setBody_name( part.getBody_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_package( part.getParent_package() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R451_RelateSmt_is_a_Statement( RelateSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R451_RelateSmt_is_a_Statement_extent.remove( R451_RelateSmt_is_a_Statement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_RelateSmt(RelateSmtImpl.EMPTY_RELATESMT);
            form.setR451_is_a_Statement(StatementImpl.EMPTY_STATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R451_ReturnSmt_is_a_Statement( ReturnSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R451_ReturnSmt_is_a_Statement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_ReturnSmt(form);
            form.setR451_is_a_Statement(part);
            form.setParent_name( part.getParent_name() );
            form.setBody_name( part.getBody_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_package( part.getParent_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R451_ReturnSmt_is_a_Statement( ReturnSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R451_ReturnSmt_is_a_Statement_extent.remove( R451_ReturnSmt_is_a_Statement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_ReturnSmt(ReturnSmtImpl.EMPTY_RETURNSMT);
            form.setR451_is_a_Statement(StatementImpl.EMPTY_STATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R451_UnrelateSmt_is_a_Statement( UnrelateSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R451_UnrelateSmt_is_a_Statement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_UnrelateSmt(form);
            form.setR451_is_a_Statement(part);
            form.setParent_package( part.getParent_package() );
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R451_UnrelateSmt_is_a_Statement( UnrelateSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R451_UnrelateSmt_is_a_Statement_extent.remove( R451_UnrelateSmt_is_a_Statement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_UnrelateSmt(UnrelateSmtImpl.EMPTY_UNRELATESMT);
            form.setR451_is_a_Statement(StatementImpl.EMPTY_STATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R451_WhileSmt_is_a_Statement( WhileSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R451_WhileSmt_is_a_Statement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_WhileSmt(form);
            form.setR451_is_a_Statement(part);
            form.setParent_package( part.getParent_package() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_name( part.getParent_name() );
            form.setBody_name( part.getBody_name() );
            form.setBlock_number( part.getBlock_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R451_WhileSmt_is_a_Statement( WhileSmt form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R451_WhileSmt_is_a_Statement_extent.remove( R451_WhileSmt_is_a_Statement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR451_is_a_WhileSmt(WhileSmtImpl.EMPTY_WHILESMT);
            form.setR451_is_a_Statement(StatementImpl.EMPTY_STATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R453_IfSmt_has_then_CodeBlock( IfSmt form, CodeBlock part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R453_IfSmt_has_then_CodeBlock_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR453_controls_then_for_IfSmt(form);
            form.setR453_has_then_CodeBlock(part);
            form.setParent_name( part.getParent_name() );
            form.setParent_package( part.getParent_package() );
            form.setThen_block_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R453_IfSmt_has_then_CodeBlock( IfSmt form, CodeBlock part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R453_IfSmt_has_then_CodeBlock_extent.remove( R453_IfSmt_has_then_CodeBlock_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR453_controls_then_for_IfSmt(IfSmtImpl.EMPTY_IFSMT);
            form.setR453_has_then_CodeBlock(CodeBlockImpl.EMPTY_CODEBLOCK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R454_IfSmt_has_else_CodeBlock( IfSmt form, CodeBlock part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R454_IfSmt_has_else_CodeBlock_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR454_controls_else_for_IfSmt(form);
            form.setR454_has_else_CodeBlock(part);
            form.setParent_name( part.getParent_name() );
            form.setParent_package( part.getParent_package() );
            form.setBody_name( part.getBody_name() );
            form.setElse_block_number( part.getBlock_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R454_IfSmt_has_else_CodeBlock( IfSmt form, CodeBlock part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R454_IfSmt_has_else_CodeBlock_extent.remove( R454_IfSmt_has_else_CodeBlock_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR454_controls_else_for_IfSmt(IfSmtImpl.EMPTY_IFSMT);
            form.setR454_has_else_CodeBlock(CodeBlockImpl.EMPTY_CODEBLOCK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4558_UtilityReference_contains_Utility( UtilityReference form, Utility part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4558_UtilityReference_contains_Utility_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4558_used_within_context_of_UtilityReference(form);
            form.setR4558_contains_Utility(part);
            form.setUtility_name( part.getName() );
            form.setUtility_package( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4558_UtilityReference_contains_Utility( UtilityReference form, Utility part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4558_UtilityReference_contains_Utility_extent.remove( R4558_UtilityReference_contains_Utility_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4558_used_within_context_of_UtilityReference(form);
            form.setR4558_contains_Utility(UtilityImpl.EMPTY_UTILITY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4558_UtilityReference_used_within_context_of_ComponentDefinition( UtilityReference form, ComponentDefinition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4558_UtilityReference_used_within_context_of_ComponentDefinition_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4558_contains_UtilityReference(form);
            form.setR4558_used_within_context_of_ComponentDefinition(part);
            form.setComp_package( part.getPackage() );
            form.setComp_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4558_UtilityReference_used_within_context_of_ComponentDefinition( UtilityReference form, ComponentDefinition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4558_UtilityReference_used_within_context_of_ComponentDefinition_extent.remove( R4558_UtilityReference_used_within_context_of_ComponentDefinition_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4558_contains_UtilityReference(form);
            form.setR4558_used_within_context_of_ComponentDefinition(ComponentDefinitionImpl.EMPTY_COMPONENTDEFINITION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4559_UtilityFunction_provided_by_Utility( UtilityFunction form, Utility part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4559_UtilityFunction_provided_by_Utility_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4559_provides_UtilityFunction(form);
            form.setR4559_provided_by_Utility(part);
            form.setUtility_name( part.getName() );
            form.setUtility_package( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4559_UtilityFunction_provided_by_Utility( UtilityFunction form, Utility part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4559_UtilityFunction_provided_by_Utility_extent.remove( R4559_UtilityFunction_provided_by_Utility_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4559_provides_UtilityFunction(form);
            form.setR4559_provided_by_Utility(UtilityImpl.EMPTY_UTILITY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R455_ForSmt_has_control_CodeBlock( ForSmt form, CodeBlock part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R455_ForSmt_has_control_CodeBlock_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR455_controls_ForSmt(form);
            form.setR455_has_control_CodeBlock(part);
            form.setBody_name( part.getBody_name() );
            form.setParent_package( part.getParent_package() );
            form.setParent_name( part.getParent_name() );
            form.setControl_block_number( part.getBlock_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R455_ForSmt_has_control_CodeBlock( ForSmt form, CodeBlock part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R455_ForSmt_has_control_CodeBlock_extent.remove( R455_ForSmt_has_control_CodeBlock_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR455_controls_ForSmt(ForSmtImpl.EMPTY_FORSMT);
            form.setR455_has_control_CodeBlock(CodeBlockImpl.EMPTY_CODEBLOCK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4561_ComponentDefinition_initialized_by_Function( ComponentDefinition form, Function part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4561_ComponentDefinition_initialized_by_Function_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4561_initializes_ComponentDefinition(form);
            form.setR4561_initialized_by_Function(part);
            form.setPackage( part.getComp_package() );
            form.setName( part.getComp_name() );
            form.setInit_function_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4561_ComponentDefinition_initialized_by_Function( ComponentDefinition form, Function part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4561_ComponentDefinition_initialized_by_Function_extent.remove( R4561_ComponentDefinition_initialized_by_Function_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4561_initializes_ComponentDefinition(form);
            form.setR4561_initialized_by_Function(FunctionImpl.EMPTY_FUNCTION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R456_WhileSmt_has_control_CodeBlock( WhileSmt form, CodeBlock part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R456_WhileSmt_has_control_CodeBlock_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR456_controls_WhileSmt(form);
            form.setR456_has_control_CodeBlock(part);
            form.setBody_name( part.getBody_name() );
            form.setParent_name( part.getParent_name() );
            form.setControl_block_number( part.getBlock_number() );
            form.setParent_package( part.getParent_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R456_WhileSmt_has_control_CodeBlock( WhileSmt form, CodeBlock part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R456_WhileSmt_has_control_CodeBlock_extent.remove( R456_WhileSmt_has_control_CodeBlock_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR456_controls_WhileSmt(WhileSmtImpl.EMPTY_WHILESMT);
            form.setR456_has_control_CodeBlock(CodeBlockImpl.EMPTY_CODEBLOCK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4570_UtilityFunction_Bridge( UtilityFunction form, Bridge part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4570_UtilityFunction_Bridge_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4570_UtilityFunction(form);
            form.setR4570_Bridge(part);
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4570_UtilityFunction_Bridge( UtilityFunction form, Bridge part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4570_UtilityFunction_Bridge_extent.remove( R4570_UtilityFunction_Bridge_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4570_UtilityFunction(UtilityFunctionImpl.EMPTY_UTILITYFUNCTION);
            form.setR4570_Bridge(BridgeImpl.EMPTY_BRIDGE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4571_RelationshipPopulationSelector_selects_relationships_out_of_population_of_ComponentDefinition( RelationshipPopulationSelector form, ComponentDefinition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4571_RelationshipPopulationSelector_selects_relationships_out_of_population_of_ComponentDefinition_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4571_selects_relationships_through_RelationshipPopulationSelector(form);
            form.setR4571_selects_relationships_out_of_population_of_ComponentDefinition(part);
            form.setComp_name( part.getName() );
            form.setComp_package( part.getPackage() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4571_RelationshipPopulationSelector_selects_relationships_out_of_population_of_ComponentDefinition( RelationshipPopulationSelector form, ComponentDefinition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4571_RelationshipPopulationSelector_selects_relationships_out_of_population_of_ComponentDefinition_extent.remove( R4571_RelationshipPopulationSelector_selects_relationships_out_of_population_of_ComponentDefinition_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4571_selects_relationships_through_RelationshipPopulationSelector(form);
            form.setR4571_selects_relationships_out_of_population_of_ComponentDefinition(ComponentDefinitionImpl.EMPTY_COMPONENTDEFINITION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4572_RelationshipPopulationSelector_selects_instances_of_ClassRelationship( RelationshipPopulationSelector form, ClassRelationship part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4572_RelationshipPopulationSelector_selects_instances_of_ClassRelationship_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4572_extent_accessed_by_RelationshipPopulationSelector(form);
            form.setR4572_selects_instances_of_ClassRelationship(part);
            form.setComp_name( part.getComp_name() );
            form.setComp_package( part.getComp_package() );
            form.setRel_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4572_RelationshipPopulationSelector_selects_instances_of_ClassRelationship( RelationshipPopulationSelector form, ClassRelationship part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4572_RelationshipPopulationSelector_selects_instances_of_ClassRelationship_extent.remove( R4572_RelationshipPopulationSelector_selects_instances_of_ClassRelationship_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4572_extent_accessed_by_RelationshipPopulationSelector(RelationshipPopulationSelectorImpl.EMPTY_RELATIONSHIPPOPULATIONSELECTOR);
            form.setR4572_selects_instances_of_ClassRelationship(ClassRelationshipImpl.EMPTY_CLASSRELATIONSHIP);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4573_ComponentDefinition_C_C( ComponentDefinition form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4573_ComponentDefinition_C_C_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4573_ComponentDefinition(form);
            form.setR4573_C_C(part);
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4573_ComponentDefinition_C_C( ComponentDefinition form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4573_ComponentDefinition_C_C_extent.remove( R4573_ComponentDefinition_C_C_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4573_ComponentDefinition(ComponentDefinitionImpl.EMPTY_COMPONENTDEFINITION);
            form.setR4573_C_C(C_CImpl.EMPTY_C_C);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R457_Variable_is_declared_by_Statement( Variable form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R457_Variable_is_declared_by_Statement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR457_declares_Variable(form);
            form.setR457_is_declared_by_Statement(part);
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_name( part.getParent_name() );
            form.setParent_package( part.getParent_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R457_Variable_is_declared_by_Statement( Variable form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R457_Variable_is_declared_by_Statement_extent.remove( R457_Variable_is_declared_by_Statement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR457_declares_Variable(form);
            form.setR457_is_declared_by_Statement(StatementImpl.EMPTY_STATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R458_VariableInScope_has_in_scope_Variable( VariableInScope form, Variable part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R458_VariableInScope_has_in_scope_Variable_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR458_is_in_scope_for_VariableInScope(form);
            form.setR458_has_in_scope_Variable(part);
            form.setVar_block_number( part.getBlock_number() );
            form.setParent_package( part.getParent_package() );
            form.setVar_name( part.getName() );
            form.setBody_name( part.getBody_name() );
            form.setParent_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R458_VariableInScope_has_in_scope_Variable( VariableInScope form, Variable part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R458_VariableInScope_has_in_scope_Variable_extent.remove( R458_VariableInScope_has_in_scope_Variable_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR458_is_in_scope_for_VariableInScope(form);
            form.setR458_has_in_scope_Variable(VariableImpl.EMPTY_VARIABLE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R458_VariableInScope_is_in_scope_for_CodeBlock( VariableInScope form, CodeBlock part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R458_VariableInScope_is_in_scope_for_CodeBlock_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR458_has_in_scope_VariableInScope(form);
            form.setR458_is_in_scope_for_CodeBlock(part);
            form.setParent_name( part.getParent_name() );
            form.setParent_package( part.getParent_package() );
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R458_VariableInScope_is_in_scope_for_CodeBlock( VariableInScope form, CodeBlock part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R458_VariableInScope_is_in_scope_for_CodeBlock_extent.remove( R458_VariableInScope_is_in_scope_for_CodeBlock_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR458_has_in_scope_VariableInScope(form);
            form.setR458_is_in_scope_for_CodeBlock(CodeBlockImpl.EMPTY_CODEBLOCK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R459_ForSmt_declares_as_iterator_Variable( ForSmt form, Variable part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R459_ForSmt_declares_as_iterator_Variable_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR459_is_iterator_for_ForSmt(form);
            form.setR459_declares_as_iterator_Variable(part);
            form.setParent_name( part.getParent_name() );
            form.setIterator_block_number( part.getBlock_number() );
            form.setIterator_name( part.getName() );
            form.setParent_package( part.getParent_package() );
            form.setBody_name( part.getBody_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R459_ForSmt_declares_as_iterator_Variable( ForSmt form, Variable part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R459_ForSmt_declares_as_iterator_Variable_extent.remove( R459_ForSmt_declares_as_iterator_Variable_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR459_is_iterator_for_ForSmt(ForSmtImpl.EMPTY_FORSMT);
            form.setR459_declares_as_iterator_Variable(VariableImpl.EMPTY_VARIABLE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R45_StructureMember_is_defined_by_DataType( StructureMember form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R45_StructureMember_is_defined_by_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR45_defines_the_type_of_StructureMember(form);
            form.setR45_is_defined_by_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R45_StructureMember_is_defined_by_DataType( StructureMember form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R45_StructureMember_is_defined_by_DataType_extent.remove( R45_StructureMember_is_defined_by_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR45_defines_the_type_of_StructureMember(form);
            form.setR45_is_defined_by_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R461_Variable_is_typed_by_TypeReference( Variable form, TypeReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R461_Variable_is_typed_by_TypeReference_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR461_defines_declared_type_of_Variable(form);
            form.setR461_is_typed_by_TypeReference(part);
            form.setType_name( part.getType_name() );
            form.setType_package( part.getType_package() );
            form.setType_reference_name( part.getType_reference_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R461_Variable_is_typed_by_TypeReference( Variable form, TypeReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R461_Variable_is_typed_by_TypeReference_extent.remove( R461_Variable_is_typed_by_TypeReference_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR461_defines_declared_type_of_Variable(form);
            form.setR461_is_typed_by_TypeReference(TypeReferenceImpl.EMPTY_TYPEREFERENCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R462_DeleteSmt_deletes_instance_specified_by_Expression( DeleteSmt form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R462_DeleteSmt_deletes_instance_specified_by_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR462_is_deleted_by_DeleteSmt(form);
            form.setR462_deletes_instance_specified_by_Expression(part);
            form.setStatement_number( part.getStatement_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
            form.setParent_name( part.getParent_name() );
            form.setParent_package( part.getParent_package() );
            form.setExpression_number( part.getExpression_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R462_DeleteSmt_deletes_instance_specified_by_Expression( DeleteSmt form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R462_DeleteSmt_deletes_instance_specified_by_Expression_extent.remove( R462_DeleteSmt_deletes_instance_specified_by_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR462_is_deleted_by_DeleteSmt(form);
            form.setR462_deletes_instance_specified_by_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R46_StructureMember_succeeds_StructureMember( StructureMember form, StructureMember part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R46_StructureMember_succeeds_StructureMember_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR46_precedes_StructureMember(form);
            form.setR46_succeeds_StructureMember(part);
            form.setPrevious_Member_ID( part.getMember_ID() );
            form.setParent_DT_DT_ID( part.getParent_DT_DT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R46_StructureMember_succeeds_StructureMember( StructureMember form, StructureMember part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R46_StructureMember_succeeds_StructureMember_extent.remove( R46_StructureMember_succeeds_StructureMember_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR46_precedes_StructureMember(StructureMemberImpl.EMPTY_STRUCTUREMEMBER);
            form.setR46_succeeds_StructureMember(StructureMemberImpl.EMPTY_STRUCTUREMEMBER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4701_ImportedReference_imports_InterfaceReference( ImportedReference form, InterfaceReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4701_ImportedReference_imports_InterfaceReference_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4701_is_imported_ImportedReference(form);
            form.setR4701_imports_InterfaceReference(part);
            form.setRef_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4701_ImportedReference_imports_InterfaceReference( ImportedReference form, InterfaceReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4701_ImportedReference_imports_InterfaceReference_extent.remove( R4701_ImportedReference_imports_InterfaceReference_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4701_is_imported_ImportedReference(form);
            form.setR4701_imports_InterfaceReference(InterfaceReferenceImpl.EMPTY_INTERFACEREFERENCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4703_ImportedProvision_is_a_ImportedReference( ImportedProvision form, ImportedReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4703_ImportedProvision_is_a_ImportedReference_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4703_is_a_ImportedProvision(form);
            form.setR4703_is_a_ImportedReference(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4703_ImportedProvision_is_a_ImportedReference( ImportedProvision form, ImportedReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4703_ImportedProvision_is_a_ImportedReference_extent.remove( R4703_ImportedProvision_is_a_ImportedReference_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4703_is_a_ImportedProvision(ImportedProvisionImpl.EMPTY_IMPORTEDPROVISION);
            form.setR4703_is_a_ImportedReference(ImportedReferenceImpl.EMPTY_IMPORTEDREFERENCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4703_ImportedRequirement_is_a_ImportedReference( ImportedRequirement form, ImportedReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4703_ImportedRequirement_is_a_ImportedReference_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4703_is_a_ImportedRequirement(form);
            form.setR4703_is_a_ImportedReference(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4703_ImportedRequirement_is_a_ImportedReference( ImportedRequirement form, ImportedReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4703_ImportedRequirement_is_a_ImportedReference_extent.remove( R4703_ImportedRequirement_is_a_ImportedReference_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4703_is_a_ImportedRequirement(ImportedRequirementImpl.EMPTY_IMPORTEDREQUIREMENT);
            form.setR4703_is_a_ImportedReference(ImportedReferenceImpl.EMPTY_IMPORTEDREFERENCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4704_ImportedReference_accepts_communication_through_Delegation( ImportedReference form, Delegation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4704_ImportedReference_accepts_communication_through_Delegation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4704_delivers_communication_through_ImportedReference(form);
            form.setR4704_accepts_communication_through_Delegation(part);
            form.setDelegation_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4704_ImportedReference_accepts_communication_through_Delegation( ImportedReference form, Delegation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4704_ImportedReference_accepts_communication_through_Delegation_extent.remove( R4704_ImportedReference_accepts_communication_through_Delegation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4704_delivers_communication_through_ImportedReference(ImportedReferenceImpl.EMPTY_IMPORTEDREFERENCE);
            form.setR4704_accepts_communication_through_Delegation(DelegationImpl.EMPTY_DELEGATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4705_ImportedProvisionInSatisfaction_provides_satisfaction_through_Satisfaction( ImportedProvisionInSatisfaction form, Satisfaction part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4705_ImportedProvisionInSatisfaction_provides_satisfaction_through_Satisfaction_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4705_satisfaction_made_with_ImportedProvisionInSatisfaction(form);
            form.setR4705_provides_satisfaction_through_Satisfaction(part);
            form.setSatisfaction_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4705_ImportedProvisionInSatisfaction_provides_satisfaction_through_Satisfaction( ImportedProvisionInSatisfaction form, Satisfaction part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4705_ImportedProvisionInSatisfaction_provides_satisfaction_through_Satisfaction_extent.remove( R4705_ImportedProvisionInSatisfaction_provides_satisfaction_through_Satisfaction_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4705_satisfaction_made_with_ImportedProvisionInSatisfaction(ImportedProvisionInSatisfactionImpl.EMPTY_IMPORTEDPROVISIONINSATISFACTION);
            form.setR4705_provides_satisfaction_through_Satisfaction(SatisfactionImpl.EMPTY_SATISFACTION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4705_ImportedProvisionInSatisfaction_satisfaction_made_with_ImportedProvision( ImportedProvisionInSatisfaction form, ImportedProvision part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4705_ImportedProvisionInSatisfaction_satisfaction_made_with_ImportedProvision_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4705_provides_satisfaction_through_ImportedProvisionInSatisfaction(form);
            form.setR4705_satisfaction_made_with_ImportedProvision(part);
            form.setImportedProvision_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4705_ImportedProvisionInSatisfaction_satisfaction_made_with_ImportedProvision( ImportedProvisionInSatisfaction form, ImportedProvision part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4705_ImportedProvisionInSatisfaction_satisfaction_made_with_ImportedProvision_extent.remove( R4705_ImportedProvisionInSatisfaction_satisfaction_made_with_ImportedProvision_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4705_provides_satisfaction_through_ImportedProvisionInSatisfaction(form);
            form.setR4705_satisfaction_made_with_ImportedProvision(ImportedProvisionImpl.EMPTY_IMPORTEDPROVISION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4706_ImportedRequirement_provides_satisfaction_through_Satisfaction( ImportedRequirement form, Satisfaction part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4706_ImportedRequirement_provides_satisfaction_through_Satisfaction_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4706_satisfaction_made_with_ImportedRequirement(form);
            form.setR4706_provides_satisfaction_through_Satisfaction(part);
            form.setSatisfaction_Element_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4706_ImportedRequirement_provides_satisfaction_through_Satisfaction( ImportedRequirement form, Satisfaction part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4706_ImportedRequirement_provides_satisfaction_through_Satisfaction_extent.remove( R4706_ImportedRequirement_provides_satisfaction_through_Satisfaction_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4706_satisfaction_made_with_ImportedRequirement(ImportedRequirementImpl.EMPTY_IMPORTEDREQUIREMENT);
            form.setR4706_provides_satisfaction_through_Satisfaction(SatisfactionImpl.EMPTY_SATISFACTION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4707_PortReference_orginates_from_ComponentReference( PortReference form, ComponentReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4707_PortReference_orginates_from_ComponentReference_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4707_communicates_through_PortReference(form);
            form.setR4707_orginates_from_ComponentReference(part);
            form.setCL_IC_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4707_PortReference_orginates_from_ComponentReference( PortReference form, ComponentReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4707_PortReference_orginates_from_ComponentReference_extent.remove( R4707_PortReference_orginates_from_ComponentReference_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4707_communicates_through_PortReference(form);
            form.setR4707_orginates_from_ComponentReference(ComponentReferenceImpl.EMPTY_COMPONENTREFERENCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4708_ImportedReference_originates_from_PortReference( ImportedReference form, PortReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4708_ImportedReference_originates_from_PortReference_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4708_exposes_ImportedReference(form);
            form.setR4708_originates_from_PortReference(part);
            form.setCL_POR_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4708_ImportedReference_originates_from_PortReference( ImportedReference form, PortReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4708_ImportedReference_originates_from_PortReference_extent.remove( R4708_ImportedReference_originates_from_PortReference_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4708_exposes_ImportedReference(form);
            form.setR4708_originates_from_PortReference(PortReferenceImpl.EMPTY_PORTREFERENCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4709_PortReference_references_C_PO( PortReference form, C_PO part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4709_PortReference_references_C_PO_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4709_is_referenced_by_PortReference(form);
            form.setR4709_references_C_PO(part);
            form.setC_PO_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4709_PortReference_references_C_PO( PortReference form, C_PO part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4709_PortReference_references_C_PO_extent.remove( R4709_PortReference_references_C_PO_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4709_is_referenced_by_PortReference(form);
            form.setR4709_references_C_PO(C_POImpl.EMPTY_C_PO);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R471_IfSmt_executes_then_block_if_true_Expression( IfSmt form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R471_IfSmt_executes_then_block_if_true_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR471_determines_execution_of_blocks_for_IfSmt(form);
            form.setR471_executes_then_block_if_true_Expression(part);
            form.setStatement_number( part.getStatement_number() );
            form.setParent_package( part.getParent_package() );
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
            form.setParent_name( part.getParent_name() );
            form.setCond_expression_number( part.getExpression_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R471_IfSmt_executes_then_block_if_true_Expression( IfSmt form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R471_IfSmt_executes_then_block_if_true_Expression_extent.remove( R471_IfSmt_executes_then_block_if_true_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR471_determines_execution_of_blocks_for_IfSmt(IfSmtImpl.EMPTY_IFSMT);
            form.setR471_executes_then_block_if_true_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R472_WhileSmt_executes_block_while_true_Expression( WhileSmt form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R472_WhileSmt_executes_block_while_true_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR472_determines_execution_of_block_for_WhileSmt(form);
            form.setR472_executes_block_while_true_Expression(part);
            form.setParent_name( part.getParent_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setBody_name( part.getBody_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_package( part.getParent_package() );
            form.setCond_expression_number( part.getExpression_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R472_WhileSmt_executes_block_while_true_Expression( WhileSmt form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R472_WhileSmt_executes_block_while_true_Expression_extent.remove( R472_WhileSmt_executes_block_while_true_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR472_determines_execution_of_block_for_WhileSmt(WhileSmtImpl.EMPTY_WHILESMT);
            form.setR472_executes_block_while_true_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R473_ReturnSmt_returns_value_specified_by_Expression( ReturnSmt form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R473_ReturnSmt_returns_value_specified_by_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR473_defines_return_value_for_ReturnSmt(form);
            form.setR473_returns_value_specified_by_Expression(part);
            form.setBody_name( part.getBody_name() );
            form.setRet_expression_number( part.getExpression_number() );
            form.setParent_name( part.getParent_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_package( part.getParent_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R473_ReturnSmt_returns_value_specified_by_Expression( ReturnSmt form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R473_ReturnSmt_returns_value_specified_by_Expression_extent.remove( R473_ReturnSmt_returns_value_specified_by_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR473_defines_return_value_for_ReturnSmt(ReturnSmtImpl.EMPTY_RETURNSMT);
            form.setR473_returns_value_specified_by_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4750_StateMachine_models_behavior_of_ModelInst( StateMachine form, ModelInst part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4750_StateMachine_models_behavior_of_ModelInst_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4750_behavior_modeled_by_StateMachine(form);
            form.setR4750_models_behavior_of_ModelInst(part);
            form.setClass_name( part.getName() );
            form.setPackage( part.getPackage() );
            form.setComp_package( part.getComp_package() );
            form.setComp_name( part.getComp_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4750_StateMachine_models_behavior_of_ModelInst( StateMachine form, ModelInst part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4750_StateMachine_models_behavior_of_ModelInst_extent.remove( R4750_StateMachine_models_behavior_of_ModelInst_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4750_behavior_modeled_by_StateMachine(StateMachineImpl.EMPTY_STATEMACHINE);
            form.setR4750_models_behavior_of_ModelInst(ModelInstImpl.EMPTY_MODELINST);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4751_State_StateMachine( State form, StateMachine part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4751_State_StateMachine_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4751_declares_State(form);
            form.setR4751_StateMachine(part);
            form.setSm_package( part.getPackage() );
            form.setSm_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4751_State_StateMachine( State form, StateMachine part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4751_State_StateMachine_extent.remove( R4751_State_StateMachine_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4751_declares_State(form);
            form.setR4751_StateMachine(StateMachineImpl.EMPTY_STATEMACHINE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4752_Event_StateMachine( Event form, StateMachine part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4752_Event_StateMachine_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4752_declares_Event(form);
            form.setR4752_StateMachine(part);
            form.setSm_package( part.getPackage() );
            form.setSm_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4752_Event_StateMachine( Event form, StateMachine part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4752_Event_StateMachine_extent.remove( R4752_Event_StateMachine_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4752_declares_Event(form);
            form.setR4752_StateMachine(StateMachineImpl.EMPTY_STATEMACHINE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4753_TransitionTableRow_StateMachine( TransitionTableRow form, StateMachine part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4753_TransitionTableRow_StateMachine_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4753_transitions_defined_by_TransitionTableRow(form);
            form.setR4753_StateMachine(part);
            form.setSm_package( part.getPackage() );
            form.setSm_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4753_TransitionTableRow_StateMachine( TransitionTableRow form, StateMachine part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4753_TransitionTableRow_StateMachine_extent.remove( R4753_TransitionTableRow_StateMachine_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4753_transitions_defined_by_TransitionTableRow(form);
            form.setR4753_StateMachine(StateMachineImpl.EMPTY_STATEMACHINE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4754_TransitionTableRow_State( TransitionTableRow form, State part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4754_TransitionTableRow_State_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4754_is_start_state_for_TransitionTableRow(form);
            form.setR4754_State(part);
            form.setSm_package( part.getSm_package() );
            form.setSm_name( part.getSm_name() );
            form.setState_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4754_TransitionTableRow_State( TransitionTableRow form, State part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4754_TransitionTableRow_State_extent.remove( R4754_TransitionTableRow_State_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4754_is_start_state_for_TransitionTableRow(TransitionTableRowImpl.EMPTY_TRANSITIONTABLEROW);
            form.setR4754_State(StateImpl.EMPTY_STATE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4755_TransitionTableCell_TransitionTableRow( TransitionTableCell form, TransitionTableRow part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4755_TransitionTableCell_TransitionTableRow_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4755_defined_by_TransitionTableCell(form);
            form.setR4755_TransitionTableRow(part);
            form.setState_name( part.getState_name() );
            form.setSm_name( part.getSm_name() );
            form.setSm_package( part.getSm_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4755_TransitionTableCell_TransitionTableRow( TransitionTableCell form, TransitionTableRow part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4755_TransitionTableCell_TransitionTableRow_extent.remove( R4755_TransitionTableCell_TransitionTableRow_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4755_defined_by_TransitionTableCell(form);
            form.setR4755_TransitionTableRow(TransitionTableRowImpl.EMPTY_TRANSITIONTABLEROW);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4756_TransitionTableCell_receives_Event( TransitionTableCell form, Event part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4756_TransitionTableCell_receives_Event_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4756_TransitionTableCell(form);
            form.setR4756_receives_Event(part);
            form.setEvent_name( part.getName() );
            form.setEvent_sm_package( part.getSm_package() );
            form.setEvent_sm_name( part.getSm_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4756_TransitionTableCell_receives_Event( TransitionTableCell form, Event part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4756_TransitionTableCell_receives_Event_extent.remove( R4756_TransitionTableCell_receives_Event_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4756_TransitionTableCell(form);
            form.setR4756_receives_Event(EventImpl.EMPTY_EVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4757_StateTransition_TransitionTableCell( StateTransition form, TransitionTableCell part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4757_StateTransition_TransitionTableCell_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4757_transitions_to_StateTransition(form);
            form.setR4757_TransitionTableCell(part);
            form.setEvent_sm_name( part.getEvent_sm_name() );
            form.setEvent_sm_package( part.getEvent_sm_package() );
            form.setStart_state_name( part.getState_name() );
            form.setSm_package( part.getSm_package() );
            form.setEvent_name( part.getEvent_name() );
            form.setSm_name( part.getSm_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4757_StateTransition_TransitionTableCell( StateTransition form, TransitionTableCell part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4757_StateTransition_TransitionTableCell_extent.remove( R4757_StateTransition_TransitionTableCell_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4757_transitions_to_StateTransition(StateTransitionImpl.EMPTY_STATETRANSITION);
            form.setR4757_TransitionTableCell(TransitionTableCellImpl.EMPTY_TRANSITIONTABLECELL);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4757_StateTransition_transitions_to_State( StateTransition form, State part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4757_StateTransition_transitions_to_State_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR4757_StateTransition(form);
            form.setR4757_transitions_to_State(part);
            form.setSm_package( part.getSm_package() );
            form.setEnd_state_name( part.getName() );
            form.setSm_name( part.getSm_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4757_StateTransition_transitions_to_State( StateTransition form, State part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4757_StateTransition_transitions_to_State_extent.remove( R4757_StateTransition_transitions_to_State_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR4757_StateTransition(form);
            form.setR4757_transitions_to_State(StateImpl.EMPTY_STATE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4758_StateMachineState_State( StateMachineState form, State part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4758_StateMachineState_State_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4758_StateMachineState(form);
            form.setR4758_State(part);
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4758_StateMachineState_State( StateMachineState form, State part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4758_StateMachineState_State_extent.remove( R4758_StateMachineState_State_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4758_StateMachineState(StateMachineStateImpl.EMPTY_STATEMACHINESTATE);
            form.setR4758_State(StateImpl.EMPTY_STATE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4759_StateMachineEvent_Event( StateMachineEvent form, Event part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4759_StateMachineEvent_Event_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4759_StateMachineEvent(form);
            form.setR4759_Event(part);
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4759_StateMachineEvent_Event( StateMachineEvent form, Event part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4759_StateMachineEvent_Event_extent.remove( R4759_StateMachineEvent_Event_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4759_StateMachineEvent(StateMachineEventImpl.EMPTY_STATEMACHINEEVENT);
            form.setR4759_Event(EventImpl.EMPTY_EVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4760_StructureMember_Attribute( StructureMember form, Attribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4760_StructureMember_Attribute_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4760_StructureMember(form);
            form.setR4760_Attribute(part);
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4760_StructureMember_Attribute( StructureMember form, Attribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4760_StructureMember_Attribute_extent.remove( R4760_StructureMember_Attribute_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4760_StructureMember(StructureMemberImpl.EMPTY_STRUCTUREMEMBER);
            form.setR4760_Attribute(AttributeImpl.EMPTY_ATTRIBUTE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R4761_Message_ExecutableProperty( Message form, ExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R4761_Message_ExecutableProperty_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4761_Message(form);
            form.setR4761_ExecutableProperty(part);
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R4761_Message_ExecutableProperty( Message form, ExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R4761_Message_ExecutableProperty_extent.remove( R4761_Message_ExecutableProperty_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR4761_Message(MessageImpl.EMPTY_MESSAGE);
            form.setR4761_ExecutableProperty(ExecutablePropertyImpl.EMPTY_EXECUTABLEPROPERTY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R476_ExpressionAsStatement_executes_as_statement_Expression( ExpressionAsStatement form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R476_ExpressionAsStatement_executes_as_statement_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR476_executed_by_ExpressionAsStatement(form);
            form.setR476_executes_as_statement_Expression(part);
            form.setParent_package( part.getParent_package() );
            form.setBody_name( part.getBody_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setExpression_number( part.getExpression_number() );
            form.setParent_name( part.getParent_name() );
            form.setBlock_number( part.getBlock_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R476_ExpressionAsStatement_executes_as_statement_Expression( ExpressionAsStatement form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R476_ExpressionAsStatement_executes_as_statement_Expression_extent.remove( R476_ExpressionAsStatement_executes_as_statement_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR476_executed_by_ExpressionAsStatement(ExpressionAsStatementImpl.EMPTY_EXPRESSIONASSTATEMENT);
            form.setR476_executes_as_statement_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R477_Statement_executes_before_Statement( Statement form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R477_Statement_executes_before_Statement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR477_executes_after_Statement(form);
            form.setR477_executes_before_Statement(part);
            form.setParent_package( part.getParent_package() );
            form.setBody_name( part.getBody_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_name( part.getParent_name() );
            form.setNext_statement_number( part.getStatement_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R477_Statement_executes_before_Statement( Statement form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R477_Statement_executes_before_Statement_extent.remove( R477_Statement_executes_before_Statement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR477_executes_after_Statement(StatementImpl.EMPTY_STATEMENT);
            form.setR477_executes_before_Statement(StatementImpl.EMPTY_STATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R478_ForSmt_iterates_over_Expression( ForSmt form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R478_ForSmt_iterates_over_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR478_is_iterated_by_ForSmt(form);
            form.setR478_iterates_over_Expression(part);
            form.setBlock_number( part.getBlock_number() );
            form.setIterable_expression_number( part.getExpression_number() );
            form.setParent_package( part.getParent_package() );
            form.setParent_name( part.getParent_name() );
            form.setBody_name( part.getBody_name() );
            form.setStatement_number( part.getStatement_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R478_ForSmt_iterates_over_Expression( ForSmt form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R478_ForSmt_iterates_over_Expression_extent.remove( R478_ForSmt_iterates_over_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR478_is_iterated_by_ForSmt(ForSmtImpl.EMPTY_FORSMT);
            form.setR478_iterates_over_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R479_RelateSmt_relates_formalizing_Expression( RelateSmt form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R479_RelateSmt_relates_formalizing_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR479_related_to_participant_by_RelateSmt(form);
            form.setR479_relates_formalizing_Expression(part);
            form.setBody_name( part.getBody_name() );
            form.setParent_name( part.getParent_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setForm_expression_number( part.getExpression_number() );
            form.setParent_package( part.getParent_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R479_RelateSmt_relates_formalizing_Expression( RelateSmt form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R479_RelateSmt_relates_formalizing_Expression_extent.remove( R479_RelateSmt_relates_formalizing_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR479_related_to_participant_by_RelateSmt(RelateSmtImpl.EMPTY_RELATESMT);
            form.setR479_relates_formalizing_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R480_RelateSmt_relates_participating_Expression( RelateSmt form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R480_RelateSmt_relates_participating_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR480_related_to_formalizer_by_RelateSmt(form);
            form.setR480_relates_participating_Expression(part);
            form.setParent_package( part.getParent_package() );
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
            form.setPart_expression_number( part.getExpression_number() );
            form.setParent_name( part.getParent_name() );
            form.setStatement_number( part.getStatement_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R480_RelateSmt_relates_participating_Expression( RelateSmt form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R480_RelateSmt_relates_participating_Expression_extent.remove( R480_RelateSmt_relates_participating_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR480_related_to_formalizer_by_RelateSmt(RelateSmtImpl.EMPTY_RELATESMT);
            form.setR480_relates_participating_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R481_RelateSmt_creates_instances_of_ClassRelationship( RelateSmt form, ClassRelationship part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R481_RelateSmt_creates_instances_of_ClassRelationship_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR481_created_by_RelateSmt(form);
            form.setR481_creates_instances_of_ClassRelationship(part);
            form.setComp_name( part.getComp_name() );
            form.setRel_name( part.getName() );
            form.setComp_package( part.getComp_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R481_RelateSmt_creates_instances_of_ClassRelationship( RelateSmt form, ClassRelationship part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R481_RelateSmt_creates_instances_of_ClassRelationship_extent.remove( R481_RelateSmt_creates_instances_of_ClassRelationship_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR481_created_by_RelateSmt(form);
            form.setR481_creates_instances_of_ClassRelationship(ClassRelationshipImpl.EMPTY_CLASSRELATIONSHIP);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R482_UnrelateSmt_unrelates_participating_Expression( UnrelateSmt form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R482_UnrelateSmt_unrelates_participating_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR482_unrelated_from_formalizer_by_UnrelateSmt(form);
            form.setR482_unrelates_participating_Expression(part);
            form.setParent_name( part.getParent_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_package( part.getParent_package() );
            form.setStatement_number( part.getStatement_number() );
            form.setBody_name( part.getBody_name() );
            form.setPart_expression_number( part.getExpression_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R482_UnrelateSmt_unrelates_participating_Expression( UnrelateSmt form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R482_UnrelateSmt_unrelates_participating_Expression_extent.remove( R482_UnrelateSmt_unrelates_participating_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR482_unrelated_from_formalizer_by_UnrelateSmt(UnrelateSmtImpl.EMPTY_UNRELATESMT);
            form.setR482_unrelates_participating_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R483_UnrelateSmt_unrelates_formalizing_Expression( UnrelateSmt form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R483_UnrelateSmt_unrelates_formalizing_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR483_unrelated_from_participant_by_UnrelateSmt(form);
            form.setR483_unrelates_formalizing_Expression(part);
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_package( part.getParent_package() );
            form.setParent_name( part.getParent_name() );
            form.setForm_expression_number( part.getExpression_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R483_UnrelateSmt_unrelates_formalizing_Expression( UnrelateSmt form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R483_UnrelateSmt_unrelates_formalizing_Expression_extent.remove( R483_UnrelateSmt_unrelates_formalizing_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR483_unrelated_from_participant_by_UnrelateSmt(UnrelateSmtImpl.EMPTY_UNRELATESMT);
            form.setR483_unrelates_formalizing_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R484_UnrelateSmt_deletes_instances_of_ClassRelationship( UnrelateSmt form, ClassRelationship part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R484_UnrelateSmt_deletes_instances_of_ClassRelationship_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR484_deleted_by_UnrelateSmt(form);
            form.setR484_deletes_instances_of_ClassRelationship(part);
            form.setRel_name( part.getName() );
            form.setComp_package( part.getComp_package() );
            form.setComp_name( part.getComp_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R484_UnrelateSmt_deletes_instances_of_ClassRelationship( UnrelateSmt form, ClassRelationship part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R484_UnrelateSmt_deletes_instances_of_ClassRelationship_extent.remove( R484_UnrelateSmt_deletes_instances_of_ClassRelationship_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR484_deleted_by_UnrelateSmt(form);
            form.setR484_deletes_instances_of_ClassRelationship(ClassRelationshipImpl.EMPTY_CLASSRELATIONSHIP);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R485_Finalization_finalized_by_Statement( Finalization form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R485_Finalization_finalized_by_Statement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR485_finalizes_Finalization(form);
            form.setR485_finalized_by_Statement(part);
            form.setParent_package( part.getParent_package() );
            form.setBody_name( part.getBody_name() );
            form.setParent_name( part.getParent_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setStatement_number( part.getStatement_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R485_Finalization_finalized_by_Statement( Finalization form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R485_Finalization_finalized_by_Statement_extent.remove( R485_Finalization_finalized_by_Statement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR485_finalizes_Finalization(form);
            form.setR485_finalized_by_Statement(StatementImpl.EMPTY_STATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R485_Finalization_finalizes_Variable( Finalization form, Variable part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R485_Finalization_finalizes_Variable_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR485_finalized_by_Finalization(form);
            form.setR485_finalizes_Variable(part);
            form.setParent_package( part.getParent_package() );
            form.setParent_name( part.getParent_name() );
            form.setVar_name( part.getName() );
            form.setBody_name( part.getBody_name() );
            form.setVar_block_number( part.getBlock_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R485_Finalization_finalizes_Variable( Finalization form, Variable part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R485_Finalization_finalizes_Variable_extent.remove( R485_Finalization_finalizes_Variable_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR485_finalized_by_Finalization(form);
            form.setR485_finalizes_Variable(VariableImpl.EMPTY_VARIABLE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R486_Generate_generates_Expression( Generate form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R486_Generate_generates_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR486_Generate(form);
            form.setR486_generates_Expression(part);
            form.setParent_name( part.getParent_name() );
            form.setParent_package( part.getParent_package() );
            form.setEvt_expression_number( part.getExpression_number() );
            form.setStatement_number( part.getStatement_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R486_Generate_generates_Expression( Generate form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R486_Generate_generates_Expression_extent.remove( R486_Generate_generates_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR486_Generate(GenerateImpl.EMPTY_GENERATE);
            form.setR486_generates_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R49_Dimensions_specifies_occurrences_of_BridgeParameter( Dimensions form, BridgeParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R49_Dimensions_specifies_occurrences_of_BridgeParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR49_may_have_Dimensions(form);
            form.setR49_specifies_occurrences_of_BridgeParameter(part);
            form.setBParm_ID( part.getBParm_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R49_Dimensions_specifies_occurrences_of_BridgeParameter( Dimensions form, BridgeParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R49_Dimensions_specifies_occurrences_of_BridgeParameter_extent.remove( R49_Dimensions_specifies_occurrences_of_BridgeParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR49_may_have_Dimensions(form);
            form.setR49_specifies_occurrences_of_BridgeParameter(BridgeParameterImpl.EMPTY_BRIDGEPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R501_StateMachineState_SM_SM( StateMachineState form, SM_SM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R501_StateMachineState_SM_SM_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR501_is_decomposed_into_StateMachineState(form);
            form.setR501_SM_SM(part);
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R501_StateMachineState_SM_SM( StateMachineState form, SM_SM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R501_StateMachineState_SM_SM_extent.remove( R501_StateMachineState_SM_SM_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR501_is_decomposed_into_StateMachineState(form);
            form.setR501_SM_SM(SM_SMImpl.EMPTY_SM_SM);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R502_StateMachineEvent_SM_SM( StateMachineEvent form, SM_SM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R502_StateMachineEvent_SM_SM_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR502_can_be_communicated_to_via_StateMachineEvent(form);
            form.setR502_SM_SM(part);
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R502_StateMachineEvent_SM_SM( StateMachineEvent form, SM_SM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R502_StateMachineEvent_SM_SM_extent.remove( R502_StateMachineEvent_SM_SM_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR502_can_be_communicated_to_via_StateMachineEvent(form);
            form.setR502_SM_SM(SM_SMImpl.EMPTY_SM_SM);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R503_StateEventMatrixEntry_is_received_by_StateMachineState( StateEventMatrixEntry form, StateMachineState part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R503_StateEventMatrixEntry_is_received_by_StateMachineState_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR503_receives_StateEventMatrixEntry(form);
            form.setR503_is_received_by_StateMachineState(part);
            form.setSM_ID( part.getSM_ID() );
            form.setSMstt_ID( part.getSMstt_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R503_StateEventMatrixEntry_is_received_by_StateMachineState( StateEventMatrixEntry form, StateMachineState part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R503_StateEventMatrixEntry_is_received_by_StateMachineState_extent.remove( R503_StateEventMatrixEntry_is_received_by_StateMachineState_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR503_receives_StateEventMatrixEntry(form);
            form.setR503_is_received_by_StateMachineState(StateMachineStateImpl.EMPTY_STATEMACHINESTATE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R503_StateEventMatrixEntry_receives_SEMEvent( StateEventMatrixEntry form, SEMEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R503_StateEventMatrixEntry_receives_SEMEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR503_is_received_by_StateEventMatrixEntry(form);
            form.setR503_receives_SEMEvent(part);
            form.setSMevt_ID( part.getSMevt_ID() );
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R503_StateEventMatrixEntry_receives_SEMEvent( StateEventMatrixEntry form, SEMEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R503_StateEventMatrixEntry_receives_SEMEvent_extent.remove( R503_StateEventMatrixEntry_receives_SEMEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR503_is_received_by_StateEventMatrixEntry(form);
            form.setR503_receives_SEMEvent(SEMEventImpl.EMPTY_SEMEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R504_CantHappen_is_a_StateEventMatrixEntry( CantHappen form, StateEventMatrixEntry part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R504_CantHappen_is_a_StateEventMatrixEntry_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR504_is_a_CantHappen(form);
            form.setR504_is_a_StateEventMatrixEntry(part);
            form.setSMstt_ID( part.getSMstt_ID() );
            form.setSMevt_ID( part.getSMevt_ID() );
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R504_CantHappen_is_a_StateEventMatrixEntry( CantHappen form, StateEventMatrixEntry part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R504_CantHappen_is_a_StateEventMatrixEntry_extent.remove( R504_CantHappen_is_a_StateEventMatrixEntry_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR504_is_a_CantHappen(CantHappenImpl.EMPTY_CANTHAPPEN);
            form.setR504_is_a_StateEventMatrixEntry(StateEventMatrixEntryImpl.EMPTY_STATEEVENTMATRIXENTRY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R504_EventIgnored_is_a_StateEventMatrixEntry( EventIgnored form, StateEventMatrixEntry part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R504_EventIgnored_is_a_StateEventMatrixEntry_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR504_is_a_EventIgnored(form);
            form.setR504_is_a_StateEventMatrixEntry(part);
            form.setSMstt_ID( part.getSMstt_ID() );
            form.setSM_ID( part.getSM_ID() );
            form.setSMevt_ID( part.getSMevt_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R504_EventIgnored_is_a_StateEventMatrixEntry( EventIgnored form, StateEventMatrixEntry part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R504_EventIgnored_is_a_StateEventMatrixEntry_extent.remove( R504_EventIgnored_is_a_StateEventMatrixEntry_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR504_is_a_EventIgnored(EventIgnoredImpl.EMPTY_EVENTIGNORED);
            form.setR504_is_a_StateEventMatrixEntry(StateEventMatrixEntryImpl.EMPTY_STATEEVENTMATRIXENTRY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R504_NewStateTransition_is_a_StateEventMatrixEntry( NewStateTransition form, StateEventMatrixEntry part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R504_NewStateTransition_is_a_StateEventMatrixEntry_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR504_is_a_NewStateTransition(form);
            form.setR504_is_a_StateEventMatrixEntry(part);
            form.setSMevt_ID( part.getSMevt_ID() );
            form.setSMstt_ID( part.getSMstt_ID() );
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R504_NewStateTransition_is_a_StateEventMatrixEntry( NewStateTransition form, StateEventMatrixEntry part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R504_NewStateTransition_is_a_StateEventMatrixEntry_extent.remove( R504_NewStateTransition_is_a_StateEventMatrixEntry_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR504_is_a_NewStateTransition(NewStateTransitionImpl.EMPTY_NEWSTATETRANSITION);
            form.setR504_is_a_StateEventMatrixEntry(StateEventMatrixEntryImpl.EMPTY_STATEEVENTMATRIXENTRY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R505_Transition_SM_SM( Transition form, SM_SM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R505_Transition_SM_SM_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR505_contains_Transition(form);
            form.setR505_SM_SM(part);
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R505_Transition_SM_SM( Transition form, SM_SM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R505_Transition_SM_SM_extent.remove( R505_Transition_SM_SM_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR505_contains_Transition(form);
            form.setR505_SM_SM(SM_SMImpl.EMPTY_SM_SM);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R506_Transition_is_destined_to_StateMachineState( Transition form, StateMachineState part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R506_Transition_is_destined_to_StateMachineState_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR506_is_destination_of_Transition(form);
            form.setR506_is_destined_to_StateMachineState(part);
            form.setSM_ID( part.getSM_ID() );
            form.setSMstt_ID( part.getSMstt_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R506_Transition_is_destined_to_StateMachineState( Transition form, StateMachineState part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R506_Transition_is_destined_to_StateMachineState_extent.remove( R506_Transition_is_destined_to_StateMachineState_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR506_is_destination_of_Transition(form);
            form.setR506_is_destined_to_StateMachineState(StateMachineStateImpl.EMPTY_STATEMACHINESTATE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R507_CreationTransition_is_a_Transition( CreationTransition form, Transition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R507_CreationTransition_is_a_Transition_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR507_is_a_CreationTransition(form);
            form.setR507_is_a_Transition(part);
            form.setSM_ID( part.getSM_ID() );
            form.setTrans_ID( part.getTrans_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R507_CreationTransition_is_a_Transition( CreationTransition form, Transition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R507_CreationTransition_is_a_Transition_extent.remove( R507_CreationTransition_is_a_Transition_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR507_is_a_CreationTransition(CreationTransitionImpl.EMPTY_CREATIONTRANSITION);
            form.setR507_is_a_Transition(TransitionImpl.EMPTY_TRANSITION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R507_NewStateTransition_is_a_Transition( NewStateTransition form, Transition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R507_NewStateTransition_is_a_Transition_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR507_is_a_NewStateTransition(form);
            form.setR507_is_a_Transition(part);
            form.setTrans_ID( part.getTrans_ID() );
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R507_NewStateTransition_is_a_Transition( NewStateTransition form, Transition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R507_NewStateTransition_is_a_Transition_extent.remove( R507_NewStateTransition_is_a_Transition_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR507_is_a_NewStateTransition(NewStateTransitionImpl.EMPTY_NEWSTATETRANSITION);
            form.setR507_is_a_Transition(TransitionImpl.EMPTY_TRANSITION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R507_NoEventTransition_is_a_Transition( NoEventTransition form, Transition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R507_NoEventTransition_is_a_Transition_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR507_is_a_NoEventTransition(form);
            form.setR507_is_a_Transition(part);
            form.setSM_ID( part.getSM_ID() );
            form.setTrans_ID( part.getTrans_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R507_NoEventTransition_is_a_Transition( NoEventTransition form, Transition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R507_NoEventTransition_is_a_Transition_extent.remove( R507_NoEventTransition_is_a_Transition_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR507_is_a_NoEventTransition(NoEventTransitionImpl.EMPTY_NOEVENTTRANSITION);
            form.setR507_is_a_Transition(TransitionImpl.EMPTY_TRANSITION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R508_NoEventTransition_originates_from_StateMachineState( NoEventTransition form, StateMachineState part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R508_NoEventTransition_originates_from_StateMachineState_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR508_is_origination_of_NoEventTransition(form);
            form.setR508_originates_from_StateMachineState(part);
            form.setSMstt_ID( part.getSMstt_ID() );
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R508_NoEventTransition_originates_from_StateMachineState( NoEventTransition form, StateMachineState part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R508_NoEventTransition_originates_from_StateMachineState_extent.remove( R508_NoEventTransition_originates_from_StateMachineState_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR508_is_origination_of_NoEventTransition(form);
            form.setR508_originates_from_StateMachineState(StateMachineStateImpl.EMPTY_STATEMACHINESTATE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R509_CreationTransition_is_assigned_to_LocalEvent( CreationTransition form, LocalEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R509_CreationTransition_is_assigned_to_LocalEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR509_has_assigned_to_it_CreationTransition(form);
            form.setR509_is_assigned_to_LocalEvent(part);
            form.setSMevt_ID( part.getSMevt_ID() );
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R509_CreationTransition_is_assigned_to_LocalEvent( CreationTransition form, LocalEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R509_CreationTransition_is_assigned_to_LocalEvent_extent.remove( R509_CreationTransition_is_assigned_to_LocalEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR509_has_assigned_to_it_CreationTransition(CreationTransitionImpl.EMPTY_CREATIONTRANSITION);
            form.setR509_is_assigned_to_LocalEvent(LocalEventImpl.EMPTY_LOCALEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R50_Dimensions_defines_return_value_dimensions_for_Bridge( Dimensions form, Bridge part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R50_Dimensions_defines_return_value_dimensions_for_Bridge_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR50_return_value_may_have_Dimensions(form);
            form.setR50_defines_return_value_dimensions_for_Bridge(part);
            form.setBrg_ID( part.getBrg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R50_Dimensions_defines_return_value_dimensions_for_Bridge( Dimensions form, Bridge part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R50_Dimensions_defines_return_value_dimensions_for_Bridge_extent.remove( R50_Dimensions_defines_return_value_dimensions_for_Bridge_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR50_return_value_may_have_Dimensions(form);
            form.setR50_defines_return_value_dimensions_for_Bridge(BridgeImpl.EMPTY_BRIDGE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R510_MealyStateMachine_is_a_SM_SM( MealyStateMachine form, SM_SM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R510_MealyStateMachine_is_a_SM_SM_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR510_is_a_MealyStateMachine(form);
            form.setR510_is_a_SM_SM(part);
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R510_MealyStateMachine_is_a_SM_SM( MealyStateMachine form, SM_SM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R510_MealyStateMachine_is_a_SM_SM_extent.remove( R510_MealyStateMachine_is_a_SM_SM_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR510_is_a_MealyStateMachine(MealyStateMachineImpl.EMPTY_MEALYSTATEMACHINE);
            form.setR510_is_a_SM_SM(SM_SMImpl.EMPTY_SM_SM);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R510_MooreStateMachine_is_a_SM_SM( MooreStateMachine form, SM_SM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R510_MooreStateMachine_is_a_SM_SM_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR510_is_a_MooreStateMachine(form);
            form.setR510_is_a_SM_SM(part);
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R510_MooreStateMachine_is_a_SM_SM( MooreStateMachine form, SM_SM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R510_MooreStateMachine_is_a_SM_SM_extent.remove( R510_MooreStateMachine_is_a_SM_SM_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR510_is_a_MooreStateMachine(MooreStateMachineImpl.EMPTY_MOORESTATEMACHINE);
            form.setR510_is_a_SM_SM(SM_SMImpl.EMPTY_SM_SM);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R511_MooreActionHome_MooreStateMachine( MooreActionHome form, MooreStateMachine part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R511_MooreActionHome_MooreStateMachine_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR511_MooreActionHome(form);
            form.setR511_MooreStateMachine(part);
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R511_MooreActionHome_MooreStateMachine( MooreActionHome form, MooreStateMachine part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R511_MooreActionHome_MooreStateMachine_extent.remove( R511_MooreActionHome_MooreStateMachine_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR511_MooreActionHome(form);
            form.setR511_MooreStateMachine(MooreStateMachineImpl.EMPTY_MOORESTATEMACHINE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R511_MooreActionHome_StateMachineState( MooreActionHome form, StateMachineState part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R511_MooreActionHome_StateMachineState_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR511_MooreActionHome(form);
            form.setR511_StateMachineState(part);
            form.setSM_ID( part.getSM_ID() );
            form.setSMstt_ID( part.getSMstt_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R511_MooreActionHome_StateMachineState( MooreActionHome form, StateMachineState part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R511_MooreActionHome_StateMachineState_extent.remove( R511_MooreActionHome_StateMachineState_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR511_MooreActionHome(MooreActionHomeImpl.EMPTY_MOOREACTIONHOME);
            form.setR511_StateMachineState(StateMachineStateImpl.EMPTY_STATEMACHINESTATE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R512_MealyActionHome_MealyStateMachine( MealyActionHome form, MealyStateMachine part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R512_MealyActionHome_MealyStateMachine_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR512_MealyActionHome(form);
            form.setR512_MealyStateMachine(part);
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R512_MealyActionHome_MealyStateMachine( MealyActionHome form, MealyStateMachine part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R512_MealyActionHome_MealyStateMachine_extent.remove( R512_MealyActionHome_MealyStateMachine_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR512_MealyActionHome(form);
            form.setR512_MealyStateMachine(MealyStateMachineImpl.EMPTY_MEALYSTATEMACHINE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R512_MealyActionHome_Transition( MealyActionHome form, Transition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R512_MealyActionHome_Transition_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR512_MealyActionHome(form);
            form.setR512_Transition(part);
            form.setTrans_ID( part.getTrans_ID() );
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R512_MealyActionHome_Transition( MealyActionHome form, Transition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R512_MealyActionHome_Transition_extent.remove( R512_MealyActionHome_Transition_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR512_MealyActionHome(MealyActionHomeImpl.EMPTY_MEALYACTIONHOME);
            form.setR512_Transition(TransitionImpl.EMPTY_TRANSITION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R513_MealyActionHome_is_a_ActionHome( MealyActionHome form, ActionHome part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R513_MealyActionHome_is_a_ActionHome_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR513_is_a_MealyActionHome(form);
            form.setR513_is_a_ActionHome(part);
            form.setAct_ID( part.getAct_ID() );
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R513_MealyActionHome_is_a_ActionHome( MealyActionHome form, ActionHome part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R513_MealyActionHome_is_a_ActionHome_extent.remove( R513_MealyActionHome_is_a_ActionHome_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR513_is_a_MealyActionHome(MealyActionHomeImpl.EMPTY_MEALYACTIONHOME);
            form.setR513_is_a_ActionHome(ActionHomeImpl.EMPTY_ACTIONHOME);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R513_MooreActionHome_is_a_ActionHome( MooreActionHome form, ActionHome part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R513_MooreActionHome_is_a_ActionHome_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR513_is_a_MooreActionHome(form);
            form.setR513_is_a_ActionHome(part);
            form.setAct_ID( part.getAct_ID() );
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R513_MooreActionHome_is_a_ActionHome( MooreActionHome form, ActionHome part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R513_MooreActionHome_is_a_ActionHome_extent.remove( R513_MooreActionHome_is_a_ActionHome_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR513_is_a_MooreActionHome(MooreActionHomeImpl.EMPTY_MOOREACTIONHOME);
            form.setR513_is_a_ActionHome(ActionHomeImpl.EMPTY_ACTIONHOME);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R513_TransitionActionHome_is_a_ActionHome( TransitionActionHome form, ActionHome part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R513_TransitionActionHome_is_a_ActionHome_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR513_is_a_TransitionActionHome(form);
            form.setR513_is_a_ActionHome(part);
            form.setAct_ID( part.getAct_ID() );
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R513_TransitionActionHome_is_a_ActionHome( TransitionActionHome form, ActionHome part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R513_TransitionActionHome_is_a_ActionHome_extent.remove( R513_TransitionActionHome_is_a_ActionHome_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR513_is_a_TransitionActionHome(TransitionActionHomeImpl.EMPTY_TRANSITIONACTIONHOME);
            form.setR513_is_a_ActionHome(ActionHomeImpl.EMPTY_ACTIONHOME);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R514_ActionHome_houses_Action( ActionHome form, Action part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R514_ActionHome_houses_Action_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR514_resides_in_ActionHome(form);
            form.setR514_houses_Action(part);
            form.setSM_ID( part.getSM_ID() );
            form.setAct_ID( part.getAct_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R514_ActionHome_houses_Action( ActionHome form, Action part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R514_ActionHome_houses_Action_extent.remove( R514_ActionHome_houses_Action_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR514_resides_in_ActionHome(ActionHomeImpl.EMPTY_ACTIONHOME);
            form.setR514_houses_Action(ActionImpl.EMPTY_ACTION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R515_Action_SM_SM( Action form, SM_SM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R515_Action_SM_SM_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR515_contains_Action(form);
            form.setR515_SM_SM(part);
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R515_Action_SM_SM( Action form, SM_SM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R515_Action_SM_SM_extent.remove( R515_Action_SM_SM_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR515_contains_Action(form);
            form.setR515_SM_SM(SM_SMImpl.EMPTY_SM_SM);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R516_StateMachineEventDataItem_is_carried_on_events_into_SM_SM( StateMachineEventDataItem form, SM_SM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R516_StateMachineEventDataItem_is_carried_on_events_into_SM_SM_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR516_can_asynchronously_communicate_via_StateMachineEventDataItem(form);
            form.setR516_is_carried_on_events_into_SM_SM(part);
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R516_StateMachineEventDataItem_is_carried_on_events_into_SM_SM( StateMachineEventDataItem form, SM_SM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R516_StateMachineEventDataItem_is_carried_on_events_into_SM_SM_extent.remove( R516_StateMachineEventDataItem_is_carried_on_events_into_SM_SM_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR516_can_asynchronously_communicate_via_StateMachineEventDataItem(form);
            form.setR516_is_carried_on_events_into_SM_SM(SM_SMImpl.EMPTY_SM_SM);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R517_ClassStateMachine_is_a_SM_SM( ClassStateMachine form, SM_SM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R517_ClassStateMachine_is_a_SM_SM_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR517_is_a_ClassStateMachine(form);
            form.setR517_is_a_SM_SM(part);
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R517_ClassStateMachine_is_a_SM_SM( ClassStateMachine form, SM_SM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R517_ClassStateMachine_is_a_SM_SM_extent.remove( R517_ClassStateMachine_is_a_SM_SM_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR517_is_a_ClassStateMachine(ClassStateMachineImpl.EMPTY_CLASSSTATEMACHINE);
            form.setR517_is_a_SM_SM(SM_SMImpl.EMPTY_SM_SM);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R517_InstanceStateMachine_is_a_SM_SM( InstanceStateMachine form, SM_SM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R517_InstanceStateMachine_is_a_SM_SM_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR517_is_a_InstanceStateMachine(form);
            form.setR517_is_a_SM_SM(part);
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R517_InstanceStateMachine_is_a_SM_SM( InstanceStateMachine form, SM_SM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R517_InstanceStateMachine_is_a_SM_SM_extent.remove( R517_InstanceStateMachine_is_a_SM_SM_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR517_is_a_InstanceStateMachine(InstanceStateMachineImpl.EMPTY_INSTANCESTATEMACHINE);
            form.setR517_is_a_SM_SM(SM_SMImpl.EMPTY_SM_SM);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R518_InstanceStateMachine_ModelClass( InstanceStateMachine form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R518_InstanceStateMachine_ModelClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR518_InstanceStateMachine(form);
            form.setR518_ModelClass(part);
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R518_InstanceStateMachine_ModelClass( InstanceStateMachine form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R518_InstanceStateMachine_ModelClass_extent.remove( R518_InstanceStateMachine_ModelClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR518_InstanceStateMachine(InstanceStateMachineImpl.EMPTY_INSTANCESTATEMACHINE);
            form.setR518_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R519_ClassStateMachine_ModelClass( ClassStateMachine form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R519_ClassStateMachine_ModelClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR519_ClassStateMachine(form);
            form.setR519_ModelClass(part);
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R519_ClassStateMachine_ModelClass( ClassStateMachine form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R519_ClassStateMachine_ModelClass_extent.remove( R519_ClassStateMachine_ModelClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR519_ClassStateMachine(ClassStateMachineImpl.EMPTY_CLASSSTATEMACHINE);
            form.setR519_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R51_Dimensions_defines_return_value_dimensions_for_S_SYNC( Dimensions form, S_SYNC part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R51_Dimensions_defines_return_value_dimensions_for_S_SYNC_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR51_return_value_may_have_Dimensions(form);
            form.setR51_defines_return_value_dimensions_for_S_SYNC(part);
            form.setSync_ID( part.getSync_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R51_Dimensions_defines_return_value_dimensions_for_S_SYNC( Dimensions form, S_SYNC part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R51_Dimensions_defines_return_value_dimensions_for_S_SYNC_extent.remove( R51_Dimensions_defines_return_value_dimensions_for_S_SYNC_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR51_return_value_may_have_Dimensions(form);
            form.setR51_defines_return_value_dimensions_for_S_SYNC(S_SYNCImpl.EMPTY_S_SYNC);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R524_StateMachineEventDataItem_is_defined_by_DataType( StateMachineEventDataItem form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R524_StateMachineEventDataItem_is_defined_by_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR524_defines_the_type_of_StateMachineEventDataItem(form);
            form.setR524_is_defined_by_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R524_StateMachineEventDataItem_is_defined_by_DataType( StateMachineEventDataItem form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R524_StateMachineEventDataItem_is_defined_by_DataType_extent.remove( R524_StateMachineEventDataItem_is_defined_by_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR524_defines_the_type_of_StateMachineEventDataItem(form);
            form.setR524_is_defined_by_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R525_PolymorphicEvent_is_a_StateMachineEvent( PolymorphicEvent form, StateMachineEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R525_PolymorphicEvent_is_a_StateMachineEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR525_is_a_PolymorphicEvent(form);
            form.setR525_is_a_StateMachineEvent(part);
            form.setSM_ID( part.getSM_ID() );
            form.setSMevt_ID( part.getSMevt_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R525_PolymorphicEvent_is_a_StateMachineEvent( PolymorphicEvent form, StateMachineEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R525_PolymorphicEvent_is_a_StateMachineEvent_extent.remove( R525_PolymorphicEvent_is_a_StateMachineEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR525_is_a_PolymorphicEvent(PolymorphicEventImpl.EMPTY_POLYMORPHICEVENT);
            form.setR525_is_a_StateMachineEvent(StateMachineEventImpl.EMPTY_STATEMACHINEEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R525_SEMEvent_is_a_StateMachineEvent( SEMEvent form, StateMachineEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R525_SEMEvent_is_a_StateMachineEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR525_is_a_SEMEvent(form);
            form.setR525_is_a_StateMachineEvent(part);
            form.setSM_ID( part.getSM_ID() );
            form.setSMevt_ID( part.getSMevt_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R525_SEMEvent_is_a_StateMachineEvent( SEMEvent form, StateMachineEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R525_SEMEvent_is_a_StateMachineEvent_extent.remove( R525_SEMEvent_is_a_StateMachineEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR525_is_a_SEMEvent(SEMEventImpl.EMPTY_SEMEVENT);
            form.setR525_is_a_StateMachineEvent(StateMachineEventImpl.EMPTY_STATEMACHINEEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R526_LocalEvent_is_a_SEMEvent( LocalEvent form, SEMEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R526_LocalEvent_is_a_SEMEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR526_is_a_LocalEvent(form);
            form.setR526_is_a_SEMEvent(part);
            form.setSM_ID( part.getSM_ID() );
            form.setSMevt_ID( part.getSMevt_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R526_LocalEvent_is_a_SEMEvent( LocalEvent form, SEMEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R526_LocalEvent_is_a_SEMEvent_extent.remove( R526_LocalEvent_is_a_SEMEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR526_is_a_LocalEvent(LocalEventImpl.EMPTY_LOCALEVENT);
            form.setR526_is_a_SEMEvent(SEMEventImpl.EMPTY_SEMEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R526_NonLocalEvent_is_a_SEMEvent( NonLocalEvent form, SEMEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R526_NonLocalEvent_is_a_SEMEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR526_is_a_NonLocalEvent(form);
            form.setR526_is_a_SEMEvent(part);
            form.setSMevt_ID( part.getSMevt_ID() );
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R526_NonLocalEvent_is_a_SEMEvent( NonLocalEvent form, SEMEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R526_NonLocalEvent_is_a_SEMEvent_extent.remove( R526_NonLocalEvent_is_a_SEMEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR526_is_a_NonLocalEvent(NonLocalEventImpl.EMPTY_NONLOCALEVENT);
            form.setR526_is_a_SEMEvent(SEMEventImpl.EMPTY_SEMEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R526_SignalEvent_is_a_SEMEvent( SignalEvent form, SEMEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R526_SignalEvent_is_a_SEMEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR526_is_a_SignalEvent(form);
            form.setR526_is_a_SEMEvent(part);
            form.setSMevt_ID( part.getSMevt_ID() );
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R526_SignalEvent_is_a_SEMEvent( SignalEvent form, SEMEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R526_SignalEvent_is_a_SEMEvent_extent.remove( R526_SignalEvent_is_a_SEMEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR526_is_a_SignalEvent(SignalEventImpl.EMPTY_SIGNALEVENT);
            form.setR526_is_a_SEMEvent(SEMEventImpl.EMPTY_SEMEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R527_NonLocalEvent_is_defined_by_PolymorphicEvent( NonLocalEvent form, PolymorphicEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R527_NonLocalEvent_is_defined_by_PolymorphicEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR527_is_aliased_by_NonLocalEvent(form);
            form.setR527_is_defined_by_PolymorphicEvent(part);
            form.setPolySM_ID( part.getSM_ID() );
            form.setPolySMevt_ID( part.getSMevt_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R527_NonLocalEvent_is_defined_by_PolymorphicEvent( NonLocalEvent form, PolymorphicEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R527_NonLocalEvent_is_defined_by_PolymorphicEvent_extent.remove( R527_NonLocalEvent_is_defined_by_PolymorphicEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR527_is_aliased_by_NonLocalEvent(form);
            form.setR527_is_defined_by_PolymorphicEvent(PolymorphicEventImpl.EMPTY_POLYMORPHICEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R528_SignalEvent_ProvidedSignal( SignalEvent form, ProvidedSignal part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R528_SignalEvent_ProvidedSignal_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR528_SignalEvent(form);
            form.setR528_ProvidedSignal(part);
            form.setProvided_Signal_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R528_SignalEvent_ProvidedSignal( SignalEvent form, ProvidedSignal part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R528_SignalEvent_ProvidedSignal_extent.remove( R528_SignalEvent_ProvidedSignal_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR528_SignalEvent(SignalEventImpl.EMPTY_SIGNALEVENT);
            form.setR528_ProvidedSignal(ProvidedSignalImpl.EMPTY_PROVIDEDSIGNAL);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R529_SignalEvent_RequiredSignal( SignalEvent form, RequiredSignal part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R529_SignalEvent_RequiredSignal_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR529_SignalEvent(form);
            form.setR529_RequiredSignal(part);
            form.setRequired_Signal_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R529_SignalEvent_RequiredSignal( SignalEvent form, RequiredSignal part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R529_SignalEvent_RequiredSignal_extent.remove( R529_SignalEvent_RequiredSignal_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR529_SignalEvent(SignalEventImpl.EMPTY_SIGNALEVENT);
            form.setR529_RequiredSignal(RequiredSignalImpl.EMPTY_REQUIREDSIGNAL);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R52_Dimensions_specifies_occurrences_of_FunctionParameter( Dimensions form, FunctionParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R52_Dimensions_specifies_occurrences_of_FunctionParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR52_may_have_Dimensions(form);
            form.setR52_specifies_occurrences_of_FunctionParameter(part);
            form.setSParm_ID( part.getSParm_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R52_Dimensions_specifies_occurrences_of_FunctionParameter( Dimensions form, FunctionParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R52_Dimensions_specifies_occurrences_of_FunctionParameter_extent.remove( R52_Dimensions_specifies_occurrences_of_FunctionParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR52_may_have_Dimensions(form);
            form.setR52_specifies_occurrences_of_FunctionParameter(FunctionParameterImpl.EMPTY_FUNCTIONPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R530_TransitionActionHome_Transition( TransitionActionHome form, Transition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R530_TransitionActionHome_Transition_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR530_houses_action_for_TransitionActionHome(form);
            form.setR530_Transition(part);
            form.setSM_ID( part.getSM_ID() );
            form.setTrans_ID( part.getTrans_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R530_TransitionActionHome_Transition( TransitionActionHome form, Transition part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R530_TransitionActionHome_Transition_extent.remove( R530_TransitionActionHome_Transition_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR530_houses_action_for_TransitionActionHome(TransitionActionHomeImpl.EMPTY_TRANSITIONACTIONHOME);
            form.setR530_Transition(TransitionImpl.EMPTY_TRANSITION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R531_Dimensions_specifies_occurrences_of_StateMachineEventDataItem( Dimensions form, StateMachineEventDataItem part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R531_Dimensions_specifies_occurrences_of_StateMachineEventDataItem_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR531_may_have_Dimensions(form);
            form.setR531_specifies_occurrences_of_StateMachineEventDataItem(part);
            form.setSMedi_ID( part.getSMedi_ID() );
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R531_Dimensions_specifies_occurrences_of_StateMachineEventDataItem( Dimensions form, StateMachineEventDataItem part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R531_Dimensions_specifies_occurrences_of_StateMachineEventDataItem_extent.remove( R531_Dimensions_specifies_occurrences_of_StateMachineEventDataItem_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR531_may_have_Dimensions(form);
            form.setR531_specifies_occurrences_of_StateMachineEventDataItem(StateMachineEventDataItemImpl.EMPTY_STATEMACHINEEVENTDATAITEM);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R532_StateMachineEventDataItem_carried_by_StateMachineEvent( StateMachineEventDataItem form, StateMachineEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R532_StateMachineEventDataItem_carried_by_StateMachineEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR532_carries_StateMachineEventDataItem(form);
            form.setR532_carried_by_StateMachineEvent(part);
            form.setSMevt_ID( part.getSMevt_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R532_StateMachineEventDataItem_carried_by_StateMachineEvent( StateMachineEventDataItem form, StateMachineEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R532_StateMachineEventDataItem_carried_by_StateMachineEvent_extent.remove( R532_StateMachineEventDataItem_carried_by_StateMachineEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR532_carries_StateMachineEventDataItem(form);
            form.setR532_carried_by_StateMachineEvent(StateMachineEventImpl.EMPTY_STATEMACHINEEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R533_StateMachineEventDataItem_succeeds_StateMachineEventDataItem( StateMachineEventDataItem form, StateMachineEventDataItem part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R533_StateMachineEventDataItem_succeeds_StateMachineEventDataItem_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR533_precedes_StateMachineEventDataItem(form);
            form.setR533_succeeds_StateMachineEventDataItem(part);
            form.setPrevious_SMedi_ID( part.getSMedi_ID() );
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R533_StateMachineEventDataItem_succeeds_StateMachineEventDataItem( StateMachineEventDataItem form, StateMachineEventDataItem part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R533_StateMachineEventDataItem_succeeds_StateMachineEventDataItem_extent.remove( R533_StateMachineEventDataItem_succeeds_StateMachineEventDataItem_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR533_precedes_StateMachineEventDataItem(StateMachineEventDataItemImpl.EMPTY_STATEMACHINEEVENTDATAITEM);
            form.setR533_succeeds_StateMachineEventDataItem(StateMachineEventDataItemImpl.EMPTY_STATEMACHINEEVENTDATAITEM);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R53_Dimensions_specifies_occurrences_of_StructureMember( Dimensions form, StructureMember part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R53_Dimensions_specifies_occurrences_of_StructureMember_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR53_may_have_Dimensions(form);
            form.setR53_specifies_occurrences_of_StructureMember(part);
            form.setMember_ID( part.getMember_ID() );
            form.setDT_ID( part.getParent_DT_DT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R53_Dimensions_specifies_occurrences_of_StructureMember( Dimensions form, StructureMember part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R53_Dimensions_specifies_occurrences_of_StructureMember_extent.remove( R53_Dimensions_specifies_occurrences_of_StructureMember_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR53_may_have_Dimensions(form);
            form.setR53_specifies_occurrences_of_StructureMember(StructureMemberImpl.EMPTY_STRUCTUREMEMBER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R54_FunctionParameter_succeeds_FunctionParameter( FunctionParameter form, FunctionParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R54_FunctionParameter_succeeds_FunctionParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR54_precedes_FunctionParameter(form);
            form.setR54_succeeds_FunctionParameter(part);
            form.setPrevious_SParm_ID( part.getSParm_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R54_FunctionParameter_succeeds_FunctionParameter( FunctionParameter form, FunctionParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R54_FunctionParameter_succeeds_FunctionParameter_extent.remove( R54_FunctionParameter_succeeds_FunctionParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR54_precedes_FunctionParameter(FunctionParameterImpl.EMPTY_FUNCTIONPARAMETER);
            form.setR54_succeeds_FunctionParameter(FunctionParameterImpl.EMPTY_FUNCTIONPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R55_BridgeParameter_succeeds_BridgeParameter( BridgeParameter form, BridgeParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R55_BridgeParameter_succeeds_BridgeParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR55_precedes_BridgeParameter(form);
            form.setR55_succeeds_BridgeParameter(part);
            form.setPrevious_BParm_ID( part.getBParm_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R55_BridgeParameter_succeeds_BridgeParameter( BridgeParameter form, BridgeParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R55_BridgeParameter_succeeds_BridgeParameter_extent.remove( R55_BridgeParameter_succeeds_BridgeParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR55_precedes_BridgeParameter(BridgeParameterImpl.EMPTY_BRIDGEPARAMETER);
            form.setR55_succeeds_BridgeParameter(BridgeParameterImpl.EMPTY_BRIDGEPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R56_S_ENUM_succeeds_S_ENUM( S_ENUM form, S_ENUM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R56_S_ENUM_succeeds_S_ENUM_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR56_precedes_S_ENUM(form);
            form.setR56_succeeds_S_ENUM(part);
            form.setPrevious_Enum_ID( part.getEnum_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R56_S_ENUM_succeeds_S_ENUM( S_ENUM form, S_ENUM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R56_S_ENUM_succeeds_S_ENUM_extent.remove( R56_S_ENUM_succeeds_S_ENUM_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR56_precedes_S_ENUM(S_ENUMImpl.EMPTY_S_ENUM);
            form.setR56_succeeds_S_ENUM(S_ENUMImpl.EMPTY_S_ENUM);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R57_Range_spans_UserDataType( Range form, UserDataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R57_Range_spans_UserDataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR57_has_span_of_Range(form);
            form.setR57_spans_UserDataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R57_Range_spans_UserDataType( Range form, UserDataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R57_Range_spans_UserDataType_extent.remove( R57_Range_spans_UserDataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR57_has_span_of_Range(RangeImpl.EMPTY_RANGE);
            form.setR57_spans_UserDataType(UserDataTypeImpl.EMPTY_USERDATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R601_Block_is_committed_from_Body( Block form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R601_Block_is_committed_from_Body_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR601_has_committed_Block(form);
            form.setR601_is_committed_from_Body(part);
            form.setAction_ID( part.getAction_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R601_Block_is_committed_from_Body( Block form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R601_Block_is_committed_from_Body_extent.remove( R601_Block_is_committed_from_Body_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR601_has_committed_Block(form);
            form.setR601_is_committed_from_Body(BodyImpl.EMPTY_BODY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R602_ACT_SMT_contains_Block( ACT_SMT form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R602_ACT_SMT_contains_Block_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR602_contained_by_ACT_SMT(form);
            form.setR602_contains_Block(part);
            form.setBlock_ID( part.getBlock_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R602_ACT_SMT_contains_Block( ACT_SMT form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R602_ACT_SMT_contains_Block_extent.remove( R602_ACT_SMT_contains_Block_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR602_contained_by_ACT_SMT(form);
            form.setR602_contains_Block(BlockImpl.EMPTY_BLOCK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_ACT_BRK_is_a_ACT_SMT( ACT_BRK form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_ACT_BRK_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_ACT_BRK(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_ACT_BRK_is_a_ACT_SMT( ACT_BRK form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_ACT_BRK_is_a_ACT_SMT_extent.remove( R603_ACT_BRK_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_ACT_BRK(ACT_BRKImpl.EMPTY_ACT_BRK);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_ACT_CON_is_a_ACT_SMT( ACT_CON form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_ACT_CON_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_ACT_CON(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_ACT_CON_is_a_ACT_SMT( ACT_CON form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_ACT_CON_is_a_ACT_SMT_extent.remove( R603_ACT_CON_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_ACT_CON(ACT_CONImpl.EMPTY_ACT_CON);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_ACT_FIO_is_a_ACT_SMT( ACT_FIO form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_ACT_FIO_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_ACT_FIO(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_ACT_FIO_is_a_ACT_SMT( ACT_FIO form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_ACT_FIO_is_a_ACT_SMT_extent.remove( R603_ACT_FIO_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_ACT_FIO(ACT_FIOImpl.EMPTY_ACT_FIO);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_ACT_SEL_is_a_ACT_SMT( ACT_SEL form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_ACT_SEL_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_ACT_SEL(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_ACT_SEL_is_a_ACT_SMT( ACT_SEL form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_ACT_SEL_is_a_ACT_SMT_extent.remove( R603_ACT_SEL_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_ACT_SEL(ACT_SELImpl.EMPTY_ACT_SEL);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_AssignToMember_is_a_ACT_SMT( AssignToMember form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_AssignToMember_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_AssignToMember(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_AssignToMember_is_a_ACT_SMT( AssignToMember form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_AssignToMember_is_a_ACT_SMT_extent.remove( R603_AssignToMember_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_AssignToMember(AssignToMemberImpl.EMPTY_ASSIGNTOMEMBER);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_BridgeInvocation_is_a_ACT_SMT( BridgeInvocation form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_BridgeInvocation_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_BridgeInvocation(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_BridgeInvocation_is_a_ACT_SMT( BridgeInvocation form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_BridgeInvocation_is_a_ACT_SMT_extent.remove( R603_BridgeInvocation_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_BridgeInvocation(BridgeInvocationImpl.EMPTY_BRIDGEINVOCATION);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_Control_is_a_ACT_SMT( Control form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_Control_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_Control(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_Control_is_a_ACT_SMT( Control form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_Control_is_a_ACT_SMT_extent.remove( R603_Control_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_Control(ControlImpl.EMPTY_CONTROL);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_CreateNoVariable_is_a_ACT_SMT( CreateNoVariable form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_CreateNoVariable_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_CreateNoVariable(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_CreateNoVariable_is_a_ACT_SMT( CreateNoVariable form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_CreateNoVariable_is_a_ACT_SMT_extent.remove( R603_CreateNoVariable_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_CreateNoVariable(CreateNoVariableImpl.EMPTY_CREATENOVARIABLE);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_Create_is_a_ACT_SMT( Create form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_Create_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_Create(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_Create_is_a_ACT_SMT( Create form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_Create_is_a_ACT_SMT_extent.remove( R603_Create_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_Create(CreateImpl.EMPTY_CREATE);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_Delete_is_a_ACT_SMT( Delete form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_Delete_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_Delete(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_Delete_is_a_ACT_SMT( Delete form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_Delete_is_a_ACT_SMT_extent.remove( R603_Delete_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_Delete(DeleteImpl.EMPTY_DELETE);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_ElseIfStmt_is_a_ACT_SMT( ElseIfStmt form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_ElseIfStmt_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_ElseIfStmt(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_ElseIfStmt_is_a_ACT_SMT( ElseIfStmt form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_ElseIfStmt_is_a_ACT_SMT_extent.remove( R603_ElseIfStmt_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_ElseIfStmt(ElseIfStmtImpl.EMPTY_ELSEIFSTMT);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_ElseStmt_is_a_ACT_SMT( ElseStmt form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_ElseStmt_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_ElseStmt(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_ElseStmt_is_a_ACT_SMT( ElseStmt form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_ElseStmt_is_a_ACT_SMT_extent.remove( R603_ElseStmt_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_ElseStmt(ElseStmtImpl.EMPTY_ELSESTMT);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_EventSpecificationStatement_is_a_ACT_SMT( EventSpecificationStatement form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_EventSpecificationStatement_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_EventSpecificationStatement(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_EventSpecificationStatement_is_a_ACT_SMT( EventSpecificationStatement form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_EventSpecificationStatement_is_a_ACT_SMT_extent.remove( R603_EventSpecificationStatement_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_EventSpecificationStatement(EventSpecificationStatementImpl.EMPTY_EVENTSPECIFICATIONSTATEMENT);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_ForStmt_is_a_ACT_SMT( ForStmt form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_ForStmt_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_ForStmt(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_ForStmt_is_a_ACT_SMT( ForStmt form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_ForStmt_is_a_ACT_SMT_extent.remove( R603_ForStmt_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_ForStmt(ForStmtImpl.EMPTY_FORSTMT);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_FunctionInvocation_is_a_ACT_SMT( FunctionInvocation form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_FunctionInvocation_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_FunctionInvocation(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_FunctionInvocation_is_a_ACT_SMT( FunctionInvocation form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_FunctionInvocation_is_a_ACT_SMT_extent.remove( R603_FunctionInvocation_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_FunctionInvocation(FunctionInvocationImpl.EMPTY_FUNCTIONINVOCATION);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_GeneratePreexistingEvent_is_a_ACT_SMT( GeneratePreexistingEvent form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_GeneratePreexistingEvent_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_GeneratePreexistingEvent(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_GeneratePreexistingEvent_is_a_ACT_SMT( GeneratePreexistingEvent form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_GeneratePreexistingEvent_is_a_ACT_SMT_extent.remove( R603_GeneratePreexistingEvent_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_GeneratePreexistingEvent(GeneratePreexistingEventImpl.EMPTY_GENERATEPREEXISTINGEVENT);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_IfStmt_is_a_ACT_SMT( IfStmt form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_IfStmt_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_IfStmt(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_IfStmt_is_a_ACT_SMT( IfStmt form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_IfStmt_is_a_ACT_SMT_extent.remove( R603_IfStmt_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_IfStmt(IfStmtImpl.EMPTY_IFSTMT);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_InterfaceOperationInvocation_is_a_ACT_SMT( InterfaceOperationInvocation form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_InterfaceOperationInvocation_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_InterfaceOperationInvocation(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_InterfaceOperationInvocation_is_a_ACT_SMT( InterfaceOperationInvocation form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_InterfaceOperationInvocation_is_a_ACT_SMT_extent.remove( R603_InterfaceOperationInvocation_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_InterfaceOperationInvocation(InterfaceOperationInvocationImpl.EMPTY_INTERFACEOPERATIONINVOCATION);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_OperationInvocation_is_a_ACT_SMT( OperationInvocation form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_OperationInvocation_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_OperationInvocation(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_OperationInvocation_is_a_ACT_SMT( OperationInvocation form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_OperationInvocation_is_a_ACT_SMT_extent.remove( R603_OperationInvocation_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_OperationInvocation(OperationInvocationImpl.EMPTY_OPERATIONINVOCATION);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_RelateUsing_is_a_ACT_SMT( RelateUsing form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_RelateUsing_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_RelateUsing(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_RelateUsing_is_a_ACT_SMT( RelateUsing form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_RelateUsing_is_a_ACT_SMT_extent.remove( R603_RelateUsing_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_RelateUsing(RelateUsingImpl.EMPTY_RELATEUSING);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_Relate_is_a_ACT_SMT( Relate form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_Relate_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_Relate(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_Relate_is_a_ACT_SMT( Relate form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_Relate_is_a_ACT_SMT_extent.remove( R603_Relate_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_Relate(RelateImpl.EMPTY_RELATE);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_ReturnStmt_is_a_ACT_SMT( ReturnStmt form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_ReturnStmt_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_ReturnStmt(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_ReturnStmt_is_a_ACT_SMT( ReturnStmt form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_ReturnStmt_is_a_ACT_SMT_extent.remove( R603_ReturnStmt_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_ReturnStmt(ReturnStmtImpl.EMPTY_RETURNSTMT);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_SelectFromInstancesWhere_is_a_ACT_SMT( SelectFromInstancesWhere form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_SelectFromInstancesWhere_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_SelectFromInstancesWhere(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_SelectFromInstancesWhere_is_a_ACT_SMT( SelectFromInstancesWhere form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_SelectFromInstancesWhere_is_a_ACT_SMT_extent.remove( R603_SelectFromInstancesWhere_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_SelectFromInstancesWhere(SelectFromInstancesWhereImpl.EMPTY_SELECTFROMINSTANCESWHERE);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_SignalInvocation_is_a_ACT_SMT( SignalInvocation form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_SignalInvocation_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_SignalInvocation(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_SignalInvocation_is_a_ACT_SMT( SignalInvocation form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_SignalInvocation_is_a_ACT_SMT_extent.remove( R603_SignalInvocation_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_SignalInvocation(SignalInvocationImpl.EMPTY_SIGNALINVOCATION);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_UnrelateUsing_is_a_ACT_SMT( UnrelateUsing form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_UnrelateUsing_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_UnrelateUsing(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_UnrelateUsing_is_a_ACT_SMT( UnrelateUsing form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_UnrelateUsing_is_a_ACT_SMT_extent.remove( R603_UnrelateUsing_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_UnrelateUsing(UnrelateUsingImpl.EMPTY_UNRELATEUSING);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_Unrelate_is_a_ACT_SMT( Unrelate form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_Unrelate_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_Unrelate(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_Unrelate_is_a_ACT_SMT( Unrelate form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_Unrelate_is_a_ACT_SMT_extent.remove( R603_Unrelate_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_Unrelate(UnrelateImpl.EMPTY_UNRELATE);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R603_WhileStmt_is_a_ACT_SMT( WhileStmt form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R603_WhileStmt_is_a_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_WhileStmt(form);
            form.setR603_is_a_ACT_SMT(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R603_WhileStmt_is_a_ACT_SMT( WhileStmt form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R603_WhileStmt_is_a_ACT_SMT_extent.remove( R603_WhileStmt_is_a_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR603_is_a_WhileStmt(WhileStmtImpl.EMPTY_WHILESTMT);
            form.setR603_is_a_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R604_ChainLink_precedes_ChainLink( ChainLink form, ChainLink part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R604_ChainLink_precedes_ChainLink_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR604_succeeds_ChainLink(form);
            form.setR604_precedes_ChainLink(part);
            form.setNext_Link_ID( part.getLink_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R604_ChainLink_precedes_ChainLink( ChainLink form, ChainLink part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R604_ChainLink_precedes_ChainLink_extent.remove( R604_ChainLink_precedes_ChainLink_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR604_succeeds_ChainLink(ChainLinkImpl.EMPTY_CHAINLINK);
            form.setR604_precedes_ChainLink(ChainLinkImpl.EMPTY_CHAINLINK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R605_ForStmt_controls_Block( ForStmt form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R605_ForStmt_controls_Block_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR605_ForStmt(form);
            form.setR605_controls_Block(part);
            form.setBlock_ID( part.getBlock_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R605_ForStmt_controls_Block( ForStmt form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R605_ForStmt_controls_Block_extent.remove( R605_ForStmt_controls_Block_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR605_ForStmt(ForStmtImpl.EMPTY_FORSTMT);
            form.setR605_controls_Block(BlockImpl.EMPTY_BLOCK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R606_ElseStmt_controls_Block( ElseStmt form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R606_ElseStmt_controls_Block_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR606_ElseStmt(form);
            form.setR606_controls_Block(part);
            form.setBlock_ID( part.getBlock_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R606_ElseStmt_controls_Block( ElseStmt form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R606_ElseStmt_controls_Block_extent.remove( R606_ElseStmt_controls_Block_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR606_ElseStmt(ElseStmtImpl.EMPTY_ELSESTMT);
            form.setR606_controls_Block(BlockImpl.EMPTY_BLOCK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R607_IfStmt_controls_Block( IfStmt form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R607_IfStmt_controls_Block_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR607_IfStmt(form);
            form.setR607_controls_Block(part);
            form.setBlock_ID( part.getBlock_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R607_IfStmt_controls_Block( IfStmt form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R607_IfStmt_controls_Block_extent.remove( R607_IfStmt_controls_Block_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR607_IfStmt(IfStmtImpl.EMPTY_IFSTMT);
            form.setR607_controls_Block(BlockImpl.EMPTY_BLOCK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R608_WhileStmt_controls_Block( WhileStmt form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R608_WhileStmt_controls_Block_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR608_WhileStmt(form);
            form.setR608_controls_Block(part);
            form.setBlock_ID( part.getBlock_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R608_WhileStmt_controls_Block( WhileStmt form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R608_WhileStmt_controls_Block_extent.remove( R608_WhileStmt_controls_Block_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR608_WhileStmt(WhileStmtImpl.EMPTY_WHILESTMT);
            form.setR608_controls_Block(BlockImpl.EMPTY_BLOCK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R609_AssignToMember_reads_Value( AssignToMember form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R609_AssignToMember_reads_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR609_AssignToMember(form);
            form.setR609_reads_Value(part);
            form.setR_Value_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R609_AssignToMember_reads_Value( AssignToMember form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R609_AssignToMember_reads_Value_extent.remove( R609_AssignToMember_reads_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR609_AssignToMember(AssignToMemberImpl.EMPTY_ASSIGNTOMEMBER);
            form.setR609_reads_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R610_SelectFromInstancesWhere_where_clause_Value( SelectFromInstancesWhere form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R610_SelectFromInstancesWhere_where_clause_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR610_SelectFromInstancesWhere(form);
            form.setR610_where_clause_Value(part);
            form.setWhere_Clause_Value_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R610_SelectFromInstancesWhere_where_clause_Value( SelectFromInstancesWhere form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R610_SelectFromInstancesWhere_where_clause_Value_extent.remove( R610_SelectFromInstancesWhere_where_clause_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR610_SelectFromInstancesWhere(SelectFromInstancesWhereImpl.EMPTY_SELECTFROMINSTANCESWHERE);
            form.setR610_where_clause_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R611_SelectRelatedWhere_where_clause_Value( SelectRelatedWhere form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R611_SelectRelatedWhere_where_clause_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR611_SelectRelatedWhere(form);
            form.setR611_where_clause_Value(part);
            form.setWhere_Clause_Value_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R611_SelectRelatedWhere_where_clause_Value( SelectRelatedWhere form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R611_SelectRelatedWhere_where_clause_Value_extent.remove( R611_SelectRelatedWhere_where_clause_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR611_SelectRelatedWhere(SelectRelatedWhereImpl.EMPTY_SELECTRELATEDWHERE);
            form.setR611_where_clause_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R612_Block_is_parsed_from_Body( Block form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R612_Block_is_parsed_from_Body_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR612_has_parsed_Block(form);
            form.setR612_is_parsed_from_Body(part);
            form.setParsed_Action_ID( part.getAction_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R612_Block_is_parsed_from_Body( Block form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R612_Block_is_parsed_from_Body_extent.remove( R612_Block_is_parsed_from_Body_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR612_has_parsed_Block(form);
            form.setR612_is_parsed_from_Body(BodyImpl.EMPTY_BODY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R613_ACT_SEL_starting_point_Value( ACT_SEL form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R613_ACT_SEL_starting_point_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR613_ACT_SEL(form);
            form.setR613_starting_point_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R613_ACT_SEL_starting_point_Value( ACT_SEL form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R613_ACT_SEL_starting_point_Value_extent.remove( R613_ACT_SEL_starting_point_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR613_ACT_SEL(ACT_SELImpl.EMPTY_ACT_SEL);
            form.setR613_starting_point_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R614_ForStmt_loop_V_VAR( ForStmt form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R614_ForStmt_loop_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR614_is_loop_variable_ForStmt(form);
            form.setR614_loop_V_VAR(part);
            form.setLoop_Var_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R614_ForStmt_loop_V_VAR( ForStmt form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R614_ForStmt_loop_V_VAR_extent.remove( R614_ForStmt_loop_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR614_is_loop_variable_ForStmt(form);
            form.setR614_loop_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R615_Relate_one_V_VAR( Relate form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R615_Relate_one_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR615_is_one_variable_Relate(form);
            form.setR615_one_V_VAR(part);
            form.setOne_Side_Var_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R615_Relate_one_V_VAR( Relate form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R615_Relate_one_V_VAR_extent.remove( R615_Relate_one_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR615_is_one_variable_Relate(form);
            form.setR615_one_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R616_Relate_other_V_VAR( Relate form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R616_Relate_other_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR616_is_other_variable_Relate(form);
            form.setR616_other_V_VAR(part);
            form.setOther_Side_Var_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R616_Relate_other_V_VAR( Relate form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R616_Relate_other_V_VAR_extent.remove( R616_Relate_other_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR616_is_other_variable_Relate(form);
            form.setR616_other_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R617_RelateUsing_one_V_VAR( RelateUsing form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R617_RelateUsing_one_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR617_is_one_variable_RelateUsing(form);
            form.setR617_one_V_VAR(part);
            form.setOne_Side_Var_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R617_RelateUsing_one_V_VAR( RelateUsing form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R617_RelateUsing_one_V_VAR_extent.remove( R617_RelateUsing_one_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR617_is_one_variable_RelateUsing(form);
            form.setR617_one_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R618_RelateUsing_other_V_VAR( RelateUsing form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R618_RelateUsing_other_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR618_is_other_variable_RelateUsing(form);
            form.setR618_other_V_VAR(part);
            form.setOther_Side_Var_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R618_RelateUsing_other_V_VAR( RelateUsing form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R618_RelateUsing_other_V_VAR_extent.remove( R618_RelateUsing_other_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR618_is_other_variable_RelateUsing(form);
            form.setR618_other_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R619_RelateUsing_using_V_VAR( RelateUsing form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R619_RelateUsing_using_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR619_is_using_variable_RelateUsing(form);
            form.setR619_using_V_VAR(part);
            form.setAssociative_Var_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R619_RelateUsing_using_V_VAR( RelateUsing form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R619_RelateUsing_using_V_VAR_extent.remove( R619_RelateUsing_using_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR619_is_using_variable_RelateUsing(form);
            form.setR619_using_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R620_Unrelate_one_V_VAR( Unrelate form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R620_Unrelate_one_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR620_is_one_variable_Unrelate(form);
            form.setR620_one_V_VAR(part);
            form.setOne_Side_Var_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R620_Unrelate_one_V_VAR( Unrelate form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R620_Unrelate_one_V_VAR_extent.remove( R620_Unrelate_one_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR620_is_one_variable_Unrelate(form);
            form.setR620_one_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R621_Unrelate_other_V_VAR( Unrelate form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R621_Unrelate_other_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR621_is_other_variable_Unrelate(form);
            form.setR621_other_V_VAR(part);
            form.setOther_Side_Var_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R621_Unrelate_other_V_VAR( Unrelate form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R621_Unrelate_other_V_VAR_extent.remove( R621_Unrelate_other_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR621_is_other_variable_Unrelate(form);
            form.setR621_other_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R622_UnrelateUsing_one_V_VAR( UnrelateUsing form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R622_UnrelateUsing_one_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR622_is_one_variable_UnrelateUsing(form);
            form.setR622_one_V_VAR(part);
            form.setOne_Side_Var_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R622_UnrelateUsing_one_V_VAR( UnrelateUsing form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R622_UnrelateUsing_one_V_VAR_extent.remove( R622_UnrelateUsing_one_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR622_is_one_variable_UnrelateUsing(form);
            form.setR622_one_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R623_UnrelateUsing_other_V_VAR( UnrelateUsing form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R623_UnrelateUsing_other_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR623_is_other_variable_UnrelateUsing(form);
            form.setR623_other_V_VAR(part);
            form.setOther_Side_Var_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R623_UnrelateUsing_other_V_VAR( UnrelateUsing form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R623_UnrelateUsing_other_V_VAR_extent.remove( R623_UnrelateUsing_other_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR623_is_other_variable_UnrelateUsing(form);
            form.setR623_other_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R624_UnrelateUsing_using_V_VAR( UnrelateUsing form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R624_UnrelateUsing_using_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR624_is_using_variable_UnrelateUsing(form);
            form.setR624_using_V_VAR(part);
            form.setAssociative_Var_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R624_UnrelateUsing_using_V_VAR( UnrelateUsing form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R624_UnrelateUsing_using_V_VAR_extent.remove( R624_UnrelateUsing_using_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR624_is_using_variable_UnrelateUsing(form);
            form.setR624_using_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R625_IfStmt_test_result_Value( IfStmt form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R625_IfStmt_test_result_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR625_IfStmt(form);
            form.setR625_test_result_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R625_IfStmt_test_result_Value( IfStmt form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R625_IfStmt_test_result_Value_extent.remove( R625_IfStmt_test_result_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR625_IfStmt(IfStmtImpl.EMPTY_IFSTMT);
            form.setR625_test_result_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R626_WhileStmt_continue_result_Value( WhileStmt form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R626_WhileStmt_continue_result_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR626_WhileStmt(form);
            form.setR626_continue_result_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R626_WhileStmt_continue_result_Value( WhileStmt form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R626_WhileStmt_continue_result_Value_extent.remove( R626_WhileStmt_continue_result_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR626_WhileStmt(WhileStmtImpl.EMPTY_WHILESTMT);
            form.setR626_continue_result_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R627_V_PAR_OperationInvocation( V_PAR form, OperationInvocation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R627_V_PAR_OperationInvocation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR627_takes_V_PAR(form);
            form.setR627_OperationInvocation(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R627_V_PAR_OperationInvocation( V_PAR form, OperationInvocation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R627_V_PAR_OperationInvocation_extent.remove( R627_V_PAR_OperationInvocation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR627_takes_V_PAR(form);
            form.setR627_OperationInvocation(OperationInvocationImpl.EMPTY_OPERATIONINVOCATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R628_V_PAR_BridgeInvocation( V_PAR form, BridgeInvocation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R628_V_PAR_BridgeInvocation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR628_takes_V_PAR(form);
            form.setR628_BridgeInvocation(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R628_V_PAR_BridgeInvocation( V_PAR form, BridgeInvocation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R628_V_PAR_BridgeInvocation_extent.remove( R628_V_PAR_BridgeInvocation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR628_takes_V_PAR(form);
            form.setR628_BridgeInvocation(BridgeInvocationImpl.EMPTY_BRIDGEINVOCATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R629_InterfaceOperationInvocation_has_target_Value( InterfaceOperationInvocation form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R629_InterfaceOperationInvocation_has_target_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR629_is_target_of_InterfaceOperationInvocation(form);
            form.setR629_has_target_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R629_InterfaceOperationInvocation_has_target_Value( InterfaceOperationInvocation form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R629_InterfaceOperationInvocation_has_target_Value_extent.remove( R629_InterfaceOperationInvocation_has_target_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR629_is_target_of_InterfaceOperationInvocation(form);
            form.setR629_has_target_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R630_SignalInvocation_has_target_Value( SignalInvocation form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R630_SignalInvocation_has_target_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR630_is_target_of_SignalInvocation(form);
            form.setR630_has_target_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R630_SignalInvocation_has_target_Value( SignalInvocation form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R630_SignalInvocation_has_target_Value_extent.remove( R630_SignalInvocation_has_target_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR630_is_target_of_SignalInvocation(form);
            form.setR630_has_target_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R633_Create_result_V_VAR( Create form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R633_Create_result_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR633_Create(form);
            form.setR633_result_V_VAR(part);
            form.setVar_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R633_Create_result_V_VAR( Create form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R633_Create_result_V_VAR_extent.remove( R633_Create_result_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR633_Create(form);
            form.setR633_result_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R634_Delete_destroys_V_VAR( Delete form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R634_Delete_destroys_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR634_Delete(form);
            form.setR634_destroys_V_VAR(part);
            form.setVar_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R634_Delete_destroys_V_VAR( Delete form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R634_Delete_destroys_V_VAR_extent.remove( R634_Delete_destroys_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR634_Delete(form);
            form.setR634_destroys_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R637_ChainLink_ACT_SEL( ChainLink form, ACT_SEL part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R637_ChainLink_ACT_SEL_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR637_starts_with_ChainLink(form);
            form.setR637_ACT_SEL(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R637_ChainLink_ACT_SEL( ChainLink form, ACT_SEL part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R637_ChainLink_ACT_SEL_extent.remove( R637_ChainLink_ACT_SEL_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR637_starts_with_ChainLink(ChainLinkImpl.EMPTY_CHAINLINK);
            form.setR637_ACT_SEL(ACT_SELImpl.EMPTY_ACT_SEL);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R638_ACT_SEL_selection_V_VAR( ACT_SEL form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R638_ACT_SEL_selection_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR638_ACT_SEL(form);
            form.setR638_selection_V_VAR(part);
            form.setVar_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R638_ACT_SEL_selection_V_VAR( ACT_SEL form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R638_ACT_SEL_selection_V_VAR_extent.remove( R638_ACT_SEL_selection_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR638_ACT_SEL(form);
            form.setR638_selection_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R639_ACT_FIO_selection_V_VAR( ACT_FIO form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R639_ACT_FIO_selection_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR639_ACT_FIO(form);
            form.setR639_selection_V_VAR(part);
            form.setVar_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R639_ACT_FIO_selection_V_VAR( ACT_FIO form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R639_ACT_FIO_selection_V_VAR_extent.remove( R639_ACT_FIO_selection_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR639_ACT_FIO(form);
            form.setR639_selection_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R640_BodyInElement_has_declared_Body( BodyInElement form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R640_BodyInElement_has_declared_Body_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR640_is_declared_in_BodyInElement(form);
            form.setR640_has_declared_Body(part);
            form.setAction_ID( part.getAction_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R640_BodyInElement_has_declared_Body( BodyInElement form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R640_BodyInElement_has_declared_Body_extent.remove( R640_BodyInElement_has_declared_Body_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR640_is_declared_in_BodyInElement(BodyInElementImpl.EMPTY_BODYINELEMENT);
            form.setR640_has_declared_Body(BodyImpl.EMPTY_BODY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R640_BodyInElement_is_declared_in_PackageableElement( BodyInElement form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R640_BodyInElement_is_declared_in_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR640_has_declared_BodyInElement(form);
            form.setR640_is_declared_in_PackageableElement(part);
            form.setElement_ID( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R640_BodyInElement_is_declared_in_PackageableElement( BodyInElement form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R640_BodyInElement_is_declared_in_PackageableElement_extent.remove( R640_BodyInElement_is_declared_in_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR640_has_declared_BodyInElement(form);
            form.setR640_is_declared_in_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R650_Body_has_parsed_outer_Block( Body form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R650_Body_has_parsed_outer_Block_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR650_is_outer_parse_level_of_Body(form);
            form.setR650_has_parsed_outer_Block(part);
            form.setParsed_Block_ID( part.getBlock_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R650_Body_has_parsed_outer_Block( Body form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R650_Body_has_parsed_outer_Block_extent.remove( R650_Body_has_parsed_outer_Block_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR650_is_outer_parse_level_of_Body(BodyImpl.EMPTY_BODY);
            form.setR650_has_parsed_outer_Block(BlockImpl.EMPTY_BLOCK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R652_ForStmt_set_V_VAR( ForStmt form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R652_ForStmt_set_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR652_is_set_variable_ForStmt(form);
            form.setR652_set_V_VAR(part);
            form.setSet_Var_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R652_ForStmt_set_V_VAR( ForStmt form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R652_ForStmt_set_V_VAR_extent.remove( R652_ForStmt_set_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR652_is_set_variable_ForStmt(form);
            form.setR652_set_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R653_Relate_creates_Association( Relate form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R653_Relate_creates_Association_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR653_Relate(form);
            form.setR653_creates_Association(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R653_Relate_creates_Association( Relate form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R653_Relate_creates_Association_extent.remove( R653_Relate_creates_Association_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR653_Relate(form);
            form.setR653_creates_Association(AssociationImpl.EMPTY_ASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R654_RelateUsing_creates_Association( RelateUsing form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R654_RelateUsing_creates_Association_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR654_RelateUsing(form);
            form.setR654_creates_Association(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R654_RelateUsing_creates_Association( RelateUsing form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R654_RelateUsing_creates_Association_extent.remove( R654_RelateUsing_creates_Association_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR654_RelateUsing(form);
            form.setR654_creates_Association(AssociationImpl.EMPTY_ASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R655_Unrelate_destroys_Association( Unrelate form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R655_Unrelate_destroys_Association_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR655_Unrelate(form);
            form.setR655_destroys_Association(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R655_Unrelate_destroys_Association( Unrelate form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R655_Unrelate_destroys_Association_extent.remove( R655_Unrelate_destroys_Association_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR655_Unrelate(form);
            form.setR655_destroys_Association(AssociationImpl.EMPTY_ASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R656_UnrelateUsing_destroys_Association( UnrelateUsing form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R656_UnrelateUsing_destroys_Association_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR656_UnrelateUsing(form);
            form.setR656_destroys_Association(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R656_UnrelateUsing_destroys_Association( UnrelateUsing form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R656_UnrelateUsing_destroys_Association_extent.remove( R656_UnrelateUsing_destroys_Association_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR656_UnrelateUsing(form);
            form.setR656_destroys_Association(AssociationImpl.EMPTY_ASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R657_InterfaceOperationInvocation_is_invocation_of_RequiredOperation( InterfaceOperationInvocation form, RequiredOperation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R657_InterfaceOperationInvocation_is_invocation_of_RequiredOperation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR657_InterfaceOperationInvocation(form);
            form.setR657_is_invocation_of_RequiredOperation(part);
            form.setRequiredOp_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R657_InterfaceOperationInvocation_is_invocation_of_RequiredOperation( InterfaceOperationInvocation form, RequiredOperation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R657_InterfaceOperationInvocation_is_invocation_of_RequiredOperation_extent.remove( R657_InterfaceOperationInvocation_is_invocation_of_RequiredOperation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR657_InterfaceOperationInvocation(form);
            form.setR657_is_invocation_of_RequiredOperation(RequiredOperationImpl.EMPTY_REQUIREDOPERATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R658_ElseIfStmt_controls_Block( ElseIfStmt form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R658_ElseIfStmt_controls_Block_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR658_ElseIfStmt(form);
            form.setR658_controls_Block(part);
            form.setBlock_ID( part.getBlock_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R658_ElseIfStmt_controls_Block( ElseIfStmt form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R658_ElseIfStmt_controls_Block_extent.remove( R658_ElseIfStmt_controls_Block_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR658_ElseIfStmt(ElseIfStmtImpl.EMPTY_ELSEIFSTMT);
            form.setR658_controls_Block(BlockImpl.EMPTY_BLOCK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R659_ElseIfStmt_test_result_Value( ElseIfStmt form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R659_ElseIfStmt_test_result_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR659_ElseIfStmt(form);
            form.setR659_test_result_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R659_ElseIfStmt_test_result_Value( ElseIfStmt form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R659_ElseIfStmt_test_result_Value_extent.remove( R659_ElseIfStmt_test_result_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR659_ElseIfStmt(ElseIfStmtImpl.EMPTY_ELSEIFSTMT);
            form.setR659_test_result_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R660_SignalInvocation_is_invocation_of_RequiredSignal( SignalInvocation form, RequiredSignal part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R660_SignalInvocation_is_invocation_of_RequiredSignal_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR660_SignalInvocation(form);
            form.setR660_is_invocation_of_RequiredSignal(part);
            form.setRequiredSig_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R660_SignalInvocation_is_invocation_of_RequiredSignal( SignalInvocation form, RequiredSignal part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R660_SignalInvocation_is_invocation_of_RequiredSignal_extent.remove( R660_SignalInvocation_is_invocation_of_RequiredSignal_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR660_SignalInvocation(form);
            form.setR660_is_invocation_of_RequiredSignal(RequiredSignalImpl.EMPTY_REQUIREDSIGNAL);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R661_ACT_SMT_succeeds_ACT_SMT( ACT_SMT form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R661_ACT_SMT_succeeds_ACT_SMT_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR661_precedes_ACT_SMT(form);
            form.setR661_succeeds_ACT_SMT(part);
            form.setBlock_ID( part.getBlock_ID() );
            form.setPrevious_Statement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R661_ACT_SMT_succeeds_ACT_SMT( ACT_SMT form, ACT_SMT part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R661_ACT_SMT_succeeds_ACT_SMT_extent.remove( R661_ACT_SMT_succeeds_ACT_SMT_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR661_precedes_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
            form.setR661_succeeds_ACT_SMT(ACT_SMTImpl.EMPTY_ACT_SMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R662_V_PAR_taken_by_SignalInvocation( V_PAR form, SignalInvocation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R662_V_PAR_taken_by_SignalInvocation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR662_takes_V_PAR(form);
            form.setR662_taken_by_SignalInvocation(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R662_V_PAR_taken_by_SignalInvocation( V_PAR form, SignalInvocation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R662_V_PAR_taken_by_SignalInvocation_extent.remove( R662_V_PAR_taken_by_SignalInvocation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR662_takes_V_PAR(form);
            form.setR662_taken_by_SignalInvocation(SignalInvocationImpl.EMPTY_SIGNALINVOCATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R663_SignalInvocation_is_invocation_of_ProvidedSignal( SignalInvocation form, ProvidedSignal part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R663_SignalInvocation_is_invocation_of_ProvidedSignal_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR663_SignalInvocation(form);
            form.setR663_is_invocation_of_ProvidedSignal(part);
            form.setProvidedSig_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R663_SignalInvocation_is_invocation_of_ProvidedSignal( SignalInvocation form, ProvidedSignal part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R663_SignalInvocation_is_invocation_of_ProvidedSignal_extent.remove( R663_SignalInvocation_is_invocation_of_ProvidedSignal_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR663_SignalInvocation(form);
            form.setR663_is_invocation_of_ProvidedSignal(ProvidedSignalImpl.EMPTY_PROVIDEDSIGNAL);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R664_SelectRelatedBy_is_a_ACT_SEL( SelectRelatedBy form, ACT_SEL part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R664_SelectRelatedBy_is_a_ACT_SEL_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR664_is_a_SelectRelatedBy(form);
            form.setR664_is_a_ACT_SEL(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R664_SelectRelatedBy_is_a_ACT_SEL( SelectRelatedBy form, ACT_SEL part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R664_SelectRelatedBy_is_a_ACT_SEL_extent.remove( R664_SelectRelatedBy_is_a_ACT_SEL_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR664_is_a_SelectRelatedBy(SelectRelatedByImpl.EMPTY_SELECTRELATEDBY);
            form.setR664_is_a_ACT_SEL(ACT_SELImpl.EMPTY_ACT_SEL);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R664_SelectRelatedWhere_is_a_ACT_SEL( SelectRelatedWhere form, ACT_SEL part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R664_SelectRelatedWhere_is_a_ACT_SEL_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR664_is_a_SelectRelatedWhere(form);
            form.setR664_is_a_ACT_SEL(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R664_SelectRelatedWhere_is_a_ACT_SEL( SelectRelatedWhere form, ACT_SEL part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R664_SelectRelatedWhere_is_a_ACT_SEL_extent.remove( R664_SelectRelatedWhere_is_a_ACT_SEL_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR664_is_a_SelectRelatedWhere(SelectRelatedWhereImpl.EMPTY_SELECTRELATEDWHERE);
            form.setR664_is_a_ACT_SEL(ACT_SELImpl.EMPTY_ACT_SEL);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R665_SelectFromInstancesWhere_result_V_VAR( SelectFromInstancesWhere form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R665_SelectFromInstancesWhere_result_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR665_SelectFromInstancesWhere(form);
            form.setR665_result_V_VAR(part);
            form.setVar_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R665_SelectFromInstancesWhere_result_V_VAR( SelectFromInstancesWhere form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R665_SelectFromInstancesWhere_result_V_VAR_extent.remove( R665_SelectFromInstancesWhere_result_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR665_SelectFromInstancesWhere(form);
            form.setR665_result_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R666_Body_has_committed_outer_Block( Body form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R666_Body_has_committed_outer_Block_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR666_is_outer_committed_level_of_Body(form);
            form.setR666_has_committed_outer_Block(part);
            form.setBlock_ID( part.getBlock_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R666_Body_has_committed_outer_Block( Body form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R666_Body_has_committed_outer_Block_extent.remove( R666_Body_has_committed_outer_Block_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR666_is_outer_committed_level_of_Body(BodyImpl.EMPTY_BODY);
            form.setR666_has_committed_outer_Block(BlockImpl.EMPTY_BLOCK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R667_OperationInvocation_has_target_V_VAR( OperationInvocation form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R667_OperationInvocation_has_target_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR667_is_target_of_OperationInvocation(form);
            form.setR667_has_target_V_VAR(part);
            form.setVar_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R667_OperationInvocation_has_target_V_VAR( OperationInvocation form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R667_OperationInvocation_has_target_V_VAR_extent.remove( R667_OperationInvocation_has_target_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR667_is_target_of_OperationInvocation(form);
            form.setR667_has_target_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R668_ReturnStmt_has_Value( ReturnStmt form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R668_ReturnStmt_has_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR668_returned_by_ReturnStmt(form);
            form.setR668_has_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R668_ReturnStmt_has_Value( ReturnStmt form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R668_ReturnStmt_has_Value_extent.remove( R668_ReturnStmt_has_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR668_returned_by_ReturnStmt(ReturnStmtImpl.EMPTY_RETURNSTMT);
            form.setR668_has_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R669_V_PAR_FunctionInvocation( V_PAR form, FunctionInvocation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R669_V_PAR_FunctionInvocation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR669_takes_V_PAR(form);
            form.setR669_FunctionInvocation(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R669_V_PAR_FunctionInvocation( V_PAR form, FunctionInvocation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R669_V_PAR_FunctionInvocation_extent.remove( R669_V_PAR_FunctionInvocation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR669_takes_V_PAR(form);
            form.setR669_FunctionInvocation(FunctionInvocationImpl.EMPTY_FUNCTIONINVOCATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R670_ForStmt_iterates_a_set_of_ModelClass( ForStmt form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R670_ForStmt_iterates_a_set_of_ModelClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR670_ForStmt(form);
            form.setR670_iterates_a_set_of_ModelClass(part);
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R670_ForStmt_iterates_a_set_of_ModelClass( ForStmt form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R670_ForStmt_iterates_a_set_of_ModelClass_extent.remove( R670_ForStmt_iterates_a_set_of_ModelClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR670_ForStmt(form);
            form.setR670_iterates_a_set_of_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R671_Create_instance_of_ModelClass( Create form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R671_Create_instance_of_ModelClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR671_Create(form);
            form.setR671_instance_of_ModelClass(part);
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R671_Create_instance_of_ModelClass( Create form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R671_Create_instance_of_ModelClass_extent.remove( R671_Create_instance_of_ModelClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR671_Create(form);
            form.setR671_instance_of_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R672_CreateNoVariable_instance_of_ModelClass( CreateNoVariable form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R672_CreateNoVariable_instance_of_ModelClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR672_CreateNoVariable(form);
            form.setR672_instance_of_ModelClass(part);
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R672_CreateNoVariable_instance_of_ModelClass( CreateNoVariable form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R672_CreateNoVariable_instance_of_ModelClass_extent.remove( R672_CreateNoVariable_instance_of_ModelClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR672_CreateNoVariable(form);
            form.setR672_instance_of_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R673_OperationInvocation_is_an_invocation_of_O_TFR( OperationInvocation form, O_TFR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R673_OperationInvocation_is_an_invocation_of_O_TFR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR673_OperationInvocation(form);
            form.setR673_is_an_invocation_of_O_TFR(part);
            form.setTfr_ID( part.getTfr_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R673_OperationInvocation_is_an_invocation_of_O_TFR( OperationInvocation form, O_TFR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R673_OperationInvocation_is_an_invocation_of_O_TFR_extent.remove( R673_OperationInvocation_is_an_invocation_of_O_TFR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR673_OperationInvocation(form);
            form.setR673_is_an_invocation_of_O_TFR(O_TFRImpl.EMPTY_O_TFR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R674_BridgeInvocation_is_an_invocation_of_Bridge( BridgeInvocation form, Bridge part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R674_BridgeInvocation_is_an_invocation_of_Bridge_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR674_BridgeInvocation(form);
            form.setR674_is_an_invocation_of_Bridge(part);
            form.setBrg_ID( part.getBrg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R674_BridgeInvocation_is_an_invocation_of_Bridge( BridgeInvocation form, Bridge part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R674_BridgeInvocation_is_an_invocation_of_Bridge_extent.remove( R674_BridgeInvocation_is_an_invocation_of_Bridge_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR674_BridgeInvocation(form);
            form.setR674_is_an_invocation_of_Bridge(BridgeImpl.EMPTY_BRIDGE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R675_FunctionInvocation_is_an_invocation_of_S_SYNC( FunctionInvocation form, S_SYNC part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R675_FunctionInvocation_is_an_invocation_of_S_SYNC_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR675_FunctionInvocation(form);
            form.setR675_is_an_invocation_of_S_SYNC(part);
            form.setSync_ID( part.getSync_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R675_FunctionInvocation_is_an_invocation_of_S_SYNC( FunctionInvocation form, S_SYNC part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R675_FunctionInvocation_is_an_invocation_of_S_SYNC_extent.remove( R675_FunctionInvocation_is_an_invocation_of_S_SYNC_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR675_FunctionInvocation(form);
            form.setR675_is_an_invocation_of_S_SYNC(S_SYNCImpl.EMPTY_S_SYNC);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R676_SelectFromInstancesWhere_from_extent_of_ModelClass( SelectFromInstancesWhere form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R676_SelectFromInstancesWhere_from_extent_of_ModelClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR676_SelectFromInstancesWhere(form);
            form.setR676_from_extent_of_ModelClass(part);
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R676_SelectFromInstancesWhere_from_extent_of_ModelClass( SelectFromInstancesWhere form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R676_SelectFromInstancesWhere_from_extent_of_ModelClass_extent.remove( R676_SelectFromInstancesWhere_from_extent_of_ModelClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR676_SelectFromInstancesWhere(form);
            form.setR676_from_extent_of_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R677_ACT_FIO_from_extent_of_ModelClass( ACT_FIO form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R677_ACT_FIO_from_extent_of_ModelClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR677_ACT_FIO(form);
            form.setR677_from_extent_of_ModelClass(part);
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R677_ACT_FIO_from_extent_of_ModelClass( ACT_FIO form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R677_ACT_FIO_from_extent_of_ModelClass_extent.remove( R677_ACT_FIO_from_extent_of_ModelClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR677_ACT_FIO(form);
            form.setR677_from_extent_of_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R678_ChainLink_specifies_instances_of_ModelClass( ChainLink form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R678_ChainLink_specifies_instances_of_ModelClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR678_ChainLink(form);
            form.setR678_specifies_instances_of_ModelClass(part);
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R678_ChainLink_specifies_instances_of_ModelClass( ChainLink form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R678_ChainLink_specifies_instances_of_ModelClass_extent.remove( R678_ChainLink_specifies_instances_of_ModelClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR678_ChainLink(form);
            form.setR678_specifies_instances_of_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R679_V_PAR_taken_by_InterfaceOperationInvocation( V_PAR form, InterfaceOperationInvocation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R679_V_PAR_taken_by_InterfaceOperationInvocation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR679_takes_V_PAR(form);
            form.setR679_taken_by_InterfaceOperationInvocation(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R679_V_PAR_taken_by_InterfaceOperationInvocation( V_PAR form, InterfaceOperationInvocation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R679_V_PAR_taken_by_InterfaceOperationInvocation_extent.remove( R679_V_PAR_taken_by_InterfaceOperationInvocation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR679_takes_V_PAR(form);
            form.setR679_taken_by_InterfaceOperationInvocation(InterfaceOperationInvocationImpl.EMPTY_INTERFACEOPERATIONINVOCATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R680_InterfaceOperationInvocation_is_invocation_of_ProvidedOperation( InterfaceOperationInvocation form, ProvidedOperation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R680_InterfaceOperationInvocation_is_invocation_of_ProvidedOperation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR680_InterfaceOperationInvocation(form);
            form.setR680_is_invocation_of_ProvidedOperation(part);
            form.setProvidedOp_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R680_InterfaceOperationInvocation_is_invocation_of_ProvidedOperation( InterfaceOperationInvocation form, ProvidedOperation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R680_InterfaceOperationInvocation_is_invocation_of_ProvidedOperation_extent.remove( R680_InterfaceOperationInvocation_is_invocation_of_ProvidedOperation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR680_InterfaceOperationInvocation(form);
            form.setR680_is_invocation_of_ProvidedOperation(ProvidedOperationImpl.EMPTY_PROVIDEDOPERATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R681_ChainLink_specifies_traversal_of_Association( ChainLink form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R681_ChainLink_specifies_traversal_of_Association_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR681_ChainLink(form);
            form.setR681_specifies_traversal_of_Association(part);
            form.setRel_ID( part.getRel_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R681_ChainLink_specifies_traversal_of_Association( ChainLink form, Association part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R681_ChainLink_specifies_traversal_of_Association_extent.remove( R681_ChainLink_specifies_traversal_of_Association_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR681_ChainLink(form);
            form.setR681_specifies_traversal_of_Association(AssociationImpl.EMPTY_ASSOCIATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R682_ElseIfStmt_IfStmt( ElseIfStmt form, IfStmt part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R682_ElseIfStmt_IfStmt_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR682_has_ElseIfStmt(form);
            form.setR682_IfStmt(part);
            form.setIf_Statement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R682_ElseIfStmt_IfStmt( ElseIfStmt form, IfStmt part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R682_ElseIfStmt_IfStmt_extent.remove( R682_ElseIfStmt_IfStmt_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR682_has_ElseIfStmt(form);
            form.setR682_IfStmt(IfStmtImpl.EMPTY_IFSTMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R683_ElseStmt_IfStmt( ElseStmt form, IfStmt part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R683_ElseStmt_IfStmt_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR683_has_ElseStmt(form);
            form.setR683_IfStmt(part);
            form.setIf_Statement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R683_ElseStmt_IfStmt( ElseStmt form, IfStmt part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R683_ElseStmt_IfStmt_extent.remove( R683_ElseStmt_IfStmt_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR683_has_ElseStmt(ElseStmtImpl.EMPTY_ELSESTMT);
            form.setR683_IfStmt(IfStmtImpl.EMPTY_IFSTMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R684_RequiredSignalBody_specifies_processing_for_RequiredSignal( RequiredSignalBody form, RequiredSignal part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R684_RequiredSignalBody_specifies_processing_for_RequiredSignal_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR684_RequiredSignalBody(form);
            form.setR684_specifies_processing_for_RequiredSignal(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R684_RequiredSignalBody_specifies_processing_for_RequiredSignal( RequiredSignalBody form, RequiredSignal part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R684_RequiredSignalBody_specifies_processing_for_RequiredSignal_extent.remove( R684_RequiredSignalBody_specifies_processing_for_RequiredSignal_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR684_RequiredSignalBody(RequiredSignalBodyImpl.EMPTY_REQUIREDSIGNALBODY);
            form.setR684_specifies_processing_for_RequiredSignal(RequiredSignalImpl.EMPTY_REQUIREDSIGNAL);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R685_RequiredOperationBody_specifies_processing_for_RequiredOperation( RequiredOperationBody form, RequiredOperation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R685_RequiredOperationBody_specifies_processing_for_RequiredOperation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR685_RequiredOperationBody(form);
            form.setR685_specifies_processing_for_RequiredOperation(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R685_RequiredOperationBody_specifies_processing_for_RequiredOperation( RequiredOperationBody form, RequiredOperation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R685_RequiredOperationBody_specifies_processing_for_RequiredOperation_extent.remove( R685_RequiredOperationBody_specifies_processing_for_RequiredOperation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR685_RequiredOperationBody(RequiredOperationBodyImpl.EMPTY_REQUIREDOPERATIONBODY);
            form.setR685_specifies_processing_for_RequiredOperation(RequiredOperationImpl.EMPTY_REQUIREDOPERATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R686_ProvidedSignalBody_specifies_processing_for_ProvidedSignal( ProvidedSignalBody form, ProvidedSignal part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R686_ProvidedSignalBody_specifies_processing_for_ProvidedSignal_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR686_ProvidedSignalBody(form);
            form.setR686_specifies_processing_for_ProvidedSignal(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R686_ProvidedSignalBody_specifies_processing_for_ProvidedSignal( ProvidedSignalBody form, ProvidedSignal part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R686_ProvidedSignalBody_specifies_processing_for_ProvidedSignal_extent.remove( R686_ProvidedSignalBody_specifies_processing_for_ProvidedSignal_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR686_ProvidedSignalBody(ProvidedSignalBodyImpl.EMPTY_PROVIDEDSIGNALBODY);
            form.setR686_specifies_processing_for_ProvidedSignal(ProvidedSignalImpl.EMPTY_PROVIDEDSIGNAL);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R687_ProvidedOperationBody_specifies_processing_for_ProvidedOperation( ProvidedOperationBody form, ProvidedOperation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R687_ProvidedOperationBody_specifies_processing_for_ProvidedOperation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR687_ProvidedOperationBody(form);
            form.setR687_specifies_processing_for_ProvidedOperation(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R687_ProvidedOperationBody_specifies_processing_for_ProvidedOperation( ProvidedOperationBody form, ProvidedOperation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R687_ProvidedOperationBody_specifies_processing_for_ProvidedOperation_extent.remove( R687_ProvidedOperationBody_specifies_processing_for_ProvidedOperation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR687_ProvidedOperationBody(ProvidedOperationBodyImpl.EMPTY_PROVIDEDOPERATIONBODY);
            form.setR687_specifies_processing_for_ProvidedOperation(ProvidedOperationImpl.EMPTY_PROVIDEDOPERATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R688_TransitionActionBody_specifies_processing_for_Action( TransitionActionBody form, Action part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R688_TransitionActionBody_specifies_processing_for_Action_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR688_TransitionActionBody(form);
            form.setR688_specifies_processing_for_Action(part);
            form.setAct_ID( part.getAct_ID() );
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R688_TransitionActionBody_specifies_processing_for_Action( TransitionActionBody form, Action part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R688_TransitionActionBody_specifies_processing_for_Action_extent.remove( R688_TransitionActionBody_specifies_processing_for_Action_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR688_TransitionActionBody(TransitionActionBodyImpl.EMPTY_TRANSITIONACTIONBODY);
            form.setR688_specifies_processing_for_Action(ActionImpl.EMPTY_ACTION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R689_AssignToMember_writes_Value( AssignToMember form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R689_AssignToMember_writes_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR689_AssignToMember(form);
            form.setR689_writes_Value(part);
            form.setL_Value_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R689_AssignToMember_writes_Value( AssignToMember form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R689_AssignToMember_writes_Value_extent.remove( R689_AssignToMember_writes_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR689_AssignToMember(AssignToMemberImpl.EMPTY_ASSIGNTOMEMBER);
            form.setR689_writes_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R690_IfStmt_was_executing_when_halted_ElseIfStmt( IfStmt form, ElseIfStmt part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R690_IfStmt_was_executing_when_halted_ElseIfStmt_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR690_IfStmt(form);
            form.setR690_was_executing_when_halted_ElseIfStmt(part);
            form.setElif_Statement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R690_IfStmt_was_executing_when_halted_ElseIfStmt( IfStmt form, ElseIfStmt part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R690_IfStmt_was_executing_when_halted_ElseIfStmt_extent.remove( R690_IfStmt_was_executing_when_halted_ElseIfStmt_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR690_IfStmt(IfStmtImpl.EMPTY_IFSTMT);
            form.setR690_was_executing_when_halted_ElseIfStmt(ElseIfStmtImpl.EMPTY_ELSEIFSTMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R691_StateActionBody_specifies_processing_for_Action( StateActionBody form, Action part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R691_StateActionBody_specifies_processing_for_Action_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR691_StateActionBody(form);
            form.setR691_specifies_processing_for_Action(part);
            form.setSM_ID( part.getSM_ID() );
            form.setAct_ID( part.getAct_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R691_StateActionBody_specifies_processing_for_Action( StateActionBody form, Action part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R691_StateActionBody_specifies_processing_for_Action_extent.remove( R691_StateActionBody_specifies_processing_for_Action_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR691_StateActionBody(StateActionBodyImpl.EMPTY_STATEACTIONBODY);
            form.setR691_specifies_processing_for_Action(ActionImpl.EMPTY_ACTION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R692_IfStmt_was_executing_when_halted_ElseStmt( IfStmt form, ElseStmt part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R692_IfStmt_was_executing_when_halted_ElseStmt_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR692_IfStmt(form);
            form.setR692_was_executing_when_halted_ElseStmt(part);
            form.setElse_Statement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R692_IfStmt_was_executing_when_halted_ElseStmt( IfStmt form, ElseStmt part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R692_IfStmt_was_executing_when_halted_ElseStmt_extent.remove( R692_IfStmt_was_executing_when_halted_ElseStmt_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR692_IfStmt(IfStmtImpl.EMPTY_IFSTMT);
            form.setR692_was_executing_when_halted_ElseStmt(ElseStmtImpl.EMPTY_ELSESTMT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R693_DerivedAttributeBody_specifies_processing_for_DerivedBaseAttribute( DerivedAttributeBody form, DerivedBaseAttribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R693_DerivedAttributeBody_specifies_processing_for_DerivedBaseAttribute_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR693_DerivedAttributeBody(form);
            form.setR693_specifies_processing_for_DerivedBaseAttribute(part);
            form.setObj_ID( part.getObj_ID() );
            form.setAttr_ID( part.getAttr_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R693_DerivedAttributeBody_specifies_processing_for_DerivedBaseAttribute( DerivedAttributeBody form, DerivedBaseAttribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R693_DerivedAttributeBody_specifies_processing_for_DerivedBaseAttribute_extent.remove( R693_DerivedAttributeBody_specifies_processing_for_DerivedBaseAttribute_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR693_DerivedAttributeBody(DerivedAttributeBodyImpl.EMPTY_DERIVEDATTRIBUTEBODY);
            form.setR693_specifies_processing_for_DerivedBaseAttribute(DerivedBaseAttributeImpl.EMPTY_DERIVEDBASEATTRIBUTE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R694_BodyInComponent_has_declared_Body( BodyInComponent form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R694_BodyInComponent_has_declared_Body_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR694_is_declared_in_BodyInComponent(form);
            form.setR694_has_declared_Body(part);
            form.setAction_ID( part.getAction_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R694_BodyInComponent_has_declared_Body( BodyInComponent form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R694_BodyInComponent_has_declared_Body_extent.remove( R694_BodyInComponent_has_declared_Body_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR694_is_declared_in_BodyInComponent(BodyInComponentImpl.EMPTY_BODYINCOMPONENT);
            form.setR694_has_declared_Body(BodyImpl.EMPTY_BODY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R694_BodyInComponent_is_declared_in_C_C( BodyInComponent form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R694_BodyInComponent_is_declared_in_C_C_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR694_has_declared_BodyInComponent(form);
            form.setR694_is_declared_in_C_C(part);
            form.setComponent_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R694_BodyInComponent_is_declared_in_C_C( BodyInComponent form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R694_BodyInComponent_is_declared_in_C_C_extent.remove( R694_BodyInComponent_is_declared_in_C_C_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR694_has_declared_BodyInComponent(form);
            form.setR694_is_declared_in_C_C(C_CImpl.EMPTY_C_C);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R695_FunctionBody_specifies_processing_for_S_SYNC( FunctionBody form, S_SYNC part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R695_FunctionBody_specifies_processing_for_S_SYNC_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR695_FunctionBody(form);
            form.setR695_specifies_processing_for_S_SYNC(part);
            form.setSync_ID( part.getSync_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R695_FunctionBody_specifies_processing_for_S_SYNC( FunctionBody form, S_SYNC part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R695_FunctionBody_specifies_processing_for_S_SYNC_extent.remove( R695_FunctionBody_specifies_processing_for_S_SYNC_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR695_FunctionBody(FunctionBodyImpl.EMPTY_FUNCTIONBODY);
            form.setR695_specifies_processing_for_S_SYNC(S_SYNCImpl.EMPTY_S_SYNC);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R696_OperationBody_specifies_processing_for_O_TFR( OperationBody form, O_TFR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R696_OperationBody_specifies_processing_for_O_TFR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR696_OperationBody(form);
            form.setR696_specifies_processing_for_O_TFR(part);
            form.setTfr_ID( part.getTfr_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R696_OperationBody_specifies_processing_for_O_TFR( OperationBody form, O_TFR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R696_OperationBody_specifies_processing_for_O_TFR_extent.remove( R696_OperationBody_specifies_processing_for_O_TFR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR696_OperationBody(OperationBodyImpl.EMPTY_OPERATIONBODY);
            form.setR696_specifies_processing_for_O_TFR(O_TFRImpl.EMPTY_O_TFR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R697_BridgeBody_specifies_processing_for_Bridge( BridgeBody form, Bridge part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R697_BridgeBody_specifies_processing_for_Bridge_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR697_BridgeBody(form);
            form.setR697_specifies_processing_for_Bridge(part);
            form.setBrg_ID( part.getBrg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R697_BridgeBody_specifies_processing_for_Bridge( BridgeBody form, Bridge part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R697_BridgeBody_specifies_processing_for_Bridge_extent.remove( R697_BridgeBody_specifies_processing_for_Bridge_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR697_BridgeBody(BridgeBodyImpl.EMPTY_BRIDGEBODY);
            form.setR697_specifies_processing_for_Bridge(BridgeImpl.EMPTY_BRIDGE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R698_BridgeBody_is_a_Body( BridgeBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R698_BridgeBody_is_a_Body_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_BridgeBody(form);
            form.setR698_is_a_Body(part);
            form.setAction_ID( part.getAction_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R698_BridgeBody_is_a_Body( BridgeBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R698_BridgeBody_is_a_Body_extent.remove( R698_BridgeBody_is_a_Body_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_BridgeBody(BridgeBodyImpl.EMPTY_BRIDGEBODY);
            form.setR698_is_a_Body(BodyImpl.EMPTY_BODY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R698_DerivedAttributeBody_is_a_Body( DerivedAttributeBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R698_DerivedAttributeBody_is_a_Body_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_DerivedAttributeBody(form);
            form.setR698_is_a_Body(part);
            form.setAction_ID( part.getAction_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R698_DerivedAttributeBody_is_a_Body( DerivedAttributeBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R698_DerivedAttributeBody_is_a_Body_extent.remove( R698_DerivedAttributeBody_is_a_Body_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_DerivedAttributeBody(DerivedAttributeBodyImpl.EMPTY_DERIVEDATTRIBUTEBODY);
            form.setR698_is_a_Body(BodyImpl.EMPTY_BODY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R698_FunctionBody_is_a_Body( FunctionBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R698_FunctionBody_is_a_Body_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_FunctionBody(form);
            form.setR698_is_a_Body(part);
            form.setAction_ID( part.getAction_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R698_FunctionBody_is_a_Body( FunctionBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R698_FunctionBody_is_a_Body_extent.remove( R698_FunctionBody_is_a_Body_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_FunctionBody(FunctionBodyImpl.EMPTY_FUNCTIONBODY);
            form.setR698_is_a_Body(BodyImpl.EMPTY_BODY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R698_OperationBody_is_a_Body( OperationBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R698_OperationBody_is_a_Body_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_OperationBody(form);
            form.setR698_is_a_Body(part);
            form.setAction_ID( part.getAction_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R698_OperationBody_is_a_Body( OperationBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R698_OperationBody_is_a_Body_extent.remove( R698_OperationBody_is_a_Body_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_OperationBody(OperationBodyImpl.EMPTY_OPERATIONBODY);
            form.setR698_is_a_Body(BodyImpl.EMPTY_BODY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R698_ProvidedOperationBody_is_a_Body( ProvidedOperationBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R698_ProvidedOperationBody_is_a_Body_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_ProvidedOperationBody(form);
            form.setR698_is_a_Body(part);
            form.setAction_ID( part.getAction_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R698_ProvidedOperationBody_is_a_Body( ProvidedOperationBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R698_ProvidedOperationBody_is_a_Body_extent.remove( R698_ProvidedOperationBody_is_a_Body_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_ProvidedOperationBody(ProvidedOperationBodyImpl.EMPTY_PROVIDEDOPERATIONBODY);
            form.setR698_is_a_Body(BodyImpl.EMPTY_BODY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R698_ProvidedSignalBody_is_a_Body( ProvidedSignalBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R698_ProvidedSignalBody_is_a_Body_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_ProvidedSignalBody(form);
            form.setR698_is_a_Body(part);
            form.setAction_ID( part.getAction_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R698_ProvidedSignalBody_is_a_Body( ProvidedSignalBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R698_ProvidedSignalBody_is_a_Body_extent.remove( R698_ProvidedSignalBody_is_a_Body_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_ProvidedSignalBody(ProvidedSignalBodyImpl.EMPTY_PROVIDEDSIGNALBODY);
            form.setR698_is_a_Body(BodyImpl.EMPTY_BODY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R698_RequiredOperationBody_is_a_Body( RequiredOperationBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R698_RequiredOperationBody_is_a_Body_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_RequiredOperationBody(form);
            form.setR698_is_a_Body(part);
            form.setAction_ID( part.getAction_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R698_RequiredOperationBody_is_a_Body( RequiredOperationBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R698_RequiredOperationBody_is_a_Body_extent.remove( R698_RequiredOperationBody_is_a_Body_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_RequiredOperationBody(RequiredOperationBodyImpl.EMPTY_REQUIREDOPERATIONBODY);
            form.setR698_is_a_Body(BodyImpl.EMPTY_BODY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R698_RequiredSignalBody_is_a_Body( RequiredSignalBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R698_RequiredSignalBody_is_a_Body_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_RequiredSignalBody(form);
            form.setR698_is_a_Body(part);
            form.setAction_ID( part.getAction_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R698_RequiredSignalBody_is_a_Body( RequiredSignalBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R698_RequiredSignalBody_is_a_Body_extent.remove( R698_RequiredSignalBody_is_a_Body_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_RequiredSignalBody(RequiredSignalBodyImpl.EMPTY_REQUIREDSIGNALBODY);
            form.setR698_is_a_Body(BodyImpl.EMPTY_BODY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R698_StateActionBody_is_a_Body( StateActionBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R698_StateActionBody_is_a_Body_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_StateActionBody(form);
            form.setR698_is_a_Body(part);
            form.setAction_ID( part.getAction_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R698_StateActionBody_is_a_Body( StateActionBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R698_StateActionBody_is_a_Body_extent.remove( R698_StateActionBody_is_a_Body_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_StateActionBody(StateActionBodyImpl.EMPTY_STATEACTIONBODY);
            form.setR698_is_a_Body(BodyImpl.EMPTY_BODY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R698_TransitionActionBody_is_a_Body( TransitionActionBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R698_TransitionActionBody_is_a_Body_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_TransitionActionBody(form);
            form.setR698_is_a_Body(part);
            form.setAction_ID( part.getAction_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R698_TransitionActionBody_is_a_Body( TransitionActionBody form, Body part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R698_TransitionActionBody_is_a_Body_extent.remove( R698_TransitionActionBody_is_a_Body_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR698_is_a_TransitionActionBody(TransitionActionBodyImpl.EMPTY_TRANSITIONACTIONBODY);
            form.setR698_is_a_Body(BodyImpl.EMPTY_BODY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R699_Body_has_current_scope_Block( Body form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R699_Body_has_current_scope_Block_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR699_is_current_scope_for_Body(form);
            form.setR699_has_current_scope_Block(part);
            form.setCurrentScope_ID( part.getBlock_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R699_Body_has_current_scope_Block( Body form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R699_Body_has_current_scope_Block_extent.remove( R699_Body_has_current_scope_Block_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR699_is_current_scope_for_Body(BodyImpl.EMPTY_BODY);
            form.setR699_has_current_scope_Block(BlockImpl.EMPTY_BLOCK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R700_V_PAR_EventSpecificationStatement( V_PAR form, EventSpecificationStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R700_V_PAR_EventSpecificationStatement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR700_V_PAR(form);
            form.setR700_EventSpecificationStatement(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R700_V_PAR_EventSpecificationStatement( V_PAR form, EventSpecificationStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R700_V_PAR_EventSpecificationStatement_extent.remove( R700_V_PAR_EventSpecificationStatement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR700_V_PAR(form);
            form.setR700_EventSpecificationStatement(EventSpecificationStatementImpl.EMPTY_EVENTSPECIFICATIONSTATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R701_CreateEventStatement_is_a_EventSpecificationStatement( CreateEventStatement form, EventSpecificationStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R701_CreateEventStatement_is_a_EventSpecificationStatement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR701_is_a_CreateEventStatement(form);
            form.setR701_is_a_EventSpecificationStatement(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R701_CreateEventStatement_is_a_EventSpecificationStatement( CreateEventStatement form, EventSpecificationStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R701_CreateEventStatement_is_a_EventSpecificationStatement_extent.remove( R701_CreateEventStatement_is_a_EventSpecificationStatement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR701_is_a_CreateEventStatement(CreateEventStatementImpl.EMPTY_CREATEEVENTSTATEMENT);
            form.setR701_is_a_EventSpecificationStatement(EventSpecificationStatementImpl.EMPTY_EVENTSPECIFICATIONSTATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R701_GenerateEventStatement_is_a_EventSpecificationStatement( GenerateEventStatement form, EventSpecificationStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R701_GenerateEventStatement_is_a_EventSpecificationStatement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR701_is_a_GenerateEventStatement(form);
            form.setR701_is_a_EventSpecificationStatement(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R701_GenerateEventStatement_is_a_EventSpecificationStatement( GenerateEventStatement form, EventSpecificationStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R701_GenerateEventStatement_is_a_EventSpecificationStatement_extent.remove( R701_GenerateEventStatement_is_a_EventSpecificationStatement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR701_is_a_GenerateEventStatement(GenerateEventStatementImpl.EMPTY_GENERATEEVENTSTATEMENT);
            form.setR701_is_a_EventSpecificationStatement(EventSpecificationStatementImpl.EMPTY_EVENTSPECIFICATIONSTATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R702_CreateSMEventStatement_is_a_CreateEventStatement( CreateSMEventStatement form, CreateEventStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R702_CreateSMEventStatement_is_a_CreateEventStatement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR702_is_a_CreateSMEventStatement(form);
            form.setR702_is_a_CreateEventStatement(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R702_CreateSMEventStatement_is_a_CreateEventStatement( CreateSMEventStatement form, CreateEventStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R702_CreateSMEventStatement_is_a_CreateEventStatement_extent.remove( R702_CreateSMEventStatement_is_a_CreateEventStatement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR702_is_a_CreateSMEventStatement(CreateSMEventStatementImpl.EMPTY_CREATESMEVENTSTATEMENT);
            form.setR702_is_a_CreateEventStatement(CreateEventStatementImpl.EMPTY_CREATEEVENTSTATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R703_GenerateSMEventStatement_is_a_GenerateEventStatement( GenerateSMEventStatement form, GenerateEventStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R703_GenerateSMEventStatement_is_a_GenerateEventStatement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR703_is_a_GenerateSMEventStatement(form);
            form.setR703_is_a_GenerateEventStatement(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R703_GenerateSMEventStatement_is_a_GenerateEventStatement( GenerateSMEventStatement form, GenerateEventStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R703_GenerateSMEventStatement_is_a_GenerateEventStatement_extent.remove( R703_GenerateSMEventStatement_is_a_GenerateEventStatement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR703_is_a_GenerateSMEventStatement(GenerateSMEventStatementImpl.EMPTY_GENERATESMEVENTSTATEMENT);
            form.setR703_is_a_GenerateEventStatement(GenerateEventStatementImpl.EMPTY_GENERATEEVENTSTATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R704_CreateEventToClass_is_a_CreateSMEventStatement( CreateEventToClass form, CreateSMEventStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R704_CreateEventToClass_is_a_CreateSMEventStatement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR704_is_a_CreateEventToClass(form);
            form.setR704_is_a_CreateSMEventStatement(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R704_CreateEventToClass_is_a_CreateSMEventStatement( CreateEventToClass form, CreateSMEventStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R704_CreateEventToClass_is_a_CreateSMEventStatement_extent.remove( R704_CreateEventToClass_is_a_CreateSMEventStatement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR704_is_a_CreateEventToClass(CreateEventToClassImpl.EMPTY_CREATEEVENTTOCLASS);
            form.setR704_is_a_CreateSMEventStatement(CreateSMEventStatementImpl.EMPTY_CREATESMEVENTSTATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R704_CreateEventToCreator_is_a_CreateSMEventStatement( CreateEventToCreator form, CreateSMEventStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R704_CreateEventToCreator_is_a_CreateSMEventStatement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR704_is_a_CreateEventToCreator(form);
            form.setR704_is_a_CreateSMEventStatement(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R704_CreateEventToCreator_is_a_CreateSMEventStatement( CreateEventToCreator form, CreateSMEventStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R704_CreateEventToCreator_is_a_CreateSMEventStatement_extent.remove( R704_CreateEventToCreator_is_a_CreateSMEventStatement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR704_is_a_CreateEventToCreator(CreateEventToCreatorImpl.EMPTY_CREATEEVENTTOCREATOR);
            form.setR704_is_a_CreateSMEventStatement(CreateSMEventStatementImpl.EMPTY_CREATESMEVENTSTATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R704_CreateEventToInstance_is_a_CreateSMEventStatement( CreateEventToInstance form, CreateSMEventStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R704_CreateEventToInstance_is_a_CreateSMEventStatement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR704_is_a_CreateEventToInstance(form);
            form.setR704_is_a_CreateSMEventStatement(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R704_CreateEventToInstance_is_a_CreateSMEventStatement( CreateEventToInstance form, CreateSMEventStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R704_CreateEventToInstance_is_a_CreateSMEventStatement_extent.remove( R704_CreateEventToInstance_is_a_CreateSMEventStatement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR704_is_a_CreateEventToInstance(CreateEventToInstanceImpl.EMPTY_CREATEEVENTTOINSTANCE);
            form.setR704_is_a_CreateSMEventStatement(CreateSMEventStatementImpl.EMPTY_CREATESMEVENTSTATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R705_E_GEN_is_a_GenerateSMEventStatement( E_GEN form, GenerateSMEventStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R705_E_GEN_is_a_GenerateSMEventStatement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR705_is_a_E_GEN(form);
            form.setR705_is_a_GenerateSMEventStatement(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R705_E_GEN_is_a_GenerateSMEventStatement( E_GEN form, GenerateSMEventStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R705_E_GEN_is_a_GenerateSMEventStatement_extent.remove( R705_E_GEN_is_a_GenerateSMEventStatement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR705_is_a_E_GEN(E_GENImpl.EMPTY_E_GEN);
            form.setR705_is_a_GenerateSMEventStatement(GenerateSMEventStatementImpl.EMPTY_GENERATESMEVENTSTATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R705_GenerateToClass_is_a_GenerateSMEventStatement( GenerateToClass form, GenerateSMEventStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R705_GenerateToClass_is_a_GenerateSMEventStatement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR705_is_a_GenerateToClass(form);
            form.setR705_is_a_GenerateSMEventStatement(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R705_GenerateToClass_is_a_GenerateSMEventStatement( GenerateToClass form, GenerateSMEventStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R705_GenerateToClass_is_a_GenerateSMEventStatement_extent.remove( R705_GenerateToClass_is_a_GenerateSMEventStatement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR705_is_a_GenerateToClass(GenerateToClassImpl.EMPTY_GENERATETOCLASS);
            form.setR705_is_a_GenerateSMEventStatement(GenerateSMEventStatementImpl.EMPTY_GENERATESMEVENTSTATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R705_GenerateToCreator_is_a_GenerateSMEventStatement( GenerateToCreator form, GenerateSMEventStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R705_GenerateToCreator_is_a_GenerateSMEventStatement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR705_is_a_GenerateToCreator(form);
            form.setR705_is_a_GenerateSMEventStatement(part);
            form.setStatement_ID( part.getStatement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R705_GenerateToCreator_is_a_GenerateSMEventStatement( GenerateToCreator form, GenerateSMEventStatement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R705_GenerateToCreator_is_a_GenerateSMEventStatement_extent.remove( R705_GenerateToCreator_is_a_GenerateSMEventStatement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR705_is_a_GenerateToCreator(GenerateToCreatorImpl.EMPTY_GENERATETOCREATOR);
            form.setR705_is_a_GenerateSMEventStatement(GenerateSMEventStatementImpl.EMPTY_GENERATESMEVENTSTATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R706_CreateSMEventStatement_creates_StateMachineEvent( CreateSMEventStatement form, StateMachineEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R706_CreateSMEventStatement_creates_StateMachineEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR706_CreateSMEventStatement(form);
            form.setR706_creates_StateMachineEvent(part);
            form.setSMevt_ID( part.getSMevt_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R706_CreateSMEventStatement_creates_StateMachineEvent( CreateSMEventStatement form, StateMachineEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R706_CreateSMEventStatement_creates_StateMachineEvent_extent.remove( R706_CreateSMEventStatement_creates_StateMachineEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR706_CreateSMEventStatement(form);
            form.setR706_creates_StateMachineEvent(StateMachineEventImpl.EMPTY_STATEMACHINEEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R707_GenerateSMEventStatement_generates_StateMachineEvent( GenerateSMEventStatement form, StateMachineEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R707_GenerateSMEventStatement_generates_StateMachineEvent_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR707_GenerateSMEventStatement(form);
            form.setR707_generates_StateMachineEvent(part);
            form.setSMevt_ID( part.getSMevt_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R707_GenerateSMEventStatement_generates_StateMachineEvent( GenerateSMEventStatement form, StateMachineEvent part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R707_GenerateSMEventStatement_generates_StateMachineEvent_extent.remove( R707_GenerateSMEventStatement_generates_StateMachineEvent_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR707_GenerateSMEventStatement(form);
            form.setR707_generates_StateMachineEvent(StateMachineEventImpl.EMPTY_STATEMACHINEEVENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R710_CreateEventStatement_result_V_VAR( CreateEventStatement form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R710_CreateEventStatement_result_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR710_CreateEventStatement(form);
            form.setR710_result_V_VAR(part);
            form.setVar_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R710_CreateEventStatement_result_V_VAR( CreateEventStatement form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R710_CreateEventStatement_result_V_VAR_extent.remove( R710_CreateEventStatement_result_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR710_CreateEventStatement(form);
            form.setR710_result_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R711_CreateEventToInstance_has_recipient_V_VAR( CreateEventToInstance form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R711_CreateEventToInstance_has_recipient_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR711_CreateEventToInstance(form);
            form.setR711_has_recipient_V_VAR(part);
            form.setVar_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R711_CreateEventToInstance_has_recipient_V_VAR( CreateEventToInstance form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R711_CreateEventToInstance_has_recipient_V_VAR_extent.remove( R711_CreateEventToInstance_has_recipient_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR711_CreateEventToInstance(form);
            form.setR711_has_recipient_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R712_E_GEN_has_recipient_V_VAR( E_GEN form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R712_E_GEN_has_recipient_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR712_E_GEN(form);
            form.setR712_has_recipient_V_VAR(part);
            form.setVar_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R712_E_GEN_has_recipient_V_VAR( E_GEN form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R712_E_GEN_has_recipient_V_VAR_extent.remove( R712_E_GEN_has_recipient_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR712_E_GEN(form);
            form.setR712_has_recipient_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R714_GeneratePreexistingEvent_generates_event_held_by_Value( GeneratePreexistingEvent form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R714_GeneratePreexistingEvent_generates_event_held_by_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR714_holds_event_to_be_generated_by_GeneratePreexistingEvent(form);
            form.setR714_generates_event_held_by_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R714_GeneratePreexistingEvent_generates_event_held_by_Value( GeneratePreexistingEvent form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R714_GeneratePreexistingEvent_generates_event_held_by_Value_extent.remove( R714_GeneratePreexistingEvent_generates_event_held_by_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR714_holds_event_to_be_generated_by_GeneratePreexistingEvent(GeneratePreexistingEventImpl.EMPTY_GENERATEPREEXISTINGEVENT);
            form.setR714_generates_event_held_by_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R775_Expression_expressed_within_Statement( Expression form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R775_Expression_expressed_within_Statement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR775_may_contain_Expression(form);
            form.setR775_expressed_within_Statement(part);
            form.setStatement_number( part.getStatement_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_package( part.getParent_package() );
            form.setBody_name( part.getBody_name() );
            form.setParent_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R775_Expression_expressed_within_Statement( Expression form, Statement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R775_Expression_expressed_within_Statement_extent.remove( R775_Expression_expressed_within_Statement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR775_may_contain_Expression(form);
            form.setR775_expressed_within_Statement(StatementImpl.EMPTY_STATEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_Any_is_a_Expression( Any form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_Any_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_Any(form);
            form.setR776_is_a_Expression(part);
            form.setBlock_number( part.getBlock_number() );
            form.setParent_package( part.getParent_package() );
            form.setBody_name( part.getBody_name() );
            form.setParent_name( part.getParent_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setExpression_number( part.getExpression_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_Any_is_a_Expression( Any form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_Any_is_a_Expression_extent.remove( R776_Any_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_Any(AnyImpl.EMPTY_ANY);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_ArrayElementReference_is_a_Expression( ArrayElementReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_ArrayElementReference_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_ArrayElementReference(form);
            form.setR776_is_a_Expression(part);
            form.setBody_name( part.getBody_name() );
            form.setParent_name( part.getParent_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_package( part.getParent_package() );
            form.setExpression_number( part.getExpression_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_ArrayElementReference_is_a_Expression( ArrayElementReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_ArrayElementReference_is_a_Expression_extent.remove( R776_ArrayElementReference_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_ArrayElementReference(ArrayElementReferenceImpl.EMPTY_ARRAYELEMENTREFERENCE);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_ArrayLengthAccess_is_a_Expression( ArrayLengthAccess form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_ArrayLengthAccess_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_ArrayLengthAccess(form);
            form.setR776_is_a_Expression(part);
            form.setBlock_number( part.getBlock_number() );
            form.setParent_name( part.getParent_name() );
            form.setExpression_number( part.getExpression_number() );
            form.setStatement_number( part.getStatement_number() );
            form.setBody_name( part.getBody_name() );
            form.setParent_package( part.getParent_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_ArrayLengthAccess_is_a_Expression( ArrayLengthAccess form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_ArrayLengthAccess_is_a_Expression_extent.remove( R776_ArrayLengthAccess_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_ArrayLengthAccess(ArrayLengthAccessImpl.EMPTY_ARRAYLENGTHACCESS);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_AttributeAccess_is_a_Expression( AttributeAccess form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_AttributeAccess_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_AttributeAccess(form);
            form.setR776_is_a_Expression(part);
            form.setParent_package( part.getParent_package() );
            form.setStatement_number( part.getStatement_number() );
            form.setExpression_number( part.getExpression_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_name( part.getParent_name() );
            form.setBody_name( part.getBody_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_AttributeAccess_is_a_Expression( AttributeAccess form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_AttributeAccess_is_a_Expression_extent.remove( R776_AttributeAccess_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_AttributeAccess(AttributeAccessImpl.EMPTY_ATTRIBUTEACCESS);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_BinaryOperation_is_a_Expression( BinaryOperation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_BinaryOperation_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_BinaryOperation(form);
            form.setR776_is_a_Expression(part);
            form.setParent_package( part.getParent_package() );
            form.setExpression_number( part.getExpression_number() );
            form.setParent_name( part.getParent_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setStatement_number( part.getStatement_number() );
            form.setBody_name( part.getBody_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_BinaryOperation_is_a_Expression( BinaryOperation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_BinaryOperation_is_a_Expression_extent.remove( R776_BinaryOperation_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_BinaryOperation(BinaryOperationImpl.EMPTY_BINARYOPERATION);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_ConstantReference_is_a_Expression( ConstantReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_ConstantReference_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_ConstantReference(form);
            form.setR776_is_a_Expression(part);
            form.setBody_name( part.getBody_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_name( part.getParent_name() );
            form.setParent_package( part.getParent_package() );
            form.setExpression_number( part.getExpression_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_ConstantReference_is_a_Expression( ConstantReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_ConstantReference_is_a_Expression_extent.remove( R776_ConstantReference_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_ConstantReference(ConstantReferenceImpl.EMPTY_CONSTANTREFERENCE);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_Creation_is_a_Expression( Creation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_Creation_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_Creation(form);
            form.setR776_is_a_Expression(part);
            form.setExpression_number( part.getExpression_number() );
            form.setParent_name( part.getParent_name() );
            form.setName( part.getBody_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_package( part.getParent_package() );
            form.setBlock_number( part.getBlock_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_Creation_is_a_Expression( Creation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_Creation_is_a_Expression_extent.remove( R776_Creation_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_Creation(CreationImpl.EMPTY_CREATION);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_EnumeratorReference_is_a_Expression( EnumeratorReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_EnumeratorReference_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_EnumeratorReference(form);
            form.setR776_is_a_Expression(part);
            form.setBody_name( part.getBody_name() );
            form.setParent_name( part.getParent_name() );
            form.setParent_package( part.getParent_package() );
            form.setExpression_number( part.getExpression_number() );
            form.setStatement_number( part.getStatement_number() );
            form.setBlock_number( part.getBlock_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_EnumeratorReference_is_a_Expression( EnumeratorReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_EnumeratorReference_is_a_Expression_extent.remove( R776_EnumeratorReference_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_EnumeratorReference(EnumeratorReferenceImpl.EMPTY_ENUMERATORREFERENCE);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_EventCreation_is_a_Expression( EventCreation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_EventCreation_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_EventCreation(form);
            form.setR776_is_a_Expression(part);
            form.setExpression_number( part.getExpression_number() );
            form.setParent_package( part.getParent_package() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_name( part.getParent_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_EventCreation_is_a_Expression( EventCreation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_EventCreation_is_a_Expression_extent.remove( R776_EventCreation_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_EventCreation(EventCreationImpl.EMPTY_EVENTCREATION);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_Invocation_is_a_Expression( Invocation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_Invocation_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_Invocation(form);
            form.setR776_is_a_Expression(part);
            form.setParent_name( part.getParent_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
            form.setExpression_number( part.getExpression_number() );
            form.setParent_package( part.getParent_package() );
            form.setStatement_number( part.getStatement_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_Invocation_is_a_Expression( Invocation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_Invocation_is_a_Expression_extent.remove( R776_Invocation_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_Invocation(InvocationImpl.EMPTY_INVOCATION);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_Literal_is_a_Expression( Literal form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_Literal_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_Literal(form);
            form.setR776_is_a_Expression(part);
            form.setExpression_number( part.getExpression_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_package( part.getParent_package() );
            form.setParent_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_Literal_is_a_Expression( Literal form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_Literal_is_a_Expression_extent.remove( R776_Literal_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_Literal(LiteralImpl.EMPTY_LITERAL);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_MemberReference_is_a_Expression( MemberReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_MemberReference_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_MemberReference(form);
            form.setR776_is_a_Expression(part);
            form.setParent_package( part.getParent_package() );
            form.setBody_name( part.getBody_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setExpression_number( part.getExpression_number() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_MemberReference_is_a_Expression( MemberReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_MemberReference_is_a_Expression_extent.remove( R776_MemberReference_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_MemberReference(MemberReferenceImpl.EMPTY_MEMBERREFERENCE);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_NamedReference_is_a_Expression( NamedReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_NamedReference_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_NamedReference(form);
            form.setR776_is_a_Expression(part);
            form.setStatement_number( part.getStatement_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_name( part.getParent_name() );
            form.setExpression_number( part.getExpression_number() );
            form.setParent_package( part.getParent_package() );
            form.setBody_name( part.getBody_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_NamedReference_is_a_Expression( NamedReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_NamedReference_is_a_Expression_extent.remove( R776_NamedReference_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_NamedReference(NamedReferenceImpl.EMPTY_NAMEDREFERENCE);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_ParameterReference_is_a_Expression( ParameterReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_ParameterReference_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_ParameterReference(form);
            form.setR776_is_a_Expression(part);
            form.setParent_name( part.getParent_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_package( part.getParent_package() );
            form.setBody_name( part.getBody_name() );
            form.setExpression_number( part.getExpression_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_ParameterReference_is_a_Expression( ParameterReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_ParameterReference_is_a_Expression_extent.remove( R776_ParameterReference_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_ParameterReference(ParameterReferenceImpl.EMPTY_PARAMETERREFERENCE);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_ParenthesizedExpression_is_a_Expression( ParenthesizedExpression form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_ParenthesizedExpression_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_ParenthesizedExpression(form);
            form.setR776_is_a_Expression(part);
            form.setExpression_number( part.getExpression_number() );
            form.setStatement_number( part.getStatement_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_name( part.getParent_name() );
            form.setBody_name( part.getBody_name() );
            form.setParent_package( part.getParent_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_ParenthesizedExpression_is_a_Expression( ParenthesizedExpression form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_ParenthesizedExpression_is_a_Expression_extent.remove( R776_ParenthesizedExpression_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_ParenthesizedExpression(ParenthesizedExpressionImpl.EMPTY_PARENTHESIZEDEXPRESSION);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_Promotion_is_a_Expression( Promotion form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_Promotion_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_Promotion(form);
            form.setR776_is_a_Expression(part);
            form.setParent_package( part.getParent_package() );
            form.setBody_name( part.getBody_name() );
            form.setParent_name( part.getParent_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setExpression_number( part.getExpression_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_Promotion_is_a_Expression( Promotion form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_Promotion_is_a_Expression_extent.remove( R776_Promotion_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_Promotion(PromotionImpl.EMPTY_PROMOTION);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_Select_is_a_Expression( Select form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_Select_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_Select(form);
            form.setR776_is_a_Expression(part);
            form.setParent_name( part.getParent_name() );
            form.setBody_name( part.getBody_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_package( part.getParent_package() );
            form.setExpression_number( part.getExpression_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_Select_is_a_Expression( Select form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_Select_is_a_Expression_extent.remove( R776_Select_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_Select(SelectImpl.EMPTY_SELECT);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_Selected_is_a_Expression( Selected form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_Selected_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_Selected(form);
            form.setR776_is_a_Expression(part);
            form.setName( part.getBody_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setExpression_number( part.getExpression_number() );
            form.setParent_package( part.getParent_package() );
            form.setParent_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_Selected_is_a_Expression( Selected form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_Selected_is_a_Expression_extent.remove( R776_Selected_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_Selected(SelectedImpl.EMPTY_SELECTED);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_UnaryOperation_is_a_Expression( UnaryOperation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_UnaryOperation_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_UnaryOperation(form);
            form.setR776_is_a_Expression(part);
            form.setExpression_number( part.getExpression_number() );
            form.setParent_package( part.getParent_package() );
            form.setBody_name( part.getBody_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_UnaryOperation_is_a_Expression( UnaryOperation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_UnaryOperation_is_a_Expression_extent.remove( R776_UnaryOperation_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_UnaryOperation(UnaryOperationImpl.EMPTY_UNARYOPERATION);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_VariableReference_is_a_Expression( VariableReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_VariableReference_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_VariableReference(form);
            form.setR776_is_a_Expression(part);
            form.setStatement_number( part.getStatement_number() );
            form.setExpression_number( part.getExpression_number() );
            form.setParent_package( part.getParent_package() );
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
            form.setParent_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_VariableReference_is_a_Expression( VariableReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_VariableReference_is_a_Expression_extent.remove( R776_VariableReference_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_VariableReference(VariableReferenceImpl.EMPTY_VARIABLEREFERENCE);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R776_Where_is_a_Expression( Where form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R776_Where_is_a_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_Where(form);
            form.setR776_is_a_Expression(part);
            form.setExpression_number( part.getExpression_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
            form.setParent_name( part.getParent_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_package( part.getParent_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R776_Where_is_a_Expression( Where form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R776_Where_is_a_Expression_extent.remove( R776_Where_is_a_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR776_is_a_Where(WhereImpl.EMPTY_WHERE);
            form.setR776_is_a_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R777_UnaryOperation_has_single_operand_Expression( UnaryOperation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R777_UnaryOperation_has_single_operand_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR777_is_single_operand_for_UnaryOperation(form);
            form.setR777_has_single_operand_Expression(part);
            form.setBlock_number( part.getBlock_number() );
            form.setOp_expression_number( part.getExpression_number() );
            form.setParent_package( part.getParent_package() );
            form.setParent_name( part.getParent_name() );
            form.setBody_name( part.getBody_name() );
            form.setStatement_number( part.getStatement_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R777_UnaryOperation_has_single_operand_Expression( UnaryOperation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R777_UnaryOperation_has_single_operand_Expression_extent.remove( R777_UnaryOperation_has_single_operand_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR777_is_single_operand_for_UnaryOperation(UnaryOperationImpl.EMPTY_UNARYOPERATION);
            form.setR777_has_single_operand_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R778_BinaryOperation_has_right_Expression( BinaryOperation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R778_BinaryOperation_has_right_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR778_is_right_operand_for_BinaryOperation(form);
            form.setR778_has_right_Expression(part);
            form.setRight_expression_number( part.getExpression_number() );
            form.setParent_package( part.getParent_package() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_name( part.getParent_name() );
            form.setBody_name( part.getBody_name() );
            form.setBlock_number( part.getBlock_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R778_BinaryOperation_has_right_Expression( BinaryOperation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R778_BinaryOperation_has_right_Expression_extent.remove( R778_BinaryOperation_has_right_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR778_is_right_operand_for_BinaryOperation(BinaryOperationImpl.EMPTY_BINARYOPERATION);
            form.setR778_has_right_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R779_BinaryOperation_has_left_Expression( BinaryOperation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R779_BinaryOperation_has_left_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR779_is_left_operand_for_BinaryOperation(form);
            form.setR779_has_left_Expression(part);
            form.setParent_name( part.getParent_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
            form.setLeft_expression_number( part.getExpression_number() );
            form.setParent_package( part.getParent_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R779_BinaryOperation_has_left_Expression( BinaryOperation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R779_BinaryOperation_has_left_Expression_extent.remove( R779_BinaryOperation_has_left_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR779_is_left_operand_for_BinaryOperation(BinaryOperationImpl.EMPTY_BINARYOPERATION);
            form.setR779_has_left_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R780_Creation_creates_ModelInst( Creation form, ModelInst part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R780_Creation_creates_ModelInst_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR780_created_by_Creation(form);
            form.setR780_creates_ModelInst(part);
            form.setComp_package( part.getComp_package() );
            form.setClass_name( part.getName() );
            form.setClass_package( part.getPackage() );
            form.setComp_name( part.getComp_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R780_Creation_creates_ModelInst( Creation form, ModelInst part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R780_Creation_creates_ModelInst_extent.remove( R780_Creation_creates_ModelInst_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR780_created_by_Creation(form);
            form.setR780_creates_ModelInst(ModelInstImpl.EMPTY_MODELINST);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R781_ParameterReference_refers_to_FormalParameter( ParameterReference form, FormalParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R781_ParameterReference_refers_to_FormalParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR781_referenced_by_ParameterReference(form);
            form.setR781_refers_to_FormalParameter(part);
            form.setParam_parent_package( part.getParent_package() );
            form.setParam_parent_name( part.getParent_name() );
            form.setParam_body_name( part.getInvocable_name() );
            form.setParam_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R781_ParameterReference_refers_to_FormalParameter( ParameterReference form, FormalParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R781_ParameterReference_refers_to_FormalParameter_extent.remove( R781_ParameterReference_refers_to_FormalParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR781_referenced_by_ParameterReference(form);
            form.setR781_refers_to_FormalParameter(FormalParameterImpl.EMPTY_FORMALPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R782_VariableReference_refers_to_local_Variable( VariableReference form, Variable part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R782_VariableReference_refers_to_local_Variable_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR782_referenced_through_VariableReference(form);
            form.setR782_refers_to_local_Variable(part);
            form.setVar_block_number( part.getBlock_number() );
            form.setParent_name( part.getParent_name() );
            form.setParent_package( part.getParent_package() );
            form.setVar_name( part.getName() );
            form.setBody_name( part.getBody_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R782_VariableReference_refers_to_local_Variable( VariableReference form, Variable part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R782_VariableReference_refers_to_local_Variable_extent.remove( R782_VariableReference_refers_to_local_Variable_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR782_referenced_through_VariableReference(form);
            form.setR782_refers_to_local_Variable(VariableImpl.EMPTY_VARIABLE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R783_Any_gets_an_arbitrary_element_from_Expression( Any form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R783_Any_gets_an_arbitrary_element_from_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR783_is_basis_for_Any(form);
            form.setR783_gets_an_arbitrary_element_from_Expression(part);
            form.setStatement_number( part.getStatement_number() );
            form.setAny_expression_number( part.getExpression_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_package( part.getParent_package() );
            form.setBody_name( part.getBody_name() );
            form.setParent_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R783_Any_gets_an_arbitrary_element_from_Expression( Any form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R783_Any_gets_an_arbitrary_element_from_Expression_extent.remove( R783_Any_gets_an_arbitrary_element_from_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR783_is_basis_for_Any(AnyImpl.EMPTY_ANY);
            form.setR783_gets_an_arbitrary_element_from_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R784_ParenthesizedExpression_parenthesizes_Expression( ParenthesizedExpression form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R784_ParenthesizedExpression_parenthesizes_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR784_is_wrapped_in_parentheses_by_ParenthesizedExpression(form);
            form.setR784_parenthesizes_Expression(part);
            form.setStatement_number( part.getStatement_number() );
            form.setBody_name( part.getBody_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_package( part.getParent_package() );
            form.setParent_name( part.getParent_name() );
            form.setBase_expression_number( part.getExpression_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R784_ParenthesizedExpression_parenthesizes_Expression( ParenthesizedExpression form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R784_ParenthesizedExpression_parenthesizes_Expression_extent.remove( R784_ParenthesizedExpression_parenthesizes_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR784_is_wrapped_in_parentheses_by_ParenthesizedExpression(ParenthesizedExpressionImpl.EMPTY_PARENTHESIZEDEXPRESSION);
            form.setR784_parenthesizes_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R785_AttributeAccess_refers_to_attribute_of_instance_expressed_by_Expression( AttributeAccess form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R785_AttributeAccess_refers_to_attribute_of_instance_expressed_by_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR785_is_used_as_basis_for_AttributeAccess(form);
            form.setR785_refers_to_attribute_of_instance_expressed_by_Expression(part);
            form.setRoot_expression_number( part.getExpression_number() );
            form.setStatement_number( part.getStatement_number() );
            form.setBody_name( part.getBody_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_package( part.getParent_package() );
            form.setParent_name( part.getParent_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R785_AttributeAccess_refers_to_attribute_of_instance_expressed_by_Expression( AttributeAccess form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R785_AttributeAccess_refers_to_attribute_of_instance_expressed_by_Expression_extent.remove( R785_AttributeAccess_refers_to_attribute_of_instance_expressed_by_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR785_is_used_as_basis_for_AttributeAccess(AttributeAccessImpl.EMPTY_ATTRIBUTEACCESS);
            form.setR785_refers_to_attribute_of_instance_expressed_by_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R786_EnumeratorReference_refers_to_Enumerator( EnumeratorReference form, Enumerator part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R786_EnumeratorReference_refers_to_Enumerator_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR786_is_referenced_by_EnumeratorReference(form);
            form.setR786_refers_to_Enumerator(part);
            form.setEnum_type_package( part.getType_package() );
            form.setEnum_name( part.getName() );
            form.setEnum_type_name( part.getType_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R786_EnumeratorReference_refers_to_Enumerator( EnumeratorReference form, Enumerator part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R786_EnumeratorReference_refers_to_Enumerator_extent.remove( R786_EnumeratorReference_refers_to_Enumerator_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR786_is_referenced_by_EnumeratorReference(form);
            form.setR786_refers_to_Enumerator(EnumeratorImpl.EMPTY_ENUMERATOR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R787_MemberReference_refers_to_member_of_structured_value_expressed_by_Expression( MemberReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R787_MemberReference_refers_to_member_of_structured_value_expressed_by_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR787_is_used_as_basis_for_MemberReference(form);
            form.setR787_refers_to_member_of_structured_value_expressed_by_Expression(part);
            form.setParent_package( part.getParent_package() );
            form.setParent_name( part.getParent_name() );
            form.setRoot_expression_number( part.getExpression_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
            form.setStatement_number( part.getStatement_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R787_MemberReference_refers_to_member_of_structured_value_expressed_by_Expression( MemberReference form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R787_MemberReference_refers_to_member_of_structured_value_expressed_by_Expression_extent.remove( R787_MemberReference_refers_to_member_of_structured_value_expressed_by_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR787_is_used_as_basis_for_MemberReference(MemberReferenceImpl.EMPTY_MEMBERREFERENCE);
            form.setR787_refers_to_member_of_structured_value_expressed_by_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R788_AttributeAccess_refers_to_Attribute( AttributeAccess form, Attribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R788_AttributeAccess_refers_to_Attribute_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR788_is_referenced_by_AttributeAccess(form);
            form.setR788_refers_to_Attribute(part);
            form.setAttr_class_name( part.getName() );
            form.setAttr_class_package( part.getClass_package() );
            form.setAttr_name( part.getClass_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R788_AttributeAccess_refers_to_Attribute( AttributeAccess form, Attribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R788_AttributeAccess_refers_to_Attribute_extent.remove( R788_AttributeAccess_refers_to_Attribute_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR788_is_referenced_by_AttributeAccess(form);
            form.setR788_refers_to_Attribute(AttributeImpl.EMPTY_ATTRIBUTE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R789_SelectFromInstances_is_a_Select( SelectFromInstances form, Select part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R789_SelectFromInstances_is_a_Select_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR789_is_a_SelectFromInstances(form);
            form.setR789_is_a_Select(part);
            form.setBody_name( part.getBody_name() );
            form.setExpression_number( part.getExpression_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_name( part.getParent_name() );
            form.setParent_package( part.getParent_package() );
            form.setStatement_number( part.getStatement_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R789_SelectFromInstances_is_a_Select( SelectFromInstances form, Select part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R789_SelectFromInstances_is_a_Select_extent.remove( R789_SelectFromInstances_is_a_Select_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR789_is_a_SelectFromInstances(SelectFromInstancesImpl.EMPTY_SELECTFROMINSTANCES);
            form.setR789_is_a_Select(SelectImpl.EMPTY_SELECT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R789_SelectRelated_is_a_Select( SelectRelated form, Select part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R789_SelectRelated_is_a_Select_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR789_is_a_SelectRelated(form);
            form.setR789_is_a_Select(part);
            form.setParent_name( part.getParent_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
            form.setExpression_number( part.getExpression_number() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_package( part.getParent_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R789_SelectRelated_is_a_Select( SelectRelated form, Select part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R789_SelectRelated_is_a_Select_extent.remove( R789_SelectRelated_is_a_Select_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR789_is_a_SelectRelated(SelectRelatedImpl.EMPTY_SELECTRELATED);
            form.setR789_is_a_Select(SelectImpl.EMPTY_SELECT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R790_Where_filters_Expression( Where form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R790_Where_filters_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR790_filtered_by_Where(form);
            form.setR790_filters_Expression(part);
            form.setBase_expression_number( part.getExpression_number() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_name( part.getParent_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_package( part.getParent_package() );
            form.setBody_name( part.getBody_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R790_Where_filters_Expression( Where form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R790_Where_filters_Expression_extent.remove( R790_Where_filters_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR790_filtered_by_Where(WhereImpl.EMPTY_WHERE);
            form.setR790_filters_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R791_SelectRelated_selects_instances_linked_from_instance_expressed_by_Expression( SelectRelated form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R791_SelectRelated_selects_instances_linked_from_instance_expressed_by_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR791_is_basis_for_SelectRelated(form);
            form.setR791_selects_instances_linked_from_instance_expressed_by_Expression(part);
            form.setParent_package( part.getParent_package() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_name( part.getParent_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setRoot_expression_number( part.getExpression_number() );
            form.setBody_name( part.getBody_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R791_SelectRelated_selects_instances_linked_from_instance_expressed_by_Expression( SelectRelated form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R791_SelectRelated_selects_instances_linked_from_instance_expressed_by_Expression_extent.remove( R791_SelectRelated_selects_instances_linked_from_instance_expressed_by_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR791_is_basis_for_SelectRelated(SelectRelatedImpl.EMPTY_SELECTRELATED);
            form.setR791_selects_instances_linked_from_instance_expressed_by_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R792_Invocation_invokes_InvocableObject( Invocation form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R792_Invocation_invokes_InvocableObject_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR792_invoked_through_Invocation(form);
            form.setR792_invokes_InvocableObject(part);
            form.setInvoked_parent_name( part.getParent_name() );
            form.setInvoked_name( part.getName() );
            form.setInvoked_parent_package( part.getParent_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R792_Invocation_invokes_InvocableObject( Invocation form, InvocableObject part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R792_Invocation_invokes_InvocableObject_extent.remove( R792_Invocation_invokes_InvocableObject_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR792_invoked_through_Invocation(form);
            form.setR792_invokes_InvocableObject(InvocableObjectImpl.EMPTY_INVOCABLEOBJECT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R793_ActualParameter_Invocation( ActualParameter form, Invocation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R793_ActualParameter_Invocation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR793_ActualParameter(form);
            form.setR793_Invocation(part);
            form.setBody_name( part.getBody_name() );
            form.setParent_name( part.getParent_name() );
            form.setParent_package( part.getParent_package() );
            form.setStatement_number( part.getStatement_number() );
            form.setInvocation_expression_number( part.getExpression_number() );
            form.setBlock_number( part.getBlock_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R793_ActualParameter_Invocation( ActualParameter form, Invocation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R793_ActualParameter_Invocation_extent.remove( R793_ActualParameter_Invocation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR793_ActualParameter(form);
            form.setR793_Invocation(InvocationImpl.EMPTY_INVOCATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R794_ActualParameter_parameter_value_specified_by_Expression( ActualParameter form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R794_ActualParameter_parameter_value_specified_by_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR794_defines_value_for_ActualParameter(form);
            form.setR794_parameter_value_specified_by_Expression(part);
            form.setBody_name( part.getBody_name() );
            form.setExpression_number( part.getExpression_number() );
            form.setParent_name( part.getParent_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setParent_package( part.getParent_package() );
            form.setStatement_number( part.getStatement_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R794_ActualParameter_parameter_value_specified_by_Expression( ActualParameter form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R794_ActualParameter_parameter_value_specified_by_Expression_extent.remove( R794_ActualParameter_parameter_value_specified_by_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR794_defines_value_for_ActualParameter(ActualParameterImpl.EMPTY_ACTUALPARAMETER);
            form.setR794_parameter_value_specified_by_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R795_Expression_expresses_value_of_TypeReference( Expression form, TypeReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R795_Expression_expresses_value_of_TypeReference_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR795_defines_type_of_Expression(form);
            form.setR795_expresses_value_of_TypeReference(part);
            form.setType_package( part.getType_package() );
            form.setType_name( part.getType_name() );
            form.setType_reference_name( part.getType_reference_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R795_Expression_expresses_value_of_TypeReference( Expression form, TypeReference part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R795_Expression_expresses_value_of_TypeReference_extent.remove( R795_Expression_expresses_value_of_TypeReference_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR795_defines_type_of_Expression(form);
            form.setR795_expresses_value_of_TypeReference(TypeReferenceImpl.EMPTY_TYPEREFERENCE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R796_Where_has_condition_Expression( Where form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R796_Where_has_condition_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR796_defines_condtion_for_Where(form);
            form.setR796_has_condition_Expression(part);
            form.setParent_name( part.getParent_name() );
            form.setBlock_number( part.getBlock_number() );
            form.setBody_name( part.getBody_name() );
            form.setParent_package( part.getParent_package() );
            form.setWhere_expression_number( part.getExpression_number() );
            form.setStatement_number( part.getStatement_number() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R796_Where_has_condition_Expression( Where form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R796_Where_has_condition_Expression_extent.remove( R796_Where_has_condition_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR796_defines_condtion_for_Where(WhereImpl.EMPTY_WHERE);
            form.setR796_has_condition_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R797_SelectRelated_selects_instances_through_Selector( SelectRelated form, Selector part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R797_SelectRelated_selects_instances_through_Selector_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR797_invoked_by_SelectRelated(form);
            form.setR797_selects_instances_through_Selector(part);
            form.setSelector_parent_name( part.getParent_name() );
            form.setSelector_parent_package( part.getParent_package() );
            form.setSelector_name( part.getName() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R797_SelectRelated_selects_instances_through_Selector( SelectRelated form, Selector part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R797_SelectRelated_selects_instances_through_Selector_extent.remove( R797_SelectRelated_selects_instances_through_Selector_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR797_invoked_by_SelectRelated(form);
            form.setR797_selects_instances_through_Selector(SelectorImpl.EMPTY_SELECTOR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R798_Invocation_invokes_activity_on_Expression( Invocation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R798_Invocation_invokes_activity_on_Expression_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR798_is_used_as_basis_for_Invocation(form);
            form.setR798_invokes_activity_on_Expression(part);
            form.setParent_name( part.getParent_name() );
            form.setStatement_number( part.getStatement_number() );
            form.setParent_package( part.getParent_package() );
            form.setBlock_number( part.getBlock_number() );
            form.setBase_expression_number( part.getExpression_number() );
            form.setBody_name( part.getBody_name() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R798_Invocation_invokes_activity_on_Expression( Invocation form, Expression part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R798_Invocation_invokes_activity_on_Expression_extent.remove( R798_Invocation_invokes_activity_on_Expression_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR798_is_used_as_basis_for_Invocation(InvocationImpl.EMPTY_INVOCATION);
            form.setR798_invokes_activity_on_Expression(ExpressionImpl.EMPTY_EXPRESSION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R799_SelectFromInstances_selects_instances_through_InstancePopulationSelector( SelectFromInstances form, InstancePopulationSelector part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R799_SelectFromInstances_selects_instances_through_InstancePopulationSelector_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR799_invoked_by_SelectFromInstances(form);
            form.setR799_selects_instances_through_InstancePopulationSelector(part);
            form.setSelector_name( part.getName() );
            form.setSelector_comp_name( part.getComp_name() );
            form.setSelector_comp_package( part.getComp_package() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R799_SelectFromInstances_selects_instances_through_InstancePopulationSelector( SelectFromInstances form, InstancePopulationSelector part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R799_SelectFromInstances_selects_instances_through_InstancePopulationSelector_extent.remove( R799_SelectFromInstances_selects_instances_through_InstancePopulationSelector_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR799_invoked_by_SelectFromInstances(form);
            form.setR799_selects_instances_through_InstancePopulationSelector(InstancePopulationSelectorImpl.EMPTY_INSTANCEPOPULATIONSELECTOR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8000_PackageableElement_contained_by_EP_PKG( PackageableElement form, EP_PKG part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8000_PackageableElement_contained_by_EP_PKG_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR8000_contains_PackageableElement(form);
            form.setR8000_contained_by_EP_PKG(part);
            form.setPackage_ID( part.getPackage_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8000_PackageableElement_contained_by_EP_PKG( PackageableElement form, EP_PKG part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8000_PackageableElement_contained_by_EP_PKG_extent.remove( R8000_PackageableElement_contained_by_EP_PKG_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR8000_contains_PackageableElement(form);
            form.setR8000_contained_by_EP_PKG(EP_PKGImpl.EMPTY_EP_PKG);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_ActivityEdge_is_a_PackageableElement( ActivityEdge form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_ActivityEdge_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_ActivityEdge(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setId( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_ActivityEdge_is_a_PackageableElement( ActivityEdge form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_ActivityEdge_is_a_PackageableElement_extent.remove( R8001_ActivityEdge_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_ActivityEdge(ActivityEdgeImpl.EMPTY_ACTIVITYEDGE);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_ActivityNode_is_a_PackageableElement( ActivityNode form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_ActivityNode_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_ActivityNode(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setId( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_ActivityNode_is_a_PackageableElement( ActivityNode form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_ActivityNode_is_a_PackageableElement_extent.remove( R8001_ActivityNode_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_ActivityNode(ActivityNodeImpl.EMPTY_ACTIVITYNODE);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_ActivityPartition_is_a_PackageableElement( ActivityPartition form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_ActivityPartition_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_ActivityPartition(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setId( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_ActivityPartition_is_a_PackageableElement( ActivityPartition form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_ActivityPartition_is_a_PackageableElement_extent.remove( R8001_ActivityPartition_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_ActivityPartition(ActivityPartitionImpl.EMPTY_ACTIVITYPARTITION);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_Association_is_a_PackageableElement( Association form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_Association_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_Association(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setRel_ID( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_Association_is_a_PackageableElement( Association form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_Association_is_a_PackageableElement_extent.remove( R8001_Association_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_Association(AssociationImpl.EMPTY_ASSOCIATION);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_C_C_is_a_PackageableElement( C_C form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_C_C_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_C_C(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setId( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_C_C_is_a_PackageableElement( C_C form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_C_C_is_a_PackageableElement_extent.remove( R8001_C_C_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_C_C(C_CImpl.EMPTY_C_C);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_C_I_is_a_PackageableElement( C_I form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_C_I_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_C_I(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setId( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_C_I_is_a_PackageableElement( C_I form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_C_I_is_a_PackageableElement_extent.remove( R8001_C_I_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_C_I(C_IImpl.EMPTY_C_I);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_ComponentReference_is_a_PackageableElement( ComponentReference form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_ComponentReference_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_ComponentReference(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setId( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_ComponentReference_is_a_PackageableElement( ComponentReference form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_ComponentReference_is_a_PackageableElement_extent.remove( R8001_ComponentReference_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_ComponentReference(ComponentReferenceImpl.EMPTY_COMPONENTREFERENCE);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_ConstantSpecification_is_a_PackageableElement( ConstantSpecification form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_ConstantSpecification_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_ConstantSpecification(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setConstant_Spec_ID( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_ConstantSpecification_is_a_PackageableElement( ConstantSpecification form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_ConstantSpecification_is_a_PackageableElement_extent.remove( R8001_ConstantSpecification_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_ConstantSpecification(ConstantSpecificationImpl.EMPTY_CONSTANTSPECIFICATION);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_DataType_is_a_PackageableElement( DataType form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_DataType_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_DataType(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setDT_ID( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_DataType_is_a_PackageableElement( DataType form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_DataType_is_a_PackageableElement_extent.remove( R8001_DataType_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_DataType(DataTypeImpl.EMPTY_DATATYPE);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_Delegation_is_a_PackageableElement( Delegation form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_Delegation_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_Delegation(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setId( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_Delegation_is_a_PackageableElement( Delegation form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_Delegation_is_a_PackageableElement_extent.remove( R8001_Delegation_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_Delegation(DelegationImpl.EMPTY_DELEGATION);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_Deployment_is_a_PackageableElement( Deployment form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_Deployment_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_Deployment(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setDeployment_ID( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_Deployment_is_a_PackageableElement( Deployment form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_Deployment_is_a_PackageableElement_extent.remove( R8001_Deployment_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_Deployment(DeploymentImpl.EMPTY_DEPLOYMENT);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_EP_PKG_is_a_PackageableElement( EP_PKG form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_EP_PKG_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_EP_PKG(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setPackage_ID( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_EP_PKG_is_a_PackageableElement( EP_PKG form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_EP_PKG_is_a_PackageableElement_extent.remove( R8001_EP_PKG_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_EP_PKG(EP_PKGImpl.EMPTY_EP_PKG);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_Exception_is_a_PackageableElement( Exception form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_Exception_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_Exception(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setException_ID( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_Exception_is_a_PackageableElement( Exception form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_Exception_is_a_PackageableElement_extent.remove( R8001_Exception_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_Exception(ExceptionImpl.EMPTY_EXCEPTION);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_ExternalEntity_is_a_PackageableElement( ExternalEntity form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_ExternalEntity_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_ExternalEntity(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setEE_ID( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_ExternalEntity_is_a_PackageableElement( ExternalEntity form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_ExternalEntity_is_a_PackageableElement_extent.remove( R8001_ExternalEntity_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_ExternalEntity(ExternalEntityImpl.EMPTY_EXTERNALENTITY);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_ImportedClass_is_a_PackageableElement( ImportedClass form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_ImportedClass_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_ImportedClass(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setIObj_ID( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_ImportedClass_is_a_PackageableElement( ImportedClass form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_ImportedClass_is_a_PackageableElement_extent.remove( R8001_ImportedClass_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_ImportedClass(ImportedClassImpl.EMPTY_IMPORTEDCLASS);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_InteractionParticipant_is_a_PackageableElement( InteractionParticipant form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_InteractionParticipant_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_InteractionParticipant(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setPart_ID( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_InteractionParticipant_is_a_PackageableElement( InteractionParticipant form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_InteractionParticipant_is_a_PackageableElement_extent.remove( R8001_InteractionParticipant_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_InteractionParticipant(InteractionParticipantImpl.EMPTY_INTERACTIONPARTICIPANT);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_MSG_M_is_a_PackageableElement( MSG_M form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_MSG_M_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_MSG_M(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setMsg_ID( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_MSG_M_is_a_PackageableElement( MSG_M form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_MSG_M_is_a_PackageableElement_extent.remove( R8001_MSG_M_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_MSG_M(MSG_MImpl.EMPTY_MSG_M);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_ModelClass_is_a_PackageableElement( ModelClass form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_ModelClass_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_ModelClass(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setObj_ID( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_ModelClass_is_a_PackageableElement( ModelClass form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_ModelClass_is_a_PackageableElement_extent.remove( R8001_ModelClass_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_S_SYNC_is_a_PackageableElement( S_SYNC form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_S_SYNC_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_S_SYNC(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setSync_ID( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_S_SYNC_is_a_PackageableElement( S_SYNC form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_S_SYNC_is_a_PackageableElement_extent.remove( R8001_S_SYNC_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_S_SYNC(S_SYNCImpl.EMPTY_S_SYNC);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_Satisfaction_is_a_PackageableElement( Satisfaction form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_Satisfaction_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_Satisfaction(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setId( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_Satisfaction_is_a_PackageableElement( Satisfaction form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_Satisfaction_is_a_PackageableElement_extent.remove( R8001_Satisfaction_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_Satisfaction(SatisfactionImpl.EMPTY_SATISFACTION);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8001_UseCaseAssociation_is_a_PackageableElement( UseCaseAssociation form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8001_UseCaseAssociation_is_a_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_UseCaseAssociation(form);
            form.setR8001_is_a_PackageableElement(part);
            form.setAssoc_ID( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8001_UseCaseAssociation_is_a_PackageableElement( UseCaseAssociation form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8001_UseCaseAssociation_is_a_PackageableElement_extent.remove( R8001_UseCaseAssociation_is_a_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR8001_is_a_UseCaseAssociation(UseCaseAssociationImpl.EMPTY_USECASEASSOCIATION);
            form.setR8001_is_a_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8002_ElementVisibility_has_visibility_of_PackageableElement( ElementVisibility form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8002_ElementVisibility_has_visibility_of_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR8002_is_visible_to_elements_in_ElementVisibility(form);
            form.setR8002_has_visibility_of_PackageableElement(part);
            form.setElement_ID( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8002_ElementVisibility_has_visibility_of_PackageableElement( ElementVisibility form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8002_ElementVisibility_has_visibility_of_PackageableElement_extent.remove( R8002_ElementVisibility_has_visibility_of_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR8002_is_visible_to_elements_in_ElementVisibility(form);
            form.setR8002_has_visibility_of_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8002_ElementVisibility_is_visible_to_elements_in_EP_PKG( ElementVisibility form, EP_PKG part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8002_ElementVisibility_is_visible_to_elements_in_EP_PKG_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR8002_has_visibility_of_ElementVisibility(form);
            form.setR8002_is_visible_to_elements_in_EP_PKG(part);
            form.setPackage_ID( part.getPackage_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8002_ElementVisibility_is_visible_to_elements_in_EP_PKG( ElementVisibility form, EP_PKG part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8002_ElementVisibility_is_visible_to_elements_in_EP_PKG_extent.remove( R8002_ElementVisibility_is_visible_to_elements_in_EP_PKG_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR8002_has_visibility_of_ElementVisibility(form);
            form.setR8002_is_visible_to_elements_in_EP_PKG(EP_PKGImpl.EMPTY_EP_PKG);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8003_PackageableElement_contained_in_C_C( PackageableElement form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8003_PackageableElement_contained_in_C_C_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR8003_contains_PackageableElement(form);
            form.setR8003_contained_in_C_C(part);
            form.setComponent_ID( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8003_PackageableElement_contained_in_C_C( PackageableElement form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8003_PackageableElement_contained_in_C_C_extent.remove( R8003_PackageableElement_contained_in_C_C_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR8003_contains_PackageableElement(form);
            form.setR8003_contained_in_C_C(C_CImpl.EMPTY_C_C);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8004_ComponentVisibility_has_visibility_of_PackageableElement( ComponentVisibility form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8004_ComponentVisibility_has_visibility_of_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR8004_is_visible_to_ComponentVisibility(form);
            form.setR8004_has_visibility_of_PackageableElement(part);
            form.setElement_ID( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8004_ComponentVisibility_has_visibility_of_PackageableElement( ComponentVisibility form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8004_ComponentVisibility_has_visibility_of_PackageableElement_extent.remove( R8004_ComponentVisibility_has_visibility_of_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR8004_is_visible_to_ComponentVisibility(form);
            form.setR8004_has_visibility_of_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8004_ComponentVisibility_is_visible_to_C_C( ComponentVisibility form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8004_ComponentVisibility_is_visible_to_C_C_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR8004_has_visibility_of_ComponentVisibility(form);
            form.setR8004_is_visible_to_C_C(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8004_ComponentVisibility_is_visible_to_C_C( ComponentVisibility form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8004_ComponentVisibility_is_visible_to_C_C_extent.remove( R8004_ComponentVisibility_is_visible_to_C_C_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR8004_has_visibility_of_ComponentVisibility(form);
            form.setR8004_is_visible_to_C_C(C_CImpl.EMPTY_C_C);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8005_SearchResultSet_held_by_EP_PKG( SearchResultSet form, EP_PKG part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8005_SearchResultSet_held_by_EP_PKG_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR8005_holds_SearchResultSet(form);
            form.setR8005_held_by_EP_PKG(part);
            form.setPackage_ID( part.getPackage_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8005_SearchResultSet_held_by_EP_PKG( SearchResultSet form, EP_PKG part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8005_SearchResultSet_held_by_EP_PKG_extent.remove( R8005_SearchResultSet_held_by_EP_PKG_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR8005_holds_SearchResultSet(form);
            form.setR8005_held_by_EP_PKG(EP_PKGImpl.EMPTY_EP_PKG);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8006_ElementVisibility_SearchResultSet( ElementVisibility form, SearchResultSet part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8006_ElementVisibility_SearchResultSet_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR8006_ElementVisibility(form);
            form.setR8006_SearchResultSet(part);
            form.setName( part.getName() );
            form.setPackage_ID( part.getPackage_ID() );
            form.setType( part.getType() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8006_ElementVisibility_SearchResultSet( ElementVisibility form, SearchResultSet part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8006_ElementVisibility_SearchResultSet_extent.remove( R8006_ElementVisibility_SearchResultSet_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR8006_ElementVisibility(form);
            form.setR8006_SearchResultSet(SearchResultSetImpl.EMPTY_SEARCHRESULTSET);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8007_ComponentResultSet_held_by_C_C( ComponentResultSet form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8007_ComponentResultSet_held_by_C_C_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR8007_holds_ComponentResultSet(form);
            form.setR8007_held_by_C_C(part);
            form.setId( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8007_ComponentResultSet_held_by_C_C( ComponentResultSet form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8007_ComponentResultSet_held_by_C_C_extent.remove( R8007_ComponentResultSet_held_by_C_C_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR8007_holds_ComponentResultSet(form);
            form.setR8007_held_by_C_C(C_CImpl.EMPTY_C_C);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R8008_ComponentVisibility_makes_up_a_ComponentResultSet( ComponentVisibility form, ComponentResultSet part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R8008_ComponentVisibility_makes_up_a_ComponentResultSet_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR8008_made_up_of_ComponentVisibility(form);
            form.setR8008_makes_up_a_ComponentResultSet(part);
            form.setId( part.getId() );
            form.setName( part.getName() );
            form.setType( part.getType() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R8008_ComponentVisibility_makes_up_a_ComponentResultSet( ComponentVisibility form, ComponentResultSet part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R8008_ComponentVisibility_makes_up_a_ComponentResultSet_extent.remove( R8008_ComponentVisibility_makes_up_a_ComponentResultSet_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR8008_made_up_of_ComponentVisibility(form);
            form.setR8008_makes_up_a_ComponentResultSet(ComponentResultSetImpl.EMPTY_COMPONENTRESULTSET);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R800_V_PAR_has_Value( V_PAR form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R800_V_PAR_has_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR800_is_value_of_V_PAR(form);
            form.setR800_has_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R800_V_PAR_has_Value( V_PAR form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R800_V_PAR_has_Value_extent.remove( R800_V_PAR_has_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR800_is_value_of_V_PAR(V_PARImpl.EMPTY_V_PAR);
            form.setR800_has_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_ArrayLengthValue_is_a_Value( ArrayLengthValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_ArrayLengthValue_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_ArrayLengthValue(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_ArrayLengthValue_is_a_Value( ArrayLengthValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_ArrayLengthValue_is_a_Value_extent.remove( R801_ArrayLengthValue_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_ArrayLengthValue(ArrayLengthValueImpl.EMPTY_ARRAYLENGTHVALUE);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_AttributeValueReference_is_a_Value( AttributeValueReference form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_AttributeValueReference_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_AttributeValueReference(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_AttributeValueReference_is_a_Value( AttributeValueReference form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_AttributeValueReference_is_a_Value_extent.remove( R801_AttributeValueReference_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_AttributeValueReference(AttributeValueReferenceImpl.EMPTY_ATTRIBUTEVALUEREFERENCE);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_BridgeValue_is_a_Value( BridgeValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_BridgeValue_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_BridgeValue(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_BridgeValue_is_a_Value( BridgeValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_BridgeValue_is_a_Value_extent.remove( R801_BridgeValue_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_BridgeValue(BridgeValueImpl.EMPTY_BRIDGEVALUE);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_EventDatumValue_is_a_Value( EventDatumValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_EventDatumValue_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_EventDatumValue(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_EventDatumValue_is_a_Value( EventDatumValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_EventDatumValue_is_a_Value_extent.remove( R801_EventDatumValue_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_EventDatumValue(EventDatumValueImpl.EMPTY_EVENTDATUMVALUE);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_FunctionValue_is_a_Value( FunctionValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_FunctionValue_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_FunctionValue(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_FunctionValue_is_a_Value( FunctionValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_FunctionValue_is_a_Value_extent.remove( R801_FunctionValue_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_FunctionValue(FunctionValueImpl.EMPTY_FUNCTIONVALUE);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_InstanceReference_is_a_Value( InstanceReference form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_InstanceReference_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_InstanceReference(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_InstanceReference_is_a_Value( InstanceReference form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_InstanceReference_is_a_Value_extent.remove( R801_InstanceReference_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_InstanceReference(InstanceReferenceImpl.EMPTY_INSTANCEREFERENCE);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_InstanceSetReference_is_a_Value( InstanceSetReference form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_InstanceSetReference_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_InstanceSetReference(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_InstanceSetReference_is_a_Value( InstanceSetReference form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_InstanceSetReference_is_a_Value_extent.remove( R801_InstanceSetReference_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_InstanceSetReference(InstanceSetReferenceImpl.EMPTY_INSTANCESETREFERENCE);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_LiteralBoolean_is_a_Value( LiteralBoolean form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_LiteralBoolean_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_LiteralBoolean(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_LiteralBoolean_is_a_Value( LiteralBoolean form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_LiteralBoolean_is_a_Value_extent.remove( R801_LiteralBoolean_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_LiteralBoolean(LiteralBooleanImpl.EMPTY_LITERALBOOLEAN);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_LiteralEnumerator_is_a_Value( LiteralEnumerator form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_LiteralEnumerator_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_LiteralEnumerator(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_LiteralEnumerator_is_a_Value( LiteralEnumerator form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_LiteralEnumerator_is_a_Value_extent.remove( R801_LiteralEnumerator_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_LiteralEnumerator(LiteralEnumeratorImpl.EMPTY_LITERALENUMERATOR);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_LiteralInteger_is_a_Value( LiteralInteger form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_LiteralInteger_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_LiteralInteger(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_LiteralInteger_is_a_Value( LiteralInteger form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_LiteralInteger_is_a_Value_extent.remove( R801_LiteralInteger_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_LiteralInteger(LiteralIntegerImpl.EMPTY_LITERALINTEGER);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_LiteralReal_is_a_Value( LiteralReal form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_LiteralReal_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_LiteralReal(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_LiteralReal_is_a_Value( LiteralReal form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_LiteralReal_is_a_Value_extent.remove( R801_LiteralReal_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_LiteralReal(LiteralRealImpl.EMPTY_LITERALREAL);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_LiteralString_is_a_Value( LiteralString form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_LiteralString_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_LiteralString(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_LiteralString_is_a_Value( LiteralString form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_LiteralString_is_a_Value_extent.remove( R801_LiteralString_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_LiteralString(LiteralStringImpl.EMPTY_LITERALSTRING);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_MemberValueReference_is_a_Value( MemberValueReference form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_MemberValueReference_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_MemberValueReference(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_MemberValueReference_is_a_Value( MemberValueReference form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_MemberValueReference_is_a_Value_extent.remove( R801_MemberValueReference_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_MemberValueReference(MemberValueReferenceImpl.EMPTY_MEMBERVALUEREFERENCE);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_MessageValue_is_a_Value( MessageValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_MessageValue_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_MessageValue(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_MessageValue_is_a_Value( MessageValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_MessageValue_is_a_Value_extent.remove( R801_MessageValue_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_MessageValue(MessageValueImpl.EMPTY_MESSAGEVALUE);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_OperationValue_is_a_Value( OperationValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_OperationValue_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_OperationValue(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_OperationValue_is_a_Value( OperationValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_OperationValue_is_a_Value_extent.remove( R801_OperationValue_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_OperationValue(OperationValueImpl.EMPTY_OPERATIONVALUE);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_ParameterValue_is_a_Value( ParameterValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_ParameterValue_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_ParameterValue(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_ParameterValue_is_a_Value( ParameterValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_ParameterValue_is_a_Value_extent.remove( R801_ParameterValue_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_ParameterValue(ParameterValueImpl.EMPTY_PARAMETERVALUE);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_SelectedReference_is_a_Value( SelectedReference form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_SelectedReference_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_SelectedReference(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_SelectedReference_is_a_Value( SelectedReference form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_SelectedReference_is_a_Value_extent.remove( R801_SelectedReference_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_SelectedReference(SelectedReferenceImpl.EMPTY_SELECTEDREFERENCE);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_SymbolicConstantValue_is_a_Value( SymbolicConstantValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_SymbolicConstantValue_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_SymbolicConstantValue(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_SymbolicConstantValue_is_a_Value( SymbolicConstantValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_SymbolicConstantValue_is_a_Value_extent.remove( R801_SymbolicConstantValue_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_SymbolicConstantValue(SymbolicConstantValueImpl.EMPTY_SYMBOLICCONSTANTVALUE);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_TransientValueReference_is_a_Value( TransientValueReference form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_TransientValueReference_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_TransientValueReference(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_TransientValueReference_is_a_Value( TransientValueReference form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_TransientValueReference_is_a_Value_extent.remove( R801_TransientValueReference_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_TransientValueReference(TransientValueReferenceImpl.EMPTY_TRANSIENTVALUEREFERENCE);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_V_AER_is_a_Value( V_AER form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_V_AER_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_V_AER(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_V_AER_is_a_Value( V_AER form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_V_AER_is_a_Value_extent.remove( R801_V_AER_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_V_AER(V_AERImpl.EMPTY_V_AER);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_V_BIN_is_a_Value( V_BIN form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_V_BIN_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_V_BIN(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_V_BIN_is_a_Value( V_BIN form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_V_BIN_is_a_Value_extent.remove( R801_V_BIN_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_V_BIN(V_BINImpl.EMPTY_V_BIN);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R801_V_UNY_is_a_Value( V_UNY form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R801_V_UNY_is_a_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_V_UNY(form);
            form.setR801_is_a_Value(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R801_V_UNY_is_a_Value( V_UNY form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R801_V_UNY_is_a_Value_extent.remove( R801_V_UNY_is_a_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR801_is_a_V_UNY(V_UNYImpl.EMPTY_V_UNY);
            form.setR801_is_a_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R802_V_BIN_has_left_Value( V_BIN form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R802_V_BIN_has_left_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR802_is_left_operand_to_V_BIN(form);
            form.setR802_has_left_Value(part);
            form.setLeft_Value_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R802_V_BIN_has_left_Value( V_BIN form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R802_V_BIN_has_left_Value_extent.remove( R802_V_BIN_has_left_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR802_is_left_operand_to_V_BIN(V_BINImpl.EMPTY_V_BIN);
            form.setR802_has_left_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R803_V_BIN_has_right_Value( V_BIN form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R803_V_BIN_has_right_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR803_is_right_operand_to_V_BIN(form);
            form.setR803_has_right_Value(part);
            form.setRight_Value_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R803_V_BIN_has_right_Value( V_BIN form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R803_V_BIN_has_right_Value_extent.remove( R803_V_BIN_has_right_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR803_is_right_operand_to_V_BIN(V_BINImpl.EMPTY_V_BIN);
            form.setR803_has_right_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R804_V_UNY_has_operand_Value( V_UNY form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R804_V_UNY_has_operand_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR804_is_operand_to_V_UNY(form);
            form.setR804_has_operand_Value(part);
            form.setOperand_Value_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R804_V_UNY_has_operand_Value( V_UNY form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R804_V_UNY_has_operand_Value_extent.remove( R804_V_UNY_has_operand_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR804_is_operand_to_V_UNY(V_UNYImpl.EMPTY_V_UNY);
            form.setR804_has_operand_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R805_TransientValueReference_references_V_VAR( TransientValueReference form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R805_TransientValueReference_references_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR805_TransientValueReference(form);
            form.setR805_references_V_VAR(part);
            form.setVar_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R805_TransientValueReference_references_V_VAR( TransientValueReference form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R805_TransientValueReference_references_V_VAR_extent.remove( R805_TransientValueReference_references_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR805_TransientValueReference(form);
            form.setR805_references_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R806_AttributeValueReference_is_value_of_O_ATTR( AttributeValueReference form, O_ATTR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R806_AttributeValueReference_is_value_of_O_ATTR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR806_AttributeValueReference(form);
            form.setR806_is_value_of_O_ATTR(part);
            form.setAttr_ID( part.getAttr_ID() );
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R806_AttributeValueReference_is_value_of_O_ATTR( AttributeValueReference form, O_ATTR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R806_AttributeValueReference_is_value_of_O_ATTR_extent.remove( R806_AttributeValueReference_is_value_of_O_ATTR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR806_AttributeValueReference(form);
            form.setR806_is_value_of_O_ATTR(O_ATTRImpl.EMPTY_O_ATTR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R807_AttributeValueReference_has_root_Value( AttributeValueReference form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R807_AttributeValueReference_has_root_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR807_is_root_for_AttributeValueReference(form);
            form.setR807_has_root_Value(part);
            form.setRoot_Value_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R807_AttributeValueReference_has_root_Value( AttributeValueReference form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R807_AttributeValueReference_has_root_Value_extent.remove( R807_AttributeValueReference_has_root_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR807_is_root_for_AttributeValueReference(AttributeValueReferenceImpl.EMPTY_ATTRIBUTEVALUEREFERENCE);
            form.setR807_has_root_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R808_InstanceReference_refers_to_V_VAR( InstanceReference form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R808_InstanceReference_refers_to_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR808_InstanceReference(form);
            form.setR808_refers_to_V_VAR(part);
            form.setVar_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R808_InstanceReference_refers_to_V_VAR( InstanceReference form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R808_InstanceReference_refers_to_V_VAR_extent.remove( R808_InstanceReference_refers_to_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR808_InstanceReference(form);
            form.setR808_refers_to_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R809_InstanceSetReference_refers_to_V_VAR( InstanceSetReference form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R809_InstanceSetReference_refers_to_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR809_InstanceSetReference(form);
            form.setR809_refers_to_V_VAR(part);
            form.setVar_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R809_InstanceSetReference_refers_to_V_VAR( InstanceSetReference form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R809_InstanceSetReference_refers_to_V_VAR_extent.remove( R809_InstanceSetReference_refers_to_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR809_InstanceSetReference(form);
            form.setR809_refers_to_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R810_V_PAR_BridgeValue( V_PAR form, BridgeValue part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R810_V_PAR_BridgeValue_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR810_has_V_PAR(form);
            form.setR810_BridgeValue(part);
            form.setInvocation_Value_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R810_V_PAR_BridgeValue( V_PAR form, BridgeValue part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R810_V_PAR_BridgeValue_extent.remove( R810_V_PAR_BridgeValue_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR810_has_V_PAR(form);
            form.setR810_BridgeValue(BridgeValueImpl.EMPTY_BRIDGEVALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R811_V_PAR_OperationValue( V_PAR form, OperationValue part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R811_V_PAR_OperationValue_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR811_has_V_PAR(form);
            form.setR811_OperationValue(part);
            form.setInvocation_Value_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R811_V_PAR_OperationValue( V_PAR form, OperationValue part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R811_V_PAR_OperationValue_extent.remove( R811_V_PAR_OperationValue_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR811_has_V_PAR(form);
            form.setR811_OperationValue(OperationValueImpl.EMPTY_OPERATIONVALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R812_SelectedReference_member_O_ATTR( SelectedReference form, O_ATTR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R812_SelectedReference_member_O_ATTR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR812_SelectedReference(form);
            form.setR812_member_O_ATTR(part);
            form.setObj_ID( part.getObj_ID() );
            form.setAttr_ID( part.getAttr_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R812_SelectedReference_member_O_ATTR( SelectedReference form, O_ATTR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R812_SelectedReference_member_O_ATTR_extent.remove( R812_SelectedReference_member_O_ATTR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR812_SelectedReference(form);
            form.setR812_member_O_ATTR(O_ATTRImpl.EMPTY_O_ATTR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R814_InstanceHandle_is_a_V_VAR( InstanceHandle form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R814_InstanceHandle_is_a_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR814_is_a_InstanceHandle(form);
            form.setR814_is_a_V_VAR(part);
            form.setVar_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R814_InstanceHandle_is_a_V_VAR( InstanceHandle form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R814_InstanceHandle_is_a_V_VAR_extent.remove( R814_InstanceHandle_is_a_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR814_is_a_InstanceHandle(InstanceHandleImpl.EMPTY_INSTANCEHANDLE);
            form.setR814_is_a_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R814_TransientVar_is_a_V_VAR( TransientVar form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R814_TransientVar_is_a_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR814_is_a_TransientVar(form);
            form.setR814_is_a_V_VAR(part);
            form.setVar_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R814_TransientVar_is_a_V_VAR( TransientVar form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R814_TransientVar_is_a_V_VAR_extent.remove( R814_TransientVar_is_a_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR814_is_a_TransientVar(TransientVarImpl.EMPTY_TRANSIENTVAR);
            form.setR814_is_a_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R814_V_INS_is_a_V_VAR( V_INS form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R814_V_INS_is_a_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR814_is_a_V_INS(form);
            form.setR814_is_a_V_VAR(part);
            form.setVar_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R814_V_INS_is_a_V_VAR( V_INS form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R814_V_INS_is_a_V_VAR_extent.remove( R814_V_INS_is_a_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR814_is_a_V_INS(V_INSImpl.EMPTY_V_INS);
            form.setR814_is_a_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R816_V_PAR_precedes_V_PAR( V_PAR form, V_PAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R816_V_PAR_precedes_V_PAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR816_succeeds_V_PAR(form);
            form.setR816_precedes_V_PAR(part);
            form.setNext_Value_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R816_V_PAR_precedes_V_PAR( V_PAR form, V_PAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R816_V_PAR_precedes_V_PAR_extent.remove( R816_V_PAR_precedes_V_PAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR816_succeeds_V_PAR(V_PARImpl.EMPTY_V_PAR);
            form.setR816_precedes_V_PAR(V_PARImpl.EMPTY_V_PAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R817_V_PAR_FunctionValue( V_PAR form, FunctionValue part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R817_V_PAR_FunctionValue_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR817_has_V_PAR(form);
            form.setR817_FunctionValue(part);
            form.setInvocation_Value_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R817_V_PAR_FunctionValue( V_PAR form, FunctionValue part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R817_V_PAR_FunctionValue_extent.remove( R817_V_PAR_FunctionValue_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR817_has_V_PAR(form);
            form.setR817_FunctionValue(FunctionValueImpl.EMPTY_FUNCTIONVALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R818_InstanceHandle_refers_to_ModelClass( InstanceHandle form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R818_InstanceHandle_refers_to_ModelClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR818_InstanceHandle(form);
            form.setR818_refers_to_ModelClass(part);
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R818_InstanceHandle_refers_to_ModelClass( InstanceHandle form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R818_InstanceHandle_refers_to_ModelClass_extent.remove( R818_InstanceHandle_refers_to_ModelClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR818_InstanceHandle(form);
            form.setR818_refers_to_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R819_V_INS_refers_to_ModelClass( V_INS form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R819_V_INS_refers_to_ModelClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR819_V_INS(form);
            form.setR819_refers_to_ModelClass(part);
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R819_V_INS_refers_to_ModelClass( V_INS form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R819_V_INS_refers_to_ModelClass_extent.remove( R819_V_INS_refers_to_ModelClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR819_V_INS(form);
            form.setR819_refers_to_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R820_Value_has_type_DataType( Value form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R820_Value_has_type_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR820_is_type_of_Value(form);
            form.setR820_has_type_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R820_Value_has_type_DataType( Value form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R820_Value_has_type_DataType_extent.remove( R820_Value_has_type_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR820_is_type_of_Value(form);
            form.setR820_has_type_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R821_TransientVar_has_DataType( TransientVar form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R821_TransientVar_has_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR821_is_type_of_TransientVar(form);
            form.setR821_has_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R821_TransientVar_has_DataType( TransientVar form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R821_TransientVar_has_DataType_extent.remove( R821_TransientVar_has_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR821_is_type_of_TransientVar(form);
            form.setR821_has_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R823_V_VAR_Block( V_VAR form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R823_V_VAR_Block_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR823_is_scope_for_V_VAR(form);
            form.setR823_Block(part);
            form.setBlock_ID( part.getBlock_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R823_V_VAR_Block( V_VAR form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R823_V_VAR_Block_extent.remove( R823_V_VAR_Block_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR823_is_scope_for_V_VAR(form);
            form.setR823_Block(BlockImpl.EMPTY_BLOCK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R824_LiteralEnumerator_has_value_S_ENUM( LiteralEnumerator form, S_ENUM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R824_LiteralEnumerator_has_value_S_ENUM_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR824_is_value_of_LiteralEnumerator(form);
            form.setR824_has_value_S_ENUM(part);
            form.setEnum_ID( part.getEnum_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R824_LiteralEnumerator_has_value_S_ENUM( LiteralEnumerator form, S_ENUM part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R824_LiteralEnumerator_has_value_S_ENUM_extent.remove( R824_LiteralEnumerator_has_value_S_ENUM_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR824_is_value_of_LiteralEnumerator(form);
            form.setR824_has_value_S_ENUM(S_ENUMImpl.EMPTY_S_ENUM);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R825_SelectedReference_value_OperationValue( SelectedReference form, OperationValue part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R825_SelectedReference_value_OperationValue_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR825_SelectedReference(form);
            form.setR825_value_OperationValue(part);
            form.setOp_Value_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R825_SelectedReference_value_OperationValue( SelectedReference form, OperationValue part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R825_SelectedReference_value_OperationValue_extent.remove( R825_SelectedReference_value_OperationValue_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR825_SelectedReference(SelectedReferenceImpl.EMPTY_SELECTEDREFERENCE);
            form.setR825_value_OperationValue(OperationValueImpl.EMPTY_OPERATIONVALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R826_Value_has_scope_Block( Value form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R826_Value_has_scope_Block_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR826_defines_scope_of_Value(form);
            form.setR826_has_scope_Block(part);
            form.setBlock_ID( part.getBlock_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R826_Value_has_scope_Block( Value form, Block part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R826_Value_has_scope_Block_extent.remove( R826_Value_has_scope_Block_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR826_defines_scope_of_Value(form);
            form.setR826_has_scope_Block(BlockImpl.EMPTY_BLOCK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R827_FunctionValue_S_SYNC( FunctionValue form, S_SYNC part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R827_FunctionValue_S_SYNC_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR827_FunctionValue(form);
            form.setR827_S_SYNC(part);
            form.setSync_ID( part.getSync_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R827_FunctionValue_S_SYNC( FunctionValue form, S_SYNC part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R827_FunctionValue_S_SYNC_extent.remove( R827_FunctionValue_S_SYNC_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR827_FunctionValue(form);
            form.setR827_S_SYNC(S_SYNCImpl.EMPTY_S_SYNC);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R828_BridgeValue_Bridge( BridgeValue form, Bridge part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R828_BridgeValue_Bridge_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR828_BridgeValue(form);
            form.setR828_Bridge(part);
            form.setBrg_ID( part.getBrg_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R828_BridgeValue_Bridge( BridgeValue form, Bridge part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R828_BridgeValue_Bridge_extent.remove( R828_BridgeValue_Bridge_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR828_BridgeValue(form);
            form.setR828_Bridge(BridgeImpl.EMPTY_BRIDGE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R829_OperationValue_O_TFR( OperationValue form, O_TFR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R829_OperationValue_O_TFR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR829_OperationValue(form);
            form.setR829_O_TFR(part);
            form.setTfr_ID( part.getTfr_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R829_OperationValue_O_TFR( OperationValue form, O_TFR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R829_OperationValue_O_TFR_extent.remove( R829_OperationValue_O_TFR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR829_OperationValue(form);
            form.setR829_O_TFR(O_TFRImpl.EMPTY_O_TFR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R830_OperationValue_V_VAR( OperationValue form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R830_OperationValue_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR830_variable_OperationValue(form);
            form.setR830_V_VAR(part);
            form.setVar_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R830_OperationValue_V_VAR( OperationValue form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R830_OperationValue_V_VAR_extent.remove( R830_OperationValue_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR830_variable_OperationValue(form);
            form.setR830_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R831_ParameterValue_is_a_value_of_BridgeParameter( ParameterValue form, BridgeParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R831_ParameterValue_is_a_value_of_BridgeParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR831_ParameterValue(form);
            form.setR831_is_a_value_of_BridgeParameter(part);
            form.setBParm_ID( part.getBParm_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R831_ParameterValue_is_a_value_of_BridgeParameter( ParameterValue form, BridgeParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R831_ParameterValue_is_a_value_of_BridgeParameter_extent.remove( R831_ParameterValue_is_a_value_of_BridgeParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR831_ParameterValue(form);
            form.setR831_is_a_value_of_BridgeParameter(BridgeParameterImpl.EMPTY_BRIDGEPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R832_ParameterValue_is_a_value_of_FunctionParameter( ParameterValue form, FunctionParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R832_ParameterValue_is_a_value_of_FunctionParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR832_ParameterValue(form);
            form.setR832_is_a_value_of_FunctionParameter(part);
            form.setSParm_ID( part.getSParm_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R832_ParameterValue_is_a_value_of_FunctionParameter( ParameterValue form, FunctionParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R832_ParameterValue_is_a_value_of_FunctionParameter_extent.remove( R832_ParameterValue_is_a_value_of_FunctionParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR832_ParameterValue(form);
            form.setR832_is_a_value_of_FunctionParameter(FunctionParameterImpl.EMPTY_FUNCTIONPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R833_ParameterValue_is_a_value_of_OperationParameter( ParameterValue form, OperationParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R833_ParameterValue_is_a_value_of_OperationParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR833_ParameterValue(form);
            form.setR833_is_a_value_of_OperationParameter(part);
            form.setTParm_ID( part.getTParm_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R833_ParameterValue_is_a_value_of_OperationParameter( ParameterValue form, OperationParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R833_ParameterValue_is_a_value_of_OperationParameter_extent.remove( R833_ParameterValue_is_a_value_of_OperationParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR833_ParameterValue(form);
            form.setR833_is_a_value_of_OperationParameter(OperationParameterImpl.EMPTY_OPERATIONPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R834_EventParameterReference_EventDatumValue( EventParameterReference form, EventDatumValue part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R834_EventParameterReference_EventDatumValue_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR834_EventParameterReference(form);
            form.setR834_EventDatumValue(part);
            form.setValue_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R834_EventParameterReference_EventDatumValue( EventParameterReference form, EventDatumValue part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R834_EventParameterReference_EventDatumValue_extent.remove( R834_EventParameterReference_EventDatumValue_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR834_EventParameterReference(form);
            form.setR834_EventDatumValue(EventDatumValueImpl.EMPTY_EVENTDATUMVALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R835_VariableLocation_V_VAR( VariableLocation form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R835_VariableLocation_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR835_VariableLocation(form);
            form.setR835_V_VAR(part);
            form.setVar_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R835_VariableLocation_V_VAR( VariableLocation form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R835_VariableLocation_V_VAR_extent.remove( R835_VariableLocation_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR835_VariableLocation(form);
            form.setR835_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R836_MemberValueReference_is_value_of_StructureMember( MemberValueReference form, StructureMember part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R836_MemberValueReference_is_value_of_StructureMember_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR836_MemberValueReference(form);
            form.setR836_is_value_of_StructureMember(part);
            form.setDT_DT_ID( part.getParent_DT_DT_ID() );
            form.setMember_ID( part.getMember_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R836_MemberValueReference_is_value_of_StructureMember( MemberValueReference form, StructureMember part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R836_MemberValueReference_is_value_of_StructureMember_extent.remove( R836_MemberValueReference_is_value_of_StructureMember_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR836_MemberValueReference(form);
            form.setR836_is_value_of_StructureMember(StructureMemberImpl.EMPTY_STRUCTUREMEMBER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R837_MemberValueReference_Value( MemberValueReference form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R837_MemberValueReference_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR837_is_root_for_MemberValueReference(form);
            form.setR837_Value(part);
            form.setRoot_Value_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R837_MemberValueReference_Value( MemberValueReference form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R837_MemberValueReference_Value_extent.remove( R837_MemberValueReference_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR837_is_root_for_MemberValueReference(MemberValueReferenceImpl.EMPTY_MEMBERVALUEREFERENCE);
            form.setR837_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R838_V_AER_has_root_Value( V_AER form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R838_V_AER_has_root_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR838_is_root_for_V_AER(form);
            form.setR838_has_root_Value(part);
            form.setRoot_Value_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R838_V_AER_has_root_Value( V_AER form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R838_V_AER_has_root_Value_extent.remove( R838_V_AER_has_root_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR838_is_root_for_V_AER(V_AERImpl.EMPTY_V_AER);
            form.setR838_has_root_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R839_V_AER_has_index_Value( V_AER form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R839_V_AER_has_index_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR839_provides_index_of_V_AER(form);
            form.setR839_has_index_Value(part);
            form.setIndex_Value_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R839_V_AER_has_index_Value( V_AER form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R839_V_AER_has_index_Value_extent.remove( R839_V_AER_has_index_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR839_provides_index_of_V_AER(V_AERImpl.EMPTY_V_AER);
            form.setR839_has_index_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R840_ArrayLengthValue_returns_length_of_Value( ArrayLengthValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R840_ArrayLengthValue_returns_length_of_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR840_has_length_returned_by_ArrayLengthValue(form);
            form.setR840_returns_length_of_Value(part);
            form.setArray_Value_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R840_ArrayLengthValue_returns_length_of_Value( ArrayLengthValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R840_ArrayLengthValue_returns_length_of_Value_extent.remove( R840_ArrayLengthValue_returns_length_of_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR840_has_length_returned_by_ArrayLengthValue(ArrayLengthValueImpl.EMPTY_ARRAYLENGTHVALUE);
            form.setR840_returns_length_of_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R841_MessageValue_ProvidedExecutableProperty( MessageValue form, ProvidedExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R841_MessageValue_ProvidedExecutableProperty_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR841_MessageValue(form);
            form.setR841_ProvidedExecutableProperty(part);
            form.setPEP_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R841_MessageValue_ProvidedExecutableProperty( MessageValue form, ProvidedExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R841_MessageValue_ProvidedExecutableProperty_extent.remove( R841_MessageValue_ProvidedExecutableProperty_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR841_MessageValue(form);
            form.setR841_ProvidedExecutableProperty(ProvidedExecutablePropertyImpl.EMPTY_PROVIDEDEXECUTABLEPROPERTY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R842_V_PAR_MessageValue( V_PAR form, MessageValue part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R842_V_PAR_MessageValue_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR842_has_V_PAR(form);
            form.setR842_MessageValue(part);
            form.setInvocation_Value_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R842_V_PAR_MessageValue( V_PAR form, MessageValue part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R842_V_PAR_MessageValue_extent.remove( R842_V_PAR_MessageValue_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR842_has_V_PAR(form);
            form.setR842_MessageValue(MessageValueImpl.EMPTY_MESSAGEVALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R843_ParameterValue_is_a_value_of_PropertyParameter( ParameterValue form, PropertyParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R843_ParameterValue_is_a_value_of_PropertyParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR843_ParameterValue(form);
            form.setR843_is_a_value_of_PropertyParameter(part);
            form.setPP_Id( part.getPP_Id() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R843_ParameterValue_is_a_value_of_PropertyParameter( ParameterValue form, PropertyParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R843_ParameterValue_is_a_value_of_PropertyParameter_extent.remove( R843_ParameterValue_is_a_value_of_PropertyParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR843_ParameterValue(form);
            form.setR843_is_a_value_of_PropertyParameter(PropertyParameterImpl.EMPTY_PROPERTYPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R844_Dimensions_specifies_occurrences_of_TransientVar( Dimensions form, TransientVar part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R844_Dimensions_specifies_occurrences_of_TransientVar_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR844_may_have_Dimensions(form);
            form.setR844_specifies_occurrences_of_TransientVar(part);
            form.setVar_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R844_Dimensions_specifies_occurrences_of_TransientVar( Dimensions form, TransientVar part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R844_Dimensions_specifies_occurrences_of_TransientVar_extent.remove( R844_Dimensions_specifies_occurrences_of_TransientVar_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR844_may_have_Dimensions(form);
            form.setR844_specifies_occurrences_of_TransientVar(TransientVarImpl.EMPTY_TRANSIENTVAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R845_MessageValue_RequiredExecutableProperty( MessageValue form, RequiredExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R845_MessageValue_RequiredExecutableProperty_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR845_MessageValue(form);
            form.setR845_RequiredExecutableProperty(part);
            form.setREP_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R845_MessageValue_RequiredExecutableProperty( MessageValue form, RequiredExecutableProperty part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R845_MessageValue_RequiredExecutableProperty_extent.remove( R845_MessageValue_RequiredExecutableProperty_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR845_MessageValue(form);
            form.setR845_RequiredExecutableProperty(RequiredExecutablePropertyImpl.EMPTY_REQUIREDEXECUTABLEPROPERTY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R846_EventParameterReference_StateMachineEventDataItem( EventParameterReference form, StateMachineEventDataItem part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R846_EventParameterReference_StateMachineEventDataItem_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR846_EventParameterReference(form);
            form.setR846_StateMachineEventDataItem(part);
            form.setSMedi_ID( part.getSMedi_ID() );
            form.setSM_ID( part.getSM_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R846_EventParameterReference_StateMachineEventDataItem( EventParameterReference form, StateMachineEventDataItem part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R846_EventParameterReference_StateMachineEventDataItem_extent.remove( R846_EventParameterReference_StateMachineEventDataItem_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR846_EventParameterReference(form);
            form.setR846_StateMachineEventDataItem(StateMachineEventDataItemImpl.EMPTY_STATEMACHINEEVENTDATAITEM);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R847_EventParameterReference_PropertyParameter( EventParameterReference form, PropertyParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R847_EventParameterReference_PropertyParameter_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR847_EventParameterReference(form);
            form.setR847_PropertyParameter(part);
            form.setPP_Id( part.getPP_Id() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R847_EventParameterReference_PropertyParameter( EventParameterReference form, PropertyParameter part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R847_EventParameterReference_PropertyParameter_extent.remove( R847_EventParameterReference_PropertyParameter_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR847_EventParameterReference(form);
            form.setR847_PropertyParameter(PropertyParameterImpl.EMPTY_PROPERTYPARAMETER);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R848_V_VAR_has_DataType( V_VAR form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R848_V_VAR_has_DataType_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR848_is_type_of_V_VAR(form);
            form.setR848_has_DataType(part);
            form.setDT_ID( part.getDT_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R848_V_VAR_has_DataType( V_VAR form, DataType part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R848_V_VAR_has_DataType_extent.remove( R848_V_VAR_has_DataType_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR848_is_type_of_V_VAR(form);
            form.setR848_has_DataType(DataTypeImpl.EMPTY_DATATYPE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R849_Dimensions_specifies_occurrences_of_V_VAR( Dimensions form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R849_Dimensions_specifies_occurrences_of_V_VAR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR849_may_have_Dimensions(form);
            form.setR849_specifies_occurrences_of_V_VAR(part);
            form.setVar_ID( part.getVar_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R849_Dimensions_specifies_occurrences_of_V_VAR( Dimensions form, V_VAR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R849_Dimensions_specifies_occurrences_of_V_VAR_extent.remove( R849_Dimensions_specifies_occurrences_of_V_VAR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR849_may_have_Dimensions(form);
            form.setR849_specifies_occurrences_of_V_VAR(V_VARImpl.EMPTY_V_VAR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R850_SymbolicConstantValue_SymbolicConstant( SymbolicConstantValue form, SymbolicConstant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R850_SymbolicConstantValue_SymbolicConstant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR850_SymbolicConstantValue(form);
            form.setR850_SymbolicConstant(part);
            form.setConst_ID( part.getConst_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R850_SymbolicConstantValue_SymbolicConstant( SymbolicConstantValue form, SymbolicConstant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R850_SymbolicConstantValue_SymbolicConstant_extent.remove( R850_SymbolicConstantValue_SymbolicConstant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR850_SymbolicConstantValue(form);
            form.setR850_SymbolicConstant(SymbolicConstantImpl.EMPTY_SYMBOLICCONSTANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R851_MessageValue_has_target_Value( MessageValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R851_MessageValue_has_target_Value_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR851_is_target_of_MessageValue(form);
            form.setR851_has_target_Value(part);
            form.setTarget_Value_ID( part.getValue_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R851_MessageValue_has_target_Value( MessageValue form, Value part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R851_MessageValue_has_target_Value_extent.remove( R851_MessageValue_has_target_Value_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR851_is_target_of_MessageValue(form);
            form.setR851_has_target_Value(ValueImpl.EMPTY_VALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R9000_SatisfactionInComponent_C_C( SatisfactionInComponent form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R9000_SatisfactionInComponent_C_C_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR9000_SatisfactionInComponent(form);
            form.setR9000_C_C(part);
            form.setComponent_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R9000_SatisfactionInComponent_C_C( SatisfactionInComponent form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R9000_SatisfactionInComponent_C_C_extent.remove( R9000_SatisfactionInComponent_C_C_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR9000_SatisfactionInComponent(form);
            form.setR9000_C_C(C_CImpl.EMPTY_C_C);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R9000_SatisfactionInComponent_Satisfaction( SatisfactionInComponent form, Satisfaction part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R9000_SatisfactionInComponent_Satisfaction_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR9000_SatisfactionInComponent(form);
            form.setR9000_Satisfaction(part);
            form.setSatisfaction_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R9000_SatisfactionInComponent_Satisfaction( SatisfactionInComponent form, Satisfaction part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R9000_SatisfactionInComponent_Satisfaction_extent.remove( R9000_SatisfactionInComponent_Satisfaction_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR9000_SatisfactionInComponent(SatisfactionInComponentImpl.EMPTY_SATISFACTIONINCOMPONENT);
            form.setR9000_Satisfaction(SatisfactionImpl.EMPTY_SATISFACTION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R9002_DelegationInComponent_C_C( DelegationInComponent form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R9002_DelegationInComponent_C_C_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR9002_DelegationInComponent(form);
            form.setR9002_C_C(part);
            form.setComponent_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R9002_DelegationInComponent_C_C( DelegationInComponent form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R9002_DelegationInComponent_C_C_extent.remove( R9002_DelegationInComponent_C_C_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR9002_DelegationInComponent(form);
            form.setR9002_C_C(C_CImpl.EMPTY_C_C);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R9002_DelegationInComponent_Delegation( DelegationInComponent form, Delegation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R9002_DelegationInComponent_Delegation_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR9002_DelegationInComponent(form);
            form.setR9002_Delegation(part);
            form.setDelegation_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R9002_DelegationInComponent_Delegation( DelegationInComponent form, Delegation part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R9002_DelegationInComponent_Delegation_extent.remove( R9002_DelegationInComponent_Delegation_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR9002_DelegationInComponent(DelegationInComponentImpl.EMPTY_DELEGATIONINCOMPONENT);
            form.setR9002_Delegation(DelegationImpl.EMPTY_DELEGATION);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R9100_GlobalElementInSystem_PackageableElement( GlobalElementInSystem form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R9100_GlobalElementInSystem_PackageableElement_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR9100_GlobalElementInSystem(form);
            form.setR9100_PackageableElement(part);
            form.setElement_ID( part.getElement_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R9100_GlobalElementInSystem_PackageableElement( GlobalElementInSystem form, PackageableElement part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R9100_GlobalElementInSystem_PackageableElement_extent.remove( R9100_GlobalElementInSystem_PackageableElement_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR9100_GlobalElementInSystem(form);
            form.setR9100_PackageableElement(PackageableElementImpl.EMPTY_PACKAGEABLEELEMENT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R9100_GlobalElementInSystem_SystemModel( GlobalElementInSystem form, SystemModel part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R9100_GlobalElementInSystem_SystemModel_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR9100_GlobalElementInSystem(form);
            form.setR9100_SystemModel(part);
            form.setSys_ID( part.getSys_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R9100_GlobalElementInSystem_SystemModel( GlobalElementInSystem form, SystemModel part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R9100_GlobalElementInSystem_SystemModel_extent.remove( R9100_GlobalElementInSystem_SystemModel_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR9100_GlobalElementInSystem(form);
            form.setR9100_SystemModel(SystemModelImpl.EMPTY_SYSTEMMODEL);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R930_ActorParticipant_is_a_InteractionParticipant( ActorParticipant form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R930_ActorParticipant_is_a_InteractionParticipant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR930_is_a_ActorParticipant(form);
            form.setR930_is_a_InteractionParticipant(part);
            form.setPart_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R930_ActorParticipant_is_a_InteractionParticipant( ActorParticipant form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R930_ActorParticipant_is_a_InteractionParticipant_extent.remove( R930_ActorParticipant_is_a_InteractionParticipant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR930_is_a_ActorParticipant(ActorParticipantImpl.EMPTY_ACTORPARTICIPANT);
            form.setR930_is_a_InteractionParticipant(InteractionParticipantImpl.EMPTY_INTERACTIONPARTICIPANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R930_ClassInstanceParticipant_is_a_InteractionParticipant( ClassInstanceParticipant form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R930_ClassInstanceParticipant_is_a_InteractionParticipant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR930_is_a_ClassInstanceParticipant(form);
            form.setR930_is_a_InteractionParticipant(part);
            form.setPart_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R930_ClassInstanceParticipant_is_a_InteractionParticipant( ClassInstanceParticipant form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R930_ClassInstanceParticipant_is_a_InteractionParticipant_extent.remove( R930_ClassInstanceParticipant_is_a_InteractionParticipant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR930_is_a_ClassInstanceParticipant(ClassInstanceParticipantImpl.EMPTY_CLASSINSTANCEPARTICIPANT);
            form.setR930_is_a_InteractionParticipant(InteractionParticipantImpl.EMPTY_INTERACTIONPARTICIPANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R930_ClassParticipant_is_a_InteractionParticipant( ClassParticipant form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R930_ClassParticipant_is_a_InteractionParticipant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR930_is_a_ClassParticipant(form);
            form.setR930_is_a_InteractionParticipant(part);
            form.setPart_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R930_ClassParticipant_is_a_InteractionParticipant( ClassParticipant form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R930_ClassParticipant_is_a_InteractionParticipant_extent.remove( R930_ClassParticipant_is_a_InteractionParticipant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR930_is_a_ClassParticipant(ClassParticipantImpl.EMPTY_CLASSPARTICIPANT);
            form.setR930_is_a_InteractionParticipant(InteractionParticipantImpl.EMPTY_INTERACTIONPARTICIPANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R930_ComponentParticipant_is_a_InteractionParticipant( ComponentParticipant form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R930_ComponentParticipant_is_a_InteractionParticipant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR930_is_a_ComponentParticipant(form);
            form.setR930_is_a_InteractionParticipant(part);
            form.setPart_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R930_ComponentParticipant_is_a_InteractionParticipant( ComponentParticipant form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R930_ComponentParticipant_is_a_InteractionParticipant_extent.remove( R930_ComponentParticipant_is_a_InteractionParticipant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR930_is_a_ComponentParticipant(ComponentParticipantImpl.EMPTY_COMPONENTPARTICIPANT);
            form.setR930_is_a_InteractionParticipant(InteractionParticipantImpl.EMPTY_INTERACTIONPARTICIPANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R930_ExternalEntityParticipant_is_a_InteractionParticipant( ExternalEntityParticipant form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R930_ExternalEntityParticipant_is_a_InteractionParticipant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR930_is_a_ExternalEntityParticipant(form);
            form.setR930_is_a_InteractionParticipant(part);
            form.setPart_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R930_ExternalEntityParticipant_is_a_InteractionParticipant( ExternalEntityParticipant form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R930_ExternalEntityParticipant_is_a_InteractionParticipant_extent.remove( R930_ExternalEntityParticipant_is_a_InteractionParticipant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR930_is_a_ExternalEntityParticipant(ExternalEntityParticipantImpl.EMPTY_EXTERNALENTITYPARTICIPANT);
            form.setR930_is_a_InteractionParticipant(InteractionParticipantImpl.EMPTY_INTERACTIONPARTICIPANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R930_Lifespan_is_a_InteractionParticipant( Lifespan form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R930_Lifespan_is_a_InteractionParticipant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR930_is_a_Lifespan(form);
            form.setR930_is_a_InteractionParticipant(part);
            form.setPart_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R930_Lifespan_is_a_InteractionParticipant( Lifespan form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R930_Lifespan_is_a_InteractionParticipant_extent.remove( R930_Lifespan_is_a_InteractionParticipant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR930_is_a_Lifespan(LifespanImpl.EMPTY_LIFESPAN);
            form.setR930_is_a_InteractionParticipant(InteractionParticipantImpl.EMPTY_INTERACTIONPARTICIPANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R930_PackageParticipant_is_a_InteractionParticipant( PackageParticipant form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R930_PackageParticipant_is_a_InteractionParticipant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR930_is_a_PackageParticipant(form);
            form.setR930_is_a_InteractionParticipant(part);
            form.setPart_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R930_PackageParticipant_is_a_InteractionParticipant( PackageParticipant form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R930_PackageParticipant_is_a_InteractionParticipant_extent.remove( R930_PackageParticipant_is_a_InteractionParticipant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR930_is_a_PackageParticipant(PackageParticipantImpl.EMPTY_PACKAGEPARTICIPANT);
            form.setR930_is_a_InteractionParticipant(InteractionParticipantImpl.EMPTY_INTERACTIONPARTICIPANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R930_UseCaseParticipant_is_a_InteractionParticipant( UseCaseParticipant form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R930_UseCaseParticipant_is_a_InteractionParticipant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR930_is_a_UseCaseParticipant(form);
            form.setR930_is_a_InteractionParticipant(part);
            form.setPart_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R930_UseCaseParticipant_is_a_InteractionParticipant( UseCaseParticipant form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R930_UseCaseParticipant_is_a_InteractionParticipant_extent.remove( R930_UseCaseParticipant_is_a_InteractionParticipant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR930_is_a_UseCaseParticipant(UseCaseParticipantImpl.EMPTY_USECASEPARTICIPANT);
            form.setR930_is_a_InteractionParticipant(InteractionParticipantImpl.EMPTY_INTERACTIONPARTICIPANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R931_TimingMark_marks_a_point_in_time_Lifespan( TimingMark form, Lifespan part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R931_TimingMark_marks_a_point_in_time_Lifespan_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR931_has_a_point_in_time_referenced_by_TimingMark(form);
            form.setR931_marks_a_point_in_time_Lifespan(part);
            form.setPart_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R931_TimingMark_marks_a_point_in_time_Lifespan( TimingMark form, Lifespan part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R931_TimingMark_marks_a_point_in_time_Lifespan_extent.remove( R931_TimingMark_marks_a_point_in_time_Lifespan_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR931_has_a_point_in_time_referenced_by_TimingMark(form);
            form.setR931_marks_a_point_in_time_Lifespan(LifespanImpl.EMPTY_LIFESPAN);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R933_ExternalEntityParticipant_represents_ExternalEntity( ExternalEntityParticipant form, ExternalEntity part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R933_ExternalEntityParticipant_represents_ExternalEntity_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR933_represents_participant_of_ExternalEntityParticipant(form);
            form.setR933_represents_ExternalEntity(part);
            form.setEE_ID( part.getEE_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R933_ExternalEntityParticipant_represents_ExternalEntity( ExternalEntityParticipant form, ExternalEntity part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R933_ExternalEntityParticipant_represents_ExternalEntity_extent.remove( R933_ExternalEntityParticipant_represents_ExternalEntity_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR933_represents_participant_of_ExternalEntityParticipant(form);
            form.setR933_represents_ExternalEntity(ExternalEntityImpl.EMPTY_EXTERNALENTITY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R934_ClassInstanceParticipant_represents_ModelClass( ClassInstanceParticipant form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R934_ClassInstanceParticipant_represents_ModelClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR934_represents_participant_of_ClassInstanceParticipant(form);
            form.setR934_represents_ModelClass(part);
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R934_ClassInstanceParticipant_represents_ModelClass( ClassInstanceParticipant form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R934_ClassInstanceParticipant_represents_ModelClass_extent.remove( R934_ClassInstanceParticipant_represents_ModelClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR934_represents_participant_of_ClassInstanceParticipant(form);
            form.setR934_represents_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R935_ClassParticipantAttribute_belongs_to_ClassParticipant( ClassParticipantAttribute form, ClassParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R935_ClassParticipantAttribute_belongs_to_ClassParticipant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR935_may_have_ClassParticipantAttribute(form);
            form.setR935_belongs_to_ClassParticipant(part);
            form.setPart_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R935_ClassParticipantAttribute_belongs_to_ClassParticipant( ClassParticipantAttribute form, ClassParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R935_ClassParticipantAttribute_belongs_to_ClassParticipant_extent.remove( R935_ClassParticipantAttribute_belongs_to_ClassParticipant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR935_may_have_ClassParticipantAttribute(form);
            form.setR935_belongs_to_ClassParticipant(ClassParticipantImpl.EMPTY_CLASSPARTICIPANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R936_InstanceAttributeValue_owns_informal_ClassInstanceParticipant( InstanceAttributeValue form, ClassInstanceParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R936_InstanceAttributeValue_owns_informal_ClassInstanceParticipant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR936_contains_informal_InstanceAttributeValue(form);
            form.setR936_owns_informal_ClassInstanceParticipant(part);
            form.setInformal_Part_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R936_InstanceAttributeValue_owns_informal_ClassInstanceParticipant( InstanceAttributeValue form, ClassInstanceParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R936_InstanceAttributeValue_owns_informal_ClassInstanceParticipant_extent.remove( R936_InstanceAttributeValue_owns_informal_ClassInstanceParticipant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR936_contains_informal_InstanceAttributeValue(form);
            form.setR936_owns_informal_ClassInstanceParticipant(ClassInstanceParticipantImpl.EMPTY_CLASSINSTANCEPARTICIPANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R937_InstanceAttributeValue_owns_formal_ClassInstanceParticipant( InstanceAttributeValue form, ClassInstanceParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R937_InstanceAttributeValue_owns_formal_ClassInstanceParticipant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR937_contains_formal_InstanceAttributeValue(form);
            form.setR937_owns_formal_ClassInstanceParticipant(part);
            form.setFormal_Part_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R937_InstanceAttributeValue_owns_formal_ClassInstanceParticipant( InstanceAttributeValue form, ClassInstanceParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R937_InstanceAttributeValue_owns_formal_ClassInstanceParticipant_extent.remove( R937_InstanceAttributeValue_owns_formal_ClassInstanceParticipant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR937_contains_formal_InstanceAttributeValue(form);
            form.setR937_owns_formal_ClassInstanceParticipant(ClassInstanceParticipantImpl.EMPTY_CLASSINSTANCEPARTICIPANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R938_InstanceAttributeValue_references_O_ATTR( InstanceAttributeValue form, O_ATTR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R938_InstanceAttributeValue_references_O_ATTR_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR938_defines_InstanceAttributeValue(form);
            form.setR938_references_O_ATTR(part);
            form.setAttr_ID( part.getAttr_ID() );
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R938_InstanceAttributeValue_references_O_ATTR( InstanceAttributeValue form, O_ATTR part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R938_InstanceAttributeValue_references_O_ATTR_extent.remove( R938_InstanceAttributeValue_references_O_ATTR_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR938_defines_InstanceAttributeValue(form);
            form.setR938_references_O_ATTR(O_ATTRImpl.EMPTY_O_ATTR);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R939_ClassParticipant_represents_ModelClass( ClassParticipant form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R939_ClassParticipant_represents_ModelClass_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR939_represents_participant_of_ClassParticipant(form);
            form.setR939_represents_ModelClass(part);
            form.setObj_ID( part.getObj_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R939_ClassParticipant_represents_ModelClass( ClassParticipant form, ModelClass part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R939_ClassParticipant_represents_ModelClass_extent.remove( R939_ClassParticipant_represents_ModelClass_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR939_represents_participant_of_ClassParticipant(form);
            form.setR939_represents_ModelClass(ModelClassImpl.EMPTY_MODELCLASS);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R940_Lifespan_extends_from_InteractionParticipant( Lifespan form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R940_Lifespan_extends_from_InteractionParticipant_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR940_is_source_of_span_Lifespan(form);
            form.setR940_extends_from_InteractionParticipant(part);
            form.setSource_Part_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R940_Lifespan_extends_from_InteractionParticipant( Lifespan form, InteractionParticipant part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R940_Lifespan_extends_from_InteractionParticipant_extent.remove( R940_Lifespan_extends_from_InteractionParticipant_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR940_is_source_of_span_Lifespan(LifespanImpl.EMPTY_LIFESPAN);
            form.setR940_extends_from_InteractionParticipant(InteractionParticipantImpl.EMPTY_INTERACTIONPARTICIPANT);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R941_TimeSpan_span_begins_at_TimingMark( TimeSpan form, TimingMark part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R941_TimeSpan_span_begins_at_TimingMark_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR941_defines_start_of_TimeSpan(form);
            form.setR941_span_begins_at_TimingMark(part);
            form.setPrev_Mark_ID( part.getMark_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R941_TimeSpan_span_begins_at_TimingMark( TimeSpan form, TimingMark part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R941_TimeSpan_span_begins_at_TimingMark_extent.remove( R941_TimeSpan_span_begins_at_TimingMark_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR941_defines_start_of_TimeSpan(form);
            form.setR941_span_begins_at_TimingMark(TimingMarkImpl.EMPTY_TIMINGMARK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R942_TimeSpan_span_ends_at_TimingMark( TimeSpan form, TimingMark part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R942_TimeSpan_span_ends_at_TimingMark_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR942_defines_end_of_TimeSpan(form);
            form.setR942_span_ends_at_TimingMark(part);
            form.setMark_ID( part.getMark_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R942_TimeSpan_span_ends_at_TimingMark( TimeSpan form, TimingMark part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R942_TimeSpan_span_ends_at_TimingMark_extent.remove( R942_TimeSpan_span_ends_at_TimingMark_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR942_defines_end_of_TimeSpan(form);
            form.setR942_span_ends_at_TimingMark(TimingMarkImpl.EMPTY_TIMINGMARK);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R947_FormalAttribute_is_a_ClassParticipantAttribute( FormalAttribute form, ClassParticipantAttribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R947_FormalAttribute_is_a_ClassParticipantAttribute_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR947_is_a_FormalAttribute(form);
            form.setR947_is_a_ClassParticipantAttribute(part);
            form.setIa_ID( part.getIa_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R947_FormalAttribute_is_a_ClassParticipantAttribute( FormalAttribute form, ClassParticipantAttribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R947_FormalAttribute_is_a_ClassParticipantAttribute_extent.remove( R947_FormalAttribute_is_a_ClassParticipantAttribute_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR947_is_a_FormalAttribute(FormalAttributeImpl.EMPTY_FORMALATTRIBUTE);
            form.setR947_is_a_ClassParticipantAttribute(ClassParticipantAttributeImpl.EMPTY_CLASSPARTICIPANTATTRIBUTE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R947_InformalAttribute_is_a_ClassParticipantAttribute( InformalAttribute form, ClassParticipantAttribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R947_InformalAttribute_is_a_ClassParticipantAttribute_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR947_is_a_InformalAttribute(form);
            form.setR947_is_a_ClassParticipantAttribute(part);
            form.setIa_ID( part.getIa_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R947_InformalAttribute_is_a_ClassParticipantAttribute( InformalAttribute form, ClassParticipantAttribute part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R947_InformalAttribute_is_a_ClassParticipantAttribute_extent.remove( R947_InformalAttribute_is_a_ClassParticipantAttribute_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR947_is_a_InformalAttribute(InformalAttributeImpl.EMPTY_INFORMALATTRIBUTE);
            form.setR947_is_a_ClassParticipantAttribute(ClassParticipantAttributeImpl.EMPTY_CLASSPARTICIPANTATTRIBUTE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R948_FormalAttributeValue_is_a_InstanceAttributeValue( FormalAttributeValue form, InstanceAttributeValue part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R948_FormalAttributeValue_is_a_InstanceAttributeValue_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR948_is_a_FormalAttributeValue(form);
            form.setR948_is_a_InstanceAttributeValue(part);
            form.setAv_ID( part.getAv_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R948_FormalAttributeValue_is_a_InstanceAttributeValue( FormalAttributeValue form, InstanceAttributeValue part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R948_FormalAttributeValue_is_a_InstanceAttributeValue_extent.remove( R948_FormalAttributeValue_is_a_InstanceAttributeValue_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR948_is_a_FormalAttributeValue(FormalAttributeValueImpl.EMPTY_FORMALATTRIBUTEVALUE);
            form.setR948_is_a_InstanceAttributeValue(InstanceAttributeValueImpl.EMPTY_INSTANCEATTRIBUTEVALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R948_InformalAttributeValue_is_a_InstanceAttributeValue( InformalAttributeValue form, InstanceAttributeValue part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R948_InformalAttributeValue_is_a_InstanceAttributeValue_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR948_is_a_InformalAttributeValue(form);
            form.setR948_is_a_InstanceAttributeValue(part);
            form.setAv_ID( part.getAv_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R948_InformalAttributeValue_is_a_InstanceAttributeValue( InformalAttributeValue form, InstanceAttributeValue part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R948_InformalAttributeValue_is_a_InstanceAttributeValue_extent.remove( R948_InformalAttributeValue_is_a_InstanceAttributeValue_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR948_is_a_InformalAttributeValue(InformalAttributeValueImpl.EMPTY_INFORMALATTRIBUTEVALUE);
            form.setR948_is_a_InstanceAttributeValue(InstanceAttributeValueImpl.EMPTY_INSTANCEATTRIBUTEVALUE);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R949_ActorParticipant_life_is_bounded_by_Lifespan( ActorParticipant form, Lifespan part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R949_ActorParticipant_life_is_bounded_by_Lifespan_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR949_defines_bounds_of_existence_ActorParticipant(form);
            form.setR949_life_is_bounded_by_Lifespan(part);
            form.setLS_Part_ID( part.getPart_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R949_ActorParticipant_life_is_bounded_by_Lifespan( ActorParticipant form, Lifespan part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R949_ActorParticipant_life_is_bounded_by_Lifespan_extent.remove( R949_ActorParticipant_life_is_bounded_by_Lifespan_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.setR949_defines_bounds_of_existence_ActorParticipant(ActorParticipantImpl.EMPTY_ACTORPARTICIPANT);
            form.setR949_life_is_bounded_by_Lifespan(LifespanImpl.EMPTY_LIFESPAN);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R955_ComponentParticipant_represents_C_C( ComponentParticipant form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R955_ComponentParticipant_represents_C_C_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR955_ComponentParticipant(form);
            form.setR955_represents_C_C(part);
            form.setComponent_Id( part.getId() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R955_ComponentParticipant_represents_C_C( ComponentParticipant form, C_C part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R955_ComponentParticipant_represents_C_C_extent.remove( R955_ComponentParticipant_represents_C_C_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR955_ComponentParticipant(form);
            form.setR955_represents_C_C(C_CImpl.EMPTY_C_C);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R956_PackageParticipant_represents_EP_PKG( PackageParticipant form, EP_PKG part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R956_PackageParticipant_represents_EP_PKG_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR956_represents_participant_of_PackageParticipant(form);
            form.setR956_represents_EP_PKG(part);
            form.setPackage_ID( part.getPackage_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R956_PackageParticipant_represents_EP_PKG( PackageParticipant form, EP_PKG part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R956_PackageParticipant_represents_EP_PKG_extent.remove( R956_PackageParticipant_represents_EP_PKG_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR956_represents_participant_of_PackageParticipant(form);
            form.setR956_represents_EP_PKG(EP_PKGImpl.EMPTY_EP_PKG);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }
    public void relate_R9_ExternalEntityInModel_is_a_presence_in_subsystem_model_of_ExternalEntity( ExternalEntityInModel form, ExternalEntity part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot relate empty instances." );
        // TODO cardinality check
        if ( R9_ExternalEntityInModel_is_a_presence_in_subsystem_model_of_ExternalEntity_extent.add( new Relationship( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.addR9_is_represented_by_ExternalEntityInModel(form);
            form.setR9_is_a_presence_in_subsystem_model_of_ExternalEntity(part);
            form.setEE_ID( part.getEE_ID() );
        }
        else throw new ModelIntegrityException( "Instances could not be related." );
    }

    public void unrelate_R9_ExternalEntityInModel_is_a_presence_in_subsystem_model_of_ExternalEntity( ExternalEntityInModel form, ExternalEntity part ) throws XtumlException {
        if ( null == form || null == part ) throw new BadArgumentException( "Null instances passed." );
        if ( form.isEmpty() || part.isEmpty() ) throw new EmptyInstanceException( "Cannot unrelate empty instances." );
        if ( R9_ExternalEntityInModel_is_a_presence_in_subsystem_model_of_ExternalEntity_extent.remove( R9_ExternalEntityInModel_is_a_presence_in_subsystem_model_of_ExternalEntity_extent.get( form.getInstanceId(), part.getInstanceId() ) ) ) {
            part.removeR9_is_represented_by_ExternalEntityInModel(form);
            form.setR9_is_a_presence_in_subsystem_model_of_ExternalEntity(ExternalEntityImpl.EMPTY_EXTERNALENTITY);
        }
        else throw new ModelIntegrityException( "Instances could not be unrelated." );
    }


    // instance selections
    private ACT_BRKSet ACT_BRK_extent;
    public ACT_BRKSet ACT_BRK_instances() {
        return ACT_BRK_extent;
    }
    private ACT_CONSet ACT_CON_extent;
    public ACT_CONSet ACT_CON_instances() {
        return ACT_CON_extent;
    }
    private ACT_FIOSet ACT_FIO_extent;
    public ACT_FIOSet ACT_FIO_instances() {
        return ACT_FIO_extent;
    }
    private ACT_SELSet ACT_SEL_extent;
    public ACT_SELSet ACT_SEL_instances() {
        return ACT_SEL_extent;
    }
    private ACT_SMTSet ACT_SMT_extent;
    public ACT_SMTSet ACT_SMT_instances() {
        return ACT_SMT_extent;
    }
    private AcceptEventActionSet AcceptEventAction_extent;
    public AcceptEventActionSet AcceptEventAction_instances() {
        return AcceptEventAction_extent;
    }
    private AcceptEventSet AcceptEvent_extent;
    public AcceptEventSet AcceptEvent_instances() {
        return AcceptEvent_extent;
    }
    private AcceptTimeEventActionSet AcceptTimeEventAction_extent;
    public AcceptTimeEventActionSet AcceptTimeEventAction_instances() {
        return AcceptTimeEventAction_extent;
    }
    private ActionHomeSet ActionHome_extent;
    public ActionHomeSet ActionHome_instances() {
        return ActionHome_extent;
    }
    private ActionNodeSet ActionNode_extent;
    public ActionNodeSet ActionNode_instances() {
        return ActionNode_extent;
    }
    private ActionSet Action_extent;
    public ActionSet Action_instances() {
        return Action_extent;
    }
    private ActivityDiagramActionSet ActivityDiagramAction_extent;
    public ActivityDiagramActionSet ActivityDiagramAction_instances() {
        return ActivityDiagramAction_extent;
    }
    private ActivityEdgeSet ActivityEdge_extent;
    public ActivityEdgeSet ActivityEdge_instances() {
        return ActivityEdge_extent;
    }
    private ActivityFinalNodeSet ActivityFinalNode_extent;
    public ActivityFinalNodeSet ActivityFinalNode_instances() {
        return ActivityFinalNode_extent;
    }
    private ActivityNodeSet ActivityNode_extent;
    public ActivityNodeSet ActivityNode_instances() {
        return ActivityNode_extent;
    }
    private ActivityPartitionSet ActivityPartition_extent;
    public ActivityPartitionSet ActivityPartition_instances() {
        return ActivityPartition_extent;
    }
    private ActorParticipantSet ActorParticipant_extent;
    public ActorParticipantSet ActorParticipant_instances() {
        return ActorParticipant_extent;
    }
    private ActualParameterSet ActualParameter_extent;
    public ActualParameterSet ActualParameter_instances() {
        return ActualParameter_extent;
    }
    private AnySet Any_extent;
    public AnySet Any_instances() {
        return Any_extent;
    }
    private ApplicationExecutorSet ApplicationExecutor_extent;
    public ApplicationExecutorSet ApplicationExecutor_instances() {
        return ApplicationExecutor_extent;
    }
    private ApplicationSet Application_extent;
    public ApplicationSet Application_instances() {
        return Application_extent;
    }
    private ArrayElementReferenceSet ArrayElementReference_extent;
    public ArrayElementReferenceSet ArrayElementReference_instances() {
        return ArrayElementReference_extent;
    }
    private ArrayLengthAccessSet ArrayLengthAccess_extent;
    public ArrayLengthAccessSet ArrayLengthAccess_instances() {
        return ArrayLengthAccess_extent;
    }
    private ArrayLengthValueSet ArrayLengthValue_extent;
    public ArrayLengthValueSet ArrayLengthValue_instances() {
        return ArrayLengthValue_extent;
    }
    private ArrayTypeReferenceSet ArrayTypeReference_extent;
    public ArrayTypeReferenceSet ArrayTypeReference_instances() {
        return ArrayTypeReference_extent;
    }
    private AssignToMemberSet AssignToMember_extent;
    public AssignToMemberSet AssignToMember_instances() {
        return AssignToMember_extent;
    }
    private AssociationSet Association_extent;
    public AssociationSet Association_instances() {
        return Association_extent;
    }
    private AsynchronousMessageSet AsynchronousMessage_extent;
    public AsynchronousMessageSet AsynchronousMessage_instances() {
        return AsynchronousMessage_extent;
    }
    private AttributeAccessSet AttributeAccess_extent;
    public AttributeAccessSet AttributeAccess_instances() {
        return AttributeAccess_extent;
    }
    private AttributeAccessorSet AttributeAccessor_extent;
    public AttributeAccessorSet AttributeAccessor_instances() {
        return AttributeAccessor_extent;
    }
    private AttributeDerivationSet AttributeDerivation_extent;
    public AttributeDerivationSet AttributeDerivation_instances() {
        return AttributeDerivation_extent;
    }
    private AttributeReferenceInClassSet AttributeReferenceInClass_extent;
    public AttributeReferenceInClassSet AttributeReferenceInClass_instances() {
        return AttributeReferenceInClass_extent;
    }
    private AttributeReferenceSet AttributeReference_extent;
    public AttributeReferenceSet AttributeReference_instances() {
        return AttributeReference_extent;
    }
    private AttributeValueReferenceSet AttributeValueReference_extent;
    public AttributeValueReferenceSet AttributeValueReference_instances() {
        return AttributeValueReference_extent;
    }
    private AttributeValueSet AttributeValue_extent;
    public AttributeValueSet AttributeValue_instances() {
        return AttributeValue_extent;
    }
    private AttributeSet Attribute_extent;
    public AttributeSet Attribute_instances() {
        return Attribute_extent;
    }
    private BaseAttributeSet BaseAttribute_extent;
    public BaseAttributeSet BaseAttribute_instances() {
        return BaseAttribute_extent;
    }
    private BasicTypeReferenceSet BasicTypeReference_extent;
    public BasicTypeReferenceSet BasicTypeReference_instances() {
        return BasicTypeReference_extent;
    }
    private BinaryAssociationSet BinaryAssociation_extent;
    public BinaryAssociationSet BinaryAssociation_instances() {
        return BinaryAssociation_extent;
    }
    private BinaryOperationSet BinaryOperation_extent;
    public BinaryOperationSet BinaryOperation_instances() {
        return BinaryOperation_extent;
    }
    private BlockInStackFrameSet BlockInStackFrame_extent;
    public BlockInStackFrameSet BlockInStackFrame_instances() {
        return BlockInStackFrame_extent;
    }
    private BlockSet Block_extent;
    public BlockSet Block_instances() {
        return Block_extent;
    }
    private BodyInComponentSet BodyInComponent_extent;
    public BodyInComponentSet BodyInComponent_instances() {
        return BodyInComponent_extent;
    }
    private BodyInElementSet BodyInElement_extent;
    public BodyInElementSet BodyInElement_instances() {
        return BodyInElement_extent;
    }
    private BodySet Body_extent;
    public BodySet Body_instances() {
        return Body_extent;
    }
    private BreakSmtSet BreakSmt_extent;
    public BreakSmtSet BreakSmt_instances() {
        return BreakSmt_extent;
    }
    private BridgeArgumentSet BridgeArgument_extent;
    public BridgeArgumentSet BridgeArgument_instances() {
        return BridgeArgument_extent;
    }
    private BridgeBodySet BridgeBody_extent;
    public BridgeBodySet BridgeBody_instances() {
        return BridgeBody_extent;
    }
    private BridgeInvocationSet BridgeInvocation_extent;
    public BridgeInvocationSet BridgeInvocation_instances() {
        return BridgeInvocation_extent;
    }
    private BridgeMessageSet BridgeMessage_extent;
    public BridgeMessageSet BridgeMessage_instances() {
        return BridgeMessage_extent;
    }
    private BridgeParameterSet BridgeParameter_extent;
    public BridgeParameterSet BridgeParameter_instances() {
        return BridgeParameter_extent;
    }
    private BridgeValueSet BridgeValue_extent;
    public BridgeValueSet BridgeValue_instances() {
        return BridgeValue_extent;
    }
    private BridgeSet Bridge_extent;
    public BridgeSet Bridge_instances() {
        return Bridge_extent;
    }
    private BuiltInTypeSet BuiltInType_extent;
    public BuiltInTypeSet BuiltInType_instances() {
        return BuiltInType_extent;
    }
    private C_CSet C_C_extent;
    public C_CSet C_C_instances() {
        return C_C_extent;
    }
    private C_ISet C_I_extent;
    public C_ISet C_I_instances() {
        return C_I_extent;
    }
    private C_POSet C_PO_extent;
    public C_POSet C_PO_instances() {
        return C_PO_extent;
    }
    private CantHappenSet CantHappen_extent;
    public CantHappenSet CantHappen_instances() {
        return CantHappen_extent;
    }
    private CardinalityCheckSet CardinalityCheck_extent;
    public CardinalityCheckSet CardinalityCheck_instances() {
        return CardinalityCheck_extent;
    }
    private ChainLinkSet ChainLink_extent;
    public ChainLinkSet ChainLink_instances() {
        return ChainLink_extent;
    }
    private ClassAsAssociatedOneSideSet ClassAsAssociatedOneSide_extent;
    public ClassAsAssociatedOneSideSet ClassAsAssociatedOneSide_instances() {
        return ClassAsAssociatedOneSide_extent;
    }
    private ClassAsAssociatedOtherSideSet ClassAsAssociatedOtherSide_extent;
    public ClassAsAssociatedOtherSideSet ClassAsAssociatedOtherSide_instances() {
        return ClassAsAssociatedOtherSide_extent;
    }
    private ClassAsDerivedOneSideSet ClassAsDerivedOneSide_extent;
    public ClassAsDerivedOneSideSet ClassAsDerivedOneSide_instances() {
        return ClassAsDerivedOneSide_extent;
    }
    private ClassAsDerivedOtherSideSet ClassAsDerivedOtherSide_extent;
    public ClassAsDerivedOtherSideSet ClassAsDerivedOtherSide_instances() {
        return ClassAsDerivedOtherSide_extent;
    }
    private ClassAsLinkSet ClassAsLink_extent;
    public ClassAsLinkSet ClassAsLink_instances() {
        return ClassAsLink_extent;
    }
    private ClassAsSimpleFormalizerSet ClassAsSimpleFormalizer_extent;
    public ClassAsSimpleFormalizerSet ClassAsSimpleFormalizer_instances() {
        return ClassAsSimpleFormalizer_extent;
    }
    private ClassAsSimpleParticipantSet ClassAsSimpleParticipant_extent;
    public ClassAsSimpleParticipantSet ClassAsSimpleParticipant_instances() {
        return ClassAsSimpleParticipant_extent;
    }
    private ClassAsSubtypeSet ClassAsSubtype_extent;
    public ClassAsSubtypeSet ClassAsSubtype_instances() {
        return ClassAsSubtype_extent;
    }
    private ClassAsSupertypeSet ClassAsSupertype_extent;
    public ClassAsSupertypeSet ClassAsSupertype_instances() {
        return ClassAsSupertype_extent;
    }
    private ClassIdentifierAttributeSet ClassIdentifierAttribute_extent;
    public ClassIdentifierAttributeSet ClassIdentifierAttribute_instances() {
        return ClassIdentifierAttribute_extent;
    }
    private ClassIdentifierSet ClassIdentifier_extent;
    public ClassIdentifierSet ClassIdentifier_instances() {
        return ClassIdentifier_extent;
    }
    private ClassInAssociationSet ClassInAssociation_extent;
    public ClassInAssociationSet ClassInAssociation_instances() {
        return ClassInAssociation_extent;
    }
    private ClassInstanceParticipantSet ClassInstanceParticipant_extent;
    public ClassInstanceParticipantSet ClassInstanceParticipant_instances() {
        return ClassInstanceParticipant_extent;
    }
    private ClassParticipantAttributeSet ClassParticipantAttribute_extent;
    public ClassParticipantAttributeSet ClassParticipantAttribute_instances() {
        return ClassParticipantAttribute_extent;
    }
    private ClassParticipantSet ClassParticipant_extent;
    public ClassParticipantSet ClassParticipant_instances() {
        return ClassParticipant_extent;
    }
    private ClassRelationshipSet ClassRelationship_extent;
    public ClassRelationshipSet ClassRelationship_instances() {
        return ClassRelationship_extent;
    }
    private ClassStateMachineSet ClassStateMachine_extent;
    public ClassStateMachineSet ClassStateMachine_instances() {
        return ClassStateMachine_extent;
    }
    private CodeBlockSet CodeBlock_extent;
    public CodeBlockSet CodeBlock_instances() {
        return CodeBlock_extent;
    }
    private CommunicationLinkSet CommunicationLink_extent;
    public CommunicationLinkSet CommunicationLink_instances() {
        return CommunicationLink_extent;
    }
    private ComponentDefinitionSet ComponentDefinition_extent;
    public ComponentDefinitionSet ComponentDefinition_instances() {
        return ComponentDefinition_extent;
    }
    private ComponentInstanceContainerSet ComponentInstanceContainer_extent;
    public ComponentInstanceContainerSet ComponentInstanceContainer_instances() {
        return ComponentInstanceContainer_extent;
    }
    private ComponentInstanceSet ComponentInstance_extent;
    public ComponentInstanceSet ComponentInstance_instances() {
        return ComponentInstance_extent;
    }
    private ComponentInstantiationSet ComponentInstantiation_extent;
    public ComponentInstantiationSet ComponentInstantiation_instances() {
        return ComponentInstantiation_extent;
    }
    private ComponentParticipantSet ComponentParticipant_extent;
    public ComponentParticipantSet ComponentParticipant_instances() {
        return ComponentParticipant_extent;
    }
    private ComponentReferenceSet ComponentReference_extent;
    public ComponentReferenceSet ComponentReference_instances() {
        return ComponentReference_extent;
    }
    private ComponentResultSetSet ComponentResultSet_extent;
    public ComponentResultSetSet ComponentResultSet_instances() {
        return ComponentResultSet_extent;
    }
    private ComponentVisibilitySet ComponentVisibility_extent;
    public ComponentVisibilitySet ComponentVisibility_instances() {
        return ComponentVisibility_extent;
    }
    private ConstantReferenceSet ConstantReference_extent;
    public ConstantReferenceSet ConstantReference_instances() {
        return ConstantReference_extent;
    }
    private ConstantSpecificationSet ConstantSpecification_extent;
    public ConstantSpecificationSet ConstantSpecification_instances() {
        return ConstantSpecification_extent;
    }
    private ContinueSmtSet ContinueSmt_extent;
    public ContinueSmtSet ContinueSmt_instances() {
        return ContinueSmt_extent;
    }
    private ControlNodeSet ControlNode_extent;
    public ControlNodeSet ControlNode_instances() {
        return ControlNode_extent;
    }
    private ControlSet Control_extent;
    public ControlSet Control_instances() {
        return Control_extent;
    }
    private CoreDataTypeSet CoreDataType_extent;
    public CoreDataTypeSet CoreDataType_instances() {
        return CoreDataType_extent;
    }
    private CreateEventStatementSet CreateEventStatement_extent;
    public CreateEventStatementSet CreateEventStatement_instances() {
        return CreateEventStatement_extent;
    }
    private CreateEventToClassSet CreateEventToClass_extent;
    public CreateEventToClassSet CreateEventToClass_instances() {
        return CreateEventToClass_extent;
    }
    private CreateEventToCreatorSet CreateEventToCreator_extent;
    public CreateEventToCreatorSet CreateEventToCreator_instances() {
        return CreateEventToCreator_extent;
    }
    private CreateEventToInstanceSet CreateEventToInstance_extent;
    public CreateEventToInstanceSet CreateEventToInstance_instances() {
        return CreateEventToInstance_extent;
    }
    private CreateNoVariableSet CreateNoVariable_extent;
    public CreateNoVariableSet CreateNoVariable_instances() {
        return CreateNoVariable_extent;
    }
    private CreateSMEventStatementSet CreateSMEventStatement_extent;
    public CreateSMEventStatementSet CreateSMEventStatement_instances() {
        return CreateSMEventStatement_extent;
    }
    private CreateSet Create_extent;
    public CreateSet Create_instances() {
        return Create_extent;
    }
    private CreationTransitionSet CreationTransition_extent;
    public CreationTransitionSet CreationTransition_instances() {
        return CreationTransition_extent;
    }
    private CreationSet Creation_extent;
    public CreationSet Creation_instances() {
        return Creation_extent;
    }
    private DataItemValueSet DataItemValue_extent;
    public DataItemValueSet DataItemValue_instances() {
        return DataItemValue_extent;
    }
    private DataTypeSet DataType_extent;
    public DataTypeSet DataType_instances() {
        return DataType_extent;
    }
    private DecisionMergeNodeSet DecisionMergeNode_extent;
    public DecisionMergeNodeSet DecisionMergeNode_instances() {
        return DecisionMergeNode_extent;
    }
    private DeferralSet Deferral_extent;
    public DeferralSet Deferral_instances() {
        return Deferral_extent;
    }
    private DelegationInComponentSet DelegationInComponent_extent;
    public DelegationInComponentSet DelegationInComponent_instances() {
        return DelegationInComponent_extent;
    }
    private DelegationSet Delegation_extent;
    public DelegationSet Delegation_instances() {
        return Delegation_extent;
    }
    private DeleteSmtSet DeleteSmt_extent;
    public DeleteSmtSet DeleteSmt_instances() {
        return DeleteSmt_extent;
    }
    private DeleteSet Delete_extent;
    public DeleteSet Delete_instances() {
        return Delete_extent;
    }
    private DeploymentSet Deployment_extent;
    public DeploymentSet Deployment_instances() {
        return Deployment_extent;
    }
    private DerivedAssociationSet DerivedAssociation_extent;
    public DerivedAssociationSet DerivedAssociation_instances() {
        return DerivedAssociation_extent;
    }
    private DerivedAttributeBodySet DerivedAttributeBody_extent;
    public DerivedAttributeBodySet DerivedAttributeBody_instances() {
        return DerivedAttributeBody_extent;
    }
    private DerivedBaseAttributeSet DerivedBaseAttribute_extent;
    public DerivedBaseAttributeSet DerivedBaseAttribute_instances() {
        return DerivedBaseAttribute_extent;
    }
    private DimensionsSet Dimensions_extent;
    public DimensionsSet Dimensions_instances() {
        return Dimensions_extent;
    }
    private EP_PKGSet EP_PKG_extent;
    public EP_PKGSet EP_PKG_instances() {
        return EP_PKG_extent;
    }
    private E_GENSet E_GEN_extent;
    public E_GENSet E_GEN_instances() {
        return E_GEN_extent;
    }
    private ElementVisibilitySet ElementVisibility_extent;
    public ElementVisibilitySet ElementVisibility_instances() {
        return ElementVisibility_extent;
    }
    private ElseIfStmtSet ElseIfStmt_extent;
    public ElseIfStmtSet ElseIfStmt_instances() {
        return ElseIfStmt_extent;
    }
    private ElseStmtSet ElseStmt_extent;
    public ElseStmtSet ElseStmt_instances() {
        return ElseStmt_extent;
    }
    private EnumeratedTypeSet EnumeratedType_extent;
    public EnumeratedTypeSet EnumeratedType_instances() {
        return EnumeratedType_extent;
    }
    private EnumerationDataTypeSet EnumerationDataType_extent;
    public EnumerationDataTypeSet EnumerationDataType_instances() {
        return EnumerationDataType_extent;
    }
    private EnumeratorReferenceSet EnumeratorReference_extent;
    public EnumeratorReferenceSet EnumeratorReference_instances() {
        return EnumeratorReference_extent;
    }
    private EnumeratorSet Enumerator_extent;
    public EnumeratorSet Enumerator_instances() {
        return Enumerator_extent;
    }
    private EventArgumentSet EventArgument_extent;
    public EventArgumentSet EventArgument_instances() {
        return EventArgument_extent;
    }
    private EventCreationSet EventCreation_extent;
    public EventCreationSet EventCreation_instances() {
        return EventCreation_extent;
    }
    private EventDatumValueSet EventDatumValue_extent;
    public EventDatumValueSet EventDatumValue_instances() {
        return EventDatumValue_extent;
    }
    private EventIgnoredSet EventIgnored_extent;
    public EventIgnoredSet EventIgnored_instances() {
        return EventIgnored_extent;
    }
    private EventMessageSet EventMessage_extent;
    public EventMessageSet EventMessage_instances() {
        return EventMessage_extent;
    }
    private EventParameterReferenceSet EventParameterReference_extent;
    public EventParameterReferenceSet EventParameterReference_instances() {
        return EventParameterReference_extent;
    }
    private EventQueueEntrySet EventQueueEntry_extent;
    public EventQueueEntrySet EventQueueEntry_instances() {
        return EventQueueEntry_extent;
    }
    private EventSpecificationStatementSet EventSpecificationStatement_extent;
    public EventSpecificationStatementSet EventSpecificationStatement_instances() {
        return EventSpecificationStatement_extent;
    }
    private EventSet Event_extent;
    public EventSet Event_instances() {
        return Event_extent;
    }
    private ExceptionSet Exception_extent;
    public ExceptionSet Exception_instances() {
        return Exception_extent;
    }
    private ExecutablePropertyArgumentSet ExecutablePropertyArgument_extent;
    public ExecutablePropertyArgumentSet ExecutablePropertyArgument_instances() {
        return ExecutablePropertyArgument_extent;
    }
    private ExecutablePropertySet ExecutableProperty_extent;
    public ExecutablePropertySet ExecutableProperty_instances() {
        return ExecutableProperty_extent;
    }
    private ExpressionAsStatementSet ExpressionAsStatement_extent;
    public ExpressionAsStatementSet ExpressionAsStatement_instances() {
        return ExpressionAsStatement_extent;
    }
    private ExpressionSet Expression_extent;
    public ExpressionSet Expression_instances() {
        return Expression_extent;
    }
    private ExtendSet Extend_extent;
    public ExtendSet Extend_instances() {
        return Extend_extent;
    }
    private ExternalEntityInModelSet ExternalEntityInModel_extent;
    public ExternalEntityInModelSet ExternalEntityInModel_instances() {
        return ExternalEntityInModel_extent;
    }
    private ExternalEntityParticipantSet ExternalEntityParticipant_extent;
    public ExternalEntityParticipantSet ExternalEntityParticipant_instances() {
        return ExternalEntityParticipant_extent;
    }
    private ExternalEntitySet ExternalEntity_extent;
    public ExternalEntitySet ExternalEntity_instances() {
        return ExternalEntity_extent;
    }
    private FeatureSet Feature_extent;
    public FeatureSet Feature_instances() {
        return Feature_extent;
    }
    private FileSet File_extent;
    public FileSet File_instances() {
        return File_extent;
    }
    private FinalizationSet Finalization_extent;
    public FinalizationSet Finalization_instances() {
        return Finalization_extent;
    }
    private FlowFinalNodeSet FlowFinalNode_extent;
    public FlowFinalNodeSet FlowFinalNode_instances() {
        return FlowFinalNode_extent;
    }
    private ForSmtSet ForSmt_extent;
    public ForSmtSet ForSmt_instances() {
        return ForSmt_extent;
    }
    private ForStmtSet ForStmt_extent;
    public ForStmtSet ForStmt_instances() {
        return ForStmt_extent;
    }
    private ForkJoinNodeSet ForkJoinNode_extent;
    public ForkJoinNodeSet ForkJoinNode_instances() {
        return ForkJoinNode_extent;
    }
    private FormalAttributeValueSet FormalAttributeValue_extent;
    public FormalAttributeValueSet FormalAttributeValue_instances() {
        return FormalAttributeValue_extent;
    }
    private FormalAttributeSet FormalAttribute_extent;
    public FormalAttributeSet FormalAttribute_instances() {
        return FormalAttribute_extent;
    }
    private FormalParameterSet FormalParameter_extent;
    public FormalParameterSet FormalParameter_instances() {
        return FormalParameter_extent;
    }
    private FunctionArgumentSet FunctionArgument_extent;
    public FunctionArgumentSet FunctionArgument_instances() {
        return FunctionArgument_extent;
    }
    private FunctionBodySet FunctionBody_extent;
    public FunctionBodySet FunctionBody_instances() {
        return FunctionBody_extent;
    }
    private FunctionInvocationSet FunctionInvocation_extent;
    public FunctionInvocationSet FunctionInvocation_instances() {
        return FunctionInvocation_extent;
    }
    private FunctionMessageSet FunctionMessage_extent;
    public FunctionMessageSet FunctionMessage_instances() {
        return FunctionMessage_extent;
    }
    private FunctionParameterSet FunctionParameter_extent;
    public FunctionParameterSet FunctionParameter_instances() {
        return FunctionParameter_extent;
    }
    private FunctionValueSet FunctionValue_extent;
    public FunctionValueSet FunctionValue_instances() {
        return FunctionValue_extent;
    }
    private FunctionSet Function_extent;
    public FunctionSet Function_instances() {
        return Function_extent;
    }
    private GeneralFileSet GeneralFile_extent;
    public GeneralFileSet GeneralFile_instances() {
        return GeneralFile_extent;
    }
    private GeneralizationSet Generalization_extent;
    public GeneralizationSet Generalization_instances() {
        return Generalization_extent;
    }
    private GenerateEventStatementSet GenerateEventStatement_extent;
    public GenerateEventStatementSet GenerateEventStatement_instances() {
        return GenerateEventStatement_extent;
    }
    private GeneratePreexistingEventSet GeneratePreexistingEvent_extent;
    public GeneratePreexistingEventSet GeneratePreexistingEvent_instances() {
        return GeneratePreexistingEvent_extent;
    }
    private GenerateSMEventStatementSet GenerateSMEventStatement_extent;
    public GenerateSMEventStatementSet GenerateSMEventStatement_instances() {
        return GenerateSMEventStatement_extent;
    }
    private GenerateToClassSet GenerateToClass_extent;
    public GenerateToClassSet GenerateToClass_instances() {
        return GenerateToClass_extent;
    }
    private GenerateToCreatorSet GenerateToCreator_extent;
    public GenerateToCreatorSet GenerateToCreator_instances() {
        return GenerateToCreator_extent;
    }
    private GenerateSet Generate_extent;
    public GenerateSet Generate_instances() {
        return Generate_extent;
    }
    private GenericInvocableSet GenericInvocable_extent;
    public GenericInvocableSet GenericInvocable_instances() {
        return GenericInvocable_extent;
    }
    private GlobalElementInSystemSet GlobalElementInSystem_extent;
    public GlobalElementInSystemSet GlobalElementInSystem_instances() {
        return GlobalElementInSystem_extent;
    }
    private HaltSet Halt_extent;
    public HaltSet Halt_instances() {
        return Halt_extent;
    }
    private I_INSSet I_INS_extent;
    public I_INSSet I_INS_instances() {
        return I_INS_extent;
    }
    private IfSmtSet IfSmt_extent;
    public IfSmtSet IfSmt_instances() {
        return IfSmt_extent;
    }
    private IfStmtSet IfStmt_extent;
    public IfStmtSet IfStmt_instances() {
        return IfStmt_extent;
    }
    private IfaceSet Iface_extent;
    public IfaceSet Iface_instances() {
        return Iface_extent;
    }
    private ImportedClassSet ImportedClass_extent;
    public ImportedClassSet ImportedClass_instances() {
        return ImportedClass_extent;
    }
    private ImportedProvisionInSatisfactionSet ImportedProvisionInSatisfaction_extent;
    public ImportedProvisionInSatisfactionSet ImportedProvisionInSatisfaction_instances() {
        return ImportedProvisionInSatisfaction_extent;
    }
    private ImportedProvisionSet ImportedProvision_extent;
    public ImportedProvisionSet ImportedProvision_instances() {
        return ImportedProvision_extent;
    }
    private ImportedReferenceSet ImportedReference_extent;
    public ImportedReferenceSet ImportedReference_instances() {
        return ImportedReference_extent;
    }
    private ImportedRequirementSet ImportedRequirement_extent;
    public ImportedRequirementSet ImportedRequirement_instances() {
        return ImportedRequirement_extent;
    }
    private IncludeSet Include_extent;
    public IncludeSet Include_instances() {
        return Include_extent;
    }
    private InformalArgumentSet InformalArgument_extent;
    public InformalArgumentSet InformalArgument_instances() {
        return InformalArgument_extent;
    }
    private InformalAsynchronousMessageSet InformalAsynchronousMessage_extent;
    public InformalAsynchronousMessageSet InformalAsynchronousMessage_instances() {
        return InformalAsynchronousMessage_extent;
    }
    private InformalAttributeValueSet InformalAttributeValue_extent;
    public InformalAttributeValueSet InformalAttributeValue_instances() {
        return InformalAttributeValue_extent;
    }
    private InformalAttributeSet InformalAttribute_extent;
    public InformalAttributeSet InformalAttribute_instances() {
        return InformalAttribute_extent;
    }
    private InformalSynchronousMessageSet InformalSynchronousMessage_extent;
    public InformalSynchronousMessageSet InformalSynchronousMessage_instances() {
        return InformalSynchronousMessage_extent;
    }
    private InitialNodeSet InitialNode_extent;
    public InitialNodeSet InitialNode_instances() {
        return InitialNode_extent;
    }
    private InstSetSet InstSet_extent;
    public InstSetSet InstSet_instances() {
        return InstSet_extent;
    }
    private InstanceAttributeValueSet InstanceAttributeValue_extent;
    public InstanceAttributeValueSet InstanceAttributeValue_instances() {
        return InstanceAttributeValue_extent;
    }
    private InstanceHandleSet InstanceHandle_extent;
    public InstanceHandleSet InstanceHandle_instances() {
        return InstanceHandle_extent;
    }
    private InstancePopulationSelectorSet InstancePopulationSelector_extent;
    public InstancePopulationSelectorSet InstancePopulationSelector_instances() {
        return InstancePopulationSelector_extent;
    }
    private InstanceReferenceDataTypeSet InstanceReferenceDataType_extent;
    public InstanceReferenceDataTypeSet InstanceReferenceDataType_instances() {
        return InstanceReferenceDataType_extent;
    }
    private InstanceReferenceSet InstanceReference_extent;
    public InstanceReferenceSet InstanceReference_instances() {
        return InstanceReference_extent;
    }
    private InstanceSelectorSet InstanceSelector_extent;
    public InstanceSelectorSet InstanceSelector_instances() {
        return InstanceSelector_extent;
    }
    private InstanceSetReferenceSet InstanceSetReference_extent;
    public InstanceSetReferenceSet InstanceSetReference_instances() {
        return InstanceSetReference_extent;
    }
    private InstanceStateMachineSet InstanceStateMachine_extent;
    public InstanceStateMachineSet InstanceStateMachine_instances() {
        return InstanceStateMachine_extent;
    }
    private InteractionParticipantSet InteractionParticipant_extent;
    public InteractionParticipantSet InteractionParticipant_instances() {
        return InteractionParticipant_extent;
    }
    private IntercomponentQueueEntrySet IntercomponentQueueEntry_extent;
    public IntercomponentQueueEntrySet IntercomponentQueueEntry_instances() {
        return IntercomponentQueueEntry_extent;
    }
    private InterfaceOperationInvocationSet InterfaceOperationInvocation_extent;
    public InterfaceOperationInvocationSet InterfaceOperationInvocation_instances() {
        return InterfaceOperationInvocation_extent;
    }
    private InterfaceOperationMessageSet InterfaceOperationMessage_extent;
    public InterfaceOperationMessageSet InterfaceOperationMessage_instances() {
        return InterfaceOperationMessage_extent;
    }
    private InterfaceOperationSet InterfaceOperation_extent;
    public InterfaceOperationSet InterfaceOperation_instances() {
        return InterfaceOperation_extent;
    }
    private InterfaceReferenceInDelegationSet InterfaceReferenceInDelegation_extent;
    public InterfaceReferenceInDelegationSet InterfaceReferenceInDelegation_instances() {
        return InterfaceReferenceInDelegation_extent;
    }
    private InterfaceReferenceSet InterfaceReference_extent;
    public InterfaceReferenceSet InterfaceReference_instances() {
        return InterfaceReference_extent;
    }
    private InterfaceSignalSet InterfaceSignal_extent;
    public InterfaceSignalSet InterfaceSignal_instances() {
        return InterfaceSignal_extent;
    }
    private InvocableObjectSet InvocableObject_extent;
    public InvocableObjectSet InvocableObject_instances() {
        return InvocableObject_extent;
    }
    private InvocationSet Invocation_extent;
    public InvocationSet Invocation_instances() {
        return Invocation_extent;
    }
    private LeafSymbolicConstantSet LeafSymbolicConstant_extent;
    public LeafSymbolicConstantSet LeafSymbolicConstant_instances() {
        return LeafSymbolicConstant_extent;
    }
    private LifespanSet Lifespan_extent;
    public LifespanSet Lifespan_instances() {
        return Lifespan_extent;
    }
    private LinkParticipationSet LinkParticipation_extent;
    public LinkParticipationSet LinkParticipation_instances() {
        return LinkParticipation_extent;
    }
    private LinkSet Link_extent;
    public LinkSet Link_instances() {
        return Link_extent;
    }
    private LinkedAssociationSet LinkedAssociation_extent;
    public LinkedAssociationSet LinkedAssociation_instances() {
        return LinkedAssociation_extent;
    }
    private LiteralBooleanSet LiteralBoolean_extent;
    public LiteralBooleanSet LiteralBoolean_instances() {
        return LiteralBoolean_extent;
    }
    private LiteralEnumeratorSet LiteralEnumerator_extent;
    public LiteralEnumeratorSet LiteralEnumerator_instances() {
        return LiteralEnumerator_extent;
    }
    private LiteralIntegerSet LiteralInteger_extent;
    public LiteralIntegerSet LiteralInteger_instances() {
        return LiteralInteger_extent;
    }
    private LiteralRealSet LiteralReal_extent;
    public LiteralRealSet LiteralReal_instances() {
        return LiteralReal_extent;
    }
    private LiteralStringSet LiteralString_extent;
    public LiteralStringSet LiteralString_instances() {
        return LiteralString_extent;
    }
    private LiteralSymbolicConstantSet LiteralSymbolicConstant_extent;
    public LiteralSymbolicConstantSet LiteralSymbolicConstant_instances() {
        return LiteralSymbolicConstant_extent;
    }
    private LiteralSet Literal_extent;
    public LiteralSet Literal_instances() {
        return Literal_extent;
    }
    private LocalEventSet LocalEvent_extent;
    public LocalEventSet LocalEvent_instances() {
        return LocalEvent_extent;
    }
    private MSG_MSet MSG_M_extent;
    public MSG_MSet MSG_M_instances() {
        return MSG_M_extent;
    }
    private MarkSet Mark_extent;
    public MarkSet Mark_instances() {
        return Mark_extent;
    }
    private MarkableElementTypeSet MarkableElementType_extent;
    public MarkableElementTypeSet MarkableElementType_instances() {
        return MarkableElementType_extent;
    }
    private MealyActionHomeSet MealyActionHome_extent;
    public MealyActionHomeSet MealyActionHome_instances() {
        return MealyActionHome_extent;
    }
    private MealyStateMachineSet MealyStateMachine_extent;
    public MealyStateMachineSet MealyStateMachine_instances() {
        return MealyStateMachine_extent;
    }
    private MemberReferenceSet MemberReference_extent;
    public MemberReferenceSet MemberReference_instances() {
        return MemberReference_extent;
    }
    private MemberValueReferenceSet MemberValueReference_extent;
    public MemberValueReferenceSet MemberValueReference_instances() {
        return MemberValueReference_extent;
    }
    private MessageArgumentSet MessageArgument_extent;
    public MessageArgumentSet MessageArgument_instances() {
        return MessageArgument_extent;
    }
    private MessageValueSet MessageValue_extent;
    public MessageValueSet MessageValue_instances() {
        return MessageValue_extent;
    }
    private MessageSet Message_extent;
    public MessageSet Message_instances() {
        return Message_extent;
    }
    private ModelClassSet ModelClass_extent;
    public ModelClassSet ModelClass_instances() {
        return ModelClass_extent;
    }
    private ModelInstSet ModelInst_extent;
    public ModelInstSet ModelInst_instances() {
        return ModelInst_extent;
    }
    private MonitorSet Monitor_extent;
    public MonitorSet Monitor_instances() {
        return Monitor_extent;
    }
    private MooreActionHomeSet MooreActionHome_extent;
    public MooreActionHomeSet MooreActionHome_instances() {
        return MooreActionHome_extent;
    }
    private MooreStateMachineSet MooreStateMachine_extent;
    public MooreStateMachineSet MooreStateMachine_instances() {
        return MooreStateMachine_extent;
    }
    private NamedReferenceSet NamedReference_extent;
    public NamedReferenceSet NamedReference_instances() {
        return NamedReference_extent;
    }
    private NewBaseAttributeSet NewBaseAttribute_extent;
    public NewBaseAttributeSet NewBaseAttribute_instances() {
        return NewBaseAttribute_extent;
    }
    private NewStateTransitionSet NewStateTransition_extent;
    public NewStateTransitionSet NewStateTransition_instances() {
        return NewStateTransition_extent;
    }
    private NoEventTransitionSet NoEventTransition_extent;
    public NoEventTransitionSet NoEventTransition_instances() {
        return NoEventTransition_extent;
    }
    private NonLocalEventSet NonLocalEvent_extent;
    public NonLocalEventSet NonLocalEvent_instances() {
        return NonLocalEvent_extent;
    }
    private NullSmtSet NullSmt_extent;
    public NullSmtSet NullSmt_instances() {
        return NullSmt_extent;
    }
    private O_ATTRSet O_ATTR_extent;
    public O_ATTRSet O_ATTR_instances() {
        return O_ATTR_extent;
    }
    private O_TFRSet O_TFR_extent;
    public O_TFRSet O_TFR_instances() {
        return O_TFR_extent;
    }
    private ObjectNodeSet ObjectNode_extent;
    public ObjectNodeSet ObjectNode_instances() {
        return ObjectNode_extent;
    }
    private OperationArgumentSet OperationArgument_extent;
    public OperationArgumentSet OperationArgument_instances() {
        return OperationArgument_extent;
    }
    private OperationBodySet OperationBody_extent;
    public OperationBodySet OperationBody_instances() {
        return OperationBody_extent;
    }
    private OperationInvocationSet OperationInvocation_extent;
    public OperationInvocationSet OperationInvocation_instances() {
        return OperationInvocation_extent;
    }
    private OperationMessageSet OperationMessage_extent;
    public OperationMessageSet OperationMessage_instances() {
        return OperationMessage_extent;
    }
    private OperationParameterSet OperationParameter_extent;
    public OperationParameterSet OperationParameter_instances() {
        return OperationParameter_extent;
    }
    private OperationValueSet OperationValue_extent;
    public OperationValueSet OperationValue_instances() {
        return OperationValue_extent;
    }
    private OperationSet Operation_extent;
    public OperationSet Operation_instances() {
        return Operation_extent;
    }
    private PackageParticipantSet PackageParticipant_extent;
    public PackageParticipantSet PackageParticipant_instances() {
        return PackageParticipant_extent;
    }
    private PackageReferenceSet PackageReference_extent;
    public PackageReferenceSet PackageReference_instances() {
        return PackageReference_extent;
    }
    private PackageableElementSet PackageableElement_extent;
    public PackageableElementSet PackageableElement_instances() {
        return PackageableElement_extent;
    }
    private ParameterReferenceSet ParameterReference_extent;
    public ParameterReferenceSet ParameterReference_instances() {
        return ParameterReference_extent;
    }
    private ParameterValueSet ParameterValue_extent;
    public ParameterValueSet ParameterValue_instances() {
        return ParameterValue_extent;
    }
    private ParenthesizedExpressionSet ParenthesizedExpression_extent;
    public ParenthesizedExpressionSet ParenthesizedExpression_instances() {
        return ParenthesizedExpression_extent;
    }
    private PendingEventSet PendingEvent_extent;
    public PendingEventSet PendingEvent_instances() {
        return PendingEvent_extent;
    }
    private PolymorphicEventSet PolymorphicEvent_extent;
    public PolymorphicEventSet PolymorphicEvent_instances() {
        return PolymorphicEvent_extent;
    }
    private PortMessageSet PortMessage_extent;
    public PortMessageSet PortMessage_instances() {
        return PortMessage_extent;
    }
    private PortReferenceSet PortReference_extent;
    public PortReferenceSet PortReference_instances() {
        return PortReference_extent;
    }
    private PortSet Port_extent;
    public PortSet Port_instances() {
        return Port_extent;
    }
    private PromotionSet Promotion_extent;
    public PromotionSet Promotion_instances() {
        return Promotion_extent;
    }
    private PropertyParameterSet PropertyParameter_extent;
    public PropertyParameterSet PropertyParameter_instances() {
        return PropertyParameter_extent;
    }
    private ProvidedExecutablePropertySet ProvidedExecutableProperty_extent;
    public ProvidedExecutablePropertySet ProvidedExecutableProperty_instances() {
        return ProvidedExecutableProperty_extent;
    }
    private ProvidedOperationBodySet ProvidedOperationBody_extent;
    public ProvidedOperationBodySet ProvidedOperationBody_instances() {
        return ProvidedOperationBody_extent;
    }
    private ProvidedOperationSet ProvidedOperation_extent;
    public ProvidedOperationSet ProvidedOperation_instances() {
        return ProvidedOperation_extent;
    }
    private ProvidedSignalBodySet ProvidedSignalBody_extent;
    public ProvidedSignalBodySet ProvidedSignalBody_instances() {
        return ProvidedSignalBody_extent;
    }
    private ProvidedSignalSet ProvidedSignal_extent;
    public ProvidedSignalSet ProvidedSignal_instances() {
        return ProvidedSignal_extent;
    }
    private ProvisionSet Provision_extent;
    public ProvisionSet Provision_instances() {
        return Provision_extent;
    }
    private RangeSet Range_extent;
    public RangeSet Range_instances() {
        return Range_extent;
    }
    private ReferentialAttributeSet ReferentialAttribute_extent;
    public ReferentialAttributeSet ReferentialAttribute_instances() {
        return ReferentialAttribute_extent;
    }
    private ReferredToClassInAssocSet ReferredToClassInAssoc_extent;
    public ReferredToClassInAssocSet ReferredToClassInAssoc_instances() {
        return ReferredToClassInAssoc_extent;
    }
    private ReferredToIdentifierAttributeSet ReferredToIdentifierAttribute_extent;
    public ReferredToIdentifierAttributeSet ReferredToIdentifierAttribute_instances() {
        return ReferredToIdentifierAttribute_extent;
    }
    private ReferringClassInAssocSet ReferringClassInAssoc_extent;
    public ReferringClassInAssocSet ReferringClassInAssoc_instances() {
        return ReferringClassInAssoc_extent;
    }
    private RelateSmtSet RelateSmt_extent;
    public RelateSmtSet RelateSmt_instances() {
        return RelateSmt_extent;
    }
    private RelateUsingSet RelateUsing_extent;
    public RelateUsingSet RelateUsing_instances() {
        return RelateUsing_extent;
    }
    private RelateSet Relate_extent;
    public RelateSet Relate_instances() {
        return Relate_extent;
    }
    private RelationshipPopulationSelectorSet RelationshipPopulationSelector_extent;
    public RelationshipPopulationSelectorSet RelationshipPopulationSelector_instances() {
        return RelationshipPopulationSelector_extent;
    }
    private RequiredExecutablePropertySet RequiredExecutableProperty_extent;
    public RequiredExecutablePropertySet RequiredExecutableProperty_instances() {
        return RequiredExecutableProperty_extent;
    }
    private RequiredOperationBodySet RequiredOperationBody_extent;
    public RequiredOperationBodySet RequiredOperationBody_instances() {
        return RequiredOperationBody_extent;
    }
    private RequiredOperationSet RequiredOperation_extent;
    public RequiredOperationSet RequiredOperation_instances() {
        return RequiredOperation_extent;
    }
    private RequiredSignalBodySet RequiredSignalBody_extent;
    public RequiredSignalBodySet RequiredSignalBody_instances() {
        return RequiredSignalBody_extent;
    }
    private RequiredSignalSet RequiredSignal_extent;
    public RequiredSignalSet RequiredSignal_instances() {
        return RequiredSignal_extent;
    }
    private RequirementSet Requirement_extent;
    public RequirementSet Requirement_instances() {
        return Requirement_extent;
    }
    private ReturnMessageSet ReturnMessage_extent;
    public ReturnMessageSet ReturnMessage_instances() {
        return ReturnMessage_extent;
    }
    private ReturnSmtSet ReturnSmt_extent;
    public ReturnSmtSet ReturnSmt_instances() {
        return ReturnSmt_extent;
    }
    private ReturnStmtSet ReturnStmt_extent;
    public ReturnStmtSet ReturnStmt_instances() {
        return ReturnStmt_extent;
    }
    private RuntimeChannelSet RuntimeChannel_extent;
    public RuntimeChannelSet RuntimeChannel_instances() {
        return RuntimeChannel_extent;
    }
    private SEMEventSet SEMEvent_extent;
    public SEMEventSet SEMEvent_instances() {
        return SEMEvent_extent;
    }
    private SM_SMSet SM_SM_extent;
    public SM_SMSet SM_SM_instances() {
        return SM_SM_extent;
    }
    private S_ENUMSet S_ENUM_extent;
    public S_ENUMSet S_ENUM_instances() {
        return S_ENUM_extent;
    }
    private S_SYNCSet S_SYNC_extent;
    public S_SYNCSet S_SYNC_instances() {
        return S_SYNC_extent;
    }
    private SatisfactionInComponentSet SatisfactionInComponent_extent;
    public SatisfactionInComponentSet SatisfactionInComponent_instances() {
        return SatisfactionInComponent_extent;
    }
    private SatisfactionSet Satisfaction_extent;
    public SatisfactionSet Satisfaction_instances() {
        return Satisfaction_extent;
    }
    private SearchResultSetSet SearchResultSet_extent;
    public SearchResultSetSet SearchResultSet_instances() {
        return SearchResultSet_extent;
    }
    private SelectFromInstancesWhereSet SelectFromInstancesWhere_extent;
    public SelectFromInstancesWhereSet SelectFromInstancesWhere_instances() {
        return SelectFromInstancesWhere_extent;
    }
    private SelectFromInstancesSet SelectFromInstances_extent;
    public SelectFromInstancesSet SelectFromInstances_instances() {
        return SelectFromInstances_extent;
    }
    private SelectRelatedBySet SelectRelatedBy_extent;
    public SelectRelatedBySet SelectRelatedBy_instances() {
        return SelectRelatedBy_extent;
    }
    private SelectRelatedWhereSet SelectRelatedWhere_extent;
    public SelectRelatedWhereSet SelectRelatedWhere_instances() {
        return SelectRelatedWhere_extent;
    }
    private SelectRelatedSet SelectRelated_extent;
    public SelectRelatedSet SelectRelated_instances() {
        return SelectRelated_extent;
    }
    private SelectSet Select_extent;
    public SelectSet Select_instances() {
        return Select_extent;
    }
    private SelectedReferenceSet SelectedReference_extent;
    public SelectedReferenceSet SelectedReference_instances() {
        return SelectedReference_extent;
    }
    private SelectedSet Selected_extent;
    public SelectedSet Selected_instances() {
        return Selected_extent;
    }
    private SelectorSet Selector_extent;
    public SelectorSet Selector_instances() {
        return Selector_extent;
    }
    private SelfQueueEntrySet SelfQueueEntry_extent;
    public SelfQueueEntrySet SelfQueueEntry_instances() {
        return SelfQueueEntry_extent;
    }
    private SendSignalSet SendSignal_extent;
    public SendSignalSet SendSignal_instances() {
        return SendSignal_extent;
    }
    private ServiceInSequenceSet ServiceInSequence_extent;
    public ServiceInSequenceSet ServiceInSequence_instances() {
        return ServiceInSequence_extent;
    }
    private SetSelectorSet SetSelector_extent;
    public SetSelectorSet SetSelector_instances() {
        return SetSelector_extent;
    }
    private SignalEventSet SignalEvent_extent;
    public SignalEventSet SignalEvent_instances() {
        return SignalEvent_extent;
    }
    private SignalInvocationSet SignalInvocation_extent;
    public SignalInvocationSet SignalInvocation_instances() {
        return SignalInvocation_extent;
    }
    private SignalMessageSet SignalMessage_extent;
    public SignalMessageSet SignalMessage_instances() {
        return SignalMessage_extent;
    }
    private SimpleAssociationSet SimpleAssociation_extent;
    public SimpleAssociationSet SimpleAssociation_instances() {
        return SimpleAssociation_extent;
    }
    private StackFrameSet StackFrame_extent;
    public StackFrameSet StackFrame_instances() {
        return StackFrame_extent;
    }
    private StackSet Stack_extent;
    public StackSet Stack_instances() {
        return Stack_extent;
    }
    private StateActionBodySet StateActionBody_extent;
    public StateActionBodySet StateActionBody_instances() {
        return StateActionBody_extent;
    }
    private StateEventMatrixEntrySet StateEventMatrixEntry_extent;
    public StateEventMatrixEntrySet StateEventMatrixEntry_instances() {
        return StateEventMatrixEntry_extent;
    }
    private StateMachineEventDataItemSet StateMachineEventDataItem_extent;
    public StateMachineEventDataItemSet StateMachineEventDataItem_instances() {
        return StateMachineEventDataItem_extent;
    }
    private StateMachineEventSet StateMachineEvent_extent;
    public StateMachineEventSet StateMachineEvent_instances() {
        return StateMachineEvent_extent;
    }
    private StateMachineStateSet StateMachineState_extent;
    public StateMachineStateSet StateMachineState_instances() {
        return StateMachineState_extent;
    }
    private StateMachineSet StateMachine_extent;
    public StateMachineSet StateMachine_instances() {
        return StateMachine_extent;
    }
    private StateTransitionSet StateTransition_extent;
    public StateTransitionSet StateTransition_instances() {
        return StateTransition_extent;
    }
    private StateSet State_extent;
    public StateSet State_instances() {
        return State_extent;
    }
    private StatementSet Statement_extent;
    public StatementSet Statement_instances() {
        return Statement_extent;
    }
    private StructureMemberSet StructureMember_extent;
    public StructureMemberSet StructureMember_instances() {
        return StructureMember_extent;
    }
    private StructuredDataTypeSet StructuredDataType_extent;
    public StructuredDataTypeSet StructuredDataType_instances() {
        return StructuredDataType_extent;
    }
    private SubtypeSupertypeAssociationSet SubtypeSupertypeAssociation_extent;
    public SubtypeSupertypeAssociationSet SubtypeSupertypeAssociation_instances() {
        return SubtypeSupertypeAssociation_extent;
    }
    private SymbolicConstantValueSet SymbolicConstantValue_extent;
    public SymbolicConstantValueSet SymbolicConstantValue_instances() {
        return SymbolicConstantValue_extent;
    }
    private SymbolicConstantSet SymbolicConstant_extent;
    public SymbolicConstantSet SymbolicConstant_instances() {
        return SymbolicConstant_extent;
    }
    private SynchronousMessageSet SynchronousMessage_extent;
    public SynchronousMessageSet SynchronousMessage_instances() {
        return SynchronousMessage_extent;
    }
    private SystemModelSet SystemModel_extent;
    public SystemModelSet SystemModel_instances() {
        return SystemModel_extent;
    }
    private TerminatorServiceParameterSet TerminatorServiceParameter_extent;
    public TerminatorServiceParameterSet TerminatorServiceParameter_instances() {
        return TerminatorServiceParameter_extent;
    }
    private TerminatorServiceSequenceSet TerminatorServiceSequence_extent;
    public TerminatorServiceSequenceSet TerminatorServiceSequence_instances() {
        return TerminatorServiceSequence_extent;
    }
    private TerminatorServiceSet TerminatorService_extent;
    public TerminatorServiceSet TerminatorService_instances() {
        return TerminatorService_extent;
    }
    private TerminatorSet Terminator_extent;
    public TerminatorSet Terminator_instances() {
        return Terminator_extent;
    }
    private TimeSpanSet TimeSpan_extent;
    public TimeSpanSet TimeSpan_instances() {
        return TimeSpan_extent;
    }
    private TimerSet Timer_extent;
    public TimerSet Timer_instances() {
        return Timer_extent;
    }
    private TimingMarkSet TimingMark_extent;
    public TimingMarkSet TimingMark_instances() {
        return TimingMark_extent;
    }
    private TransientValueReferenceSet TransientValueReference_extent;
    public TransientValueReferenceSet TransientValueReference_instances() {
        return TransientValueReference_extent;
    }
    private TransientVarSet TransientVar_extent;
    public TransientVarSet TransientVar_instances() {
        return TransientVar_extent;
    }
    private TransitionActionBodySet TransitionActionBody_extent;
    public TransitionActionBodySet TransitionActionBody_instances() {
        return TransitionActionBody_extent;
    }
    private TransitionActionHomeSet TransitionActionHome_extent;
    public TransitionActionHomeSet TransitionActionHome_instances() {
        return TransitionActionHome_extent;
    }
    private TransitionTableCellSet TransitionTableCell_extent;
    public TransitionTableCellSet TransitionTableCell_instances() {
        return TransitionTableCell_extent;
    }
    private TransitionTableRowSet TransitionTableRow_extent;
    public TransitionTableRowSet TransitionTableRow_instances() {
        return TransitionTableRow_extent;
    }
    private TransitionSet Transition_extent;
    public TransitionSet Transition_instances() {
        return Transition_extent;
    }
    private TypeImportReferenceSet TypeImportReference_extent;
    public TypeImportReferenceSet TypeImportReference_instances() {
        return TypeImportReference_extent;
    }
    private TypeImportSet TypeImport_extent;
    public TypeImportSet TypeImport_instances() {
        return TypeImport_extent;
    }
    private TypeReferenceSet TypeReference_extent;
    public TypeReferenceSet TypeReference_instances() {
        return TypeReference_extent;
    }
    private TypeSet Type_extent;
    public TypeSet Type_instances() {
        return Type_extent;
    }
    private UnaryOperationSet UnaryOperation_extent;
    public UnaryOperationSet UnaryOperation_instances() {
        return UnaryOperation_extent;
    }
    private UnrelateSmtSet UnrelateSmt_extent;
    public UnrelateSmtSet UnrelateSmt_instances() {
        return UnrelateSmt_extent;
    }
    private UnrelateUsingSet UnrelateUsing_extent;
    public UnrelateUsingSet UnrelateUsing_instances() {
        return UnrelateUsing_extent;
    }
    private UnrelateSet Unrelate_extent;
    public UnrelateSet Unrelate_instances() {
        return Unrelate_extent;
    }
    private UnresolvedTypeSet UnresolvedType_extent;
    public UnresolvedTypeSet UnresolvedType_instances() {
        return UnresolvedType_extent;
    }
    private UseCaseAssociationSet UseCaseAssociation_extent;
    public UseCaseAssociationSet UseCaseAssociation_instances() {
        return UseCaseAssociation_extent;
    }
    private UseCaseParticipantSet UseCaseParticipant_extent;
    public UseCaseParticipantSet UseCaseParticipant_instances() {
        return UseCaseParticipant_extent;
    }
    private UserDataTypeSet UserDataType_extent;
    public UserDataTypeSet UserDataType_instances() {
        return UserDataType_extent;
    }
    private UserDefinedTypeSet UserDefinedType_extent;
    public UserDefinedTypeSet UserDefinedType_instances() {
        return UserDefinedType_extent;
    }
    private UtilityFunctionSet UtilityFunction_extent;
    public UtilityFunctionSet UtilityFunction_instances() {
        return UtilityFunction_extent;
    }
    private UtilityReferenceSet UtilityReference_extent;
    public UtilityReferenceSet UtilityReference_instances() {
        return UtilityReference_extent;
    }
    private UtilitySet Utility_extent;
    public UtilitySet Utility_instances() {
        return Utility_extent;
    }
    private V_AERSet V_AER_extent;
    public V_AERSet V_AER_instances() {
        return V_AER_extent;
    }
    private V_BINSet V_BIN_extent;
    public V_BINSet V_BIN_instances() {
        return V_BIN_extent;
    }
    private V_INSSet V_INS_extent;
    public V_INSSet V_INS_instances() {
        return V_INS_extent;
    }
    private V_PARSet V_PAR_extent;
    public V_PARSet V_PAR_instances() {
        return V_PAR_extent;
    }
    private V_UNYSet V_UNY_extent;
    public V_UNYSet V_UNY_instances() {
        return V_UNY_extent;
    }
    private V_VARSet V_VAR_extent;
    public V_VARSet V_VAR_instances() {
        return V_VAR_extent;
    }
    private ValueInStackFrameSet ValueInStackFrame_extent;
    public ValueInStackFrameSet ValueInStackFrame_instances() {
        return ValueInStackFrame_extent;
    }
    private ValueSet Value_extent;
    public ValueSet Value_instances() {
        return Value_extent;
    }
    private VariableInScopeSet VariableInScope_extent;
    public VariableInScopeSet VariableInScope_instances() {
        return VariableInScope_extent;
    }
    private VariableLocationSet VariableLocation_extent;
    public VariableLocationSet VariableLocation_instances() {
        return VariableLocation_extent;
    }
    private VariableReferenceSet VariableReference_extent;
    public VariableReferenceSet VariableReference_instances() {
        return VariableReference_extent;
    }
    private VariableSet Variable_extent;
    public VariableSet Variable_instances() {
        return Variable_extent;
    }
    private WhereSet Where_extent;
    public WhereSet Where_instances() {
        return Where_extent;
    }
    private WhileSmtSet WhileSmt_extent;
    public WhileSmtSet WhileSmt_instances() {
        return WhileSmt_extent;
    }
    private WhileStmtSet WhileStmt_extent;
    public WhileStmtSet WhileStmt_instances() {
        return WhileStmt_extent;
    }


    // relationship selections
    private IRelationshipSet R1000_MessageArgument_belongs_to_informal_MSG_M_extent;
    public IRelationshipSet R1000_MessageArgument_belongs_to_informal_MSG_Ms() throws XtumlException {
        return R1000_MessageArgument_belongs_to_informal_MSG_M_extent;
    }
    private IRelationshipSet R1001_MessageArgument_belongs_to_formal_MSG_M_extent;
    public IRelationshipSet R1001_MessageArgument_belongs_to_formal_MSG_Ms() throws XtumlException {
        return R1001_MessageArgument_belongs_to_formal_MSG_M_extent;
    }
    private IRelationshipSet R1007_MSG_M_has_destination_InteractionParticipant_extent;
    public IRelationshipSet R1007_MSG_M_has_destination_InteractionParticipants() throws XtumlException {
        return R1007_MSG_M_has_destination_InteractionParticipant_extent;
    }
    private IRelationshipSet R1008_MSG_M_has_source_InteractionParticipant_extent;
    public IRelationshipSet R1008_MSG_M_has_source_InteractionParticipants() throws XtumlException {
        return R1008_MSG_M_has_source_InteractionParticipant_extent;
    }
    private IRelationshipSet R1009_EventMessage_generates_StateMachineEvent_extent;
    public IRelationshipSet R1009_EventMessage_generates_StateMachineEvents() throws XtumlException {
        return R1009_EventMessage_generates_StateMachineEvent_extent;
    }
    private IRelationshipSet R1010_FunctionMessage_is_invocation_of_S_SYNC_extent;
    public IRelationshipSet R1010_FunctionMessage_is_invocation_of_S_SYNCs() throws XtumlException {
        return R1010_FunctionMessage_is_invocation_of_S_SYNC_extent;
    }
    private IRelationshipSet R1011_OperationMessage_is_invocation_of_O_TFR_extent;
    public IRelationshipSet R1011_OperationMessage_is_invocation_of_O_TFRs() throws XtumlException {
        return R1011_OperationMessage_is_invocation_of_O_TFR_extent;
    }
    private IRelationshipSet R1012_BridgeMessage_is_invocation_of_Bridge_extent;
    public IRelationshipSet R1012_BridgeMessage_is_invocation_of_Bridges() throws XtumlException {
        return R1012_BridgeMessage_is_invocation_of_Bridge_extent;
    }
    private IRelationshipSet R1013_BridgeArgument_is_a_MessageArgument_extent;
    public IRelationshipSet R1013_BridgeArgument_is_a_MessageArguments() throws XtumlException {
        return R1013_BridgeArgument_is_a_MessageArgument_extent;
    }
    private IRelationshipSet R1013_EventArgument_is_a_MessageArgument_extent;
    public IRelationshipSet R1013_EventArgument_is_a_MessageArguments() throws XtumlException {
        return R1013_EventArgument_is_a_MessageArgument_extent;
    }
    private IRelationshipSet R1013_ExecutablePropertyArgument_is_a_MessageArgument_extent;
    public IRelationshipSet R1013_ExecutablePropertyArgument_is_a_MessageArguments() throws XtumlException {
        return R1013_ExecutablePropertyArgument_is_a_MessageArgument_extent;
    }
    private IRelationshipSet R1013_FunctionArgument_is_a_MessageArgument_extent;
    public IRelationshipSet R1013_FunctionArgument_is_a_MessageArguments() throws XtumlException {
        return R1013_FunctionArgument_is_a_MessageArgument_extent;
    }
    private IRelationshipSet R1013_InformalArgument_is_a_MessageArgument_extent;
    public IRelationshipSet R1013_InformalArgument_is_a_MessageArguments() throws XtumlException {
        return R1013_InformalArgument_is_a_MessageArgument_extent;
    }
    private IRelationshipSet R1013_OperationArgument_is_a_MessageArgument_extent;
    public IRelationshipSet R1013_OperationArgument_is_a_MessageArguments() throws XtumlException {
        return R1013_OperationArgument_is_a_MessageArgument_extent;
    }
    private IRelationshipSet R1014_BridgeArgument_is_represented_by_BridgeParameter_extent;
    public IRelationshipSet R1014_BridgeArgument_is_represented_by_BridgeParameters() throws XtumlException {
        return R1014_BridgeArgument_is_represented_by_BridgeParameter_extent;
    }
    private IRelationshipSet R1015_OperationArgument_is_represented_by_OperationParameter_extent;
    public IRelationshipSet R1015_OperationArgument_is_represented_by_OperationParameters() throws XtumlException {
        return R1015_OperationArgument_is_represented_by_OperationParameter_extent;
    }
    private IRelationshipSet R1016_FunctionArgument_is_represented_by_FunctionParameter_extent;
    public IRelationshipSet R1016_FunctionArgument_is_represented_by_FunctionParameters() throws XtumlException {
        return R1016_FunctionArgument_is_represented_by_FunctionParameter_extent;
    }
    private IRelationshipSet R1017_EventArgument_is_represented_by_StateMachineEventDataItem_extent;
    public IRelationshipSet R1017_EventArgument_is_represented_by_StateMachineEventDataItems() throws XtumlException {
        return R1017_EventArgument_is_represented_by_StateMachineEventDataItem_extent;
    }
    private IRelationshipSet R1018_AsynchronousMessage_is_a_MSG_M_extent;
    public IRelationshipSet R1018_AsynchronousMessage_is_a_MSG_Ms() throws XtumlException {
        return R1018_AsynchronousMessage_is_a_MSG_M_extent;
    }
    private IRelationshipSet R1018_ReturnMessage_is_a_MSG_M_extent;
    public IRelationshipSet R1018_ReturnMessage_is_a_MSG_Ms() throws XtumlException {
        return R1018_ReturnMessage_is_a_MSG_M_extent;
    }
    private IRelationshipSet R1018_SynchronousMessage_is_a_MSG_M_extent;
    public IRelationshipSet R1018_SynchronousMessage_is_a_MSG_Ms() throws XtumlException {
        return R1018_SynchronousMessage_is_a_MSG_M_extent;
    }
    private IRelationshipSet R1019_EventMessage_is_a_AsynchronousMessage_extent;
    public IRelationshipSet R1019_EventMessage_is_a_AsynchronousMessages() throws XtumlException {
        return R1019_EventMessage_is_a_AsynchronousMessage_extent;
    }
    private IRelationshipSet R1019_InformalAsynchronousMessage_is_a_AsynchronousMessage_extent;
    public IRelationshipSet R1019_InformalAsynchronousMessage_is_a_AsynchronousMessages() throws XtumlException {
        return R1019_InformalAsynchronousMessage_is_a_AsynchronousMessage_extent;
    }
    private IRelationshipSet R1019_SignalMessage_is_a_AsynchronousMessage_extent;
    public IRelationshipSet R1019_SignalMessage_is_a_AsynchronousMessages() throws XtumlException {
        return R1019_SignalMessage_is_a_AsynchronousMessage_extent;
    }
    private IRelationshipSet R101_ImportedClass_represents_ModelClass_extent;
    public IRelationshipSet R101_ImportedClass_represents_ModelClasss() throws XtumlException {
        return R101_ImportedClass_represents_ModelClass_extent;
    }
    private IRelationshipSet R1020_BridgeMessage_is_a_SynchronousMessage_extent;
    public IRelationshipSet R1020_BridgeMessage_is_a_SynchronousMessages() throws XtumlException {
        return R1020_BridgeMessage_is_a_SynchronousMessage_extent;
    }
    private IRelationshipSet R1020_FunctionMessage_is_a_SynchronousMessage_extent;
    public IRelationshipSet R1020_FunctionMessage_is_a_SynchronousMessages() throws XtumlException {
        return R1020_FunctionMessage_is_a_SynchronousMessage_extent;
    }
    private IRelationshipSet R1020_InformalSynchronousMessage_is_a_SynchronousMessage_extent;
    public IRelationshipSet R1020_InformalSynchronousMessage_is_a_SynchronousMessages() throws XtumlException {
        return R1020_InformalSynchronousMessage_is_a_SynchronousMessage_extent;
    }
    private IRelationshipSet R1020_InterfaceOperationMessage_is_a_SynchronousMessage_extent;
    public IRelationshipSet R1020_InterfaceOperationMessage_is_a_SynchronousMessages() throws XtumlException {
        return R1020_InterfaceOperationMessage_is_a_SynchronousMessage_extent;
    }
    private IRelationshipSet R1020_OperationMessage_is_a_SynchronousMessage_extent;
    public IRelationshipSet R1020_OperationMessage_is_a_SynchronousMessages() throws XtumlException {
        return R1020_OperationMessage_is_a_SynchronousMessage_extent;
    }
    private IRelationshipSet R1021_SignalMessage_sends_InterfaceSignal_extent;
    public IRelationshipSet R1021_SignalMessage_sends_InterfaceSignals() throws XtumlException {
        return R1021_SignalMessage_sends_InterfaceSignal_extent;
    }
    private IRelationshipSet R1022_InterfaceOperationMessage_sends_InterfaceOperation_extent;
    public IRelationshipSet R1022_InterfaceOperationMessage_sends_InterfaceOperations() throws XtumlException {
        return R1022_InterfaceOperationMessage_sends_InterfaceOperation_extent;
    }
    private IRelationshipSet R1023_ExecutablePropertyArgument_is_represented_by_PropertyParameter_extent;
    public IRelationshipSet R1023_ExecutablePropertyArgument_is_represented_by_PropertyParameters() throws XtumlException {
        return R1023_ExecutablePropertyArgument_is_represented_by_PropertyParameter_extent;
    }
    private IRelationshipSet R102_O_ATTR_abstracts_characteristics_of_ModelClass_extent;
    public IRelationshipSet R102_O_ATTR_abstracts_characteristics_of_ModelClasss() throws XtumlException {
        return R102_O_ATTR_abstracts_characteristics_of_ModelClass_extent;
    }
    private IRelationshipSet R103_O_ATTR_succeeds_O_ATTR_extent;
    public IRelationshipSet R103_O_ATTR_succeeds_O_ATTRs() throws XtumlException {
        return R103_O_ATTR_succeeds_O_ATTR_extent;
    }
    private IRelationshipSet R104_ClassIdentifier_identifies_ModelClass_extent;
    public IRelationshipSet R104_ClassIdentifier_identifies_ModelClasss() throws XtumlException {
        return R104_ClassIdentifier_identifies_ModelClass_extent;
    }
    private IRelationshipSet R105_ClassIdentifierAttribute_is_made_up_of__O_ATTR_extent;
    public IRelationshipSet R105_ClassIdentifierAttribute_is_made_up_of__O_ATTRs() throws XtumlException {
        return R105_ClassIdentifierAttribute_is_made_up_of__O_ATTR_extent;
    }
    private IRelationshipSet R105_ClassIdentifierAttribute_is_part_of__ClassIdentifier_extent;
    public IRelationshipSet R105_ClassIdentifierAttribute_is_part_of__ClassIdentifiers() throws XtumlException {
        return R105_ClassIdentifierAttribute_is_part_of__ClassIdentifier_extent;
    }
    private IRelationshipSet R106_BaseAttribute_is_a_O_ATTR_extent;
    public IRelationshipSet R106_BaseAttribute_is_a_O_ATTRs() throws XtumlException {
        return R106_BaseAttribute_is_a_O_ATTR_extent;
    }
    private IRelationshipSet R106_ReferentialAttribute_is_a_O_ATTR_extent;
    public IRelationshipSet R106_ReferentialAttribute_is_a_O_ATTRs() throws XtumlException {
        return R106_ReferentialAttribute_is_a_O_ATTR_extent;
    }
    private IRelationshipSet R107_DerivedBaseAttribute_is_a_BaseAttribute_extent;
    public IRelationshipSet R107_DerivedBaseAttribute_is_a_BaseAttributes() throws XtumlException {
        return R107_DerivedBaseAttribute_is_a_BaseAttribute_extent;
    }
    private IRelationshipSet R107_NewBaseAttribute_is_a_BaseAttribute_extent;
    public IRelationshipSet R107_NewBaseAttribute_is_a_BaseAttributes() throws XtumlException {
        return R107_NewBaseAttribute_is_a_BaseAttribute_extent;
    }
    private IRelationshipSet R108_AttributeReferenceInClass_is_resolved_by_ReferentialAttribute_extent;
    public IRelationshipSet R108_AttributeReferenceInClass_is_resolved_by_ReferentialAttributes() throws XtumlException {
        return R108_AttributeReferenceInClass_is_resolved_by_ReferentialAttribute_extent;
    }
    private IRelationshipSet R109_ReferredToClassInAssoc_is_identified_in_this_association_by_ClassIdentifier_extent;
    public IRelationshipSet R109_ReferredToClassInAssoc_is_identified_in_this_association_by_ClassIdentifiers() throws XtumlException {
        return R109_ReferredToClassInAssoc_is_identified_in_this_association_by_ClassIdentifier_extent;
    }
    private IRelationshipSet R1103_ActivityEdge_target_ActivityNode_extent;
    public IRelationshipSet R1103_ActivityEdge_target_ActivityNodes() throws XtumlException {
        return R1103_ActivityEdge_target_ActivityNode_extent;
    }
    private IRelationshipSet R1104_ActivityEdge_source_ActivityNode_extent;
    public IRelationshipSet R1104_ActivityEdge_source_ActivityNodes() throws XtumlException {
        return R1104_ActivityEdge_source_ActivityNode_extent;
    }
    private IRelationshipSet R1105_ActionNode_is_a_ActivityNode_extent;
    public IRelationshipSet R1105_ActionNode_is_a_ActivityNodes() throws XtumlException {
        return R1105_ActionNode_is_a_ActivityNode_extent;
    }
    private IRelationshipSet R1105_ControlNode_is_a_ActivityNode_extent;
    public IRelationshipSet R1105_ControlNode_is_a_ActivityNodes() throws XtumlException {
        return R1105_ControlNode_is_a_ActivityNode_extent;
    }
    private IRelationshipSet R1105_ObjectNode_is_a_ActivityNode_extent;
    public IRelationshipSet R1105_ObjectNode_is_a_ActivityNodes() throws XtumlException {
        return R1105_ObjectNode_is_a_ActivityNode_extent;
    }
    private IRelationshipSet R1106_ActivityFinalNode_is_a_ControlNode_extent;
    public IRelationshipSet R1106_ActivityFinalNode_is_a_ControlNodes() throws XtumlException {
        return R1106_ActivityFinalNode_is_a_ControlNode_extent;
    }
    private IRelationshipSet R1106_DecisionMergeNode_is_a_ControlNode_extent;
    public IRelationshipSet R1106_DecisionMergeNode_is_a_ControlNodes() throws XtumlException {
        return R1106_DecisionMergeNode_is_a_ControlNode_extent;
    }
    private IRelationshipSet R1106_FlowFinalNode_is_a_ControlNode_extent;
    public IRelationshipSet R1106_FlowFinalNode_is_a_ControlNodes() throws XtumlException {
        return R1106_FlowFinalNode_is_a_ControlNode_extent;
    }
    private IRelationshipSet R1106_ForkJoinNode_is_a_ControlNode_extent;
    public IRelationshipSet R1106_ForkJoinNode_is_a_ControlNodes() throws XtumlException {
        return R1106_ForkJoinNode_is_a_ControlNode_extent;
    }
    private IRelationshipSet R1106_InitialNode_is_a_ControlNode_extent;
    public IRelationshipSet R1106_InitialNode_is_a_ControlNodes() throws XtumlException {
        return R1106_InitialNode_is_a_ControlNode_extent;
    }
    private IRelationshipSet R1107_AcceptEvent_is_a_ActionNode_extent;
    public IRelationshipSet R1107_AcceptEvent_is_a_ActionNodes() throws XtumlException {
        return R1107_AcceptEvent_is_a_ActionNode_extent;
    }
    private IRelationshipSet R1107_ActivityDiagramAction_is_a_ActionNode_extent;
    public IRelationshipSet R1107_ActivityDiagramAction_is_a_ActionNodes() throws XtumlException {
        return R1107_ActivityDiagramAction_is_a_ActionNode_extent;
    }
    private IRelationshipSet R1107_SendSignal_is_a_ActionNode_extent;
    public IRelationshipSet R1107_SendSignal_is_a_ActionNodes() throws XtumlException {
        return R1107_SendSignal_is_a_ActionNode_extent;
    }
    private IRelationshipSet R110_ReferredToIdentifierAttribute_identifies_for_this_association_ReferredToClassInAssoc_extent;
    public IRelationshipSet R110_ReferredToIdentifierAttribute_identifies_for_this_association_ReferredToClassInAssocs() throws XtumlException {
        return R110_ReferredToIdentifierAttribute_identifies_for_this_association_ReferredToClassInAssoc_extent;
    }
    private IRelationshipSet R110_ReferredToIdentifierAttribute_is_identified_in_this_association_by_ClassIdentifierAttribute_extent;
    public IRelationshipSet R110_ReferredToIdentifierAttribute_is_identified_in_this_association_by_ClassIdentifierAttributes() throws XtumlException {
        return R110_ReferredToIdentifierAttribute_is_identified_in_this_association_by_ClassIdentifierAttribute_extent;
    }
    private IRelationshipSet R1112_AcceptEventAction_is_a_AcceptEvent_extent;
    public IRelationshipSet R1112_AcceptEventAction_is_a_AcceptEvents() throws XtumlException {
        return R1112_AcceptEventAction_is_a_AcceptEvent_extent;
    }
    private IRelationshipSet R1112_AcceptTimeEventAction_is_a_AcceptEvent_extent;
    public IRelationshipSet R1112_AcceptTimeEventAction_is_a_AcceptEvents() throws XtumlException {
        return R1112_AcceptTimeEventAction_is_a_AcceptEvent_extent;
    }
    private IRelationshipSet R111_AttributeReferenceInClass_is_used_to_refer_class_by_ReferringClassInAssoc_extent;
    public IRelationshipSet R111_AttributeReferenceInClass_is_used_to_refer_class_by_ReferringClassInAssocs() throws XtumlException {
        return R111_AttributeReferenceInClass_is_used_to_refer_class_by_ReferringClassInAssoc_extent;
    }
    private IRelationshipSet R111_AttributeReferenceInClass_refers_across_association_via_ReferredToIdentifierAttribute_extent;
    public IRelationshipSet R111_AttributeReferenceInClass_refers_across_association_via_ReferredToIdentifierAttributes() throws XtumlException {
        return R111_AttributeReferenceInClass_refers_across_association_via_ReferredToIdentifierAttribute_extent;
    }
    private IRelationshipSet R1128_CommunicationLink_may_be_formalized_against_Association_extent;
    public IRelationshipSet R1128_CommunicationLink_may_be_formalized_against_Associations() throws XtumlException {
        return R1128_CommunicationLink_may_be_formalized_against_Association_extent;
    }
    private IRelationshipSet R112_AttributeReferenceInClass_succeeds_AttributeReferenceInClass_extent;
    public IRelationshipSet R112_AttributeReferenceInClass_succeeds_AttributeReferenceInClasss() throws XtumlException {
        return R112_AttributeReferenceInClass_succeeds_AttributeReferenceInClass_extent;
    }
    private IRelationshipSet R1133_CommunicationLink_starts_at_InteractionParticipant_extent;
    public IRelationshipSet R1133_CommunicationLink_starts_at_InteractionParticipants() throws XtumlException {
        return R1133_CommunicationLink_starts_at_InteractionParticipant_extent;
    }
    private IRelationshipSet R1134_CommunicationLink_is_destined_for_InteractionParticipant_extent;
    public IRelationshipSet R1134_CommunicationLink_is_destined_for_InteractionParticipants() throws XtumlException {
        return R1134_CommunicationLink_is_destined_for_InteractionParticipant_extent;
    }
    private IRelationshipSet R113_ReferentialAttribute_navigates_back_to_BaseAttribute_extent;
    public IRelationshipSet R113_ReferentialAttribute_navigates_back_to_BaseAttributes() throws XtumlException {
        return R113_ReferentialAttribute_navigates_back_to_BaseAttribute_extent;
    }
    private IRelationshipSet R114_O_ATTR_defines_type_of_DataType_extent;
    public IRelationshipSet R114_O_ATTR_defines_type_of_DataTypes() throws XtumlException {
        return R114_O_ATTR_defines_type_of_DataType_extent;
    }
    private IRelationshipSet R115_O_TFR_is_associated_with_ModelClass_extent;
    public IRelationshipSet R115_O_TFR_is_associated_with_ModelClasss() throws XtumlException {
        return R115_O_TFR_is_associated_with_ModelClass_extent;
    }
    private IRelationshipSet R116_O_TFR_return_code_is_defined_by_DataType_extent;
    public IRelationshipSet R116_O_TFR_return_code_is_defined_by_DataTypes() throws XtumlException {
        return R116_O_TFR_return_code_is_defined_by_DataType_extent;
    }
    private IRelationshipSet R117_OperationParameter_is_part_of__O_TFR_extent;
    public IRelationshipSet R117_OperationParameter_is_part_of__O_TFRs() throws XtumlException {
        return R117_OperationParameter_is_part_of__O_TFR_extent;
    }
    private IRelationshipSet R118_OperationParameter_is_defined_by_DataType_extent;
    public IRelationshipSet R118_OperationParameter_is_defined_by_DataTypes() throws XtumlException {
        return R118_OperationParameter_is_defined_by_DataType_extent;
    }
    private IRelationshipSet R1206_UseCaseAssociation_starts_at_InteractionParticipant_extent;
    public IRelationshipSet R1206_UseCaseAssociation_starts_at_InteractionParticipants() throws XtumlException {
        return R1206_UseCaseAssociation_starts_at_InteractionParticipant_extent;
    }
    private IRelationshipSet R1207_UseCaseAssociation_ends_at_InteractionParticipant_extent;
    public IRelationshipSet R1207_UseCaseAssociation_ends_at_InteractionParticipants() throws XtumlException {
        return R1207_UseCaseAssociation_ends_at_InteractionParticipant_extent;
    }
    private IRelationshipSet R120_Dimensions_specifies_occurrences_of_O_ATTR_extent;
    public IRelationshipSet R120_Dimensions_specifies_occurrences_of_O_ATTRs() throws XtumlException {
        return R120_Dimensions_specifies_occurrences_of_O_ATTR_extent;
    }
    private IRelationshipSet R1210_BinaryAssociation_is_a_UseCaseAssociation_extent;
    public IRelationshipSet R1210_BinaryAssociation_is_a_UseCaseAssociations() throws XtumlException {
        return R1210_BinaryAssociation_is_a_UseCaseAssociation_extent;
    }
    private IRelationshipSet R1210_Extend_is_a_UseCaseAssociation_extent;
    public IRelationshipSet R1210_Extend_is_a_UseCaseAssociations() throws XtumlException {
        return R1210_Extend_is_a_UseCaseAssociation_extent;
    }
    private IRelationshipSet R1210_Generalization_is_a_UseCaseAssociation_extent;
    public IRelationshipSet R1210_Generalization_is_a_UseCaseAssociations() throws XtumlException {
        return R1210_Generalization_is_a_UseCaseAssociation_extent;
    }
    private IRelationshipSet R1210_Include_is_a_UseCaseAssociation_extent;
    public IRelationshipSet R1210_Include_is_a_UseCaseAssociations() throws XtumlException {
        return R1210_Include_is_a_UseCaseAssociation_extent;
    }
    private IRelationshipSet R121_Dimensions_specifies_occurrences_of_OperationParameter_extent;
    public IRelationshipSet R121_Dimensions_specifies_occurrences_of_OperationParameters() throws XtumlException {
        return R121_Dimensions_specifies_occurrences_of_OperationParameter_extent;
    }
    private IRelationshipSet R122_Dimensions_defines_return_value_dimensions_for_O_TFR_extent;
    public IRelationshipSet R122_Dimensions_defines_return_value_dimensions_for_O_TFRs() throws XtumlException {
        return R122_Dimensions_defines_return_value_dimensions_for_O_TFR_extent;
    }
    private IRelationshipSet R123_InstanceReferenceDataType_provides_reference_datatype_for_ModelClass_extent;
    public IRelationshipSet R123_InstanceReferenceDataType_provides_reference_datatype_for_ModelClasss() throws XtumlException {
        return R123_InstanceReferenceDataType_provides_reference_datatype_for_ModelClass_extent;
    }
    private IRelationshipSet R124_OperationParameter_succeeds_OperationParameter_extent;
    public IRelationshipSet R124_OperationParameter_succeeds_OperationParameters() throws XtumlException {
        return R124_OperationParameter_succeeds_OperationParameter_extent;
    }
    private IRelationshipSet R125_O_TFR_succeeds_O_TFR_extent;
    public IRelationshipSet R125_O_TFR_succeeds_O_TFRs() throws XtumlException {
        return R125_O_TFR_succeeds_O_TFR_extent;
    }
    private IRelationshipSet R126_Deferral_defers_execution_to_subtypes_across_Association_extent;
    public IRelationshipSet R126_Deferral_defers_execution_to_subtypes_across_Associations() throws XtumlException {
        return R126_Deferral_defers_execution_to_subtypes_across_Association_extent;
    }
    private IRelationshipSet R126_Deferral_delegates_execution_of_O_TFR_extent;
    public IRelationshipSet R126_Deferral_delegates_execution_of_O_TFRs() throws XtumlException {
        return R126_Deferral_delegates_execution_of_O_TFR_extent;
    }
    private IRelationshipSet R1401_EP_PKG_directly_contained_under_SystemModel_extent;
    public IRelationshipSet R1401_EP_PKG_directly_contained_under_SystemModels() throws XtumlException {
        return R1401_EP_PKG_directly_contained_under_SystemModel_extent;
    }
    private IRelationshipSet R1402_PackageReference_is_referenced_by_EP_PKG_extent;
    public IRelationshipSet R1402_PackageReference_is_referenced_by_EP_PKGs() throws XtumlException {
        return R1402_PackageReference_is_referenced_by_EP_PKG_extent;
    }
    private IRelationshipSet R1402_PackageReference_refers_to_EP_PKG_extent;
    public IRelationshipSet R1402_PackageReference_refers_to_EP_PKGs() throws XtumlException {
        return R1402_PackageReference_refers_to_EP_PKG_extent;
    }
    private IRelationshipSet R1405_EP_PKG_SystemModel_extent;
    public IRelationshipSet R1405_EP_PKG_SystemModels() throws XtumlException {
        return R1405_EP_PKG_SystemModel_extent;
    }
    private IRelationshipSet R1500_SymbolicConstant_is_defined_by_DataType_extent;
    public IRelationshipSet R1500_SymbolicConstant_is_defined_by_DataTypes() throws XtumlException {
        return R1500_SymbolicConstant_is_defined_by_DataType_extent;
    }
    private IRelationshipSet R1502_LeafSymbolicConstant_is_a_SymbolicConstant_extent;
    public IRelationshipSet R1502_LeafSymbolicConstant_is_a_SymbolicConstants() throws XtumlException {
        return R1502_LeafSymbolicConstant_is_a_SymbolicConstant_extent;
    }
    private IRelationshipSet R1503_LiteralSymbolicConstant_is_a_LeafSymbolicConstant_extent;
    public IRelationshipSet R1503_LiteralSymbolicConstant_is_a_LeafSymbolicConstants() throws XtumlException {
        return R1503_LiteralSymbolicConstant_is_a_LeafSymbolicConstant_extent;
    }
    private IRelationshipSet R1504_SymbolicConstant_is_contained_by_ConstantSpecification_extent;
    public IRelationshipSet R1504_SymbolicConstant_is_contained_by_ConstantSpecifications() throws XtumlException {
        return R1504_SymbolicConstant_is_contained_by_ConstantSpecification_extent;
    }
    private IRelationshipSet R1505_SymbolicConstant_succeeds_SymbolicConstant_extent;
    public IRelationshipSet R1505_SymbolicConstant_succeeds_SymbolicConstants() throws XtumlException {
        return R1505_SymbolicConstant_succeeds_SymbolicConstant_extent;
    }
    private IRelationshipSet R1650_Terminator_Deployment_extent;
    public IRelationshipSet R1650_Terminator_Deployments() throws XtumlException {
        return R1650_Terminator_Deployment_extent;
    }
    private IRelationshipSet R1651_TerminatorService_Terminator_extent;
    public IRelationshipSet R1651_TerminatorService_Terminators() throws XtumlException {
        return R1651_TerminatorService_Terminator_extent;
    }
    private IRelationshipSet R1652_TerminatorServiceParameter_TerminatorService_extent;
    public IRelationshipSet R1652_TerminatorServiceParameter_TerminatorServices() throws XtumlException {
        return R1652_TerminatorServiceParameter_TerminatorService_extent;
    }
    private IRelationshipSet R1653_TerminatorServiceParameter_DataType_extent;
    public IRelationshipSet R1653_TerminatorServiceParameter_DataTypes() throws XtumlException {
        return R1653_TerminatorServiceParameter_DataType_extent;
    }
    private IRelationshipSet R1654_TerminatorServiceParameter_succeeds_TerminatorServiceParameter_extent;
    public IRelationshipSet R1654_TerminatorServiceParameter_succeeds_TerminatorServiceParameters() throws XtumlException {
        return R1654_TerminatorServiceParameter_succeeds_TerminatorServiceParameter_extent;
    }
    private IRelationshipSet R1655_Dimensions_TerminatorServiceParameter_extent;
    public IRelationshipSet R1655_Dimensions_TerminatorServiceParameters() throws XtumlException {
        return R1655_Dimensions_TerminatorServiceParameter_extent;
    }
    private IRelationshipSet R1656_TerminatorService_DataType_extent;
    public IRelationshipSet R1656_TerminatorService_DataTypes() throws XtumlException {
        return R1656_TerminatorService_DataType_extent;
    }
    private IRelationshipSet R1657_Dimensions_TerminatorService_extent;
    public IRelationshipSet R1657_Dimensions_TerminatorServices() throws XtumlException {
        return R1657_Dimensions_TerminatorService_extent;
    }
    private IRelationshipSet R1658_TerminatorServiceSequence_Terminator_extent;
    public IRelationshipSet R1658_TerminatorServiceSequence_Terminators() throws XtumlException {
        return R1658_TerminatorServiceSequence_Terminator_extent;
    }
    private IRelationshipSet R1659_ServiceInSequence_TerminatorServiceSequence_extent;
    public IRelationshipSet R1659_ServiceInSequence_TerminatorServiceSequences() throws XtumlException {
        return R1659_ServiceInSequence_TerminatorServiceSequence_extent;
    }
    private IRelationshipSet R1660_ServiceInSequence_TerminatorService_extent;
    public IRelationshipSet R1660_ServiceInSequence_TerminatorServices() throws XtumlException {
        return R1660_ServiceInSequence_TerminatorService_extent;
    }
    private IRelationshipSet R1661_ServiceInSequence_succeeds_ServiceInSequence_extent;
    public IRelationshipSet R1661_ServiceInSequence_succeeds_ServiceInSequences() throws XtumlException {
        return R1661_ServiceInSequence_succeeds_ServiceInSequence_extent;
    }
    private IRelationshipSet R17_CoreDataType_is_a_DataType_extent;
    public IRelationshipSet R17_CoreDataType_is_a_DataTypes() throws XtumlException {
        return R17_CoreDataType_is_a_DataType_extent;
    }
    private IRelationshipSet R17_EnumerationDataType_is_a_DataType_extent;
    public IRelationshipSet R17_EnumerationDataType_is_a_DataTypes() throws XtumlException {
        return R17_EnumerationDataType_is_a_DataType_extent;
    }
    private IRelationshipSet R17_InstanceReferenceDataType_is_a_DataType_extent;
    public IRelationshipSet R17_InstanceReferenceDataType_is_a_DataTypes() throws XtumlException {
        return R17_InstanceReferenceDataType_is_a_DataType_extent;
    }
    private IRelationshipSet R17_StructuredDataType_is_a_DataType_extent;
    public IRelationshipSet R17_StructuredDataType_is_a_DataTypes() throws XtumlException {
        return R17_StructuredDataType_is_a_DataType_extent;
    }
    private IRelationshipSet R17_UserDataType_is_a_DataType_extent;
    public IRelationshipSet R17_UserDataType_is_a_DataTypes() throws XtumlException {
        return R17_UserDataType_is_a_DataType_extent;
    }
    private IRelationshipSet R18_UserDataType_are_defined_within_DataType_extent;
    public IRelationshipSet R18_UserDataType_are_defined_within_DataTypes() throws XtumlException {
        return R18_UserDataType_are_defined_within_DataType_extent;
    }
    private IRelationshipSet R19_Bridge_provides_access_to_ExternalEntity_extent;
    public IRelationshipSet R19_Bridge_provides_access_to_ExternalEntitys() throws XtumlException {
        return R19_Bridge_provides_access_to_ExternalEntity_extent;
    }
    private IRelationshipSet R201_ClassInAssociation_abstracts_association_between_instances_of_ModelClass_extent;
    public IRelationshipSet R201_ClassInAssociation_abstracts_association_between_instances_of_ModelClasss() throws XtumlException {
        return R201_ClassInAssociation_abstracts_association_between_instances_of_ModelClass_extent;
    }
    private IRelationshipSet R201_ClassInAssociation_has_instance_associations_abstracted_Association_extent;
    public IRelationshipSet R201_ClassInAssociation_has_instance_associations_abstracted_Associations() throws XtumlException {
        return R201_ClassInAssociation_has_instance_associations_abstracted_Association_extent;
    }
    private IRelationshipSet R202_ClassInAssociation_may_be_represented_by_ImportedClass_extent;
    public IRelationshipSet R202_ClassInAssociation_may_be_represented_by_ImportedClasss() throws XtumlException {
        return R202_ClassInAssociation_may_be_represented_by_ImportedClass_extent;
    }
    private IRelationshipSet R203_ClassAsDerivedOneSide_is_a_ClassInAssociation_extent;
    public IRelationshipSet R203_ClassAsDerivedOneSide_is_a_ClassInAssociations() throws XtumlException {
        return R203_ClassAsDerivedOneSide_is_a_ClassInAssociation_extent;
    }
    private IRelationshipSet R203_ClassAsDerivedOtherSide_is_a_ClassInAssociation_extent;
    public IRelationshipSet R203_ClassAsDerivedOtherSide_is_a_ClassInAssociations() throws XtumlException {
        return R203_ClassAsDerivedOtherSide_is_a_ClassInAssociation_extent;
    }
    private IRelationshipSet R203_ReferredToClassInAssoc_is_a_ClassInAssociation_extent;
    public IRelationshipSet R203_ReferredToClassInAssoc_is_a_ClassInAssociations() throws XtumlException {
        return R203_ReferredToClassInAssoc_is_a_ClassInAssociation_extent;
    }
    private IRelationshipSet R203_ReferringClassInAssoc_is_a_ClassInAssociation_extent;
    public IRelationshipSet R203_ReferringClassInAssoc_is_a_ClassInAssociations() throws XtumlException {
        return R203_ReferringClassInAssoc_is_a_ClassInAssociation_extent;
    }
    private IRelationshipSet R204_ClassAsAssociatedOneSide_is_a_ReferredToClassInAssoc_extent;
    public IRelationshipSet R204_ClassAsAssociatedOneSide_is_a_ReferredToClassInAssocs() throws XtumlException {
        return R204_ClassAsAssociatedOneSide_is_a_ReferredToClassInAssoc_extent;
    }
    private IRelationshipSet R204_ClassAsAssociatedOtherSide_is_a_ReferredToClassInAssoc_extent;
    public IRelationshipSet R204_ClassAsAssociatedOtherSide_is_a_ReferredToClassInAssocs() throws XtumlException {
        return R204_ClassAsAssociatedOtherSide_is_a_ReferredToClassInAssoc_extent;
    }
    private IRelationshipSet R204_ClassAsSimpleParticipant_is_a_ReferredToClassInAssoc_extent;
    public IRelationshipSet R204_ClassAsSimpleParticipant_is_a_ReferredToClassInAssocs() throws XtumlException {
        return R204_ClassAsSimpleParticipant_is_a_ReferredToClassInAssoc_extent;
    }
    private IRelationshipSet R204_ClassAsSupertype_is_a_ReferredToClassInAssoc_extent;
    public IRelationshipSet R204_ClassAsSupertype_is_a_ReferredToClassInAssocs() throws XtumlException {
        return R204_ClassAsSupertype_is_a_ReferredToClassInAssoc_extent;
    }
    private IRelationshipSet R205_ClassAsLink_is_a_ReferringClassInAssoc_extent;
    public IRelationshipSet R205_ClassAsLink_is_a_ReferringClassInAssocs() throws XtumlException {
        return R205_ClassAsLink_is_a_ReferringClassInAssoc_extent;
    }
    private IRelationshipSet R205_ClassAsSimpleFormalizer_is_a_ReferringClassInAssoc_extent;
    public IRelationshipSet R205_ClassAsSimpleFormalizer_is_a_ReferringClassInAssocs() throws XtumlException {
        return R205_ClassAsSimpleFormalizer_is_a_ReferringClassInAssoc_extent;
    }
    private IRelationshipSet R205_ClassAsSubtype_is_a_ReferringClassInAssoc_extent;
    public IRelationshipSet R205_ClassAsSubtype_is_a_ReferringClassInAssocs() throws XtumlException {
        return R205_ClassAsSubtype_is_a_ReferringClassInAssoc_extent;
    }
    private IRelationshipSet R206_DerivedAssociation_is_a_Association_extent;
    public IRelationshipSet R206_DerivedAssociation_is_a_Associations() throws XtumlException {
        return R206_DerivedAssociation_is_a_Association_extent;
    }
    private IRelationshipSet R206_LinkedAssociation_is_a_Association_extent;
    public IRelationshipSet R206_LinkedAssociation_is_a_Associations() throws XtumlException {
        return R206_LinkedAssociation_is_a_Association_extent;
    }
    private IRelationshipSet R206_SimpleAssociation_is_a_Association_extent;
    public IRelationshipSet R206_SimpleAssociation_is_a_Associations() throws XtumlException {
        return R206_SimpleAssociation_is_a_Association_extent;
    }
    private IRelationshipSet R206_SubtypeSupertypeAssociation_is_a_Association_extent;
    public IRelationshipSet R206_SubtypeSupertypeAssociation_is_a_Associations() throws XtumlException {
        return R206_SubtypeSupertypeAssociation_is_a_Association_extent;
    }
    private IRelationshipSet R207_ClassAsSimpleParticipant_is_related_to_formalizer_via_SimpleAssociation_extent;
    public IRelationshipSet R207_ClassAsSimpleParticipant_is_related_to_formalizer_via_SimpleAssociations() throws XtumlException {
        return R207_ClassAsSimpleParticipant_is_related_to_formalizer_via_SimpleAssociation_extent;
    }
    private IRelationshipSet R208_ClassAsSimpleFormalizer_is_related_to_participant_via_SimpleAssociation_extent;
    public IRelationshipSet R208_ClassAsSimpleFormalizer_is_related_to_participant_via_SimpleAssociations() throws XtumlException {
        return R208_ClassAsSimpleFormalizer_is_related_to_participant_via_SimpleAssociation_extent;
    }
    private IRelationshipSet R209_ClassAsAssociatedOneSide_is_related_to_other_side_via_LinkedAssociation_extent;
    public IRelationshipSet R209_ClassAsAssociatedOneSide_is_related_to_other_side_via_LinkedAssociations() throws XtumlException {
        return R209_ClassAsAssociatedOneSide_is_related_to_other_side_via_LinkedAssociation_extent;
    }
    private IRelationshipSet R20_Bridge_return_value_defined_by_DataType_extent;
    public IRelationshipSet R20_Bridge_return_value_defined_by_DataTypes() throws XtumlException {
        return R20_Bridge_return_value_defined_by_DataType_extent;
    }
    private IRelationshipSet R210_ClassAsAssociatedOtherSide_is_related_to_one_side_via_LinkedAssociation_extent;
    public IRelationshipSet R210_ClassAsAssociatedOtherSide_is_related_to_one_side_via_LinkedAssociations() throws XtumlException {
        return R210_ClassAsAssociatedOtherSide_is_related_to_one_side_via_LinkedAssociation_extent;
    }
    private IRelationshipSet R211_ClassAsLink_formalizes_association_between_associated_classes_LinkedAssociation_extent;
    public IRelationshipSet R211_ClassAsLink_formalizes_association_between_associated_classes_LinkedAssociations() throws XtumlException {
        return R211_ClassAsLink_formalizes_association_between_associated_classes_LinkedAssociation_extent;
    }
    private IRelationshipSet R212_ClassAsSupertype_is_related_to_subtypes_via_SubtypeSupertypeAssociation_extent;
    public IRelationshipSet R212_ClassAsSupertype_is_related_to_subtypes_via_SubtypeSupertypeAssociations() throws XtumlException {
        return R212_ClassAsSupertype_is_related_to_subtypes_via_SubtypeSupertypeAssociation_extent;
    }
    private IRelationshipSet R213_ClassAsSubtype_is_related_to_supertype_via_SubtypeSupertypeAssociation_extent;
    public IRelationshipSet R213_ClassAsSubtype_is_related_to_supertype_via_SubtypeSupertypeAssociations() throws XtumlException {
        return R213_ClassAsSubtype_is_related_to_supertype_via_SubtypeSupertypeAssociation_extent;
    }
    private IRelationshipSet R214_ClassAsDerivedOneSide_is_related_to_other_type_via_DerivedAssociation_extent;
    public IRelationshipSet R214_ClassAsDerivedOneSide_is_related_to_other_type_via_DerivedAssociations() throws XtumlException {
        return R214_ClassAsDerivedOneSide_is_related_to_other_type_via_DerivedAssociation_extent;
    }
    private IRelationshipSet R215_ClassAsDerivedOtherSide_is_related_to_one_side_via_DerivedAssociation_extent;
    public IRelationshipSet R215_ClassAsDerivedOtherSide_is_related_to_one_side_via_DerivedAssociations() throws XtumlException {
        return R215_ClassAsDerivedOtherSide_is_related_to_one_side_via_DerivedAssociation_extent;
    }
    private IRelationshipSet R21_BridgeParameter_contains_Bridge_extent;
    public IRelationshipSet R21_BridgeParameter_contains_Bridges() throws XtumlException {
        return R21_BridgeParameter_contains_Bridge_extent;
    }
    private IRelationshipSet R22_BridgeParameter_is_defined_by_DataType_extent;
    public IRelationshipSet R22_BridgeParameter_is_defined_by_DataTypes() throws XtumlException {
        return R22_BridgeParameter_is_defined_by_DataType_extent;
    }
    private IRelationshipSet R24_FunctionParameter_is_defined_for_S_SYNC_extent;
    public IRelationshipSet R24_FunctionParameter_is_defined_for_S_SYNCs() throws XtumlException {
        return R24_FunctionParameter_is_defined_for_S_SYNC_extent;
    }
    private IRelationshipSet R25_S_SYNC_has_return_type_of_DataType_extent;
    public IRelationshipSet R25_S_SYNC_has_return_type_of_DataTypes() throws XtumlException {
        return R25_S_SYNC_has_return_type_of_DataType_extent;
    }
    private IRelationshipSet R26_FunctionParameter_is_typed_by__DataType_extent;
    public IRelationshipSet R26_FunctionParameter_is_typed_by__DataTypes() throws XtumlException {
        return R26_FunctionParameter_is_typed_by__DataType_extent;
    }
    private IRelationshipSet R27_S_ENUM_is_defined_by_EnumerationDataType_extent;
    public IRelationshipSet R27_S_ENUM_is_defined_by_EnumerationDataTypes() throws XtumlException {
        return R27_S_ENUM_is_defined_by_EnumerationDataType_extent;
    }
    private IRelationshipSet R2821_Mark_is_marked_by_Feature_extent;
    public IRelationshipSet R2821_Mark_is_marked_by_Features() throws XtumlException {
        return R2821_Mark_is_marked_by_Feature_extent;
    }
    private IRelationshipSet R2821_Mark_marks_MarkableElementType_extent;
    public IRelationshipSet R2821_Mark_marks_MarkableElementTypes() throws XtumlException {
        return R2821_Mark_marks_MarkableElementType_extent;
    }
    private IRelationshipSet R2822_MarkableElementType_makes_available_Feature_extent;
    public IRelationshipSet R2822_MarkableElementType_makes_available_Features() throws XtumlException {
        return R2822_MarkableElementType_makes_available_Feature_extent;
    }
    private IRelationshipSet R2823_Mark_precedes_Mark_extent;
    public IRelationshipSet R2823_Mark_precedes_Marks() throws XtumlException {
        return R2823_Mark_precedes_Mark_extent;
    }
    private IRelationshipSet R2901_Link_originates_at_LinkParticipation_extent;
    public IRelationshipSet R2901_Link_originates_at_LinkParticipations() throws XtumlException {
        return R2901_Link_originates_at_LinkParticipation_extent;
    }
    private IRelationshipSet R2902_Link_ends_at_LinkParticipation_extent;
    public IRelationshipSet R2902_Link_ends_at_LinkParticipations() throws XtumlException {
        return R2902_Link_ends_at_LinkParticipation_extent;
    }
    private IRelationshipSet R2903_Link_has_associator_LinkParticipation_extent;
    public IRelationshipSet R2903_Link_has_associator_LinkParticipations() throws XtumlException {
        return R2903_Link_has_associator_LinkParticipation_extent;
    }
    private IRelationshipSet R2904_Link_is_instance_of_Association_extent;
    public IRelationshipSet R2904_Link_is_instance_of_Associations() throws XtumlException {
        return R2904_Link_is_instance_of_Association_extent;
    }
    private IRelationshipSet R2906_PendingEvent_is_instance_of_StateMachineEvent_extent;
    public IRelationshipSet R2906_PendingEvent_is_instance_of_StateMachineEvents() throws XtumlException {
        return R2906_PendingEvent_is_instance_of_StateMachineEvent_extent;
    }
    private IRelationshipSet R2907_PendingEvent_is_pending_for_I_INS_extent;
    public IRelationshipSet R2907_PendingEvent_is_pending_for_I_INSs() throws XtumlException {
        return R2907_PendingEvent_is_pending_for_I_INS_extent;
    }
    private IRelationshipSet R2908_PendingEvent_will_be_processed_after_PendingEvent_extent;
    public IRelationshipSet R2908_PendingEvent_will_be_processed_after_PendingEvents() throws XtumlException {
        return R2908_PendingEvent_will_be_processed_after_PendingEvent_extent;
    }
    private IRelationshipSet R2909_AttributeValue_defines_value_for_characteristic_of_I_INS_extent;
    public IRelationshipSet R2909_AttributeValue_defines_value_for_characteristic_of_I_INSs() throws XtumlException {
        return R2909_AttributeValue_defines_value_for_characteristic_of_I_INS_extent;
    }
    private IRelationshipSet R2910_AttributeValue_is_instance_of_O_ATTR_extent;
    public IRelationshipSet R2910_AttributeValue_is_instance_of_O_ATTRs() throws XtumlException {
        return R2910_AttributeValue_is_instance_of_O_ATTR_extent;
    }
    private IRelationshipSet R2915_I_INS_occupies_StateMachineState_extent;
    public IRelationshipSet R2915_I_INS_occupies_StateMachineStates() throws XtumlException {
        return R2915_I_INS_occupies_StateMachineState_extent;
    }
    private IRelationshipSet R2923_BlockInStackFrame_is_executed_within_the_context_of_StackFrame_extent;
    public IRelationshipSet R2923_BlockInStackFrame_is_executed_within_the_context_of_StackFrames() throws XtumlException {
        return R2923_BlockInStackFrame_is_executed_within_the_context_of_StackFrame_extent;
    }
    private IRelationshipSet R2923_BlockInStackFrame_supplies_context_for_Block_extent;
    public IRelationshipSet R2923_BlockInStackFrame_supplies_context_for_Blocks() throws XtumlException {
        return R2923_BlockInStackFrame_supplies_context_for_Block_extent;
    }
    private IRelationshipSet R2928_StackFrame_next_context_StackFrame_extent;
    public IRelationshipSet R2928_StackFrame_next_context_StackFrames() throws XtumlException {
        return R2928_StackFrame_next_context_StackFrame_extent;
    }
    private IRelationshipSet R2929_StackFrame_is_processed_by_Stack_extent;
    public IRelationshipSet R2929_StackFrame_is_processed_by_Stacks() throws XtumlException {
        return R2929_StackFrame_is_processed_by_Stack_extent;
    }
    private IRelationshipSet R2930_Stack_is_controlled_by_ComponentInstance_extent;
    public IRelationshipSet R2930_Stack_is_controlled_by_ComponentInstances() throws XtumlException {
        return R2930_Stack_is_controlled_by_ComponentInstance_extent;
    }
    private IRelationshipSet R2933_DataItemValue_PendingEvent_extent;
    public IRelationshipSet R2933_DataItemValue_PendingEvents() throws XtumlException {
        return R2933_DataItemValue_PendingEvent_extent;
    }
    private IRelationshipSet R2934_DataItemValue_StateMachineEventDataItem_extent;
    public IRelationshipSet R2934_DataItemValue_StateMachineEventDataItems() throws XtumlException {
        return R2934_DataItemValue_StateMachineEventDataItem_extent;
    }
    private IRelationshipSet R2935_PendingEvent_targets_I_INS_extent;
    public IRelationshipSet R2935_PendingEvent_targets_I_INSs() throws XtumlException {
        return R2935_PendingEvent_targets_I_INS_extent;
    }
    private IRelationshipSet R2937_PendingEvent_was_sent_from_I_INS_extent;
    public IRelationshipSet R2937_PendingEvent_was_sent_from_I_INSs() throws XtumlException {
        return R2937_PendingEvent_was_sent_from_I_INS_extent;
    }
    private IRelationshipSet R2939_PendingEvent_will_be_processed_before_PendingEvent_extent;
    public IRelationshipSet R2939_PendingEvent_will_be_processed_before_PendingEvents() throws XtumlException {
        return R2939_PendingEvent_will_be_processed_before_PendingEvent_extent;
    }
    private IRelationshipSet R2940_Timer_provides_delayed_delivery_of_PendingEvent_extent;
    public IRelationshipSet R2940_Timer_provides_delayed_delivery_of_PendingEvents() throws XtumlException {
        return R2940_Timer_provides_delayed_delivery_of_PendingEvent_extent;
    }
    private IRelationshipSet R2941_BlockInStackFrame_is_currently_visiting_ACT_SMT_extent;
    public IRelationshipSet R2941_BlockInStackFrame_is_currently_visiting_ACT_SMTs() throws XtumlException {
        return R2941_BlockInStackFrame_is_currently_visiting_ACT_SMT_extent;
    }
    private IRelationshipSet R2943_StackFrame_processed_by_Stack_extent;
    public IRelationshipSet R2943_StackFrame_processed_by_Stacks() throws XtumlException {
        return R2943_StackFrame_processed_by_Stack_extent;
    }
    private IRelationshipSet R2944_EventQueueEntry_ComponentInstance_extent;
    public IRelationshipSet R2944_EventQueueEntry_ComponentInstances() throws XtumlException {
        return R2944_EventQueueEntry_ComponentInstance_extent;
    }
    private IRelationshipSet R2944_EventQueueEntry_PendingEvent_extent;
    public IRelationshipSet R2944_EventQueueEntry_PendingEvents() throws XtumlException {
        return R2944_EventQueueEntry_PendingEvent_extent;
    }
    private IRelationshipSet R2945_EventQueueEntry_follows_EventQueueEntry_extent;
    public IRelationshipSet R2945_EventQueueEntry_follows_EventQueueEntrys() throws XtumlException {
        return R2945_EventQueueEntry_follows_EventQueueEntry_extent;
    }
    private IRelationshipSet R2946_SelfQueueEntry_ComponentInstance_extent;
    public IRelationshipSet R2946_SelfQueueEntry_ComponentInstances() throws XtumlException {
        return R2946_SelfQueueEntry_ComponentInstance_extent;
    }
    private IRelationshipSet R2946_SelfQueueEntry_PendingEvent_extent;
    public IRelationshipSet R2946_SelfQueueEntry_PendingEvents() throws XtumlException {
        return R2946_SelfQueueEntry_PendingEvent_extent;
    }
    private IRelationshipSet R2947_SelfQueueEntry_follows_SelfQueueEntry_extent;
    public IRelationshipSet R2947_SelfQueueEntry_follows_SelfQueueEntrys() throws XtumlException {
        return R2947_SelfQueueEntry_follows_SelfQueueEntry_extent;
    }
    private IRelationshipSet R2949_Monitor_monitored_by_ComponentInstance_extent;
    public IRelationshipSet R2949_Monitor_monitored_by_ComponentInstances() throws XtumlException {
        return R2949_Monitor_monitored_by_ComponentInstance_extent;
    }
    private IRelationshipSet R2949_Monitor_monitors_I_INS_extent;
    public IRelationshipSet R2949_Monitor_monitors_I_INSs() throws XtumlException {
        return R2949_Monitor_monitors_I_INS_extent;
    }
    private IRelationshipSet R2951_ValueInStackFrame_StackFrame_extent;
    public IRelationshipSet R2951_ValueInStackFrame_StackFrames() throws XtumlException {
        return R2951_ValueInStackFrame_StackFrame_extent;
    }
    private IRelationshipSet R2953_I_INS_entered_last_state_via_Transition_extent;
    public IRelationshipSet R2953_I_INS_entered_last_state_via_Transitions() throws XtumlException {
        return R2953_I_INS_entered_last_state_via_Transition_extent;
    }
    private IRelationshipSet R2954_StackFrame_has_context_I_INS_extent;
    public IRelationshipSet R2954_StackFrame_has_context_I_INSs() throws XtumlException {
        return R2954_StackFrame_has_context_I_INS_extent;
    }
    private IRelationshipSet R2955_ComponentInstance_is_verifying_instance_of_C_C_extent;
    public IRelationshipSet R2955_ComponentInstance_is_verifying_instance_of_C_Cs() throws XtumlException {
        return R2955_ComponentInstance_is_verifying_instance_of_C_C_extent;
    }
    private IRelationshipSet R2956_DataItemValue_PropertyParameter_extent;
    public IRelationshipSet R2956_DataItemValue_PropertyParameters() throws XtumlException {
        return R2956_DataItemValue_PropertyParameter_extent;
    }
    private IRelationshipSet R2957_I_INS_created_by_ComponentInstance_extent;
    public IRelationshipSet R2957_I_INS_created_by_ComponentInstances() throws XtumlException {
        return R2957_I_INS_created_by_ComponentInstance_extent;
    }
    private IRelationshipSet R2958_LinkParticipation_I_INS_extent;
    public IRelationshipSet R2958_LinkParticipation_I_INSs() throws XtumlException {
        return R2958_LinkParticipation_I_INS_extent;
    }
    private IRelationshipSet R2959_LinkParticipation_Association_extent;
    public IRelationshipSet R2959_LinkParticipation_Associations() throws XtumlException {
        return R2959_LinkParticipation_Association_extent;
    }
    private IRelationshipSet R2963_ComponentInstance_is_verifying_instance_of_ComponentReference_extent;
    public IRelationshipSet R2963_ComponentInstance_is_verifying_instance_of_ComponentReferences() throws XtumlException {
        return R2963_ComponentInstance_is_verifying_instance_of_ComponentReference_extent;
    }
    private IRelationshipSet R2964_PendingEvent_is_pending_in_ComponentInstance_extent;
    public IRelationshipSet R2964_PendingEvent_is_pending_in_ComponentInstances() throws XtumlException {
        return R2964_PendingEvent_is_pending_in_ComponentInstance_extent;
    }
    private IRelationshipSet R2965_StackFrame_blocked_by_StackFrame_extent;
    public IRelationshipSet R2965_StackFrame_blocked_by_StackFrames() throws XtumlException {
        return R2965_StackFrame_blocked_by_StackFrame_extent;
    }
    private IRelationshipSet R2966_IntercomponentQueueEntry_has_queued_StackFrame_extent;
    public IRelationshipSet R2966_IntercomponentQueueEntry_has_queued_StackFrames() throws XtumlException {
        return R2966_IntercomponentQueueEntry_has_queued_StackFrame_extent;
    }
    private IRelationshipSet R2966_IntercomponentQueueEntry_is_enqueued_with_Stack_extent;
    public IRelationshipSet R2966_IntercomponentQueueEntry_is_enqueued_with_Stacks() throws XtumlException {
        return R2966_IntercomponentQueueEntry_is_enqueued_with_Stack_extent;
    }
    private IRelationshipSet R2967_StackFrame_holds_return_value_for_Stack_extent;
    public IRelationshipSet R2967_StackFrame_holds_return_value_for_Stacks() throws XtumlException {
        return R2967_StackFrame_holds_return_value_for_Stack_extent;
    }
    private IRelationshipSet R2968_RuntimeChannel_is_interface_provider_to_ComponentInstance_extent;
    public IRelationshipSet R2968_RuntimeChannel_is_interface_provider_to_ComponentInstances() throws XtumlException {
        return R2968_RuntimeChannel_is_interface_provider_to_ComponentInstance_extent;
    }
    private IRelationshipSet R2968_RuntimeChannel_is_interface_requirer_of_ComponentInstance_extent;
    public IRelationshipSet R2968_RuntimeChannel_is_interface_requirer_of_ComponentInstances() throws XtumlException {
        return R2968_RuntimeChannel_is_interface_requirer_of_ComponentInstance_extent;
    }
    private IRelationshipSet R2969_RuntimeChannel_implements_Satisfaction_extent;
    public IRelationshipSet R2969_RuntimeChannel_implements_Satisfactions() throws XtumlException {
        return R2969_RuntimeChannel_implements_Satisfaction_extent;
    }
    private IRelationshipSet R2970_ComponentInstance_is_verifying_EP_PKG_extent;
    public IRelationshipSet R2970_ComponentInstance_is_verifying_EP_PKGs() throws XtumlException {
        return R2970_ComponentInstance_is_verifying_EP_PKG_extent;
    }
    private IRelationshipSet R2972_RuntimeChannel_implements_Delegation_extent;
    public IRelationshipSet R2972_RuntimeChannel_implements_Delegations() throws XtumlException {
        return R2972_RuntimeChannel_implements_Delegation_extent;
    }
    private IRelationshipSet R2973_RuntimeChannel_requirer_RuntimeChannel_extent;
    public IRelationshipSet R2973_RuntimeChannel_requirer_RuntimeChannels() throws XtumlException {
        return R2973_RuntimeChannel_requirer_RuntimeChannel_extent;
    }
    private IRelationshipSet R2974_ComponentInstanceContainer_ComponentInstance_extent;
    public IRelationshipSet R2974_ComponentInstanceContainer_ComponentInstances() throws XtumlException {
        return R2974_ComponentInstanceContainer_ComponentInstance_extent;
    }
    private IRelationshipSet R2975_ComponentInstance_ComponentInstanceContainer_extent;
    public IRelationshipSet R2975_ComponentInstance_ComponentInstanceContainers() throws XtumlException {
        return R2975_ComponentInstance_ComponentInstanceContainer_extent;
    }
    private IRelationshipSet R2976_PendingEvent_originates_from_ComponentInstance_extent;
    public IRelationshipSet R2976_PendingEvent_originates_from_ComponentInstances() throws XtumlException {
        return R2976_PendingEvent_originates_from_ComponentInstance_extent;
    }
    private IRelationshipSet R2977_IntercomponentQueueEntry_enqueued_by_ComponentInstance_extent;
    public IRelationshipSet R2977_IntercomponentQueueEntry_enqueued_by_ComponentInstances() throws XtumlException {
        return R2977_IntercomponentQueueEntry_enqueued_by_ComponentInstance_extent;
    }
    private IRelationshipSet R2978_ValueInStackFrame_Value_extent;
    public IRelationshipSet R2978_ValueInStackFrame_Values() throws XtumlException {
        return R2978_ValueInStackFrame_Value_extent;
    }
    private IRelationshipSet R3800_TypeReference_based_on_Type_extent;
    public IRelationshipSet R3800_TypeReference_based_on_Types() throws XtumlException {
        return R3800_TypeReference_based_on_Type_extent;
    }
    private IRelationshipSet R3801_ArrayTypeReference_is_a_TypeReference_extent;
    public IRelationshipSet R3801_ArrayTypeReference_is_a_TypeReferences() throws XtumlException {
        return R3801_ArrayTypeReference_is_a_TypeReference_extent;
    }
    private IRelationshipSet R3801_BasicTypeReference_is_a_TypeReference_extent;
    public IRelationshipSet R3801_BasicTypeReference_is_a_TypeReferences() throws XtumlException {
        return R3801_BasicTypeReference_is_a_TypeReference_extent;
    }
    private IRelationshipSet R3802_UserDefinedType_based_on_Type_extent;
    public IRelationshipSet R3802_UserDefinedType_based_on_Types() throws XtumlException {
        return R3802_UserDefinedType_based_on_Type_extent;
    }
    private IRelationshipSet R3900_ArrayElementReference_has_root_Expression_extent;
    public IRelationshipSet R3900_ArrayElementReference_has_root_Expressions() throws XtumlException {
        return R3900_ArrayElementReference_has_root_Expression_extent;
    }
    private IRelationshipSet R3901_ArrayElementReference_has_index_Expression_extent;
    public IRelationshipSet R3901_ArrayElementReference_has_index_Expressions() throws XtumlException {
        return R3901_ArrayElementReference_has_index_Expression_extent;
    }
    private IRelationshipSet R3902_EventCreation_has_target_Expression_extent;
    public IRelationshipSet R3902_EventCreation_has_target_Expressions() throws XtumlException {
        return R3902_EventCreation_has_target_Expression_extent;
    }
    private IRelationshipSet R3903_EventCreation_has_base_Expression_extent;
    public IRelationshipSet R3903_EventCreation_has_base_Expressions() throws XtumlException {
        return R3903_EventCreation_has_base_Expression_extent;
    }
    private IRelationshipSet R3904_ActualParameter_FormalParameter_extent;
    public IRelationshipSet R3904_ActualParameter_FormalParameters() throws XtumlException {
        return R3904_ActualParameter_FormalParameter_extent;
    }
    private IRelationshipSet R3905_ActualParameter_precedes_ActualParameter_extent;
    public IRelationshipSet R3905_ActualParameter_precedes_ActualParameters() throws XtumlException {
        return R3905_ActualParameter_precedes_ActualParameter_extent;
    }
    private IRelationshipSet R3906_Where_sorts_set_by_Attribute_extent;
    public IRelationshipSet R3906_Where_sorts_set_by_Attributes() throws XtumlException {
        return R3906_Where_sorts_set_by_Attribute_extent;
    }
    private IRelationshipSet R3907_Promotion_promotes_Expression_extent;
    public IRelationshipSet R3907_Promotion_promotes_Expressions() throws XtumlException {
        return R3907_Promotion_promotes_Expression_extent;
    }
    private IRelationshipSet R3908_ArrayLengthAccess_has_root_Expression_extent;
    public IRelationshipSet R3908_ArrayLengthAccess_has_root_Expressions() throws XtumlException {
        return R3908_ArrayLengthAccess_has_root_Expression_extent;
    }
    private IRelationshipSet R4000_CodeBlock_is_invoked_in_InvocableObject_extent;
    public IRelationshipSet R4000_CodeBlock_is_invoked_in_InvocableObjects() throws XtumlException {
        return R4000_CodeBlock_is_invoked_in_InvocableObject_extent;
    }
    private IRelationshipSet R4002_Satisfaction_defines_required_satisfication_Requirement_extent;
    public IRelationshipSet R4002_Satisfaction_defines_required_satisfication_Requirements() throws XtumlException {
        return R4002_Satisfaction_defines_required_satisfication_Requirement_extent;
    }
    private IRelationshipSet R4002_Satisfaction_satisfies_Provision_extent;
    public IRelationshipSet R4002_Satisfaction_satisfies_Provisions() throws XtumlException {
        return R4002_Satisfaction_satisfies_Provision_extent;
    }
    private IRelationshipSet R4003_ExecutableProperty_provides_signature_of_C_I_extent;
    public IRelationshipSet R4003_ExecutableProperty_provides_signature_of_C_Is() throws XtumlException {
        return R4003_ExecutableProperty_provides_signature_of_C_I_extent;
    }
    private IRelationshipSet R4004_InterfaceOperation_is_a_ExecutableProperty_extent;
    public IRelationshipSet R4004_InterfaceOperation_is_a_ExecutablePropertys() throws XtumlException {
        return R4004_InterfaceOperation_is_a_ExecutableProperty_extent;
    }
    private IRelationshipSet R4004_InterfaceSignal_is_a_ExecutableProperty_extent;
    public IRelationshipSet R4004_InterfaceSignal_is_a_ExecutablePropertys() throws XtumlException {
        return R4004_InterfaceSignal_is_a_ExecutableProperty_extent;
    }
    private IRelationshipSet R4006_PropertyParameter_parameterizes_ExecutableProperty_extent;
    public IRelationshipSet R4006_PropertyParameter_parameterizes_ExecutablePropertys() throws XtumlException {
        return R4006_PropertyParameter_parameterizes_ExecutableProperty_extent;
    }
    private IRelationshipSet R4007_PropertyParameter_is_typed_by_DataType_extent;
    public IRelationshipSet R4007_PropertyParameter_is_typed_by_DataTypes() throws XtumlException {
        return R4007_PropertyParameter_is_typed_by_DataType_extent;
    }
    private IRelationshipSet R4008_InterfaceOperation_has_return_defined_by_DataType_extent;
    public IRelationshipSet R4008_InterfaceOperation_has_return_defined_by_DataTypes() throws XtumlException {
        return R4008_InterfaceOperation_has_return_defined_by_DataType_extent;
    }
    private IRelationshipSet R4009_Provision_is_a_InterfaceReference_extent;
    public IRelationshipSet R4009_Provision_is_a_InterfaceReferences() throws XtumlException {
        return R4009_Provision_is_a_InterfaceReference_extent;
    }
    private IRelationshipSet R4009_Requirement_is_a_InterfaceReference_extent;
    public IRelationshipSet R4009_Requirement_is_a_InterfaceReferences() throws XtumlException {
        return R4009_Requirement_is_a_InterfaceReference_extent;
    }
    private IRelationshipSet R4010_C_PO_appears_in_C_C_extent;
    public IRelationshipSet R4010_C_PO_appears_in_C_Cs() throws XtumlException {
        return R4010_C_PO_appears_in_C_C_extent;
    }
    private IRelationshipSet R4012_InterfaceReference_may_be_defined_by_C_I_extent;
    public IRelationshipSet R4012_InterfaceReference_may_be_defined_by_C_Is() throws XtumlException {
        return R4012_InterfaceReference_may_be_defined_by_C_I_extent;
    }
    private IRelationshipSet R4013_InterfaceReferenceInDelegation_handles_delegation_for_InterfaceReference_extent;
    public IRelationshipSet R4013_InterfaceReferenceInDelegation_handles_delegation_for_InterfaceReferences() throws XtumlException {
        return R4013_InterfaceReferenceInDelegation_handles_delegation_for_InterfaceReference_extent;
    }
    private IRelationshipSet R4013_InterfaceReferenceInDelegation_may_delegate_through_Delegation_extent;
    public IRelationshipSet R4013_InterfaceReferenceInDelegation_may_delegate_through_Delegations() throws XtumlException {
        return R4013_InterfaceReferenceInDelegation_may_delegate_through_Delegation_extent;
    }
    private IRelationshipSet R4014_InterfaceReference_receives_delegation_via_Delegation_extent;
    public IRelationshipSet R4014_InterfaceReference_receives_delegation_via_Delegations() throws XtumlException {
        return R4014_InterfaceReference_receives_delegation_via_Delegation_extent;
    }
    private IRelationshipSet R4016_InterfaceReference_originates_from_C_PO_extent;
    public IRelationshipSet R4016_InterfaceReference_originates_from_C_POs() throws XtumlException {
        return R4016_InterfaceReference_originates_from_C_PO_extent;
    }
    private IRelationshipSet R4017_Dimensions_specifies_occurrences_of_PropertyParameter_extent;
    public IRelationshipSet R4017_Dimensions_specifies_occurrences_of_PropertyParameters() throws XtumlException {
        return R4017_Dimensions_specifies_occurrences_of_PropertyParameter_extent;
    }
    private IRelationshipSet R4018_Dimensions_defines_return_value_dimensions_for__InterfaceOperation_extent;
    public IRelationshipSet R4018_Dimensions_defines_return_value_dimensions_for__InterfaceOperations() throws XtumlException {
        return R4018_Dimensions_defines_return_value_dimensions_for__InterfaceOperation_extent;
    }
    private IRelationshipSet R4019_InterfaceOperation_succeeds_InterfaceOperation_extent;
    public IRelationshipSet R4019_InterfaceOperation_succeeds_InterfaceOperations() throws XtumlException {
        return R4019_InterfaceOperation_succeeds_InterfaceOperation_extent;
    }
    private IRelationshipSet R401_Application_is_a_File_extent;
    public IRelationshipSet R401_Application_is_a_Files() throws XtumlException {
        return R401_Application_is_a_File_extent;
    }
    private IRelationshipSet R401_ComponentDefinition_is_a_File_extent;
    public IRelationshipSet R401_ComponentDefinition_is_a_Files() throws XtumlException {
        return R401_ComponentDefinition_is_a_File_extent;
    }
    private IRelationshipSet R401_EnumeratedType_is_a_File_extent;
    public IRelationshipSet R401_EnumeratedType_is_a_Files() throws XtumlException {
        return R401_EnumeratedType_is_a_File_extent;
    }
    private IRelationshipSet R401_GeneralFile_is_a_File_extent;
    public IRelationshipSet R401_GeneralFile_is_a_Files() throws XtumlException {
        return R401_GeneralFile_is_a_File_extent;
    }
    private IRelationshipSet R401_Iface_is_a_File_extent;
    public IRelationshipSet R401_Iface_is_a_Files() throws XtumlException {
        return R401_Iface_is_a_File_extent;
    }
    private IRelationshipSet R401_InstSet_is_a_File_extent;
    public IRelationshipSet R401_InstSet_is_a_Files() throws XtumlException {
        return R401_InstSet_is_a_File_extent;
    }
    private IRelationshipSet R401_ModelInst_is_a_File_extent;
    public IRelationshipSet R401_ModelInst_is_a_Files() throws XtumlException {
        return R401_ModelInst_is_a_File_extent;
    }
    private IRelationshipSet R401_Port_is_a_File_extent;
    public IRelationshipSet R401_Port_is_a_Files() throws XtumlException {
        return R401_Port_is_a_File_extent;
    }
    private IRelationshipSet R401_StateMachine_is_a_File_extent;
    public IRelationshipSet R401_StateMachine_is_a_Files() throws XtumlException {
        return R401_StateMachine_is_a_File_extent;
    }
    private IRelationshipSet R401_UserDefinedType_is_a_File_extent;
    public IRelationshipSet R401_UserDefinedType_is_a_Files() throws XtumlException {
        return R401_UserDefinedType_is_a_File_extent;
    }
    private IRelationshipSet R401_Utility_is_a_File_extent;
    public IRelationshipSet R401_Utility_is_a_Files() throws XtumlException {
        return R401_Utility_is_a_File_extent;
    }
    private IRelationshipSet R4020_InterfaceSignal_succeeds_InterfaceSignal_extent;
    public IRelationshipSet R4020_InterfaceSignal_succeeds_InterfaceSignals() throws XtumlException {
        return R4020_InterfaceSignal_succeeds_InterfaceSignal_extent;
    }
    private IRelationshipSet R4021_PropertyParameter_succeeds_PropertyParameter_extent;
    public IRelationshipSet R4021_PropertyParameter_succeeds_PropertyParameters() throws XtumlException {
        return R4021_PropertyParameter_succeeds_PropertyParameter_extent;
    }
    private IRelationshipSet R4027_ApplicationExecutor_executes_tasks_for_Application_extent;
    public IRelationshipSet R4027_ApplicationExecutor_executes_tasks_for_Applications() throws XtumlException {
        return R4027_ApplicationExecutor_executes_tasks_for_Application_extent;
    }
    private IRelationshipSet R4028_ComponentInstantiation_is_executed_by_ApplicationExecutor_extent;
    public IRelationshipSet R4028_ComponentInstantiation_is_executed_by_ApplicationExecutors() throws XtumlException {
        return R4028_ComponentInstantiation_is_executed_by_ApplicationExecutor_extent;
    }
    private IRelationshipSet R4029_ComponentInstantiation_precedes_ComponentInstantiation_extent;
    public IRelationshipSet R4029_ComponentInstantiation_precedes_ComponentInstantiations() throws XtumlException {
        return R4029_ComponentInstantiation_precedes_ComponentInstantiation_extent;
    }
    private IRelationshipSet R402_TypeImportReference_imports_type_into_context_of_File_extent;
    public IRelationshipSet R402_TypeImportReference_imports_type_into_context_of_Files() throws XtumlException {
        return R402_TypeImportReference_imports_type_into_context_of_File_extent;
    }
    private IRelationshipSet R402_TypeImportReference_imports_type_via_TypeImport_extent;
    public IRelationshipSet R402_TypeImportReference_imports_type_via_TypeImports() throws XtumlException {
        return R402_TypeImportReference_imports_type_via_TypeImport_extent;
    }
    private IRelationshipSet R404_FormalParameter_precedes_FormalParameter_extent;
    public IRelationshipSet R404_FormalParameter_precedes_FormalParameters() throws XtumlException {
        return R404_FormalParameter_precedes_FormalParameter_extent;
    }
    private IRelationshipSet R405_Function_can_execute_synchronously_within_ComponentDefinition_extent;
    public IRelationshipSet R405_Function_can_execute_synchronously_within_ComponentDefinitions() throws XtumlException {
        return R405_Function_can_execute_synchronously_within_ComponentDefinition_extent;
    }
    private IRelationshipSet R406_InstSet_defines_set_with_elements_of_type_ModelInst_extent;
    public IRelationshipSet R406_InstSet_defines_set_with_elements_of_type_ModelInsts() throws XtumlException {
        return R406_InstSet_defines_set_with_elements_of_type_ModelInst_extent;
    }
    private IRelationshipSet R407_BuiltInType_is_a_Type_extent;
    public IRelationshipSet R407_BuiltInType_is_a_Types() throws XtumlException {
        return R407_BuiltInType_is_a_Type_extent;
    }
    private IRelationshipSet R407_EnumeratedType_is_a_Type_extent;
    public IRelationshipSet R407_EnumeratedType_is_a_Types() throws XtumlException {
        return R407_EnumeratedType_is_a_Type_extent;
    }
    private IRelationshipSet R407_InstSet_is_a_Type_extent;
    public IRelationshipSet R407_InstSet_is_a_Types() throws XtumlException {
        return R407_InstSet_is_a_Type_extent;
    }
    private IRelationshipSet R407_ModelInst_is_a_Type_extent;
    public IRelationshipSet R407_ModelInst_is_a_Types() throws XtumlException {
        return R407_ModelInst_is_a_Type_extent;
    }
    private IRelationshipSet R407_UnresolvedType_is_a_Type_extent;
    public IRelationshipSet R407_UnresolvedType_is_a_Types() throws XtumlException {
        return R407_UnresolvedType_is_a_Type_extent;
    }
    private IRelationshipSet R407_UserDefinedType_is_a_Type_extent;
    public IRelationshipSet R407_UserDefinedType_is_a_Types() throws XtumlException {
        return R407_UserDefinedType_is_a_Type_extent;
    }
    private IRelationshipSet R408_ModelInst_forms_instance_population_of_ComponentDefinition_extent;
    public IRelationshipSet R408_ModelInst_forms_instance_population_of_ComponentDefinitions() throws XtumlException {
        return R408_ModelInst_forms_instance_population_of_ComponentDefinition_extent;
    }
    private IRelationshipSet R409_ModelInst_ModelClass_extent;
    public IRelationshipSet R409_ModelInst_ModelClasss() throws XtumlException {
        return R409_ModelInst_ModelClass_extent;
    }
    private IRelationshipSet R410_Attribute_abstracts_data_for_ModelInst_extent;
    public IRelationshipSet R410_Attribute_abstracts_data_for_ModelInsts() throws XtumlException {
        return R410_Attribute_abstracts_data_for_ModelInst_extent;
    }
    private IRelationshipSet R414_O_ATTR_Attribute_extent;
    public IRelationshipSet R414_O_ATTR_Attributes() throws XtumlException {
        return R414_O_ATTR_Attribute_extent;
    }
    private IRelationshipSet R415_Enumerator_is_unique_value_of_EnumeratedType_extent;
    public IRelationshipSet R415_Enumerator_is_unique_value_of_EnumeratedTypes() throws XtumlException {
        return R415_Enumerator_is_unique_value_of_EnumeratedType_extent;
    }
    private IRelationshipSet R4160_Port_satisfies_provided_Port_extent;
    public IRelationshipSet R4160_Port_satisfies_provided_Ports() throws XtumlException {
        return R4160_Port_satisfies_provided_Port_extent;
    }
    private IRelationshipSet R416_Operation_provided_by_ModelInst_extent;
    public IRelationshipSet R416_Operation_provided_by_ModelInsts() throws XtumlException {
        return R416_Operation_provided_by_ModelInst_extent;
    }
    private IRelationshipSet R417_Port_passes_messages_for_ComponentDefinition_extent;
    public IRelationshipSet R417_Port_passes_messages_for_ComponentDefinitions() throws XtumlException {
        return R417_Port_passes_messages_for_ComponentDefinition_extent;
    }
    private IRelationshipSet R418_Port_implements_Iface_extent;
    public IRelationshipSet R418_Port_implements_Ifaces() throws XtumlException {
        return R418_Port_implements_Iface_extent;
    }
    private IRelationshipSet R419_Message_defines_message_format_for_Iface_extent;
    public IRelationshipSet R419_Message_defines_message_format_for_Ifaces() throws XtumlException {
        return R419_Message_defines_message_format_for_Iface_extent;
    }
    private IRelationshipSet R4201_ComponentReference_represents_C_C_extent;
    public IRelationshipSet R4201_ComponentReference_represents_C_Cs() throws XtumlException {
        return R4201_ComponentReference_represents_C_C_extent;
    }
    private IRelationshipSet R4205_ComponentReference_nested_in_C_C_extent;
    public IRelationshipSet R4205_ComponentReference_nested_in_C_Cs() throws XtumlException {
        return R4205_ComponentReference_nested_in_C_C_extent;
    }
    private IRelationshipSet R420_PortMessage_is_implemented_within_Port_extent;
    public IRelationshipSet R420_PortMessage_is_implemented_within_Ports() throws XtumlException {
        return R420_PortMessage_is_implemented_within_Port_extent;
    }
    private IRelationshipSet R420_PortMessage_provides_implementation_for_Message_extent;
    public IRelationshipSet R420_PortMessage_provides_implementation_for_Messages() throws XtumlException {
        return R420_PortMessage_provides_implementation_for_Message_extent;
    }
    private IRelationshipSet R421_Iface_C_I_extent;
    public IRelationshipSet R421_Iface_C_Is() throws XtumlException {
        return R421_Iface_C_I_extent;
    }
    private IRelationshipSet R422_Port_C_PO_extent;
    public IRelationshipSet R422_Port_C_POs() throws XtumlException {
        return R422_Port_C_PO_extent;
    }
    private IRelationshipSet R423_Type_DataType_extent;
    public IRelationshipSet R423_Type_DataTypes() throws XtumlException {
        return R423_Type_DataType_extent;
    }
    private IRelationshipSet R424_Attribute_is_typed_by_TypeReference_extent;
    public IRelationshipSet R424_Attribute_is_typed_by_TypeReferences() throws XtumlException {
        return R424_Attribute_is_typed_by_TypeReference_extent;
    }
    private IRelationshipSet R426_ComponentInstantiation_is_broken_into_ComponentDefinition_extent;
    public IRelationshipSet R426_ComponentInstantiation_is_broken_into_ComponentDefinitions() throws XtumlException {
        return R426_ComponentInstantiation_is_broken_into_ComponentDefinition_extent;
    }
    private IRelationshipSet R426_ComponentInstantiation_is_instantiated_by_Application_extent;
    public IRelationshipSet R426_ComponentInstantiation_is_instantiated_by_Applications() throws XtumlException {
        return R426_ComponentInstantiation_is_instantiated_by_Application_extent;
    }
    private IRelationshipSet R427_AttributeDerivation_is_a_InvocableObject_extent;
    public IRelationshipSet R427_AttributeDerivation_is_a_InvocableObjects() throws XtumlException {
        return R427_AttributeDerivation_is_a_InvocableObject_extent;
    }
    private IRelationshipSet R427_Event_is_a_InvocableObject_extent;
    public IRelationshipSet R427_Event_is_a_InvocableObjects() throws XtumlException {
        return R427_Event_is_a_InvocableObject_extent;
    }
    private IRelationshipSet R427_Function_is_a_InvocableObject_extent;
    public IRelationshipSet R427_Function_is_a_InvocableObjects() throws XtumlException {
        return R427_Function_is_a_InvocableObject_extent;
    }
    private IRelationshipSet R427_GenericInvocable_is_a_InvocableObject_extent;
    public IRelationshipSet R427_GenericInvocable_is_a_InvocableObjects() throws XtumlException {
        return R427_GenericInvocable_is_a_InvocableObject_extent;
    }
    private IRelationshipSet R427_Operation_is_a_InvocableObject_extent;
    public IRelationshipSet R427_Operation_is_a_InvocableObjects() throws XtumlException {
        return R427_Operation_is_a_InvocableObject_extent;
    }
    private IRelationshipSet R427_PortMessage_is_a_InvocableObject_extent;
    public IRelationshipSet R427_PortMessage_is_a_InvocableObjects() throws XtumlException {
        return R427_PortMessage_is_a_InvocableObject_extent;
    }
    private IRelationshipSet R427_StateTransition_is_a_InvocableObject_extent;
    public IRelationshipSet R427_StateTransition_is_a_InvocableObjects() throws XtumlException {
        return R427_StateTransition_is_a_InvocableObject_extent;
    }
    private IRelationshipSet R427_State_is_a_InvocableObject_extent;
    public IRelationshipSet R427_State_is_a_InvocableObjects() throws XtumlException {
        return R427_State_is_a_InvocableObject_extent;
    }
    private IRelationshipSet R427_UtilityFunction_is_a_InvocableObject_extent;
    public IRelationshipSet R427_UtilityFunction_is_a_InvocableObjects() throws XtumlException {
        return R427_UtilityFunction_is_a_InvocableObject_extent;
    }
    private IRelationshipSet R428_InvocableObject_return_value_is_typed_by_TypeReference_extent;
    public IRelationshipSet R428_InvocableObject_return_value_is_typed_by_TypeReferences() throws XtumlException {
        return R428_InvocableObject_return_value_is_typed_by_TypeReference_extent;
    }
    private IRelationshipSet R429_FormalParameter_shapes_data_for_InvocableObject_extent;
    public IRelationshipSet R429_FormalParameter_shapes_data_for_InvocableObjects() throws XtumlException {
        return R429_FormalParameter_shapes_data_for_InvocableObject_extent;
    }
    private IRelationshipSet R431_FormalParameter_is_typed_by_TypeReference_extent;
    public IRelationshipSet R431_FormalParameter_is_typed_by_TypeReferences() throws XtumlException {
        return R431_FormalParameter_is_typed_by_TypeReference_extent;
    }
    private IRelationshipSet R432_InvocableObject_Body_extent;
    public IRelationshipSet R432_InvocableObject_Bodys() throws XtumlException {
        return R432_InvocableObject_Body_extent;
    }
    private IRelationshipSet R434_ClassRelationship_has_participating_ModelInst_extent;
    public IRelationshipSet R434_ClassRelationship_has_participating_ModelInsts() throws XtumlException {
        return R434_ClassRelationship_has_participating_ModelInst_extent;
    }
    private IRelationshipSet R435_ClassRelationship_has_formalizing_ModelInst_extent;
    public IRelationshipSet R435_ClassRelationship_has_formalizing_ModelInsts() throws XtumlException {
        return R435_ClassRelationship_has_formalizing_ModelInst_extent;
    }
    private IRelationshipSet R436_ClassRelationship_is_other_half_of_associative_ClassRelationship_extent;
    public IRelationshipSet R436_ClassRelationship_is_other_half_of_associative_ClassRelationships() throws XtumlException {
        return R436_ClassRelationship_is_other_half_of_associative_ClassRelationship_extent;
    }
    private IRelationshipSet R441_AttributeDerivation_calculates_value_for_AttributeAccessor_extent;
    public IRelationshipSet R441_AttributeDerivation_calculates_value_for_AttributeAccessors() throws XtumlException {
        return R441_AttributeDerivation_calculates_value_for_AttributeAccessor_extent;
    }
    private IRelationshipSet R442_InstanceSelector_navigates_from_ModelInst_extent;
    public IRelationshipSet R442_InstanceSelector_navigates_from_ModelInsts() throws XtumlException {
        return R442_InstanceSelector_navigates_from_ModelInst_extent;
    }
    private IRelationshipSet R444_SetSelector_navigates_from_InstSet_extent;
    public IRelationshipSet R444_SetSelector_navigates_from_InstSets() throws XtumlException {
        return R444_SetSelector_navigates_from_InstSet_extent;
    }
    private IRelationshipSet R445_InstanceSelector_is_a_Selector_extent;
    public IRelationshipSet R445_InstanceSelector_is_a_Selectors() throws XtumlException {
        return R445_InstanceSelector_is_a_Selector_extent;
    }
    private IRelationshipSet R445_SetSelector_is_a_Selector_extent;
    public IRelationshipSet R445_SetSelector_is_a_Selectors() throws XtumlException {
        return R445_SetSelector_is_a_Selector_extent;
    }
    private IRelationshipSet R446_Selector_selects_instances_of_TypeReference_extent;
    public IRelationshipSet R446_Selector_selects_instances_of_TypeReferences() throws XtumlException {
        return R446_Selector_selects_instances_of_TypeReference_extent;
    }
    private IRelationshipSet R447_InstancePopulationSelector_selects_instances_out_of_population_of_ComponentDefinition_extent;
    public IRelationshipSet R447_InstancePopulationSelector_selects_instances_out_of_population_of_ComponentDefinitions() throws XtumlException {
        return R447_InstancePopulationSelector_selects_instances_out_of_population_of_ComponentDefinition_extent;
    }
    private IRelationshipSet R448_ClassRelationship_forms_relationship_population_of_ComponentDefinition_extent;
    public IRelationshipSet R448_ClassRelationship_forms_relationship_population_of_ComponentDefinitions() throws XtumlException {
        return R448_ClassRelationship_forms_relationship_population_of_ComponentDefinition_extent;
    }
    private IRelationshipSet R449_InstancePopulationSelector_selects_instances_of_ModelInst_extent;
    public IRelationshipSet R449_InstancePopulationSelector_selects_instances_of_ModelInsts() throws XtumlException {
        return R449_InstancePopulationSelector_selects_instances_of_ModelInst_extent;
    }
    private IRelationshipSet R44_StructureMember_has_parent_StructuredDataType_extent;
    public IRelationshipSet R44_StructureMember_has_parent_StructuredDataTypes() throws XtumlException {
        return R44_StructureMember_has_parent_StructuredDataType_extent;
    }
    private IRelationshipSet R4500_RequiredExecutableProperty_implements_ExecutableProperty_extent;
    public IRelationshipSet R4500_RequiredExecutableProperty_implements_ExecutablePropertys() throws XtumlException {
        return R4500_RequiredExecutableProperty_implements_ExecutableProperty_extent;
    }
    private IRelationshipSet R4500_RequiredExecutableProperty_is_implemented_by_Requirement_extent;
    public IRelationshipSet R4500_RequiredExecutableProperty_is_implemented_by_Requirements() throws XtumlException {
        return R4500_RequiredExecutableProperty_is_implemented_by_Requirement_extent;
    }
    private IRelationshipSet R4501_ProvidedExecutableProperty_implements_ExecutableProperty_extent;
    public IRelationshipSet R4501_ProvidedExecutableProperty_implements_ExecutablePropertys() throws XtumlException {
        return R4501_ProvidedExecutableProperty_implements_ExecutableProperty_extent;
    }
    private IRelationshipSet R4501_ProvidedExecutableProperty_is_implemented_by_Provision_extent;
    public IRelationshipSet R4501_ProvidedExecutableProperty_is_implemented_by_Provisions() throws XtumlException {
        return R4501_ProvidedExecutableProperty_is_implemented_by_Provision_extent;
    }
    private IRelationshipSet R4502_RequiredOperation_is_a_RequiredExecutableProperty_extent;
    public IRelationshipSet R4502_RequiredOperation_is_a_RequiredExecutablePropertys() throws XtumlException {
        return R4502_RequiredOperation_is_a_RequiredExecutableProperty_extent;
    }
    private IRelationshipSet R4502_RequiredSignal_is_a_RequiredExecutableProperty_extent;
    public IRelationshipSet R4502_RequiredSignal_is_a_RequiredExecutablePropertys() throws XtumlException {
        return R4502_RequiredSignal_is_a_RequiredExecutableProperty_extent;
    }
    private IRelationshipSet R4503_ProvidedOperation_is_a_ProvidedExecutableProperty_extent;
    public IRelationshipSet R4503_ProvidedOperation_is_a_ProvidedExecutablePropertys() throws XtumlException {
        return R4503_ProvidedOperation_is_a_ProvidedExecutableProperty_extent;
    }
    private IRelationshipSet R4503_ProvidedSignal_is_a_ProvidedExecutableProperty_extent;
    public IRelationshipSet R4503_ProvidedSignal_is_a_ProvidedExecutablePropertys() throws XtumlException {
        return R4503_ProvidedSignal_is_a_ProvidedExecutableProperty_extent;
    }
    private IRelationshipSet R4505_SetSelector_invokes_InstanceSelector_extent;
    public IRelationshipSet R4505_SetSelector_invokes_InstanceSelectors() throws XtumlException {
        return R4505_SetSelector_invokes_InstanceSelector_extent;
    }
    private IRelationshipSet R4506_AttributeReference_has_value_provided_by_Attribute_extent;
    public IRelationshipSet R4506_AttributeReference_has_value_provided_by_Attributes() throws XtumlException {
        return R4506_AttributeReference_has_value_provided_by_Attribute_extent;
    }
    private IRelationshipSet R4506_AttributeReference_provides_value_for_Attribute_extent;
    public IRelationshipSet R4506_AttributeReference_provides_value_for_Attributes() throws XtumlException {
        return R4506_AttributeReference_provides_value_for_Attribute_extent;
    }
    private IRelationshipSet R450_Statement_is_contained_by_CodeBlock_extent;
    public IRelationshipSet R450_Statement_is_contained_by_CodeBlocks() throws XtumlException {
        return R450_Statement_is_contained_by_CodeBlock_extent;
    }
    private IRelationshipSet R4510_AttributeAccessor_gets_and_sets_Attribute_extent;
    public IRelationshipSet R4510_AttributeAccessor_gets_and_sets_Attributes() throws XtumlException {
        return R4510_AttributeAccessor_gets_and_sets_Attribute_extent;
    }
    private IRelationshipSet R4511_AttributeReference_refers_to_another_attribute_through_ClassRelationship_extent;
    public IRelationshipSet R4511_AttributeReference_refers_to_another_attribute_through_ClassRelationships() throws XtumlException {
        return R4511_AttributeReference_refers_to_another_attribute_through_ClassRelationship_extent;
    }
    private IRelationshipSet R4512_Selector_traverses_across_ClassRelationship_extent;
    public IRelationshipSet R4512_Selector_traverses_across_ClassRelationships() throws XtumlException {
        return R4512_Selector_traverses_across_ClassRelationship_extent;
    }
    private IRelationshipSet R451_BreakSmt_is_a_Statement_extent;
    public IRelationshipSet R451_BreakSmt_is_a_Statements() throws XtumlException {
        return R451_BreakSmt_is_a_Statement_extent;
    }
    private IRelationshipSet R451_ContinueSmt_is_a_Statement_extent;
    public IRelationshipSet R451_ContinueSmt_is_a_Statements() throws XtumlException {
        return R451_ContinueSmt_is_a_Statement_extent;
    }
    private IRelationshipSet R451_DeleteSmt_is_a_Statement_extent;
    public IRelationshipSet R451_DeleteSmt_is_a_Statements() throws XtumlException {
        return R451_DeleteSmt_is_a_Statement_extent;
    }
    private IRelationshipSet R451_ExpressionAsStatement_is_a_Statement_extent;
    public IRelationshipSet R451_ExpressionAsStatement_is_a_Statements() throws XtumlException {
        return R451_ExpressionAsStatement_is_a_Statement_extent;
    }
    private IRelationshipSet R451_ForSmt_is_a_Statement_extent;
    public IRelationshipSet R451_ForSmt_is_a_Statements() throws XtumlException {
        return R451_ForSmt_is_a_Statement_extent;
    }
    private IRelationshipSet R451_Generate_is_a_Statement_extent;
    public IRelationshipSet R451_Generate_is_a_Statements() throws XtumlException {
        return R451_Generate_is_a_Statement_extent;
    }
    private IRelationshipSet R451_Halt_is_a_Statement_extent;
    public IRelationshipSet R451_Halt_is_a_Statements() throws XtumlException {
        return R451_Halt_is_a_Statement_extent;
    }
    private IRelationshipSet R451_IfSmt_is_a_Statement_extent;
    public IRelationshipSet R451_IfSmt_is_a_Statements() throws XtumlException {
        return R451_IfSmt_is_a_Statement_extent;
    }
    private IRelationshipSet R451_NullSmt_is_a_Statement_extent;
    public IRelationshipSet R451_NullSmt_is_a_Statements() throws XtumlException {
        return R451_NullSmt_is_a_Statement_extent;
    }
    private IRelationshipSet R451_RelateSmt_is_a_Statement_extent;
    public IRelationshipSet R451_RelateSmt_is_a_Statements() throws XtumlException {
        return R451_RelateSmt_is_a_Statement_extent;
    }
    private IRelationshipSet R451_ReturnSmt_is_a_Statement_extent;
    public IRelationshipSet R451_ReturnSmt_is_a_Statements() throws XtumlException {
        return R451_ReturnSmt_is_a_Statement_extent;
    }
    private IRelationshipSet R451_UnrelateSmt_is_a_Statement_extent;
    public IRelationshipSet R451_UnrelateSmt_is_a_Statements() throws XtumlException {
        return R451_UnrelateSmt_is_a_Statement_extent;
    }
    private IRelationshipSet R451_WhileSmt_is_a_Statement_extent;
    public IRelationshipSet R451_WhileSmt_is_a_Statements() throws XtumlException {
        return R451_WhileSmt_is_a_Statement_extent;
    }
    private IRelationshipSet R453_IfSmt_has_then_CodeBlock_extent;
    public IRelationshipSet R453_IfSmt_has_then_CodeBlocks() throws XtumlException {
        return R453_IfSmt_has_then_CodeBlock_extent;
    }
    private IRelationshipSet R454_IfSmt_has_else_CodeBlock_extent;
    public IRelationshipSet R454_IfSmt_has_else_CodeBlocks() throws XtumlException {
        return R454_IfSmt_has_else_CodeBlock_extent;
    }
    private IRelationshipSet R4558_UtilityReference_contains_Utility_extent;
    public IRelationshipSet R4558_UtilityReference_contains_Utilitys() throws XtumlException {
        return R4558_UtilityReference_contains_Utility_extent;
    }
    private IRelationshipSet R4558_UtilityReference_used_within_context_of_ComponentDefinition_extent;
    public IRelationshipSet R4558_UtilityReference_used_within_context_of_ComponentDefinitions() throws XtumlException {
        return R4558_UtilityReference_used_within_context_of_ComponentDefinition_extent;
    }
    private IRelationshipSet R4559_UtilityFunction_provided_by_Utility_extent;
    public IRelationshipSet R4559_UtilityFunction_provided_by_Utilitys() throws XtumlException {
        return R4559_UtilityFunction_provided_by_Utility_extent;
    }
    private IRelationshipSet R455_ForSmt_has_control_CodeBlock_extent;
    public IRelationshipSet R455_ForSmt_has_control_CodeBlocks() throws XtumlException {
        return R455_ForSmt_has_control_CodeBlock_extent;
    }
    private IRelationshipSet R4561_ComponentDefinition_initialized_by_Function_extent;
    public IRelationshipSet R4561_ComponentDefinition_initialized_by_Functions() throws XtumlException {
        return R4561_ComponentDefinition_initialized_by_Function_extent;
    }
    private IRelationshipSet R456_WhileSmt_has_control_CodeBlock_extent;
    public IRelationshipSet R456_WhileSmt_has_control_CodeBlocks() throws XtumlException {
        return R456_WhileSmt_has_control_CodeBlock_extent;
    }
    private IRelationshipSet R4570_UtilityFunction_Bridge_extent;
    public IRelationshipSet R4570_UtilityFunction_Bridges() throws XtumlException {
        return R4570_UtilityFunction_Bridge_extent;
    }
    private IRelationshipSet R4571_RelationshipPopulationSelector_selects_relationships_out_of_population_of_ComponentDefinition_extent;
    public IRelationshipSet R4571_RelationshipPopulationSelector_selects_relationships_out_of_population_of_ComponentDefinitions() throws XtumlException {
        return R4571_RelationshipPopulationSelector_selects_relationships_out_of_population_of_ComponentDefinition_extent;
    }
    private IRelationshipSet R4572_RelationshipPopulationSelector_selects_instances_of_ClassRelationship_extent;
    public IRelationshipSet R4572_RelationshipPopulationSelector_selects_instances_of_ClassRelationships() throws XtumlException {
        return R4572_RelationshipPopulationSelector_selects_instances_of_ClassRelationship_extent;
    }
    private IRelationshipSet R4573_ComponentDefinition_C_C_extent;
    public IRelationshipSet R4573_ComponentDefinition_C_Cs() throws XtumlException {
        return R4573_ComponentDefinition_C_C_extent;
    }
    private IRelationshipSet R457_Variable_is_declared_by_Statement_extent;
    public IRelationshipSet R457_Variable_is_declared_by_Statements() throws XtumlException {
        return R457_Variable_is_declared_by_Statement_extent;
    }
    private IRelationshipSet R458_VariableInScope_has_in_scope_Variable_extent;
    public IRelationshipSet R458_VariableInScope_has_in_scope_Variables() throws XtumlException {
        return R458_VariableInScope_has_in_scope_Variable_extent;
    }
    private IRelationshipSet R458_VariableInScope_is_in_scope_for_CodeBlock_extent;
    public IRelationshipSet R458_VariableInScope_is_in_scope_for_CodeBlocks() throws XtumlException {
        return R458_VariableInScope_is_in_scope_for_CodeBlock_extent;
    }
    private IRelationshipSet R459_ForSmt_declares_as_iterator_Variable_extent;
    public IRelationshipSet R459_ForSmt_declares_as_iterator_Variables() throws XtumlException {
        return R459_ForSmt_declares_as_iterator_Variable_extent;
    }
    private IRelationshipSet R45_StructureMember_is_defined_by_DataType_extent;
    public IRelationshipSet R45_StructureMember_is_defined_by_DataTypes() throws XtumlException {
        return R45_StructureMember_is_defined_by_DataType_extent;
    }
    private IRelationshipSet R461_Variable_is_typed_by_TypeReference_extent;
    public IRelationshipSet R461_Variable_is_typed_by_TypeReferences() throws XtumlException {
        return R461_Variable_is_typed_by_TypeReference_extent;
    }
    private IRelationshipSet R462_DeleteSmt_deletes_instance_specified_by_Expression_extent;
    public IRelationshipSet R462_DeleteSmt_deletes_instance_specified_by_Expressions() throws XtumlException {
        return R462_DeleteSmt_deletes_instance_specified_by_Expression_extent;
    }
    private IRelationshipSet R46_StructureMember_succeeds_StructureMember_extent;
    public IRelationshipSet R46_StructureMember_succeeds_StructureMembers() throws XtumlException {
        return R46_StructureMember_succeeds_StructureMember_extent;
    }
    private IRelationshipSet R4701_ImportedReference_imports_InterfaceReference_extent;
    public IRelationshipSet R4701_ImportedReference_imports_InterfaceReferences() throws XtumlException {
        return R4701_ImportedReference_imports_InterfaceReference_extent;
    }
    private IRelationshipSet R4703_ImportedProvision_is_a_ImportedReference_extent;
    public IRelationshipSet R4703_ImportedProvision_is_a_ImportedReferences() throws XtumlException {
        return R4703_ImportedProvision_is_a_ImportedReference_extent;
    }
    private IRelationshipSet R4703_ImportedRequirement_is_a_ImportedReference_extent;
    public IRelationshipSet R4703_ImportedRequirement_is_a_ImportedReferences() throws XtumlException {
        return R4703_ImportedRequirement_is_a_ImportedReference_extent;
    }
    private IRelationshipSet R4704_ImportedReference_accepts_communication_through_Delegation_extent;
    public IRelationshipSet R4704_ImportedReference_accepts_communication_through_Delegations() throws XtumlException {
        return R4704_ImportedReference_accepts_communication_through_Delegation_extent;
    }
    private IRelationshipSet R4705_ImportedProvisionInSatisfaction_provides_satisfaction_through_Satisfaction_extent;
    public IRelationshipSet R4705_ImportedProvisionInSatisfaction_provides_satisfaction_through_Satisfactions() throws XtumlException {
        return R4705_ImportedProvisionInSatisfaction_provides_satisfaction_through_Satisfaction_extent;
    }
    private IRelationshipSet R4705_ImportedProvisionInSatisfaction_satisfaction_made_with_ImportedProvision_extent;
    public IRelationshipSet R4705_ImportedProvisionInSatisfaction_satisfaction_made_with_ImportedProvisions() throws XtumlException {
        return R4705_ImportedProvisionInSatisfaction_satisfaction_made_with_ImportedProvision_extent;
    }
    private IRelationshipSet R4706_ImportedRequirement_provides_satisfaction_through_Satisfaction_extent;
    public IRelationshipSet R4706_ImportedRequirement_provides_satisfaction_through_Satisfactions() throws XtumlException {
        return R4706_ImportedRequirement_provides_satisfaction_through_Satisfaction_extent;
    }
    private IRelationshipSet R4707_PortReference_orginates_from_ComponentReference_extent;
    public IRelationshipSet R4707_PortReference_orginates_from_ComponentReferences() throws XtumlException {
        return R4707_PortReference_orginates_from_ComponentReference_extent;
    }
    private IRelationshipSet R4708_ImportedReference_originates_from_PortReference_extent;
    public IRelationshipSet R4708_ImportedReference_originates_from_PortReferences() throws XtumlException {
        return R4708_ImportedReference_originates_from_PortReference_extent;
    }
    private IRelationshipSet R4709_PortReference_references_C_PO_extent;
    public IRelationshipSet R4709_PortReference_references_C_POs() throws XtumlException {
        return R4709_PortReference_references_C_PO_extent;
    }
    private IRelationshipSet R471_IfSmt_executes_then_block_if_true_Expression_extent;
    public IRelationshipSet R471_IfSmt_executes_then_block_if_true_Expressions() throws XtumlException {
        return R471_IfSmt_executes_then_block_if_true_Expression_extent;
    }
    private IRelationshipSet R472_WhileSmt_executes_block_while_true_Expression_extent;
    public IRelationshipSet R472_WhileSmt_executes_block_while_true_Expressions() throws XtumlException {
        return R472_WhileSmt_executes_block_while_true_Expression_extent;
    }
    private IRelationshipSet R473_ReturnSmt_returns_value_specified_by_Expression_extent;
    public IRelationshipSet R473_ReturnSmt_returns_value_specified_by_Expressions() throws XtumlException {
        return R473_ReturnSmt_returns_value_specified_by_Expression_extent;
    }
    private IRelationshipSet R4750_StateMachine_models_behavior_of_ModelInst_extent;
    public IRelationshipSet R4750_StateMachine_models_behavior_of_ModelInsts() throws XtumlException {
        return R4750_StateMachine_models_behavior_of_ModelInst_extent;
    }
    private IRelationshipSet R4751_State_StateMachine_extent;
    public IRelationshipSet R4751_State_StateMachines() throws XtumlException {
        return R4751_State_StateMachine_extent;
    }
    private IRelationshipSet R4752_Event_StateMachine_extent;
    public IRelationshipSet R4752_Event_StateMachines() throws XtumlException {
        return R4752_Event_StateMachine_extent;
    }
    private IRelationshipSet R4753_TransitionTableRow_StateMachine_extent;
    public IRelationshipSet R4753_TransitionTableRow_StateMachines() throws XtumlException {
        return R4753_TransitionTableRow_StateMachine_extent;
    }
    private IRelationshipSet R4754_TransitionTableRow_State_extent;
    public IRelationshipSet R4754_TransitionTableRow_States() throws XtumlException {
        return R4754_TransitionTableRow_State_extent;
    }
    private IRelationshipSet R4755_TransitionTableCell_TransitionTableRow_extent;
    public IRelationshipSet R4755_TransitionTableCell_TransitionTableRows() throws XtumlException {
        return R4755_TransitionTableCell_TransitionTableRow_extent;
    }
    private IRelationshipSet R4756_TransitionTableCell_receives_Event_extent;
    public IRelationshipSet R4756_TransitionTableCell_receives_Events() throws XtumlException {
        return R4756_TransitionTableCell_receives_Event_extent;
    }
    private IRelationshipSet R4757_StateTransition_TransitionTableCell_extent;
    public IRelationshipSet R4757_StateTransition_TransitionTableCells() throws XtumlException {
        return R4757_StateTransition_TransitionTableCell_extent;
    }
    private IRelationshipSet R4757_StateTransition_transitions_to_State_extent;
    public IRelationshipSet R4757_StateTransition_transitions_to_States() throws XtumlException {
        return R4757_StateTransition_transitions_to_State_extent;
    }
    private IRelationshipSet R4758_StateMachineState_State_extent;
    public IRelationshipSet R4758_StateMachineState_States() throws XtumlException {
        return R4758_StateMachineState_State_extent;
    }
    private IRelationshipSet R4759_StateMachineEvent_Event_extent;
    public IRelationshipSet R4759_StateMachineEvent_Events() throws XtumlException {
        return R4759_StateMachineEvent_Event_extent;
    }
    private IRelationshipSet R4760_StructureMember_Attribute_extent;
    public IRelationshipSet R4760_StructureMember_Attributes() throws XtumlException {
        return R4760_StructureMember_Attribute_extent;
    }
    private IRelationshipSet R4761_Message_ExecutableProperty_extent;
    public IRelationshipSet R4761_Message_ExecutablePropertys() throws XtumlException {
        return R4761_Message_ExecutableProperty_extent;
    }
    private IRelationshipSet R476_ExpressionAsStatement_executes_as_statement_Expression_extent;
    public IRelationshipSet R476_ExpressionAsStatement_executes_as_statement_Expressions() throws XtumlException {
        return R476_ExpressionAsStatement_executes_as_statement_Expression_extent;
    }
    private IRelationshipSet R477_Statement_executes_before_Statement_extent;
    public IRelationshipSet R477_Statement_executes_before_Statements() throws XtumlException {
        return R477_Statement_executes_before_Statement_extent;
    }
    private IRelationshipSet R478_ForSmt_iterates_over_Expression_extent;
    public IRelationshipSet R478_ForSmt_iterates_over_Expressions() throws XtumlException {
        return R478_ForSmt_iterates_over_Expression_extent;
    }
    private IRelationshipSet R479_RelateSmt_relates_formalizing_Expression_extent;
    public IRelationshipSet R479_RelateSmt_relates_formalizing_Expressions() throws XtumlException {
        return R479_RelateSmt_relates_formalizing_Expression_extent;
    }
    private IRelationshipSet R480_RelateSmt_relates_participating_Expression_extent;
    public IRelationshipSet R480_RelateSmt_relates_participating_Expressions() throws XtumlException {
        return R480_RelateSmt_relates_participating_Expression_extent;
    }
    private IRelationshipSet R481_RelateSmt_creates_instances_of_ClassRelationship_extent;
    public IRelationshipSet R481_RelateSmt_creates_instances_of_ClassRelationships() throws XtumlException {
        return R481_RelateSmt_creates_instances_of_ClassRelationship_extent;
    }
    private IRelationshipSet R482_UnrelateSmt_unrelates_participating_Expression_extent;
    public IRelationshipSet R482_UnrelateSmt_unrelates_participating_Expressions() throws XtumlException {
        return R482_UnrelateSmt_unrelates_participating_Expression_extent;
    }
    private IRelationshipSet R483_UnrelateSmt_unrelates_formalizing_Expression_extent;
    public IRelationshipSet R483_UnrelateSmt_unrelates_formalizing_Expressions() throws XtumlException {
        return R483_UnrelateSmt_unrelates_formalizing_Expression_extent;
    }
    private IRelationshipSet R484_UnrelateSmt_deletes_instances_of_ClassRelationship_extent;
    public IRelationshipSet R484_UnrelateSmt_deletes_instances_of_ClassRelationships() throws XtumlException {
        return R484_UnrelateSmt_deletes_instances_of_ClassRelationship_extent;
    }
    private IRelationshipSet R485_Finalization_finalized_by_Statement_extent;
    public IRelationshipSet R485_Finalization_finalized_by_Statements() throws XtumlException {
        return R485_Finalization_finalized_by_Statement_extent;
    }
    private IRelationshipSet R485_Finalization_finalizes_Variable_extent;
    public IRelationshipSet R485_Finalization_finalizes_Variables() throws XtumlException {
        return R485_Finalization_finalizes_Variable_extent;
    }
    private IRelationshipSet R486_Generate_generates_Expression_extent;
    public IRelationshipSet R486_Generate_generates_Expressions() throws XtumlException {
        return R486_Generate_generates_Expression_extent;
    }
    private IRelationshipSet R49_Dimensions_specifies_occurrences_of_BridgeParameter_extent;
    public IRelationshipSet R49_Dimensions_specifies_occurrences_of_BridgeParameters() throws XtumlException {
        return R49_Dimensions_specifies_occurrences_of_BridgeParameter_extent;
    }
    private IRelationshipSet R501_StateMachineState_SM_SM_extent;
    public IRelationshipSet R501_StateMachineState_SM_SMs() throws XtumlException {
        return R501_StateMachineState_SM_SM_extent;
    }
    private IRelationshipSet R502_StateMachineEvent_SM_SM_extent;
    public IRelationshipSet R502_StateMachineEvent_SM_SMs() throws XtumlException {
        return R502_StateMachineEvent_SM_SM_extent;
    }
    private IRelationshipSet R503_StateEventMatrixEntry_is_received_by_StateMachineState_extent;
    public IRelationshipSet R503_StateEventMatrixEntry_is_received_by_StateMachineStates() throws XtumlException {
        return R503_StateEventMatrixEntry_is_received_by_StateMachineState_extent;
    }
    private IRelationshipSet R503_StateEventMatrixEntry_receives_SEMEvent_extent;
    public IRelationshipSet R503_StateEventMatrixEntry_receives_SEMEvents() throws XtumlException {
        return R503_StateEventMatrixEntry_receives_SEMEvent_extent;
    }
    private IRelationshipSet R504_CantHappen_is_a_StateEventMatrixEntry_extent;
    public IRelationshipSet R504_CantHappen_is_a_StateEventMatrixEntrys() throws XtumlException {
        return R504_CantHappen_is_a_StateEventMatrixEntry_extent;
    }
    private IRelationshipSet R504_EventIgnored_is_a_StateEventMatrixEntry_extent;
    public IRelationshipSet R504_EventIgnored_is_a_StateEventMatrixEntrys() throws XtumlException {
        return R504_EventIgnored_is_a_StateEventMatrixEntry_extent;
    }
    private IRelationshipSet R504_NewStateTransition_is_a_StateEventMatrixEntry_extent;
    public IRelationshipSet R504_NewStateTransition_is_a_StateEventMatrixEntrys() throws XtumlException {
        return R504_NewStateTransition_is_a_StateEventMatrixEntry_extent;
    }
    private IRelationshipSet R505_Transition_SM_SM_extent;
    public IRelationshipSet R505_Transition_SM_SMs() throws XtumlException {
        return R505_Transition_SM_SM_extent;
    }
    private IRelationshipSet R506_Transition_is_destined_to_StateMachineState_extent;
    public IRelationshipSet R506_Transition_is_destined_to_StateMachineStates() throws XtumlException {
        return R506_Transition_is_destined_to_StateMachineState_extent;
    }
    private IRelationshipSet R507_CreationTransition_is_a_Transition_extent;
    public IRelationshipSet R507_CreationTransition_is_a_Transitions() throws XtumlException {
        return R507_CreationTransition_is_a_Transition_extent;
    }
    private IRelationshipSet R507_NewStateTransition_is_a_Transition_extent;
    public IRelationshipSet R507_NewStateTransition_is_a_Transitions() throws XtumlException {
        return R507_NewStateTransition_is_a_Transition_extent;
    }
    private IRelationshipSet R507_NoEventTransition_is_a_Transition_extent;
    public IRelationshipSet R507_NoEventTransition_is_a_Transitions() throws XtumlException {
        return R507_NoEventTransition_is_a_Transition_extent;
    }
    private IRelationshipSet R508_NoEventTransition_originates_from_StateMachineState_extent;
    public IRelationshipSet R508_NoEventTransition_originates_from_StateMachineStates() throws XtumlException {
        return R508_NoEventTransition_originates_from_StateMachineState_extent;
    }
    private IRelationshipSet R509_CreationTransition_is_assigned_to_LocalEvent_extent;
    public IRelationshipSet R509_CreationTransition_is_assigned_to_LocalEvents() throws XtumlException {
        return R509_CreationTransition_is_assigned_to_LocalEvent_extent;
    }
    private IRelationshipSet R50_Dimensions_defines_return_value_dimensions_for_Bridge_extent;
    public IRelationshipSet R50_Dimensions_defines_return_value_dimensions_for_Bridges() throws XtumlException {
        return R50_Dimensions_defines_return_value_dimensions_for_Bridge_extent;
    }
    private IRelationshipSet R510_MealyStateMachine_is_a_SM_SM_extent;
    public IRelationshipSet R510_MealyStateMachine_is_a_SM_SMs() throws XtumlException {
        return R510_MealyStateMachine_is_a_SM_SM_extent;
    }
    private IRelationshipSet R510_MooreStateMachine_is_a_SM_SM_extent;
    public IRelationshipSet R510_MooreStateMachine_is_a_SM_SMs() throws XtumlException {
        return R510_MooreStateMachine_is_a_SM_SM_extent;
    }
    private IRelationshipSet R511_MooreActionHome_MooreStateMachine_extent;
    public IRelationshipSet R511_MooreActionHome_MooreStateMachines() throws XtumlException {
        return R511_MooreActionHome_MooreStateMachine_extent;
    }
    private IRelationshipSet R511_MooreActionHome_StateMachineState_extent;
    public IRelationshipSet R511_MooreActionHome_StateMachineStates() throws XtumlException {
        return R511_MooreActionHome_StateMachineState_extent;
    }
    private IRelationshipSet R512_MealyActionHome_MealyStateMachine_extent;
    public IRelationshipSet R512_MealyActionHome_MealyStateMachines() throws XtumlException {
        return R512_MealyActionHome_MealyStateMachine_extent;
    }
    private IRelationshipSet R512_MealyActionHome_Transition_extent;
    public IRelationshipSet R512_MealyActionHome_Transitions() throws XtumlException {
        return R512_MealyActionHome_Transition_extent;
    }
    private IRelationshipSet R513_MealyActionHome_is_a_ActionHome_extent;
    public IRelationshipSet R513_MealyActionHome_is_a_ActionHomes() throws XtumlException {
        return R513_MealyActionHome_is_a_ActionHome_extent;
    }
    private IRelationshipSet R513_MooreActionHome_is_a_ActionHome_extent;
    public IRelationshipSet R513_MooreActionHome_is_a_ActionHomes() throws XtumlException {
        return R513_MooreActionHome_is_a_ActionHome_extent;
    }
    private IRelationshipSet R513_TransitionActionHome_is_a_ActionHome_extent;
    public IRelationshipSet R513_TransitionActionHome_is_a_ActionHomes() throws XtumlException {
        return R513_TransitionActionHome_is_a_ActionHome_extent;
    }
    private IRelationshipSet R514_ActionHome_houses_Action_extent;
    public IRelationshipSet R514_ActionHome_houses_Actions() throws XtumlException {
        return R514_ActionHome_houses_Action_extent;
    }
    private IRelationshipSet R515_Action_SM_SM_extent;
    public IRelationshipSet R515_Action_SM_SMs() throws XtumlException {
        return R515_Action_SM_SM_extent;
    }
    private IRelationshipSet R516_StateMachineEventDataItem_is_carried_on_events_into_SM_SM_extent;
    public IRelationshipSet R516_StateMachineEventDataItem_is_carried_on_events_into_SM_SMs() throws XtumlException {
        return R516_StateMachineEventDataItem_is_carried_on_events_into_SM_SM_extent;
    }
    private IRelationshipSet R517_ClassStateMachine_is_a_SM_SM_extent;
    public IRelationshipSet R517_ClassStateMachine_is_a_SM_SMs() throws XtumlException {
        return R517_ClassStateMachine_is_a_SM_SM_extent;
    }
    private IRelationshipSet R517_InstanceStateMachine_is_a_SM_SM_extent;
    public IRelationshipSet R517_InstanceStateMachine_is_a_SM_SMs() throws XtumlException {
        return R517_InstanceStateMachine_is_a_SM_SM_extent;
    }
    private IRelationshipSet R518_InstanceStateMachine_ModelClass_extent;
    public IRelationshipSet R518_InstanceStateMachine_ModelClasss() throws XtumlException {
        return R518_InstanceStateMachine_ModelClass_extent;
    }
    private IRelationshipSet R519_ClassStateMachine_ModelClass_extent;
    public IRelationshipSet R519_ClassStateMachine_ModelClasss() throws XtumlException {
        return R519_ClassStateMachine_ModelClass_extent;
    }
    private IRelationshipSet R51_Dimensions_defines_return_value_dimensions_for_S_SYNC_extent;
    public IRelationshipSet R51_Dimensions_defines_return_value_dimensions_for_S_SYNCs() throws XtumlException {
        return R51_Dimensions_defines_return_value_dimensions_for_S_SYNC_extent;
    }
    private IRelationshipSet R524_StateMachineEventDataItem_is_defined_by_DataType_extent;
    public IRelationshipSet R524_StateMachineEventDataItem_is_defined_by_DataTypes() throws XtumlException {
        return R524_StateMachineEventDataItem_is_defined_by_DataType_extent;
    }
    private IRelationshipSet R525_PolymorphicEvent_is_a_StateMachineEvent_extent;
    public IRelationshipSet R525_PolymorphicEvent_is_a_StateMachineEvents() throws XtumlException {
        return R525_PolymorphicEvent_is_a_StateMachineEvent_extent;
    }
    private IRelationshipSet R525_SEMEvent_is_a_StateMachineEvent_extent;
    public IRelationshipSet R525_SEMEvent_is_a_StateMachineEvents() throws XtumlException {
        return R525_SEMEvent_is_a_StateMachineEvent_extent;
    }
    private IRelationshipSet R526_LocalEvent_is_a_SEMEvent_extent;
    public IRelationshipSet R526_LocalEvent_is_a_SEMEvents() throws XtumlException {
        return R526_LocalEvent_is_a_SEMEvent_extent;
    }
    private IRelationshipSet R526_NonLocalEvent_is_a_SEMEvent_extent;
    public IRelationshipSet R526_NonLocalEvent_is_a_SEMEvents() throws XtumlException {
        return R526_NonLocalEvent_is_a_SEMEvent_extent;
    }
    private IRelationshipSet R526_SignalEvent_is_a_SEMEvent_extent;
    public IRelationshipSet R526_SignalEvent_is_a_SEMEvents() throws XtumlException {
        return R526_SignalEvent_is_a_SEMEvent_extent;
    }
    private IRelationshipSet R527_NonLocalEvent_is_defined_by_PolymorphicEvent_extent;
    public IRelationshipSet R527_NonLocalEvent_is_defined_by_PolymorphicEvents() throws XtumlException {
        return R527_NonLocalEvent_is_defined_by_PolymorphicEvent_extent;
    }
    private IRelationshipSet R528_SignalEvent_ProvidedSignal_extent;
    public IRelationshipSet R528_SignalEvent_ProvidedSignals() throws XtumlException {
        return R528_SignalEvent_ProvidedSignal_extent;
    }
    private IRelationshipSet R529_SignalEvent_RequiredSignal_extent;
    public IRelationshipSet R529_SignalEvent_RequiredSignals() throws XtumlException {
        return R529_SignalEvent_RequiredSignal_extent;
    }
    private IRelationshipSet R52_Dimensions_specifies_occurrences_of_FunctionParameter_extent;
    public IRelationshipSet R52_Dimensions_specifies_occurrences_of_FunctionParameters() throws XtumlException {
        return R52_Dimensions_specifies_occurrences_of_FunctionParameter_extent;
    }
    private IRelationshipSet R530_TransitionActionHome_Transition_extent;
    public IRelationshipSet R530_TransitionActionHome_Transitions() throws XtumlException {
        return R530_TransitionActionHome_Transition_extent;
    }
    private IRelationshipSet R531_Dimensions_specifies_occurrences_of_StateMachineEventDataItem_extent;
    public IRelationshipSet R531_Dimensions_specifies_occurrences_of_StateMachineEventDataItems() throws XtumlException {
        return R531_Dimensions_specifies_occurrences_of_StateMachineEventDataItem_extent;
    }
    private IRelationshipSet R532_StateMachineEventDataItem_carried_by_StateMachineEvent_extent;
    public IRelationshipSet R532_StateMachineEventDataItem_carried_by_StateMachineEvents() throws XtumlException {
        return R532_StateMachineEventDataItem_carried_by_StateMachineEvent_extent;
    }
    private IRelationshipSet R533_StateMachineEventDataItem_succeeds_StateMachineEventDataItem_extent;
    public IRelationshipSet R533_StateMachineEventDataItem_succeeds_StateMachineEventDataItems() throws XtumlException {
        return R533_StateMachineEventDataItem_succeeds_StateMachineEventDataItem_extent;
    }
    private IRelationshipSet R53_Dimensions_specifies_occurrences_of_StructureMember_extent;
    public IRelationshipSet R53_Dimensions_specifies_occurrences_of_StructureMembers() throws XtumlException {
        return R53_Dimensions_specifies_occurrences_of_StructureMember_extent;
    }
    private IRelationshipSet R54_FunctionParameter_succeeds_FunctionParameter_extent;
    public IRelationshipSet R54_FunctionParameter_succeeds_FunctionParameters() throws XtumlException {
        return R54_FunctionParameter_succeeds_FunctionParameter_extent;
    }
    private IRelationshipSet R55_BridgeParameter_succeeds_BridgeParameter_extent;
    public IRelationshipSet R55_BridgeParameter_succeeds_BridgeParameters() throws XtumlException {
        return R55_BridgeParameter_succeeds_BridgeParameter_extent;
    }
    private IRelationshipSet R56_S_ENUM_succeeds_S_ENUM_extent;
    public IRelationshipSet R56_S_ENUM_succeeds_S_ENUMs() throws XtumlException {
        return R56_S_ENUM_succeeds_S_ENUM_extent;
    }
    private IRelationshipSet R57_Range_spans_UserDataType_extent;
    public IRelationshipSet R57_Range_spans_UserDataTypes() throws XtumlException {
        return R57_Range_spans_UserDataType_extent;
    }
    private IRelationshipSet R601_Block_is_committed_from_Body_extent;
    public IRelationshipSet R601_Block_is_committed_from_Bodys() throws XtumlException {
        return R601_Block_is_committed_from_Body_extent;
    }
    private IRelationshipSet R602_ACT_SMT_contains_Block_extent;
    public IRelationshipSet R602_ACT_SMT_contains_Blocks() throws XtumlException {
        return R602_ACT_SMT_contains_Block_extent;
    }
    private IRelationshipSet R603_ACT_BRK_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_ACT_BRK_is_a_ACT_SMTs() throws XtumlException {
        return R603_ACT_BRK_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_ACT_CON_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_ACT_CON_is_a_ACT_SMTs() throws XtumlException {
        return R603_ACT_CON_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_ACT_FIO_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_ACT_FIO_is_a_ACT_SMTs() throws XtumlException {
        return R603_ACT_FIO_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_ACT_SEL_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_ACT_SEL_is_a_ACT_SMTs() throws XtumlException {
        return R603_ACT_SEL_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_AssignToMember_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_AssignToMember_is_a_ACT_SMTs() throws XtumlException {
        return R603_AssignToMember_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_BridgeInvocation_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_BridgeInvocation_is_a_ACT_SMTs() throws XtumlException {
        return R603_BridgeInvocation_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_Control_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_Control_is_a_ACT_SMTs() throws XtumlException {
        return R603_Control_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_CreateNoVariable_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_CreateNoVariable_is_a_ACT_SMTs() throws XtumlException {
        return R603_CreateNoVariable_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_Create_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_Create_is_a_ACT_SMTs() throws XtumlException {
        return R603_Create_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_Delete_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_Delete_is_a_ACT_SMTs() throws XtumlException {
        return R603_Delete_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_ElseIfStmt_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_ElseIfStmt_is_a_ACT_SMTs() throws XtumlException {
        return R603_ElseIfStmt_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_ElseStmt_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_ElseStmt_is_a_ACT_SMTs() throws XtumlException {
        return R603_ElseStmt_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_EventSpecificationStatement_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_EventSpecificationStatement_is_a_ACT_SMTs() throws XtumlException {
        return R603_EventSpecificationStatement_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_ForStmt_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_ForStmt_is_a_ACT_SMTs() throws XtumlException {
        return R603_ForStmt_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_FunctionInvocation_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_FunctionInvocation_is_a_ACT_SMTs() throws XtumlException {
        return R603_FunctionInvocation_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_GeneratePreexistingEvent_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_GeneratePreexistingEvent_is_a_ACT_SMTs() throws XtumlException {
        return R603_GeneratePreexistingEvent_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_IfStmt_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_IfStmt_is_a_ACT_SMTs() throws XtumlException {
        return R603_IfStmt_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_InterfaceOperationInvocation_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_InterfaceOperationInvocation_is_a_ACT_SMTs() throws XtumlException {
        return R603_InterfaceOperationInvocation_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_OperationInvocation_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_OperationInvocation_is_a_ACT_SMTs() throws XtumlException {
        return R603_OperationInvocation_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_RelateUsing_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_RelateUsing_is_a_ACT_SMTs() throws XtumlException {
        return R603_RelateUsing_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_Relate_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_Relate_is_a_ACT_SMTs() throws XtumlException {
        return R603_Relate_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_ReturnStmt_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_ReturnStmt_is_a_ACT_SMTs() throws XtumlException {
        return R603_ReturnStmt_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_SelectFromInstancesWhere_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_SelectFromInstancesWhere_is_a_ACT_SMTs() throws XtumlException {
        return R603_SelectFromInstancesWhere_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_SignalInvocation_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_SignalInvocation_is_a_ACT_SMTs() throws XtumlException {
        return R603_SignalInvocation_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_UnrelateUsing_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_UnrelateUsing_is_a_ACT_SMTs() throws XtumlException {
        return R603_UnrelateUsing_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_Unrelate_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_Unrelate_is_a_ACT_SMTs() throws XtumlException {
        return R603_Unrelate_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R603_WhileStmt_is_a_ACT_SMT_extent;
    public IRelationshipSet R603_WhileStmt_is_a_ACT_SMTs() throws XtumlException {
        return R603_WhileStmt_is_a_ACT_SMT_extent;
    }
    private IRelationshipSet R604_ChainLink_precedes_ChainLink_extent;
    public IRelationshipSet R604_ChainLink_precedes_ChainLinks() throws XtumlException {
        return R604_ChainLink_precedes_ChainLink_extent;
    }
    private IRelationshipSet R605_ForStmt_controls_Block_extent;
    public IRelationshipSet R605_ForStmt_controls_Blocks() throws XtumlException {
        return R605_ForStmt_controls_Block_extent;
    }
    private IRelationshipSet R606_ElseStmt_controls_Block_extent;
    public IRelationshipSet R606_ElseStmt_controls_Blocks() throws XtumlException {
        return R606_ElseStmt_controls_Block_extent;
    }
    private IRelationshipSet R607_IfStmt_controls_Block_extent;
    public IRelationshipSet R607_IfStmt_controls_Blocks() throws XtumlException {
        return R607_IfStmt_controls_Block_extent;
    }
    private IRelationshipSet R608_WhileStmt_controls_Block_extent;
    public IRelationshipSet R608_WhileStmt_controls_Blocks() throws XtumlException {
        return R608_WhileStmt_controls_Block_extent;
    }
    private IRelationshipSet R609_AssignToMember_reads_Value_extent;
    public IRelationshipSet R609_AssignToMember_reads_Values() throws XtumlException {
        return R609_AssignToMember_reads_Value_extent;
    }
    private IRelationshipSet R610_SelectFromInstancesWhere_where_clause_Value_extent;
    public IRelationshipSet R610_SelectFromInstancesWhere_where_clause_Values() throws XtumlException {
        return R610_SelectFromInstancesWhere_where_clause_Value_extent;
    }
    private IRelationshipSet R611_SelectRelatedWhere_where_clause_Value_extent;
    public IRelationshipSet R611_SelectRelatedWhere_where_clause_Values() throws XtumlException {
        return R611_SelectRelatedWhere_where_clause_Value_extent;
    }
    private IRelationshipSet R612_Block_is_parsed_from_Body_extent;
    public IRelationshipSet R612_Block_is_parsed_from_Bodys() throws XtumlException {
        return R612_Block_is_parsed_from_Body_extent;
    }
    private IRelationshipSet R613_ACT_SEL_starting_point_Value_extent;
    public IRelationshipSet R613_ACT_SEL_starting_point_Values() throws XtumlException {
        return R613_ACT_SEL_starting_point_Value_extent;
    }
    private IRelationshipSet R614_ForStmt_loop_V_VAR_extent;
    public IRelationshipSet R614_ForStmt_loop_V_VARs() throws XtumlException {
        return R614_ForStmt_loop_V_VAR_extent;
    }
    private IRelationshipSet R615_Relate_one_V_VAR_extent;
    public IRelationshipSet R615_Relate_one_V_VARs() throws XtumlException {
        return R615_Relate_one_V_VAR_extent;
    }
    private IRelationshipSet R616_Relate_other_V_VAR_extent;
    public IRelationshipSet R616_Relate_other_V_VARs() throws XtumlException {
        return R616_Relate_other_V_VAR_extent;
    }
    private IRelationshipSet R617_RelateUsing_one_V_VAR_extent;
    public IRelationshipSet R617_RelateUsing_one_V_VARs() throws XtumlException {
        return R617_RelateUsing_one_V_VAR_extent;
    }
    private IRelationshipSet R618_RelateUsing_other_V_VAR_extent;
    public IRelationshipSet R618_RelateUsing_other_V_VARs() throws XtumlException {
        return R618_RelateUsing_other_V_VAR_extent;
    }
    private IRelationshipSet R619_RelateUsing_using_V_VAR_extent;
    public IRelationshipSet R619_RelateUsing_using_V_VARs() throws XtumlException {
        return R619_RelateUsing_using_V_VAR_extent;
    }
    private IRelationshipSet R620_Unrelate_one_V_VAR_extent;
    public IRelationshipSet R620_Unrelate_one_V_VARs() throws XtumlException {
        return R620_Unrelate_one_V_VAR_extent;
    }
    private IRelationshipSet R621_Unrelate_other_V_VAR_extent;
    public IRelationshipSet R621_Unrelate_other_V_VARs() throws XtumlException {
        return R621_Unrelate_other_V_VAR_extent;
    }
    private IRelationshipSet R622_UnrelateUsing_one_V_VAR_extent;
    public IRelationshipSet R622_UnrelateUsing_one_V_VARs() throws XtumlException {
        return R622_UnrelateUsing_one_V_VAR_extent;
    }
    private IRelationshipSet R623_UnrelateUsing_other_V_VAR_extent;
    public IRelationshipSet R623_UnrelateUsing_other_V_VARs() throws XtumlException {
        return R623_UnrelateUsing_other_V_VAR_extent;
    }
    private IRelationshipSet R624_UnrelateUsing_using_V_VAR_extent;
    public IRelationshipSet R624_UnrelateUsing_using_V_VARs() throws XtumlException {
        return R624_UnrelateUsing_using_V_VAR_extent;
    }
    private IRelationshipSet R625_IfStmt_test_result_Value_extent;
    public IRelationshipSet R625_IfStmt_test_result_Values() throws XtumlException {
        return R625_IfStmt_test_result_Value_extent;
    }
    private IRelationshipSet R626_WhileStmt_continue_result_Value_extent;
    public IRelationshipSet R626_WhileStmt_continue_result_Values() throws XtumlException {
        return R626_WhileStmt_continue_result_Value_extent;
    }
    private IRelationshipSet R627_V_PAR_OperationInvocation_extent;
    public IRelationshipSet R627_V_PAR_OperationInvocations() throws XtumlException {
        return R627_V_PAR_OperationInvocation_extent;
    }
    private IRelationshipSet R628_V_PAR_BridgeInvocation_extent;
    public IRelationshipSet R628_V_PAR_BridgeInvocations() throws XtumlException {
        return R628_V_PAR_BridgeInvocation_extent;
    }
    private IRelationshipSet R629_InterfaceOperationInvocation_has_target_Value_extent;
    public IRelationshipSet R629_InterfaceOperationInvocation_has_target_Values() throws XtumlException {
        return R629_InterfaceOperationInvocation_has_target_Value_extent;
    }
    private IRelationshipSet R630_SignalInvocation_has_target_Value_extent;
    public IRelationshipSet R630_SignalInvocation_has_target_Values() throws XtumlException {
        return R630_SignalInvocation_has_target_Value_extent;
    }
    private IRelationshipSet R633_Create_result_V_VAR_extent;
    public IRelationshipSet R633_Create_result_V_VARs() throws XtumlException {
        return R633_Create_result_V_VAR_extent;
    }
    private IRelationshipSet R634_Delete_destroys_V_VAR_extent;
    public IRelationshipSet R634_Delete_destroys_V_VARs() throws XtumlException {
        return R634_Delete_destroys_V_VAR_extent;
    }
    private IRelationshipSet R637_ChainLink_ACT_SEL_extent;
    public IRelationshipSet R637_ChainLink_ACT_SELs() throws XtumlException {
        return R637_ChainLink_ACT_SEL_extent;
    }
    private IRelationshipSet R638_ACT_SEL_selection_V_VAR_extent;
    public IRelationshipSet R638_ACT_SEL_selection_V_VARs() throws XtumlException {
        return R638_ACT_SEL_selection_V_VAR_extent;
    }
    private IRelationshipSet R639_ACT_FIO_selection_V_VAR_extent;
    public IRelationshipSet R639_ACT_FIO_selection_V_VARs() throws XtumlException {
        return R639_ACT_FIO_selection_V_VAR_extent;
    }
    private IRelationshipSet R640_BodyInElement_has_declared_Body_extent;
    public IRelationshipSet R640_BodyInElement_has_declared_Bodys() throws XtumlException {
        return R640_BodyInElement_has_declared_Body_extent;
    }
    private IRelationshipSet R640_BodyInElement_is_declared_in_PackageableElement_extent;
    public IRelationshipSet R640_BodyInElement_is_declared_in_PackageableElements() throws XtumlException {
        return R640_BodyInElement_is_declared_in_PackageableElement_extent;
    }
    private IRelationshipSet R650_Body_has_parsed_outer_Block_extent;
    public IRelationshipSet R650_Body_has_parsed_outer_Blocks() throws XtumlException {
        return R650_Body_has_parsed_outer_Block_extent;
    }
    private IRelationshipSet R652_ForStmt_set_V_VAR_extent;
    public IRelationshipSet R652_ForStmt_set_V_VARs() throws XtumlException {
        return R652_ForStmt_set_V_VAR_extent;
    }
    private IRelationshipSet R653_Relate_creates_Association_extent;
    public IRelationshipSet R653_Relate_creates_Associations() throws XtumlException {
        return R653_Relate_creates_Association_extent;
    }
    private IRelationshipSet R654_RelateUsing_creates_Association_extent;
    public IRelationshipSet R654_RelateUsing_creates_Associations() throws XtumlException {
        return R654_RelateUsing_creates_Association_extent;
    }
    private IRelationshipSet R655_Unrelate_destroys_Association_extent;
    public IRelationshipSet R655_Unrelate_destroys_Associations() throws XtumlException {
        return R655_Unrelate_destroys_Association_extent;
    }
    private IRelationshipSet R656_UnrelateUsing_destroys_Association_extent;
    public IRelationshipSet R656_UnrelateUsing_destroys_Associations() throws XtumlException {
        return R656_UnrelateUsing_destroys_Association_extent;
    }
    private IRelationshipSet R657_InterfaceOperationInvocation_is_invocation_of_RequiredOperation_extent;
    public IRelationshipSet R657_InterfaceOperationInvocation_is_invocation_of_RequiredOperations() throws XtumlException {
        return R657_InterfaceOperationInvocation_is_invocation_of_RequiredOperation_extent;
    }
    private IRelationshipSet R658_ElseIfStmt_controls_Block_extent;
    public IRelationshipSet R658_ElseIfStmt_controls_Blocks() throws XtumlException {
        return R658_ElseIfStmt_controls_Block_extent;
    }
    private IRelationshipSet R659_ElseIfStmt_test_result_Value_extent;
    public IRelationshipSet R659_ElseIfStmt_test_result_Values() throws XtumlException {
        return R659_ElseIfStmt_test_result_Value_extent;
    }
    private IRelationshipSet R660_SignalInvocation_is_invocation_of_RequiredSignal_extent;
    public IRelationshipSet R660_SignalInvocation_is_invocation_of_RequiredSignals() throws XtumlException {
        return R660_SignalInvocation_is_invocation_of_RequiredSignal_extent;
    }
    private IRelationshipSet R661_ACT_SMT_succeeds_ACT_SMT_extent;
    public IRelationshipSet R661_ACT_SMT_succeeds_ACT_SMTs() throws XtumlException {
        return R661_ACT_SMT_succeeds_ACT_SMT_extent;
    }
    private IRelationshipSet R662_V_PAR_taken_by_SignalInvocation_extent;
    public IRelationshipSet R662_V_PAR_taken_by_SignalInvocations() throws XtumlException {
        return R662_V_PAR_taken_by_SignalInvocation_extent;
    }
    private IRelationshipSet R663_SignalInvocation_is_invocation_of_ProvidedSignal_extent;
    public IRelationshipSet R663_SignalInvocation_is_invocation_of_ProvidedSignals() throws XtumlException {
        return R663_SignalInvocation_is_invocation_of_ProvidedSignal_extent;
    }
    private IRelationshipSet R664_SelectRelatedBy_is_a_ACT_SEL_extent;
    public IRelationshipSet R664_SelectRelatedBy_is_a_ACT_SELs() throws XtumlException {
        return R664_SelectRelatedBy_is_a_ACT_SEL_extent;
    }
    private IRelationshipSet R664_SelectRelatedWhere_is_a_ACT_SEL_extent;
    public IRelationshipSet R664_SelectRelatedWhere_is_a_ACT_SELs() throws XtumlException {
        return R664_SelectRelatedWhere_is_a_ACT_SEL_extent;
    }
    private IRelationshipSet R665_SelectFromInstancesWhere_result_V_VAR_extent;
    public IRelationshipSet R665_SelectFromInstancesWhere_result_V_VARs() throws XtumlException {
        return R665_SelectFromInstancesWhere_result_V_VAR_extent;
    }
    private IRelationshipSet R666_Body_has_committed_outer_Block_extent;
    public IRelationshipSet R666_Body_has_committed_outer_Blocks() throws XtumlException {
        return R666_Body_has_committed_outer_Block_extent;
    }
    private IRelationshipSet R667_OperationInvocation_has_target_V_VAR_extent;
    public IRelationshipSet R667_OperationInvocation_has_target_V_VARs() throws XtumlException {
        return R667_OperationInvocation_has_target_V_VAR_extent;
    }
    private IRelationshipSet R668_ReturnStmt_has_Value_extent;
    public IRelationshipSet R668_ReturnStmt_has_Values() throws XtumlException {
        return R668_ReturnStmt_has_Value_extent;
    }
    private IRelationshipSet R669_V_PAR_FunctionInvocation_extent;
    public IRelationshipSet R669_V_PAR_FunctionInvocations() throws XtumlException {
        return R669_V_PAR_FunctionInvocation_extent;
    }
    private IRelationshipSet R670_ForStmt_iterates_a_set_of_ModelClass_extent;
    public IRelationshipSet R670_ForStmt_iterates_a_set_of_ModelClasss() throws XtumlException {
        return R670_ForStmt_iterates_a_set_of_ModelClass_extent;
    }
    private IRelationshipSet R671_Create_instance_of_ModelClass_extent;
    public IRelationshipSet R671_Create_instance_of_ModelClasss() throws XtumlException {
        return R671_Create_instance_of_ModelClass_extent;
    }
    private IRelationshipSet R672_CreateNoVariable_instance_of_ModelClass_extent;
    public IRelationshipSet R672_CreateNoVariable_instance_of_ModelClasss() throws XtumlException {
        return R672_CreateNoVariable_instance_of_ModelClass_extent;
    }
    private IRelationshipSet R673_OperationInvocation_is_an_invocation_of_O_TFR_extent;
    public IRelationshipSet R673_OperationInvocation_is_an_invocation_of_O_TFRs() throws XtumlException {
        return R673_OperationInvocation_is_an_invocation_of_O_TFR_extent;
    }
    private IRelationshipSet R674_BridgeInvocation_is_an_invocation_of_Bridge_extent;
    public IRelationshipSet R674_BridgeInvocation_is_an_invocation_of_Bridges() throws XtumlException {
        return R674_BridgeInvocation_is_an_invocation_of_Bridge_extent;
    }
    private IRelationshipSet R675_FunctionInvocation_is_an_invocation_of_S_SYNC_extent;
    public IRelationshipSet R675_FunctionInvocation_is_an_invocation_of_S_SYNCs() throws XtumlException {
        return R675_FunctionInvocation_is_an_invocation_of_S_SYNC_extent;
    }
    private IRelationshipSet R676_SelectFromInstancesWhere_from_extent_of_ModelClass_extent;
    public IRelationshipSet R676_SelectFromInstancesWhere_from_extent_of_ModelClasss() throws XtumlException {
        return R676_SelectFromInstancesWhere_from_extent_of_ModelClass_extent;
    }
    private IRelationshipSet R677_ACT_FIO_from_extent_of_ModelClass_extent;
    public IRelationshipSet R677_ACT_FIO_from_extent_of_ModelClasss() throws XtumlException {
        return R677_ACT_FIO_from_extent_of_ModelClass_extent;
    }
    private IRelationshipSet R678_ChainLink_specifies_instances_of_ModelClass_extent;
    public IRelationshipSet R678_ChainLink_specifies_instances_of_ModelClasss() throws XtumlException {
        return R678_ChainLink_specifies_instances_of_ModelClass_extent;
    }
    private IRelationshipSet R679_V_PAR_taken_by_InterfaceOperationInvocation_extent;
    public IRelationshipSet R679_V_PAR_taken_by_InterfaceOperationInvocations() throws XtumlException {
        return R679_V_PAR_taken_by_InterfaceOperationInvocation_extent;
    }
    private IRelationshipSet R680_InterfaceOperationInvocation_is_invocation_of_ProvidedOperation_extent;
    public IRelationshipSet R680_InterfaceOperationInvocation_is_invocation_of_ProvidedOperations() throws XtumlException {
        return R680_InterfaceOperationInvocation_is_invocation_of_ProvidedOperation_extent;
    }
    private IRelationshipSet R681_ChainLink_specifies_traversal_of_Association_extent;
    public IRelationshipSet R681_ChainLink_specifies_traversal_of_Associations() throws XtumlException {
        return R681_ChainLink_specifies_traversal_of_Association_extent;
    }
    private IRelationshipSet R682_ElseIfStmt_IfStmt_extent;
    public IRelationshipSet R682_ElseIfStmt_IfStmts() throws XtumlException {
        return R682_ElseIfStmt_IfStmt_extent;
    }
    private IRelationshipSet R683_ElseStmt_IfStmt_extent;
    public IRelationshipSet R683_ElseStmt_IfStmts() throws XtumlException {
        return R683_ElseStmt_IfStmt_extent;
    }
    private IRelationshipSet R684_RequiredSignalBody_specifies_processing_for_RequiredSignal_extent;
    public IRelationshipSet R684_RequiredSignalBody_specifies_processing_for_RequiredSignals() throws XtumlException {
        return R684_RequiredSignalBody_specifies_processing_for_RequiredSignal_extent;
    }
    private IRelationshipSet R685_RequiredOperationBody_specifies_processing_for_RequiredOperation_extent;
    public IRelationshipSet R685_RequiredOperationBody_specifies_processing_for_RequiredOperations() throws XtumlException {
        return R685_RequiredOperationBody_specifies_processing_for_RequiredOperation_extent;
    }
    private IRelationshipSet R686_ProvidedSignalBody_specifies_processing_for_ProvidedSignal_extent;
    public IRelationshipSet R686_ProvidedSignalBody_specifies_processing_for_ProvidedSignals() throws XtumlException {
        return R686_ProvidedSignalBody_specifies_processing_for_ProvidedSignal_extent;
    }
    private IRelationshipSet R687_ProvidedOperationBody_specifies_processing_for_ProvidedOperation_extent;
    public IRelationshipSet R687_ProvidedOperationBody_specifies_processing_for_ProvidedOperations() throws XtumlException {
        return R687_ProvidedOperationBody_specifies_processing_for_ProvidedOperation_extent;
    }
    private IRelationshipSet R688_TransitionActionBody_specifies_processing_for_Action_extent;
    public IRelationshipSet R688_TransitionActionBody_specifies_processing_for_Actions() throws XtumlException {
        return R688_TransitionActionBody_specifies_processing_for_Action_extent;
    }
    private IRelationshipSet R689_AssignToMember_writes_Value_extent;
    public IRelationshipSet R689_AssignToMember_writes_Values() throws XtumlException {
        return R689_AssignToMember_writes_Value_extent;
    }
    private IRelationshipSet R690_IfStmt_was_executing_when_halted_ElseIfStmt_extent;
    public IRelationshipSet R690_IfStmt_was_executing_when_halted_ElseIfStmts() throws XtumlException {
        return R690_IfStmt_was_executing_when_halted_ElseIfStmt_extent;
    }
    private IRelationshipSet R691_StateActionBody_specifies_processing_for_Action_extent;
    public IRelationshipSet R691_StateActionBody_specifies_processing_for_Actions() throws XtumlException {
        return R691_StateActionBody_specifies_processing_for_Action_extent;
    }
    private IRelationshipSet R692_IfStmt_was_executing_when_halted_ElseStmt_extent;
    public IRelationshipSet R692_IfStmt_was_executing_when_halted_ElseStmts() throws XtumlException {
        return R692_IfStmt_was_executing_when_halted_ElseStmt_extent;
    }
    private IRelationshipSet R693_DerivedAttributeBody_specifies_processing_for_DerivedBaseAttribute_extent;
    public IRelationshipSet R693_DerivedAttributeBody_specifies_processing_for_DerivedBaseAttributes() throws XtumlException {
        return R693_DerivedAttributeBody_specifies_processing_for_DerivedBaseAttribute_extent;
    }
    private IRelationshipSet R694_BodyInComponent_has_declared_Body_extent;
    public IRelationshipSet R694_BodyInComponent_has_declared_Bodys() throws XtumlException {
        return R694_BodyInComponent_has_declared_Body_extent;
    }
    private IRelationshipSet R694_BodyInComponent_is_declared_in_C_C_extent;
    public IRelationshipSet R694_BodyInComponent_is_declared_in_C_Cs() throws XtumlException {
        return R694_BodyInComponent_is_declared_in_C_C_extent;
    }
    private IRelationshipSet R695_FunctionBody_specifies_processing_for_S_SYNC_extent;
    public IRelationshipSet R695_FunctionBody_specifies_processing_for_S_SYNCs() throws XtumlException {
        return R695_FunctionBody_specifies_processing_for_S_SYNC_extent;
    }
    private IRelationshipSet R696_OperationBody_specifies_processing_for_O_TFR_extent;
    public IRelationshipSet R696_OperationBody_specifies_processing_for_O_TFRs() throws XtumlException {
        return R696_OperationBody_specifies_processing_for_O_TFR_extent;
    }
    private IRelationshipSet R697_BridgeBody_specifies_processing_for_Bridge_extent;
    public IRelationshipSet R697_BridgeBody_specifies_processing_for_Bridges() throws XtumlException {
        return R697_BridgeBody_specifies_processing_for_Bridge_extent;
    }
    private IRelationshipSet R698_BridgeBody_is_a_Body_extent;
    public IRelationshipSet R698_BridgeBody_is_a_Bodys() throws XtumlException {
        return R698_BridgeBody_is_a_Body_extent;
    }
    private IRelationshipSet R698_DerivedAttributeBody_is_a_Body_extent;
    public IRelationshipSet R698_DerivedAttributeBody_is_a_Bodys() throws XtumlException {
        return R698_DerivedAttributeBody_is_a_Body_extent;
    }
    private IRelationshipSet R698_FunctionBody_is_a_Body_extent;
    public IRelationshipSet R698_FunctionBody_is_a_Bodys() throws XtumlException {
        return R698_FunctionBody_is_a_Body_extent;
    }
    private IRelationshipSet R698_OperationBody_is_a_Body_extent;
    public IRelationshipSet R698_OperationBody_is_a_Bodys() throws XtumlException {
        return R698_OperationBody_is_a_Body_extent;
    }
    private IRelationshipSet R698_ProvidedOperationBody_is_a_Body_extent;
    public IRelationshipSet R698_ProvidedOperationBody_is_a_Bodys() throws XtumlException {
        return R698_ProvidedOperationBody_is_a_Body_extent;
    }
    private IRelationshipSet R698_ProvidedSignalBody_is_a_Body_extent;
    public IRelationshipSet R698_ProvidedSignalBody_is_a_Bodys() throws XtumlException {
        return R698_ProvidedSignalBody_is_a_Body_extent;
    }
    private IRelationshipSet R698_RequiredOperationBody_is_a_Body_extent;
    public IRelationshipSet R698_RequiredOperationBody_is_a_Bodys() throws XtumlException {
        return R698_RequiredOperationBody_is_a_Body_extent;
    }
    private IRelationshipSet R698_RequiredSignalBody_is_a_Body_extent;
    public IRelationshipSet R698_RequiredSignalBody_is_a_Bodys() throws XtumlException {
        return R698_RequiredSignalBody_is_a_Body_extent;
    }
    private IRelationshipSet R698_StateActionBody_is_a_Body_extent;
    public IRelationshipSet R698_StateActionBody_is_a_Bodys() throws XtumlException {
        return R698_StateActionBody_is_a_Body_extent;
    }
    private IRelationshipSet R698_TransitionActionBody_is_a_Body_extent;
    public IRelationshipSet R698_TransitionActionBody_is_a_Bodys() throws XtumlException {
        return R698_TransitionActionBody_is_a_Body_extent;
    }
    private IRelationshipSet R699_Body_has_current_scope_Block_extent;
    public IRelationshipSet R699_Body_has_current_scope_Blocks() throws XtumlException {
        return R699_Body_has_current_scope_Block_extent;
    }
    private IRelationshipSet R700_V_PAR_EventSpecificationStatement_extent;
    public IRelationshipSet R700_V_PAR_EventSpecificationStatements() throws XtumlException {
        return R700_V_PAR_EventSpecificationStatement_extent;
    }
    private IRelationshipSet R701_CreateEventStatement_is_a_EventSpecificationStatement_extent;
    public IRelationshipSet R701_CreateEventStatement_is_a_EventSpecificationStatements() throws XtumlException {
        return R701_CreateEventStatement_is_a_EventSpecificationStatement_extent;
    }
    private IRelationshipSet R701_GenerateEventStatement_is_a_EventSpecificationStatement_extent;
    public IRelationshipSet R701_GenerateEventStatement_is_a_EventSpecificationStatements() throws XtumlException {
        return R701_GenerateEventStatement_is_a_EventSpecificationStatement_extent;
    }
    private IRelationshipSet R702_CreateSMEventStatement_is_a_CreateEventStatement_extent;
    public IRelationshipSet R702_CreateSMEventStatement_is_a_CreateEventStatements() throws XtumlException {
        return R702_CreateSMEventStatement_is_a_CreateEventStatement_extent;
    }
    private IRelationshipSet R703_GenerateSMEventStatement_is_a_GenerateEventStatement_extent;
    public IRelationshipSet R703_GenerateSMEventStatement_is_a_GenerateEventStatements() throws XtumlException {
        return R703_GenerateSMEventStatement_is_a_GenerateEventStatement_extent;
    }
    private IRelationshipSet R704_CreateEventToClass_is_a_CreateSMEventStatement_extent;
    public IRelationshipSet R704_CreateEventToClass_is_a_CreateSMEventStatements() throws XtumlException {
        return R704_CreateEventToClass_is_a_CreateSMEventStatement_extent;
    }
    private IRelationshipSet R704_CreateEventToCreator_is_a_CreateSMEventStatement_extent;
    public IRelationshipSet R704_CreateEventToCreator_is_a_CreateSMEventStatements() throws XtumlException {
        return R704_CreateEventToCreator_is_a_CreateSMEventStatement_extent;
    }
    private IRelationshipSet R704_CreateEventToInstance_is_a_CreateSMEventStatement_extent;
    public IRelationshipSet R704_CreateEventToInstance_is_a_CreateSMEventStatements() throws XtumlException {
        return R704_CreateEventToInstance_is_a_CreateSMEventStatement_extent;
    }
    private IRelationshipSet R705_E_GEN_is_a_GenerateSMEventStatement_extent;
    public IRelationshipSet R705_E_GEN_is_a_GenerateSMEventStatements() throws XtumlException {
        return R705_E_GEN_is_a_GenerateSMEventStatement_extent;
    }
    private IRelationshipSet R705_GenerateToClass_is_a_GenerateSMEventStatement_extent;
    public IRelationshipSet R705_GenerateToClass_is_a_GenerateSMEventStatements() throws XtumlException {
        return R705_GenerateToClass_is_a_GenerateSMEventStatement_extent;
    }
    private IRelationshipSet R705_GenerateToCreator_is_a_GenerateSMEventStatement_extent;
    public IRelationshipSet R705_GenerateToCreator_is_a_GenerateSMEventStatements() throws XtumlException {
        return R705_GenerateToCreator_is_a_GenerateSMEventStatement_extent;
    }
    private IRelationshipSet R706_CreateSMEventStatement_creates_StateMachineEvent_extent;
    public IRelationshipSet R706_CreateSMEventStatement_creates_StateMachineEvents() throws XtumlException {
        return R706_CreateSMEventStatement_creates_StateMachineEvent_extent;
    }
    private IRelationshipSet R707_GenerateSMEventStatement_generates_StateMachineEvent_extent;
    public IRelationshipSet R707_GenerateSMEventStatement_generates_StateMachineEvents() throws XtumlException {
        return R707_GenerateSMEventStatement_generates_StateMachineEvent_extent;
    }
    private IRelationshipSet R710_CreateEventStatement_result_V_VAR_extent;
    public IRelationshipSet R710_CreateEventStatement_result_V_VARs() throws XtumlException {
        return R710_CreateEventStatement_result_V_VAR_extent;
    }
    private IRelationshipSet R711_CreateEventToInstance_has_recipient_V_VAR_extent;
    public IRelationshipSet R711_CreateEventToInstance_has_recipient_V_VARs() throws XtumlException {
        return R711_CreateEventToInstance_has_recipient_V_VAR_extent;
    }
    private IRelationshipSet R712_E_GEN_has_recipient_V_VAR_extent;
    public IRelationshipSet R712_E_GEN_has_recipient_V_VARs() throws XtumlException {
        return R712_E_GEN_has_recipient_V_VAR_extent;
    }
    private IRelationshipSet R714_GeneratePreexistingEvent_generates_event_held_by_Value_extent;
    public IRelationshipSet R714_GeneratePreexistingEvent_generates_event_held_by_Values() throws XtumlException {
        return R714_GeneratePreexistingEvent_generates_event_held_by_Value_extent;
    }
    private IRelationshipSet R775_Expression_expressed_within_Statement_extent;
    public IRelationshipSet R775_Expression_expressed_within_Statements() throws XtumlException {
        return R775_Expression_expressed_within_Statement_extent;
    }
    private IRelationshipSet R776_Any_is_a_Expression_extent;
    public IRelationshipSet R776_Any_is_a_Expressions() throws XtumlException {
        return R776_Any_is_a_Expression_extent;
    }
    private IRelationshipSet R776_ArrayElementReference_is_a_Expression_extent;
    public IRelationshipSet R776_ArrayElementReference_is_a_Expressions() throws XtumlException {
        return R776_ArrayElementReference_is_a_Expression_extent;
    }
    private IRelationshipSet R776_ArrayLengthAccess_is_a_Expression_extent;
    public IRelationshipSet R776_ArrayLengthAccess_is_a_Expressions() throws XtumlException {
        return R776_ArrayLengthAccess_is_a_Expression_extent;
    }
    private IRelationshipSet R776_AttributeAccess_is_a_Expression_extent;
    public IRelationshipSet R776_AttributeAccess_is_a_Expressions() throws XtumlException {
        return R776_AttributeAccess_is_a_Expression_extent;
    }
    private IRelationshipSet R776_BinaryOperation_is_a_Expression_extent;
    public IRelationshipSet R776_BinaryOperation_is_a_Expressions() throws XtumlException {
        return R776_BinaryOperation_is_a_Expression_extent;
    }
    private IRelationshipSet R776_ConstantReference_is_a_Expression_extent;
    public IRelationshipSet R776_ConstantReference_is_a_Expressions() throws XtumlException {
        return R776_ConstantReference_is_a_Expression_extent;
    }
    private IRelationshipSet R776_Creation_is_a_Expression_extent;
    public IRelationshipSet R776_Creation_is_a_Expressions() throws XtumlException {
        return R776_Creation_is_a_Expression_extent;
    }
    private IRelationshipSet R776_EnumeratorReference_is_a_Expression_extent;
    public IRelationshipSet R776_EnumeratorReference_is_a_Expressions() throws XtumlException {
        return R776_EnumeratorReference_is_a_Expression_extent;
    }
    private IRelationshipSet R776_EventCreation_is_a_Expression_extent;
    public IRelationshipSet R776_EventCreation_is_a_Expressions() throws XtumlException {
        return R776_EventCreation_is_a_Expression_extent;
    }
    private IRelationshipSet R776_Invocation_is_a_Expression_extent;
    public IRelationshipSet R776_Invocation_is_a_Expressions() throws XtumlException {
        return R776_Invocation_is_a_Expression_extent;
    }
    private IRelationshipSet R776_Literal_is_a_Expression_extent;
    public IRelationshipSet R776_Literal_is_a_Expressions() throws XtumlException {
        return R776_Literal_is_a_Expression_extent;
    }
    private IRelationshipSet R776_MemberReference_is_a_Expression_extent;
    public IRelationshipSet R776_MemberReference_is_a_Expressions() throws XtumlException {
        return R776_MemberReference_is_a_Expression_extent;
    }
    private IRelationshipSet R776_NamedReference_is_a_Expression_extent;
    public IRelationshipSet R776_NamedReference_is_a_Expressions() throws XtumlException {
        return R776_NamedReference_is_a_Expression_extent;
    }
    private IRelationshipSet R776_ParameterReference_is_a_Expression_extent;
    public IRelationshipSet R776_ParameterReference_is_a_Expressions() throws XtumlException {
        return R776_ParameterReference_is_a_Expression_extent;
    }
    private IRelationshipSet R776_ParenthesizedExpression_is_a_Expression_extent;
    public IRelationshipSet R776_ParenthesizedExpression_is_a_Expressions() throws XtumlException {
        return R776_ParenthesizedExpression_is_a_Expression_extent;
    }
    private IRelationshipSet R776_Promotion_is_a_Expression_extent;
    public IRelationshipSet R776_Promotion_is_a_Expressions() throws XtumlException {
        return R776_Promotion_is_a_Expression_extent;
    }
    private IRelationshipSet R776_Select_is_a_Expression_extent;
    public IRelationshipSet R776_Select_is_a_Expressions() throws XtumlException {
        return R776_Select_is_a_Expression_extent;
    }
    private IRelationshipSet R776_Selected_is_a_Expression_extent;
    public IRelationshipSet R776_Selected_is_a_Expressions() throws XtumlException {
        return R776_Selected_is_a_Expression_extent;
    }
    private IRelationshipSet R776_UnaryOperation_is_a_Expression_extent;
    public IRelationshipSet R776_UnaryOperation_is_a_Expressions() throws XtumlException {
        return R776_UnaryOperation_is_a_Expression_extent;
    }
    private IRelationshipSet R776_VariableReference_is_a_Expression_extent;
    public IRelationshipSet R776_VariableReference_is_a_Expressions() throws XtumlException {
        return R776_VariableReference_is_a_Expression_extent;
    }
    private IRelationshipSet R776_Where_is_a_Expression_extent;
    public IRelationshipSet R776_Where_is_a_Expressions() throws XtumlException {
        return R776_Where_is_a_Expression_extent;
    }
    private IRelationshipSet R777_UnaryOperation_has_single_operand_Expression_extent;
    public IRelationshipSet R777_UnaryOperation_has_single_operand_Expressions() throws XtumlException {
        return R777_UnaryOperation_has_single_operand_Expression_extent;
    }
    private IRelationshipSet R778_BinaryOperation_has_right_Expression_extent;
    public IRelationshipSet R778_BinaryOperation_has_right_Expressions() throws XtumlException {
        return R778_BinaryOperation_has_right_Expression_extent;
    }
    private IRelationshipSet R779_BinaryOperation_has_left_Expression_extent;
    public IRelationshipSet R779_BinaryOperation_has_left_Expressions() throws XtumlException {
        return R779_BinaryOperation_has_left_Expression_extent;
    }
    private IRelationshipSet R780_Creation_creates_ModelInst_extent;
    public IRelationshipSet R780_Creation_creates_ModelInsts() throws XtumlException {
        return R780_Creation_creates_ModelInst_extent;
    }
    private IRelationshipSet R781_ParameterReference_refers_to_FormalParameter_extent;
    public IRelationshipSet R781_ParameterReference_refers_to_FormalParameters() throws XtumlException {
        return R781_ParameterReference_refers_to_FormalParameter_extent;
    }
    private IRelationshipSet R782_VariableReference_refers_to_local_Variable_extent;
    public IRelationshipSet R782_VariableReference_refers_to_local_Variables() throws XtumlException {
        return R782_VariableReference_refers_to_local_Variable_extent;
    }
    private IRelationshipSet R783_Any_gets_an_arbitrary_element_from_Expression_extent;
    public IRelationshipSet R783_Any_gets_an_arbitrary_element_from_Expressions() throws XtumlException {
        return R783_Any_gets_an_arbitrary_element_from_Expression_extent;
    }
    private IRelationshipSet R784_ParenthesizedExpression_parenthesizes_Expression_extent;
    public IRelationshipSet R784_ParenthesizedExpression_parenthesizes_Expressions() throws XtumlException {
        return R784_ParenthesizedExpression_parenthesizes_Expression_extent;
    }
    private IRelationshipSet R785_AttributeAccess_refers_to_attribute_of_instance_expressed_by_Expression_extent;
    public IRelationshipSet R785_AttributeAccess_refers_to_attribute_of_instance_expressed_by_Expressions() throws XtumlException {
        return R785_AttributeAccess_refers_to_attribute_of_instance_expressed_by_Expression_extent;
    }
    private IRelationshipSet R786_EnumeratorReference_refers_to_Enumerator_extent;
    public IRelationshipSet R786_EnumeratorReference_refers_to_Enumerators() throws XtumlException {
        return R786_EnumeratorReference_refers_to_Enumerator_extent;
    }
    private IRelationshipSet R787_MemberReference_refers_to_member_of_structured_value_expressed_by_Expression_extent;
    public IRelationshipSet R787_MemberReference_refers_to_member_of_structured_value_expressed_by_Expressions() throws XtumlException {
        return R787_MemberReference_refers_to_member_of_structured_value_expressed_by_Expression_extent;
    }
    private IRelationshipSet R788_AttributeAccess_refers_to_Attribute_extent;
    public IRelationshipSet R788_AttributeAccess_refers_to_Attributes() throws XtumlException {
        return R788_AttributeAccess_refers_to_Attribute_extent;
    }
    private IRelationshipSet R789_SelectFromInstances_is_a_Select_extent;
    public IRelationshipSet R789_SelectFromInstances_is_a_Selects() throws XtumlException {
        return R789_SelectFromInstances_is_a_Select_extent;
    }
    private IRelationshipSet R789_SelectRelated_is_a_Select_extent;
    public IRelationshipSet R789_SelectRelated_is_a_Selects() throws XtumlException {
        return R789_SelectRelated_is_a_Select_extent;
    }
    private IRelationshipSet R790_Where_filters_Expression_extent;
    public IRelationshipSet R790_Where_filters_Expressions() throws XtumlException {
        return R790_Where_filters_Expression_extent;
    }
    private IRelationshipSet R791_SelectRelated_selects_instances_linked_from_instance_expressed_by_Expression_extent;
    public IRelationshipSet R791_SelectRelated_selects_instances_linked_from_instance_expressed_by_Expressions() throws XtumlException {
        return R791_SelectRelated_selects_instances_linked_from_instance_expressed_by_Expression_extent;
    }
    private IRelationshipSet R792_Invocation_invokes_InvocableObject_extent;
    public IRelationshipSet R792_Invocation_invokes_InvocableObjects() throws XtumlException {
        return R792_Invocation_invokes_InvocableObject_extent;
    }
    private IRelationshipSet R793_ActualParameter_Invocation_extent;
    public IRelationshipSet R793_ActualParameter_Invocations() throws XtumlException {
        return R793_ActualParameter_Invocation_extent;
    }
    private IRelationshipSet R794_ActualParameter_parameter_value_specified_by_Expression_extent;
    public IRelationshipSet R794_ActualParameter_parameter_value_specified_by_Expressions() throws XtumlException {
        return R794_ActualParameter_parameter_value_specified_by_Expression_extent;
    }
    private IRelationshipSet R795_Expression_expresses_value_of_TypeReference_extent;
    public IRelationshipSet R795_Expression_expresses_value_of_TypeReferences() throws XtumlException {
        return R795_Expression_expresses_value_of_TypeReference_extent;
    }
    private IRelationshipSet R796_Where_has_condition_Expression_extent;
    public IRelationshipSet R796_Where_has_condition_Expressions() throws XtumlException {
        return R796_Where_has_condition_Expression_extent;
    }
    private IRelationshipSet R797_SelectRelated_selects_instances_through_Selector_extent;
    public IRelationshipSet R797_SelectRelated_selects_instances_through_Selectors() throws XtumlException {
        return R797_SelectRelated_selects_instances_through_Selector_extent;
    }
    private IRelationshipSet R798_Invocation_invokes_activity_on_Expression_extent;
    public IRelationshipSet R798_Invocation_invokes_activity_on_Expressions() throws XtumlException {
        return R798_Invocation_invokes_activity_on_Expression_extent;
    }
    private IRelationshipSet R799_SelectFromInstances_selects_instances_through_InstancePopulationSelector_extent;
    public IRelationshipSet R799_SelectFromInstances_selects_instances_through_InstancePopulationSelectors() throws XtumlException {
        return R799_SelectFromInstances_selects_instances_through_InstancePopulationSelector_extent;
    }
    private IRelationshipSet R8000_PackageableElement_contained_by_EP_PKG_extent;
    public IRelationshipSet R8000_PackageableElement_contained_by_EP_PKGs() throws XtumlException {
        return R8000_PackageableElement_contained_by_EP_PKG_extent;
    }
    private IRelationshipSet R8001_ActivityEdge_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_ActivityEdge_is_a_PackageableElements() throws XtumlException {
        return R8001_ActivityEdge_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_ActivityNode_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_ActivityNode_is_a_PackageableElements() throws XtumlException {
        return R8001_ActivityNode_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_ActivityPartition_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_ActivityPartition_is_a_PackageableElements() throws XtumlException {
        return R8001_ActivityPartition_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_Association_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_Association_is_a_PackageableElements() throws XtumlException {
        return R8001_Association_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_C_C_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_C_C_is_a_PackageableElements() throws XtumlException {
        return R8001_C_C_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_C_I_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_C_I_is_a_PackageableElements() throws XtumlException {
        return R8001_C_I_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_ComponentReference_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_ComponentReference_is_a_PackageableElements() throws XtumlException {
        return R8001_ComponentReference_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_ConstantSpecification_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_ConstantSpecification_is_a_PackageableElements() throws XtumlException {
        return R8001_ConstantSpecification_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_DataType_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_DataType_is_a_PackageableElements() throws XtumlException {
        return R8001_DataType_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_Delegation_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_Delegation_is_a_PackageableElements() throws XtumlException {
        return R8001_Delegation_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_Deployment_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_Deployment_is_a_PackageableElements() throws XtumlException {
        return R8001_Deployment_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_EP_PKG_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_EP_PKG_is_a_PackageableElements() throws XtumlException {
        return R8001_EP_PKG_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_Exception_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_Exception_is_a_PackageableElements() throws XtumlException {
        return R8001_Exception_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_ExternalEntity_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_ExternalEntity_is_a_PackageableElements() throws XtumlException {
        return R8001_ExternalEntity_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_ImportedClass_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_ImportedClass_is_a_PackageableElements() throws XtumlException {
        return R8001_ImportedClass_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_InteractionParticipant_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_InteractionParticipant_is_a_PackageableElements() throws XtumlException {
        return R8001_InteractionParticipant_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_MSG_M_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_MSG_M_is_a_PackageableElements() throws XtumlException {
        return R8001_MSG_M_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_ModelClass_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_ModelClass_is_a_PackageableElements() throws XtumlException {
        return R8001_ModelClass_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_S_SYNC_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_S_SYNC_is_a_PackageableElements() throws XtumlException {
        return R8001_S_SYNC_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_Satisfaction_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_Satisfaction_is_a_PackageableElements() throws XtumlException {
        return R8001_Satisfaction_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8001_UseCaseAssociation_is_a_PackageableElement_extent;
    public IRelationshipSet R8001_UseCaseAssociation_is_a_PackageableElements() throws XtumlException {
        return R8001_UseCaseAssociation_is_a_PackageableElement_extent;
    }
    private IRelationshipSet R8002_ElementVisibility_has_visibility_of_PackageableElement_extent;
    public IRelationshipSet R8002_ElementVisibility_has_visibility_of_PackageableElements() throws XtumlException {
        return R8002_ElementVisibility_has_visibility_of_PackageableElement_extent;
    }
    private IRelationshipSet R8002_ElementVisibility_is_visible_to_elements_in_EP_PKG_extent;
    public IRelationshipSet R8002_ElementVisibility_is_visible_to_elements_in_EP_PKGs() throws XtumlException {
        return R8002_ElementVisibility_is_visible_to_elements_in_EP_PKG_extent;
    }
    private IRelationshipSet R8003_PackageableElement_contained_in_C_C_extent;
    public IRelationshipSet R8003_PackageableElement_contained_in_C_Cs() throws XtumlException {
        return R8003_PackageableElement_contained_in_C_C_extent;
    }
    private IRelationshipSet R8004_ComponentVisibility_has_visibility_of_PackageableElement_extent;
    public IRelationshipSet R8004_ComponentVisibility_has_visibility_of_PackageableElements() throws XtumlException {
        return R8004_ComponentVisibility_has_visibility_of_PackageableElement_extent;
    }
    private IRelationshipSet R8004_ComponentVisibility_is_visible_to_C_C_extent;
    public IRelationshipSet R8004_ComponentVisibility_is_visible_to_C_Cs() throws XtumlException {
        return R8004_ComponentVisibility_is_visible_to_C_C_extent;
    }
    private IRelationshipSet R8005_SearchResultSet_held_by_EP_PKG_extent;
    public IRelationshipSet R8005_SearchResultSet_held_by_EP_PKGs() throws XtumlException {
        return R8005_SearchResultSet_held_by_EP_PKG_extent;
    }
    private IRelationshipSet R8006_ElementVisibility_SearchResultSet_extent;
    public IRelationshipSet R8006_ElementVisibility_SearchResultSets() throws XtumlException {
        return R8006_ElementVisibility_SearchResultSet_extent;
    }
    private IRelationshipSet R8007_ComponentResultSet_held_by_C_C_extent;
    public IRelationshipSet R8007_ComponentResultSet_held_by_C_Cs() throws XtumlException {
        return R8007_ComponentResultSet_held_by_C_C_extent;
    }
    private IRelationshipSet R8008_ComponentVisibility_makes_up_a_ComponentResultSet_extent;
    public IRelationshipSet R8008_ComponentVisibility_makes_up_a_ComponentResultSets() throws XtumlException {
        return R8008_ComponentVisibility_makes_up_a_ComponentResultSet_extent;
    }
    private IRelationshipSet R800_V_PAR_has_Value_extent;
    public IRelationshipSet R800_V_PAR_has_Values() throws XtumlException {
        return R800_V_PAR_has_Value_extent;
    }
    private IRelationshipSet R801_ArrayLengthValue_is_a_Value_extent;
    public IRelationshipSet R801_ArrayLengthValue_is_a_Values() throws XtumlException {
        return R801_ArrayLengthValue_is_a_Value_extent;
    }
    private IRelationshipSet R801_AttributeValueReference_is_a_Value_extent;
    public IRelationshipSet R801_AttributeValueReference_is_a_Values() throws XtumlException {
        return R801_AttributeValueReference_is_a_Value_extent;
    }
    private IRelationshipSet R801_BridgeValue_is_a_Value_extent;
    public IRelationshipSet R801_BridgeValue_is_a_Values() throws XtumlException {
        return R801_BridgeValue_is_a_Value_extent;
    }
    private IRelationshipSet R801_EventDatumValue_is_a_Value_extent;
    public IRelationshipSet R801_EventDatumValue_is_a_Values() throws XtumlException {
        return R801_EventDatumValue_is_a_Value_extent;
    }
    private IRelationshipSet R801_FunctionValue_is_a_Value_extent;
    public IRelationshipSet R801_FunctionValue_is_a_Values() throws XtumlException {
        return R801_FunctionValue_is_a_Value_extent;
    }
    private IRelationshipSet R801_InstanceReference_is_a_Value_extent;
    public IRelationshipSet R801_InstanceReference_is_a_Values() throws XtumlException {
        return R801_InstanceReference_is_a_Value_extent;
    }
    private IRelationshipSet R801_InstanceSetReference_is_a_Value_extent;
    public IRelationshipSet R801_InstanceSetReference_is_a_Values() throws XtumlException {
        return R801_InstanceSetReference_is_a_Value_extent;
    }
    private IRelationshipSet R801_LiteralBoolean_is_a_Value_extent;
    public IRelationshipSet R801_LiteralBoolean_is_a_Values() throws XtumlException {
        return R801_LiteralBoolean_is_a_Value_extent;
    }
    private IRelationshipSet R801_LiteralEnumerator_is_a_Value_extent;
    public IRelationshipSet R801_LiteralEnumerator_is_a_Values() throws XtumlException {
        return R801_LiteralEnumerator_is_a_Value_extent;
    }
    private IRelationshipSet R801_LiteralInteger_is_a_Value_extent;
    public IRelationshipSet R801_LiteralInteger_is_a_Values() throws XtumlException {
        return R801_LiteralInteger_is_a_Value_extent;
    }
    private IRelationshipSet R801_LiteralReal_is_a_Value_extent;
    public IRelationshipSet R801_LiteralReal_is_a_Values() throws XtumlException {
        return R801_LiteralReal_is_a_Value_extent;
    }
    private IRelationshipSet R801_LiteralString_is_a_Value_extent;
    public IRelationshipSet R801_LiteralString_is_a_Values() throws XtumlException {
        return R801_LiteralString_is_a_Value_extent;
    }
    private IRelationshipSet R801_MemberValueReference_is_a_Value_extent;
    public IRelationshipSet R801_MemberValueReference_is_a_Values() throws XtumlException {
        return R801_MemberValueReference_is_a_Value_extent;
    }
    private IRelationshipSet R801_MessageValue_is_a_Value_extent;
    public IRelationshipSet R801_MessageValue_is_a_Values() throws XtumlException {
        return R801_MessageValue_is_a_Value_extent;
    }
    private IRelationshipSet R801_OperationValue_is_a_Value_extent;
    public IRelationshipSet R801_OperationValue_is_a_Values() throws XtumlException {
        return R801_OperationValue_is_a_Value_extent;
    }
    private IRelationshipSet R801_ParameterValue_is_a_Value_extent;
    public IRelationshipSet R801_ParameterValue_is_a_Values() throws XtumlException {
        return R801_ParameterValue_is_a_Value_extent;
    }
    private IRelationshipSet R801_SelectedReference_is_a_Value_extent;
    public IRelationshipSet R801_SelectedReference_is_a_Values() throws XtumlException {
        return R801_SelectedReference_is_a_Value_extent;
    }
    private IRelationshipSet R801_SymbolicConstantValue_is_a_Value_extent;
    public IRelationshipSet R801_SymbolicConstantValue_is_a_Values() throws XtumlException {
        return R801_SymbolicConstantValue_is_a_Value_extent;
    }
    private IRelationshipSet R801_TransientValueReference_is_a_Value_extent;
    public IRelationshipSet R801_TransientValueReference_is_a_Values() throws XtumlException {
        return R801_TransientValueReference_is_a_Value_extent;
    }
    private IRelationshipSet R801_V_AER_is_a_Value_extent;
    public IRelationshipSet R801_V_AER_is_a_Values() throws XtumlException {
        return R801_V_AER_is_a_Value_extent;
    }
    private IRelationshipSet R801_V_BIN_is_a_Value_extent;
    public IRelationshipSet R801_V_BIN_is_a_Values() throws XtumlException {
        return R801_V_BIN_is_a_Value_extent;
    }
    private IRelationshipSet R801_V_UNY_is_a_Value_extent;
    public IRelationshipSet R801_V_UNY_is_a_Values() throws XtumlException {
        return R801_V_UNY_is_a_Value_extent;
    }
    private IRelationshipSet R802_V_BIN_has_left_Value_extent;
    public IRelationshipSet R802_V_BIN_has_left_Values() throws XtumlException {
        return R802_V_BIN_has_left_Value_extent;
    }
    private IRelationshipSet R803_V_BIN_has_right_Value_extent;
    public IRelationshipSet R803_V_BIN_has_right_Values() throws XtumlException {
        return R803_V_BIN_has_right_Value_extent;
    }
    private IRelationshipSet R804_V_UNY_has_operand_Value_extent;
    public IRelationshipSet R804_V_UNY_has_operand_Values() throws XtumlException {
        return R804_V_UNY_has_operand_Value_extent;
    }
    private IRelationshipSet R805_TransientValueReference_references_V_VAR_extent;
    public IRelationshipSet R805_TransientValueReference_references_V_VARs() throws XtumlException {
        return R805_TransientValueReference_references_V_VAR_extent;
    }
    private IRelationshipSet R806_AttributeValueReference_is_value_of_O_ATTR_extent;
    public IRelationshipSet R806_AttributeValueReference_is_value_of_O_ATTRs() throws XtumlException {
        return R806_AttributeValueReference_is_value_of_O_ATTR_extent;
    }
    private IRelationshipSet R807_AttributeValueReference_has_root_Value_extent;
    public IRelationshipSet R807_AttributeValueReference_has_root_Values() throws XtumlException {
        return R807_AttributeValueReference_has_root_Value_extent;
    }
    private IRelationshipSet R808_InstanceReference_refers_to_V_VAR_extent;
    public IRelationshipSet R808_InstanceReference_refers_to_V_VARs() throws XtumlException {
        return R808_InstanceReference_refers_to_V_VAR_extent;
    }
    private IRelationshipSet R809_InstanceSetReference_refers_to_V_VAR_extent;
    public IRelationshipSet R809_InstanceSetReference_refers_to_V_VARs() throws XtumlException {
        return R809_InstanceSetReference_refers_to_V_VAR_extent;
    }
    private IRelationshipSet R810_V_PAR_BridgeValue_extent;
    public IRelationshipSet R810_V_PAR_BridgeValues() throws XtumlException {
        return R810_V_PAR_BridgeValue_extent;
    }
    private IRelationshipSet R811_V_PAR_OperationValue_extent;
    public IRelationshipSet R811_V_PAR_OperationValues() throws XtumlException {
        return R811_V_PAR_OperationValue_extent;
    }
    private IRelationshipSet R812_SelectedReference_member_O_ATTR_extent;
    public IRelationshipSet R812_SelectedReference_member_O_ATTRs() throws XtumlException {
        return R812_SelectedReference_member_O_ATTR_extent;
    }
    private IRelationshipSet R814_InstanceHandle_is_a_V_VAR_extent;
    public IRelationshipSet R814_InstanceHandle_is_a_V_VARs() throws XtumlException {
        return R814_InstanceHandle_is_a_V_VAR_extent;
    }
    private IRelationshipSet R814_TransientVar_is_a_V_VAR_extent;
    public IRelationshipSet R814_TransientVar_is_a_V_VARs() throws XtumlException {
        return R814_TransientVar_is_a_V_VAR_extent;
    }
    private IRelationshipSet R814_V_INS_is_a_V_VAR_extent;
    public IRelationshipSet R814_V_INS_is_a_V_VARs() throws XtumlException {
        return R814_V_INS_is_a_V_VAR_extent;
    }
    private IRelationshipSet R816_V_PAR_precedes_V_PAR_extent;
    public IRelationshipSet R816_V_PAR_precedes_V_PARs() throws XtumlException {
        return R816_V_PAR_precedes_V_PAR_extent;
    }
    private IRelationshipSet R817_V_PAR_FunctionValue_extent;
    public IRelationshipSet R817_V_PAR_FunctionValues() throws XtumlException {
        return R817_V_PAR_FunctionValue_extent;
    }
    private IRelationshipSet R818_InstanceHandle_refers_to_ModelClass_extent;
    public IRelationshipSet R818_InstanceHandle_refers_to_ModelClasss() throws XtumlException {
        return R818_InstanceHandle_refers_to_ModelClass_extent;
    }
    private IRelationshipSet R819_V_INS_refers_to_ModelClass_extent;
    public IRelationshipSet R819_V_INS_refers_to_ModelClasss() throws XtumlException {
        return R819_V_INS_refers_to_ModelClass_extent;
    }
    private IRelationshipSet R820_Value_has_type_DataType_extent;
    public IRelationshipSet R820_Value_has_type_DataTypes() throws XtumlException {
        return R820_Value_has_type_DataType_extent;
    }
    private IRelationshipSet R821_TransientVar_has_DataType_extent;
    public IRelationshipSet R821_TransientVar_has_DataTypes() throws XtumlException {
        return R821_TransientVar_has_DataType_extent;
    }
    private IRelationshipSet R823_V_VAR_Block_extent;
    public IRelationshipSet R823_V_VAR_Blocks() throws XtumlException {
        return R823_V_VAR_Block_extent;
    }
    private IRelationshipSet R824_LiteralEnumerator_has_value_S_ENUM_extent;
    public IRelationshipSet R824_LiteralEnumerator_has_value_S_ENUMs() throws XtumlException {
        return R824_LiteralEnumerator_has_value_S_ENUM_extent;
    }
    private IRelationshipSet R825_SelectedReference_value_OperationValue_extent;
    public IRelationshipSet R825_SelectedReference_value_OperationValues() throws XtumlException {
        return R825_SelectedReference_value_OperationValue_extent;
    }
    private IRelationshipSet R826_Value_has_scope_Block_extent;
    public IRelationshipSet R826_Value_has_scope_Blocks() throws XtumlException {
        return R826_Value_has_scope_Block_extent;
    }
    private IRelationshipSet R827_FunctionValue_S_SYNC_extent;
    public IRelationshipSet R827_FunctionValue_S_SYNCs() throws XtumlException {
        return R827_FunctionValue_S_SYNC_extent;
    }
    private IRelationshipSet R828_BridgeValue_Bridge_extent;
    public IRelationshipSet R828_BridgeValue_Bridges() throws XtumlException {
        return R828_BridgeValue_Bridge_extent;
    }
    private IRelationshipSet R829_OperationValue_O_TFR_extent;
    public IRelationshipSet R829_OperationValue_O_TFRs() throws XtumlException {
        return R829_OperationValue_O_TFR_extent;
    }
    private IRelationshipSet R830_OperationValue_V_VAR_extent;
    public IRelationshipSet R830_OperationValue_V_VARs() throws XtumlException {
        return R830_OperationValue_V_VAR_extent;
    }
    private IRelationshipSet R831_ParameterValue_is_a_value_of_BridgeParameter_extent;
    public IRelationshipSet R831_ParameterValue_is_a_value_of_BridgeParameters() throws XtumlException {
        return R831_ParameterValue_is_a_value_of_BridgeParameter_extent;
    }
    private IRelationshipSet R832_ParameterValue_is_a_value_of_FunctionParameter_extent;
    public IRelationshipSet R832_ParameterValue_is_a_value_of_FunctionParameters() throws XtumlException {
        return R832_ParameterValue_is_a_value_of_FunctionParameter_extent;
    }
    private IRelationshipSet R833_ParameterValue_is_a_value_of_OperationParameter_extent;
    public IRelationshipSet R833_ParameterValue_is_a_value_of_OperationParameters() throws XtumlException {
        return R833_ParameterValue_is_a_value_of_OperationParameter_extent;
    }
    private IRelationshipSet R834_EventParameterReference_EventDatumValue_extent;
    public IRelationshipSet R834_EventParameterReference_EventDatumValues() throws XtumlException {
        return R834_EventParameterReference_EventDatumValue_extent;
    }
    private IRelationshipSet R835_VariableLocation_V_VAR_extent;
    public IRelationshipSet R835_VariableLocation_V_VARs() throws XtumlException {
        return R835_VariableLocation_V_VAR_extent;
    }
    private IRelationshipSet R836_MemberValueReference_is_value_of_StructureMember_extent;
    public IRelationshipSet R836_MemberValueReference_is_value_of_StructureMembers() throws XtumlException {
        return R836_MemberValueReference_is_value_of_StructureMember_extent;
    }
    private IRelationshipSet R837_MemberValueReference_Value_extent;
    public IRelationshipSet R837_MemberValueReference_Values() throws XtumlException {
        return R837_MemberValueReference_Value_extent;
    }
    private IRelationshipSet R838_V_AER_has_root_Value_extent;
    public IRelationshipSet R838_V_AER_has_root_Values() throws XtumlException {
        return R838_V_AER_has_root_Value_extent;
    }
    private IRelationshipSet R839_V_AER_has_index_Value_extent;
    public IRelationshipSet R839_V_AER_has_index_Values() throws XtumlException {
        return R839_V_AER_has_index_Value_extent;
    }
    private IRelationshipSet R840_ArrayLengthValue_returns_length_of_Value_extent;
    public IRelationshipSet R840_ArrayLengthValue_returns_length_of_Values() throws XtumlException {
        return R840_ArrayLengthValue_returns_length_of_Value_extent;
    }
    private IRelationshipSet R841_MessageValue_ProvidedExecutableProperty_extent;
    public IRelationshipSet R841_MessageValue_ProvidedExecutablePropertys() throws XtumlException {
        return R841_MessageValue_ProvidedExecutableProperty_extent;
    }
    private IRelationshipSet R842_V_PAR_MessageValue_extent;
    public IRelationshipSet R842_V_PAR_MessageValues() throws XtumlException {
        return R842_V_PAR_MessageValue_extent;
    }
    private IRelationshipSet R843_ParameterValue_is_a_value_of_PropertyParameter_extent;
    public IRelationshipSet R843_ParameterValue_is_a_value_of_PropertyParameters() throws XtumlException {
        return R843_ParameterValue_is_a_value_of_PropertyParameter_extent;
    }
    private IRelationshipSet R844_Dimensions_specifies_occurrences_of_TransientVar_extent;
    public IRelationshipSet R844_Dimensions_specifies_occurrences_of_TransientVars() throws XtumlException {
        return R844_Dimensions_specifies_occurrences_of_TransientVar_extent;
    }
    private IRelationshipSet R845_MessageValue_RequiredExecutableProperty_extent;
    public IRelationshipSet R845_MessageValue_RequiredExecutablePropertys() throws XtumlException {
        return R845_MessageValue_RequiredExecutableProperty_extent;
    }
    private IRelationshipSet R846_EventParameterReference_StateMachineEventDataItem_extent;
    public IRelationshipSet R846_EventParameterReference_StateMachineEventDataItems() throws XtumlException {
        return R846_EventParameterReference_StateMachineEventDataItem_extent;
    }
    private IRelationshipSet R847_EventParameterReference_PropertyParameter_extent;
    public IRelationshipSet R847_EventParameterReference_PropertyParameters() throws XtumlException {
        return R847_EventParameterReference_PropertyParameter_extent;
    }
    private IRelationshipSet R848_V_VAR_has_DataType_extent;
    public IRelationshipSet R848_V_VAR_has_DataTypes() throws XtumlException {
        return R848_V_VAR_has_DataType_extent;
    }
    private IRelationshipSet R849_Dimensions_specifies_occurrences_of_V_VAR_extent;
    public IRelationshipSet R849_Dimensions_specifies_occurrences_of_V_VARs() throws XtumlException {
        return R849_Dimensions_specifies_occurrences_of_V_VAR_extent;
    }
    private IRelationshipSet R850_SymbolicConstantValue_SymbolicConstant_extent;
    public IRelationshipSet R850_SymbolicConstantValue_SymbolicConstants() throws XtumlException {
        return R850_SymbolicConstantValue_SymbolicConstant_extent;
    }
    private IRelationshipSet R851_MessageValue_has_target_Value_extent;
    public IRelationshipSet R851_MessageValue_has_target_Values() throws XtumlException {
        return R851_MessageValue_has_target_Value_extent;
    }
    private IRelationshipSet R9000_SatisfactionInComponent_C_C_extent;
    public IRelationshipSet R9000_SatisfactionInComponent_C_Cs() throws XtumlException {
        return R9000_SatisfactionInComponent_C_C_extent;
    }
    private IRelationshipSet R9000_SatisfactionInComponent_Satisfaction_extent;
    public IRelationshipSet R9000_SatisfactionInComponent_Satisfactions() throws XtumlException {
        return R9000_SatisfactionInComponent_Satisfaction_extent;
    }
    private IRelationshipSet R9002_DelegationInComponent_C_C_extent;
    public IRelationshipSet R9002_DelegationInComponent_C_Cs() throws XtumlException {
        return R9002_DelegationInComponent_C_C_extent;
    }
    private IRelationshipSet R9002_DelegationInComponent_Delegation_extent;
    public IRelationshipSet R9002_DelegationInComponent_Delegations() throws XtumlException {
        return R9002_DelegationInComponent_Delegation_extent;
    }
    private IRelationshipSet R9100_GlobalElementInSystem_PackageableElement_extent;
    public IRelationshipSet R9100_GlobalElementInSystem_PackageableElements() throws XtumlException {
        return R9100_GlobalElementInSystem_PackageableElement_extent;
    }
    private IRelationshipSet R9100_GlobalElementInSystem_SystemModel_extent;
    public IRelationshipSet R9100_GlobalElementInSystem_SystemModels() throws XtumlException {
        return R9100_GlobalElementInSystem_SystemModel_extent;
    }
    private IRelationshipSet R930_ActorParticipant_is_a_InteractionParticipant_extent;
    public IRelationshipSet R930_ActorParticipant_is_a_InteractionParticipants() throws XtumlException {
        return R930_ActorParticipant_is_a_InteractionParticipant_extent;
    }
    private IRelationshipSet R930_ClassInstanceParticipant_is_a_InteractionParticipant_extent;
    public IRelationshipSet R930_ClassInstanceParticipant_is_a_InteractionParticipants() throws XtumlException {
        return R930_ClassInstanceParticipant_is_a_InteractionParticipant_extent;
    }
    private IRelationshipSet R930_ClassParticipant_is_a_InteractionParticipant_extent;
    public IRelationshipSet R930_ClassParticipant_is_a_InteractionParticipants() throws XtumlException {
        return R930_ClassParticipant_is_a_InteractionParticipant_extent;
    }
    private IRelationshipSet R930_ComponentParticipant_is_a_InteractionParticipant_extent;
    public IRelationshipSet R930_ComponentParticipant_is_a_InteractionParticipants() throws XtumlException {
        return R930_ComponentParticipant_is_a_InteractionParticipant_extent;
    }
    private IRelationshipSet R930_ExternalEntityParticipant_is_a_InteractionParticipant_extent;
    public IRelationshipSet R930_ExternalEntityParticipant_is_a_InteractionParticipants() throws XtumlException {
        return R930_ExternalEntityParticipant_is_a_InteractionParticipant_extent;
    }
    private IRelationshipSet R930_Lifespan_is_a_InteractionParticipant_extent;
    public IRelationshipSet R930_Lifespan_is_a_InteractionParticipants() throws XtumlException {
        return R930_Lifespan_is_a_InteractionParticipant_extent;
    }
    private IRelationshipSet R930_PackageParticipant_is_a_InteractionParticipant_extent;
    public IRelationshipSet R930_PackageParticipant_is_a_InteractionParticipants() throws XtumlException {
        return R930_PackageParticipant_is_a_InteractionParticipant_extent;
    }
    private IRelationshipSet R930_UseCaseParticipant_is_a_InteractionParticipant_extent;
    public IRelationshipSet R930_UseCaseParticipant_is_a_InteractionParticipants() throws XtumlException {
        return R930_UseCaseParticipant_is_a_InteractionParticipant_extent;
    }
    private IRelationshipSet R931_TimingMark_marks_a_point_in_time_Lifespan_extent;
    public IRelationshipSet R931_TimingMark_marks_a_point_in_time_Lifespans() throws XtumlException {
        return R931_TimingMark_marks_a_point_in_time_Lifespan_extent;
    }
    private IRelationshipSet R933_ExternalEntityParticipant_represents_ExternalEntity_extent;
    public IRelationshipSet R933_ExternalEntityParticipant_represents_ExternalEntitys() throws XtumlException {
        return R933_ExternalEntityParticipant_represents_ExternalEntity_extent;
    }
    private IRelationshipSet R934_ClassInstanceParticipant_represents_ModelClass_extent;
    public IRelationshipSet R934_ClassInstanceParticipant_represents_ModelClasss() throws XtumlException {
        return R934_ClassInstanceParticipant_represents_ModelClass_extent;
    }
    private IRelationshipSet R935_ClassParticipantAttribute_belongs_to_ClassParticipant_extent;
    public IRelationshipSet R935_ClassParticipantAttribute_belongs_to_ClassParticipants() throws XtumlException {
        return R935_ClassParticipantAttribute_belongs_to_ClassParticipant_extent;
    }
    private IRelationshipSet R936_InstanceAttributeValue_owns_informal_ClassInstanceParticipant_extent;
    public IRelationshipSet R936_InstanceAttributeValue_owns_informal_ClassInstanceParticipants() throws XtumlException {
        return R936_InstanceAttributeValue_owns_informal_ClassInstanceParticipant_extent;
    }
    private IRelationshipSet R937_InstanceAttributeValue_owns_formal_ClassInstanceParticipant_extent;
    public IRelationshipSet R937_InstanceAttributeValue_owns_formal_ClassInstanceParticipants() throws XtumlException {
        return R937_InstanceAttributeValue_owns_formal_ClassInstanceParticipant_extent;
    }
    private IRelationshipSet R938_InstanceAttributeValue_references_O_ATTR_extent;
    public IRelationshipSet R938_InstanceAttributeValue_references_O_ATTRs() throws XtumlException {
        return R938_InstanceAttributeValue_references_O_ATTR_extent;
    }
    private IRelationshipSet R939_ClassParticipant_represents_ModelClass_extent;
    public IRelationshipSet R939_ClassParticipant_represents_ModelClasss() throws XtumlException {
        return R939_ClassParticipant_represents_ModelClass_extent;
    }
    private IRelationshipSet R940_Lifespan_extends_from_InteractionParticipant_extent;
    public IRelationshipSet R940_Lifespan_extends_from_InteractionParticipants() throws XtumlException {
        return R940_Lifespan_extends_from_InteractionParticipant_extent;
    }
    private IRelationshipSet R941_TimeSpan_span_begins_at_TimingMark_extent;
    public IRelationshipSet R941_TimeSpan_span_begins_at_TimingMarks() throws XtumlException {
        return R941_TimeSpan_span_begins_at_TimingMark_extent;
    }
    private IRelationshipSet R942_TimeSpan_span_ends_at_TimingMark_extent;
    public IRelationshipSet R942_TimeSpan_span_ends_at_TimingMarks() throws XtumlException {
        return R942_TimeSpan_span_ends_at_TimingMark_extent;
    }
    private IRelationshipSet R947_FormalAttribute_is_a_ClassParticipantAttribute_extent;
    public IRelationshipSet R947_FormalAttribute_is_a_ClassParticipantAttributes() throws XtumlException {
        return R947_FormalAttribute_is_a_ClassParticipantAttribute_extent;
    }
    private IRelationshipSet R947_InformalAttribute_is_a_ClassParticipantAttribute_extent;
    public IRelationshipSet R947_InformalAttribute_is_a_ClassParticipantAttributes() throws XtumlException {
        return R947_InformalAttribute_is_a_ClassParticipantAttribute_extent;
    }
    private IRelationshipSet R948_FormalAttributeValue_is_a_InstanceAttributeValue_extent;
    public IRelationshipSet R948_FormalAttributeValue_is_a_InstanceAttributeValues() throws XtumlException {
        return R948_FormalAttributeValue_is_a_InstanceAttributeValue_extent;
    }
    private IRelationshipSet R948_InformalAttributeValue_is_a_InstanceAttributeValue_extent;
    public IRelationshipSet R948_InformalAttributeValue_is_a_InstanceAttributeValues() throws XtumlException {
        return R948_InformalAttributeValue_is_a_InstanceAttributeValue_extent;
    }
    private IRelationshipSet R949_ActorParticipant_life_is_bounded_by_Lifespan_extent;
    public IRelationshipSet R949_ActorParticipant_life_is_bounded_by_Lifespans() throws XtumlException {
        return R949_ActorParticipant_life_is_bounded_by_Lifespan_extent;
    }
    private IRelationshipSet R955_ComponentParticipant_represents_C_C_extent;
    public IRelationshipSet R955_ComponentParticipant_represents_C_Cs() throws XtumlException {
        return R955_ComponentParticipant_represents_C_C_extent;
    }
    private IRelationshipSet R956_PackageParticipant_represents_EP_PKG_extent;
    public IRelationshipSet R956_PackageParticipant_represents_EP_PKGs() throws XtumlException {
        return R956_PackageParticipant_represents_EP_PKG_extent;
    }
    private IRelationshipSet R9_ExternalEntityInModel_is_a_presence_in_subsystem_model_of_ExternalEntity_extent;
    public IRelationshipSet R9_ExternalEntityInModel_is_a_presence_in_subsystem_model_of_ExternalEntitys() throws XtumlException {
        return R9_ExternalEntityInModel_is_a_presence_in_subsystem_model_of_ExternalEntity_extent;
    }


    // ports


    // utilities
    private T T;
    public T T() {
        if ( null == T ) T = new TImpl<>( this );
        return T;
    }
    private CMD CMD;
    public CMD CMD() {
        if ( null == CMD ) CMD = new CMDImpl<>( this );
        return CMD;
    }
    private CSV CSV;
    public CSV CSV() {
        if ( null == CSV ) CSV = new CSVImpl<>( this );
        return CSV;
    }
    private STRING STRING;
    public STRING STRING() {
        if ( null == STRING ) STRING = new STRINGImpl<>( this );
        return STRING;
    }
    private SQL SQL;
    public SQL SQL() {
        if ( null == SQL ) SQL = new SQLImpl<>( this );
        return SQL;
    }
    private TIM TIM;
    public TIM TIM() {
        if ( null == TIM ) TIM = new TIMImpl<>( this );
        return TIM;
    }
    private ARCH ARCH;
    public ARCH ARCH() {
        if ( null == ARCH ) ARCH = new ARCHImpl<>( this );
        return ARCH;
    }
    private LOG LOG;
    public LOG LOG() {
        if ( null == LOG ) LOG = new LOGImpl<>( this );
        return LOG;
    }
    private C_UTIL C_UTIL;
    public C_UTIL C_UTIL() {
        if ( null == C_UTIL ) C_UTIL = new C_UTILImpl<>( this );
        return C_UTIL;
    }


    // component initialization function
    @Override
    public void initialize() throws XtumlException {
        init();
    }

    @Override
    public String getVersion() {
        Properties prop = new Properties();
        try {
            prop.load(getClass().getResourceAsStream("CoreProperties.properties"));
        } catch (IOException e) { /* do nothing */ }
        return prop.getProperty("version", "Unknown");
    }
    @Override
    public String getVersionDate() {
        Properties prop = new Properties();
        try {
            prop.load(getClass().getResourceAsStream("CoreProperties.properties"));
        } catch (IOException e) { /* do nothing */ }
        return prop.getProperty("version_date", "Unknown");
    }

    @Override
    public boolean addInstance( IModelInstance instance ) throws XtumlException {
        if ( null == instance ) throw new BadArgumentException( "Null instance passed." );
        if ( instance.isEmpty() ) throw new EmptyInstanceException( "Cannot add empty instance to population." );
        if ( instance instanceof ACT_BRK ) return ACT_BRK_extent.add( (ACT_BRK)instance );
        else if ( instance instanceof ACT_CON ) return ACT_CON_extent.add( (ACT_CON)instance );
        else if ( instance instanceof ACT_FIO ) return ACT_FIO_extent.add( (ACT_FIO)instance );
        else if ( instance instanceof ACT_SEL ) return ACT_SEL_extent.add( (ACT_SEL)instance );
        else if ( instance instanceof ACT_SMT ) return ACT_SMT_extent.add( (ACT_SMT)instance );
        else if ( instance instanceof AcceptEvent ) return AcceptEvent_extent.add( (AcceptEvent)instance );
        else if ( instance instanceof AcceptEventAction ) return AcceptEventAction_extent.add( (AcceptEventAction)instance );
        else if ( instance instanceof AcceptTimeEventAction ) return AcceptTimeEventAction_extent.add( (AcceptTimeEventAction)instance );
        else if ( instance instanceof Action ) return Action_extent.add( (Action)instance );
        else if ( instance instanceof ActionHome ) return ActionHome_extent.add( (ActionHome)instance );
        else if ( instance instanceof ActionNode ) return ActionNode_extent.add( (ActionNode)instance );
        else if ( instance instanceof ActivityDiagramAction ) return ActivityDiagramAction_extent.add( (ActivityDiagramAction)instance );
        else if ( instance instanceof ActivityEdge ) return ActivityEdge_extent.add( (ActivityEdge)instance );
        else if ( instance instanceof ActivityFinalNode ) return ActivityFinalNode_extent.add( (ActivityFinalNode)instance );
        else if ( instance instanceof ActivityNode ) return ActivityNode_extent.add( (ActivityNode)instance );
        else if ( instance instanceof ActivityPartition ) return ActivityPartition_extent.add( (ActivityPartition)instance );
        else if ( instance instanceof ActorParticipant ) return ActorParticipant_extent.add( (ActorParticipant)instance );
        else if ( instance instanceof ActualParameter ) return ActualParameter_extent.add( (ActualParameter)instance );
        else if ( instance instanceof Any ) return Any_extent.add( (Any)instance );
        else if ( instance instanceof Application ) return Application_extent.add( (Application)instance );
        else if ( instance instanceof ApplicationExecutor ) return ApplicationExecutor_extent.add( (ApplicationExecutor)instance );
        else if ( instance instanceof ArrayElementReference ) return ArrayElementReference_extent.add( (ArrayElementReference)instance );
        else if ( instance instanceof ArrayLengthAccess ) return ArrayLengthAccess_extent.add( (ArrayLengthAccess)instance );
        else if ( instance instanceof ArrayLengthValue ) return ArrayLengthValue_extent.add( (ArrayLengthValue)instance );
        else if ( instance instanceof ArrayTypeReference ) return ArrayTypeReference_extent.add( (ArrayTypeReference)instance );
        else if ( instance instanceof AssignToMember ) return AssignToMember_extent.add( (AssignToMember)instance );
        else if ( instance instanceof Association ) return Association_extent.add( (Association)instance );
        else if ( instance instanceof AsynchronousMessage ) return AsynchronousMessage_extent.add( (AsynchronousMessage)instance );
        else if ( instance instanceof Attribute ) return Attribute_extent.add( (Attribute)instance );
        else if ( instance instanceof AttributeAccess ) return AttributeAccess_extent.add( (AttributeAccess)instance );
        else if ( instance instanceof AttributeAccessor ) return AttributeAccessor_extent.add( (AttributeAccessor)instance );
        else if ( instance instanceof AttributeDerivation ) return AttributeDerivation_extent.add( (AttributeDerivation)instance );
        else if ( instance instanceof AttributeReference ) return AttributeReference_extent.add( (AttributeReference)instance );
        else if ( instance instanceof AttributeReferenceInClass ) return AttributeReferenceInClass_extent.add( (AttributeReferenceInClass)instance );
        else if ( instance instanceof AttributeValue ) return AttributeValue_extent.add( (AttributeValue)instance );
        else if ( instance instanceof AttributeValueReference ) return AttributeValueReference_extent.add( (AttributeValueReference)instance );
        else if ( instance instanceof BaseAttribute ) return BaseAttribute_extent.add( (BaseAttribute)instance );
        else if ( instance instanceof BasicTypeReference ) return BasicTypeReference_extent.add( (BasicTypeReference)instance );
        else if ( instance instanceof BinaryAssociation ) return BinaryAssociation_extent.add( (BinaryAssociation)instance );
        else if ( instance instanceof BinaryOperation ) return BinaryOperation_extent.add( (BinaryOperation)instance );
        else if ( instance instanceof Block ) return Block_extent.add( (Block)instance );
        else if ( instance instanceof BlockInStackFrame ) return BlockInStackFrame_extent.add( (BlockInStackFrame)instance );
        else if ( instance instanceof Body ) return Body_extent.add( (Body)instance );
        else if ( instance instanceof BodyInComponent ) return BodyInComponent_extent.add( (BodyInComponent)instance );
        else if ( instance instanceof BodyInElement ) return BodyInElement_extent.add( (BodyInElement)instance );
        else if ( instance instanceof BreakSmt ) return BreakSmt_extent.add( (BreakSmt)instance );
        else if ( instance instanceof Bridge ) return Bridge_extent.add( (Bridge)instance );
        else if ( instance instanceof BridgeArgument ) return BridgeArgument_extent.add( (BridgeArgument)instance );
        else if ( instance instanceof BridgeBody ) return BridgeBody_extent.add( (BridgeBody)instance );
        else if ( instance instanceof BridgeInvocation ) return BridgeInvocation_extent.add( (BridgeInvocation)instance );
        else if ( instance instanceof BridgeMessage ) return BridgeMessage_extent.add( (BridgeMessage)instance );
        else if ( instance instanceof BridgeParameter ) return BridgeParameter_extent.add( (BridgeParameter)instance );
        else if ( instance instanceof BridgeValue ) return BridgeValue_extent.add( (BridgeValue)instance );
        else if ( instance instanceof BuiltInType ) return BuiltInType_extent.add( (BuiltInType)instance );
        else if ( instance instanceof C_C ) return C_C_extent.add( (C_C)instance );
        else if ( instance instanceof C_I ) return C_I_extent.add( (C_I)instance );
        else if ( instance instanceof C_PO ) return C_PO_extent.add( (C_PO)instance );
        else if ( instance instanceof CantHappen ) return CantHappen_extent.add( (CantHappen)instance );
        else if ( instance instanceof CardinalityCheck ) return CardinalityCheck_extent.add( (CardinalityCheck)instance );
        else if ( instance instanceof ChainLink ) return ChainLink_extent.add( (ChainLink)instance );
        else if ( instance instanceof ClassAsAssociatedOneSide ) return ClassAsAssociatedOneSide_extent.add( (ClassAsAssociatedOneSide)instance );
        else if ( instance instanceof ClassAsAssociatedOtherSide ) return ClassAsAssociatedOtherSide_extent.add( (ClassAsAssociatedOtherSide)instance );
        else if ( instance instanceof ClassAsDerivedOneSide ) return ClassAsDerivedOneSide_extent.add( (ClassAsDerivedOneSide)instance );
        else if ( instance instanceof ClassAsDerivedOtherSide ) return ClassAsDerivedOtherSide_extent.add( (ClassAsDerivedOtherSide)instance );
        else if ( instance instanceof ClassAsLink ) return ClassAsLink_extent.add( (ClassAsLink)instance );
        else if ( instance instanceof ClassAsSimpleFormalizer ) return ClassAsSimpleFormalizer_extent.add( (ClassAsSimpleFormalizer)instance );
        else if ( instance instanceof ClassAsSimpleParticipant ) return ClassAsSimpleParticipant_extent.add( (ClassAsSimpleParticipant)instance );
        else if ( instance instanceof ClassAsSubtype ) return ClassAsSubtype_extent.add( (ClassAsSubtype)instance );
        else if ( instance instanceof ClassAsSupertype ) return ClassAsSupertype_extent.add( (ClassAsSupertype)instance );
        else if ( instance instanceof ClassIdentifier ) return ClassIdentifier_extent.add( (ClassIdentifier)instance );
        else if ( instance instanceof ClassIdentifierAttribute ) return ClassIdentifierAttribute_extent.add( (ClassIdentifierAttribute)instance );
        else if ( instance instanceof ClassInAssociation ) return ClassInAssociation_extent.add( (ClassInAssociation)instance );
        else if ( instance instanceof ClassInstanceParticipant ) return ClassInstanceParticipant_extent.add( (ClassInstanceParticipant)instance );
        else if ( instance instanceof ClassParticipant ) return ClassParticipant_extent.add( (ClassParticipant)instance );
        else if ( instance instanceof ClassParticipantAttribute ) return ClassParticipantAttribute_extent.add( (ClassParticipantAttribute)instance );
        else if ( instance instanceof ClassRelationship ) return ClassRelationship_extent.add( (ClassRelationship)instance );
        else if ( instance instanceof ClassStateMachine ) return ClassStateMachine_extent.add( (ClassStateMachine)instance );
        else if ( instance instanceof CodeBlock ) return CodeBlock_extent.add( (CodeBlock)instance );
        else if ( instance instanceof CommunicationLink ) return CommunicationLink_extent.add( (CommunicationLink)instance );
        else if ( instance instanceof ComponentDefinition ) return ComponentDefinition_extent.add( (ComponentDefinition)instance );
        else if ( instance instanceof ComponentInstance ) return ComponentInstance_extent.add( (ComponentInstance)instance );
        else if ( instance instanceof ComponentInstanceContainer ) return ComponentInstanceContainer_extent.add( (ComponentInstanceContainer)instance );
        else if ( instance instanceof ComponentInstantiation ) return ComponentInstantiation_extent.add( (ComponentInstantiation)instance );
        else if ( instance instanceof ComponentParticipant ) return ComponentParticipant_extent.add( (ComponentParticipant)instance );
        else if ( instance instanceof ComponentReference ) return ComponentReference_extent.add( (ComponentReference)instance );
        else if ( instance instanceof ComponentResultSet ) return ComponentResultSet_extent.add( (ComponentResultSet)instance );
        else if ( instance instanceof ComponentVisibility ) return ComponentVisibility_extent.add( (ComponentVisibility)instance );
        else if ( instance instanceof ConstantReference ) return ConstantReference_extent.add( (ConstantReference)instance );
        else if ( instance instanceof ConstantSpecification ) return ConstantSpecification_extent.add( (ConstantSpecification)instance );
        else if ( instance instanceof ContinueSmt ) return ContinueSmt_extent.add( (ContinueSmt)instance );
        else if ( instance instanceof Control ) return Control_extent.add( (Control)instance );
        else if ( instance instanceof ControlNode ) return ControlNode_extent.add( (ControlNode)instance );
        else if ( instance instanceof CoreDataType ) return CoreDataType_extent.add( (CoreDataType)instance );
        else if ( instance instanceof Create ) return Create_extent.add( (Create)instance );
        else if ( instance instanceof CreateEventStatement ) return CreateEventStatement_extent.add( (CreateEventStatement)instance );
        else if ( instance instanceof CreateEventToClass ) return CreateEventToClass_extent.add( (CreateEventToClass)instance );
        else if ( instance instanceof CreateEventToCreator ) return CreateEventToCreator_extent.add( (CreateEventToCreator)instance );
        else if ( instance instanceof CreateEventToInstance ) return CreateEventToInstance_extent.add( (CreateEventToInstance)instance );
        else if ( instance instanceof CreateNoVariable ) return CreateNoVariable_extent.add( (CreateNoVariable)instance );
        else if ( instance instanceof CreateSMEventStatement ) return CreateSMEventStatement_extent.add( (CreateSMEventStatement)instance );
        else if ( instance instanceof Creation ) return Creation_extent.add( (Creation)instance );
        else if ( instance instanceof CreationTransition ) return CreationTransition_extent.add( (CreationTransition)instance );
        else if ( instance instanceof DataItemValue ) return DataItemValue_extent.add( (DataItemValue)instance );
        else if ( instance instanceof DataType ) return DataType_extent.add( (DataType)instance );
        else if ( instance instanceof DecisionMergeNode ) return DecisionMergeNode_extent.add( (DecisionMergeNode)instance );
        else if ( instance instanceof Deferral ) return Deferral_extent.add( (Deferral)instance );
        else if ( instance instanceof Delegation ) return Delegation_extent.add( (Delegation)instance );
        else if ( instance instanceof DelegationInComponent ) return DelegationInComponent_extent.add( (DelegationInComponent)instance );
        else if ( instance instanceof Delete ) return Delete_extent.add( (Delete)instance );
        else if ( instance instanceof DeleteSmt ) return DeleteSmt_extent.add( (DeleteSmt)instance );
        else if ( instance instanceof Deployment ) return Deployment_extent.add( (Deployment)instance );
        else if ( instance instanceof DerivedAssociation ) return DerivedAssociation_extent.add( (DerivedAssociation)instance );
        else if ( instance instanceof DerivedAttributeBody ) return DerivedAttributeBody_extent.add( (DerivedAttributeBody)instance );
        else if ( instance instanceof DerivedBaseAttribute ) return DerivedBaseAttribute_extent.add( (DerivedBaseAttribute)instance );
        else if ( instance instanceof Dimensions ) return Dimensions_extent.add( (Dimensions)instance );
        else if ( instance instanceof EP_PKG ) return EP_PKG_extent.add( (EP_PKG)instance );
        else if ( instance instanceof E_GEN ) return E_GEN_extent.add( (E_GEN)instance );
        else if ( instance instanceof ElementVisibility ) return ElementVisibility_extent.add( (ElementVisibility)instance );
        else if ( instance instanceof ElseIfStmt ) return ElseIfStmt_extent.add( (ElseIfStmt)instance );
        else if ( instance instanceof ElseStmt ) return ElseStmt_extent.add( (ElseStmt)instance );
        else if ( instance instanceof EnumeratedType ) return EnumeratedType_extent.add( (EnumeratedType)instance );
        else if ( instance instanceof EnumerationDataType ) return EnumerationDataType_extent.add( (EnumerationDataType)instance );
        else if ( instance instanceof Enumerator ) return Enumerator_extent.add( (Enumerator)instance );
        else if ( instance instanceof EnumeratorReference ) return EnumeratorReference_extent.add( (EnumeratorReference)instance );
        else if ( instance instanceof Event ) return Event_extent.add( (Event)instance );
        else if ( instance instanceof EventArgument ) return EventArgument_extent.add( (EventArgument)instance );
        else if ( instance instanceof EventCreation ) return EventCreation_extent.add( (EventCreation)instance );
        else if ( instance instanceof EventDatumValue ) return EventDatumValue_extent.add( (EventDatumValue)instance );
        else if ( instance instanceof EventIgnored ) return EventIgnored_extent.add( (EventIgnored)instance );
        else if ( instance instanceof EventMessage ) return EventMessage_extent.add( (EventMessage)instance );
        else if ( instance instanceof EventParameterReference ) return EventParameterReference_extent.add( (EventParameterReference)instance );
        else if ( instance instanceof EventQueueEntry ) return EventQueueEntry_extent.add( (EventQueueEntry)instance );
        else if ( instance instanceof EventSpecificationStatement ) return EventSpecificationStatement_extent.add( (EventSpecificationStatement)instance );
        else if ( instance instanceof Exception ) return Exception_extent.add( (Exception)instance );
        else if ( instance instanceof ExecutableProperty ) return ExecutableProperty_extent.add( (ExecutableProperty)instance );
        else if ( instance instanceof ExecutablePropertyArgument ) return ExecutablePropertyArgument_extent.add( (ExecutablePropertyArgument)instance );
        else if ( instance instanceof Expression ) return Expression_extent.add( (Expression)instance );
        else if ( instance instanceof ExpressionAsStatement ) return ExpressionAsStatement_extent.add( (ExpressionAsStatement)instance );
        else if ( instance instanceof Extend ) return Extend_extent.add( (Extend)instance );
        else if ( instance instanceof ExternalEntity ) return ExternalEntity_extent.add( (ExternalEntity)instance );
        else if ( instance instanceof ExternalEntityInModel ) return ExternalEntityInModel_extent.add( (ExternalEntityInModel)instance );
        else if ( instance instanceof ExternalEntityParticipant ) return ExternalEntityParticipant_extent.add( (ExternalEntityParticipant)instance );
        else if ( instance instanceof Feature ) return Feature_extent.add( (Feature)instance );
        else if ( instance instanceof File ) return File_extent.add( (File)instance );
        else if ( instance instanceof Finalization ) return Finalization_extent.add( (Finalization)instance );
        else if ( instance instanceof FlowFinalNode ) return FlowFinalNode_extent.add( (FlowFinalNode)instance );
        else if ( instance instanceof ForSmt ) return ForSmt_extent.add( (ForSmt)instance );
        else if ( instance instanceof ForStmt ) return ForStmt_extent.add( (ForStmt)instance );
        else if ( instance instanceof ForkJoinNode ) return ForkJoinNode_extent.add( (ForkJoinNode)instance );
        else if ( instance instanceof FormalAttribute ) return FormalAttribute_extent.add( (FormalAttribute)instance );
        else if ( instance instanceof FormalAttributeValue ) return FormalAttributeValue_extent.add( (FormalAttributeValue)instance );
        else if ( instance instanceof FormalParameter ) return FormalParameter_extent.add( (FormalParameter)instance );
        else if ( instance instanceof Function ) return Function_extent.add( (Function)instance );
        else if ( instance instanceof FunctionArgument ) return FunctionArgument_extent.add( (FunctionArgument)instance );
        else if ( instance instanceof FunctionBody ) return FunctionBody_extent.add( (FunctionBody)instance );
        else if ( instance instanceof FunctionInvocation ) return FunctionInvocation_extent.add( (FunctionInvocation)instance );
        else if ( instance instanceof FunctionMessage ) return FunctionMessage_extent.add( (FunctionMessage)instance );
        else if ( instance instanceof FunctionParameter ) return FunctionParameter_extent.add( (FunctionParameter)instance );
        else if ( instance instanceof FunctionValue ) return FunctionValue_extent.add( (FunctionValue)instance );
        else if ( instance instanceof GeneralFile ) return GeneralFile_extent.add( (GeneralFile)instance );
        else if ( instance instanceof Generalization ) return Generalization_extent.add( (Generalization)instance );
        else if ( instance instanceof Generate ) return Generate_extent.add( (Generate)instance );
        else if ( instance instanceof GenerateEventStatement ) return GenerateEventStatement_extent.add( (GenerateEventStatement)instance );
        else if ( instance instanceof GeneratePreexistingEvent ) return GeneratePreexistingEvent_extent.add( (GeneratePreexistingEvent)instance );
        else if ( instance instanceof GenerateSMEventStatement ) return GenerateSMEventStatement_extent.add( (GenerateSMEventStatement)instance );
        else if ( instance instanceof GenerateToClass ) return GenerateToClass_extent.add( (GenerateToClass)instance );
        else if ( instance instanceof GenerateToCreator ) return GenerateToCreator_extent.add( (GenerateToCreator)instance );
        else if ( instance instanceof GenericInvocable ) return GenericInvocable_extent.add( (GenericInvocable)instance );
        else if ( instance instanceof GlobalElementInSystem ) return GlobalElementInSystem_extent.add( (GlobalElementInSystem)instance );
        else if ( instance instanceof Halt ) return Halt_extent.add( (Halt)instance );
        else if ( instance instanceof I_INS ) return I_INS_extent.add( (I_INS)instance );
        else if ( instance instanceof IfSmt ) return IfSmt_extent.add( (IfSmt)instance );
        else if ( instance instanceof IfStmt ) return IfStmt_extent.add( (IfStmt)instance );
        else if ( instance instanceof Iface ) return Iface_extent.add( (Iface)instance );
        else if ( instance instanceof ImportedClass ) return ImportedClass_extent.add( (ImportedClass)instance );
        else if ( instance instanceof ImportedProvision ) return ImportedProvision_extent.add( (ImportedProvision)instance );
        else if ( instance instanceof ImportedProvisionInSatisfaction ) return ImportedProvisionInSatisfaction_extent.add( (ImportedProvisionInSatisfaction)instance );
        else if ( instance instanceof ImportedReference ) return ImportedReference_extent.add( (ImportedReference)instance );
        else if ( instance instanceof ImportedRequirement ) return ImportedRequirement_extent.add( (ImportedRequirement)instance );
        else if ( instance instanceof Include ) return Include_extent.add( (Include)instance );
        else if ( instance instanceof InformalArgument ) return InformalArgument_extent.add( (InformalArgument)instance );
        else if ( instance instanceof InformalAsynchronousMessage ) return InformalAsynchronousMessage_extent.add( (InformalAsynchronousMessage)instance );
        else if ( instance instanceof InformalAttribute ) return InformalAttribute_extent.add( (InformalAttribute)instance );
        else if ( instance instanceof InformalAttributeValue ) return InformalAttributeValue_extent.add( (InformalAttributeValue)instance );
        else if ( instance instanceof InformalSynchronousMessage ) return InformalSynchronousMessage_extent.add( (InformalSynchronousMessage)instance );
        else if ( instance instanceof InitialNode ) return InitialNode_extent.add( (InitialNode)instance );
        else if ( instance instanceof InstSet ) return InstSet_extent.add( (InstSet)instance );
        else if ( instance instanceof InstanceAttributeValue ) return InstanceAttributeValue_extent.add( (InstanceAttributeValue)instance );
        else if ( instance instanceof InstanceHandle ) return InstanceHandle_extent.add( (InstanceHandle)instance );
        else if ( instance instanceof InstancePopulationSelector ) return InstancePopulationSelector_extent.add( (InstancePopulationSelector)instance );
        else if ( instance instanceof InstanceReference ) return InstanceReference_extent.add( (InstanceReference)instance );
        else if ( instance instanceof InstanceReferenceDataType ) return InstanceReferenceDataType_extent.add( (InstanceReferenceDataType)instance );
        else if ( instance instanceof InstanceSelector ) return InstanceSelector_extent.add( (InstanceSelector)instance );
        else if ( instance instanceof InstanceSetReference ) return InstanceSetReference_extent.add( (InstanceSetReference)instance );
        else if ( instance instanceof InstanceStateMachine ) return InstanceStateMachine_extent.add( (InstanceStateMachine)instance );
        else if ( instance instanceof InteractionParticipant ) return InteractionParticipant_extent.add( (InteractionParticipant)instance );
        else if ( instance instanceof IntercomponentQueueEntry ) return IntercomponentQueueEntry_extent.add( (IntercomponentQueueEntry)instance );
        else if ( instance instanceof InterfaceOperation ) return InterfaceOperation_extent.add( (InterfaceOperation)instance );
        else if ( instance instanceof InterfaceOperationInvocation ) return InterfaceOperationInvocation_extent.add( (InterfaceOperationInvocation)instance );
        else if ( instance instanceof InterfaceOperationMessage ) return InterfaceOperationMessage_extent.add( (InterfaceOperationMessage)instance );
        else if ( instance instanceof InterfaceReference ) return InterfaceReference_extent.add( (InterfaceReference)instance );
        else if ( instance instanceof InterfaceReferenceInDelegation ) return InterfaceReferenceInDelegation_extent.add( (InterfaceReferenceInDelegation)instance );
        else if ( instance instanceof InterfaceSignal ) return InterfaceSignal_extent.add( (InterfaceSignal)instance );
        else if ( instance instanceof InvocableObject ) return InvocableObject_extent.add( (InvocableObject)instance );
        else if ( instance instanceof Invocation ) return Invocation_extent.add( (Invocation)instance );
        else if ( instance instanceof LeafSymbolicConstant ) return LeafSymbolicConstant_extent.add( (LeafSymbolicConstant)instance );
        else if ( instance instanceof Lifespan ) return Lifespan_extent.add( (Lifespan)instance );
        else if ( instance instanceof Link ) return Link_extent.add( (Link)instance );
        else if ( instance instanceof LinkParticipation ) return LinkParticipation_extent.add( (LinkParticipation)instance );
        else if ( instance instanceof LinkedAssociation ) return LinkedAssociation_extent.add( (LinkedAssociation)instance );
        else if ( instance instanceof Literal ) return Literal_extent.add( (Literal)instance );
        else if ( instance instanceof LiteralBoolean ) return LiteralBoolean_extent.add( (LiteralBoolean)instance );
        else if ( instance instanceof LiteralEnumerator ) return LiteralEnumerator_extent.add( (LiteralEnumerator)instance );
        else if ( instance instanceof LiteralInteger ) return LiteralInteger_extent.add( (LiteralInteger)instance );
        else if ( instance instanceof LiteralReal ) return LiteralReal_extent.add( (LiteralReal)instance );
        else if ( instance instanceof LiteralString ) return LiteralString_extent.add( (LiteralString)instance );
        else if ( instance instanceof LiteralSymbolicConstant ) return LiteralSymbolicConstant_extent.add( (LiteralSymbolicConstant)instance );
        else if ( instance instanceof LocalEvent ) return LocalEvent_extent.add( (LocalEvent)instance );
        else if ( instance instanceof MSG_M ) return MSG_M_extent.add( (MSG_M)instance );
        else if ( instance instanceof Mark ) return Mark_extent.add( (Mark)instance );
        else if ( instance instanceof MarkableElementType ) return MarkableElementType_extent.add( (MarkableElementType)instance );
        else if ( instance instanceof MealyActionHome ) return MealyActionHome_extent.add( (MealyActionHome)instance );
        else if ( instance instanceof MealyStateMachine ) return MealyStateMachine_extent.add( (MealyStateMachine)instance );
        else if ( instance instanceof MemberReference ) return MemberReference_extent.add( (MemberReference)instance );
        else if ( instance instanceof MemberValueReference ) return MemberValueReference_extent.add( (MemberValueReference)instance );
        else if ( instance instanceof Message ) return Message_extent.add( (Message)instance );
        else if ( instance instanceof MessageArgument ) return MessageArgument_extent.add( (MessageArgument)instance );
        else if ( instance instanceof MessageValue ) return MessageValue_extent.add( (MessageValue)instance );
        else if ( instance instanceof ModelClass ) return ModelClass_extent.add( (ModelClass)instance );
        else if ( instance instanceof ModelInst ) return ModelInst_extent.add( (ModelInst)instance );
        else if ( instance instanceof Monitor ) return Monitor_extent.add( (Monitor)instance );
        else if ( instance instanceof MooreActionHome ) return MooreActionHome_extent.add( (MooreActionHome)instance );
        else if ( instance instanceof MooreStateMachine ) return MooreStateMachine_extent.add( (MooreStateMachine)instance );
        else if ( instance instanceof NamedReference ) return NamedReference_extent.add( (NamedReference)instance );
        else if ( instance instanceof NewBaseAttribute ) return NewBaseAttribute_extent.add( (NewBaseAttribute)instance );
        else if ( instance instanceof NewStateTransition ) return NewStateTransition_extent.add( (NewStateTransition)instance );
        else if ( instance instanceof NoEventTransition ) return NoEventTransition_extent.add( (NoEventTransition)instance );
        else if ( instance instanceof NonLocalEvent ) return NonLocalEvent_extent.add( (NonLocalEvent)instance );
        else if ( instance instanceof NullSmt ) return NullSmt_extent.add( (NullSmt)instance );
        else if ( instance instanceof O_ATTR ) return O_ATTR_extent.add( (O_ATTR)instance );
        else if ( instance instanceof O_TFR ) return O_TFR_extent.add( (O_TFR)instance );
        else if ( instance instanceof ObjectNode ) return ObjectNode_extent.add( (ObjectNode)instance );
        else if ( instance instanceof Operation ) return Operation_extent.add( (Operation)instance );
        else if ( instance instanceof OperationArgument ) return OperationArgument_extent.add( (OperationArgument)instance );
        else if ( instance instanceof OperationBody ) return OperationBody_extent.add( (OperationBody)instance );
        else if ( instance instanceof OperationInvocation ) return OperationInvocation_extent.add( (OperationInvocation)instance );
        else if ( instance instanceof OperationMessage ) return OperationMessage_extent.add( (OperationMessage)instance );
        else if ( instance instanceof OperationParameter ) return OperationParameter_extent.add( (OperationParameter)instance );
        else if ( instance instanceof OperationValue ) return OperationValue_extent.add( (OperationValue)instance );
        else if ( instance instanceof PackageParticipant ) return PackageParticipant_extent.add( (PackageParticipant)instance );
        else if ( instance instanceof PackageReference ) return PackageReference_extent.add( (PackageReference)instance );
        else if ( instance instanceof PackageableElement ) return PackageableElement_extent.add( (PackageableElement)instance );
        else if ( instance instanceof ParameterReference ) return ParameterReference_extent.add( (ParameterReference)instance );
        else if ( instance instanceof ParameterValue ) return ParameterValue_extent.add( (ParameterValue)instance );
        else if ( instance instanceof ParenthesizedExpression ) return ParenthesizedExpression_extent.add( (ParenthesizedExpression)instance );
        else if ( instance instanceof PendingEvent ) return PendingEvent_extent.add( (PendingEvent)instance );
        else if ( instance instanceof PolymorphicEvent ) return PolymorphicEvent_extent.add( (PolymorphicEvent)instance );
        else if ( instance instanceof Port ) return Port_extent.add( (Port)instance );
        else if ( instance instanceof PortMessage ) return PortMessage_extent.add( (PortMessage)instance );
        else if ( instance instanceof PortReference ) return PortReference_extent.add( (PortReference)instance );
        else if ( instance instanceof Promotion ) return Promotion_extent.add( (Promotion)instance );
        else if ( instance instanceof PropertyParameter ) return PropertyParameter_extent.add( (PropertyParameter)instance );
        else if ( instance instanceof ProvidedExecutableProperty ) return ProvidedExecutableProperty_extent.add( (ProvidedExecutableProperty)instance );
        else if ( instance instanceof ProvidedOperation ) return ProvidedOperation_extent.add( (ProvidedOperation)instance );
        else if ( instance instanceof ProvidedOperationBody ) return ProvidedOperationBody_extent.add( (ProvidedOperationBody)instance );
        else if ( instance instanceof ProvidedSignal ) return ProvidedSignal_extent.add( (ProvidedSignal)instance );
        else if ( instance instanceof ProvidedSignalBody ) return ProvidedSignalBody_extent.add( (ProvidedSignalBody)instance );
        else if ( instance instanceof Provision ) return Provision_extent.add( (Provision)instance );
        else if ( instance instanceof Range ) return Range_extent.add( (Range)instance );
        else if ( instance instanceof ReferentialAttribute ) return ReferentialAttribute_extent.add( (ReferentialAttribute)instance );
        else if ( instance instanceof ReferredToClassInAssoc ) return ReferredToClassInAssoc_extent.add( (ReferredToClassInAssoc)instance );
        else if ( instance instanceof ReferredToIdentifierAttribute ) return ReferredToIdentifierAttribute_extent.add( (ReferredToIdentifierAttribute)instance );
        else if ( instance instanceof ReferringClassInAssoc ) return ReferringClassInAssoc_extent.add( (ReferringClassInAssoc)instance );
        else if ( instance instanceof Relate ) return Relate_extent.add( (Relate)instance );
        else if ( instance instanceof RelateSmt ) return RelateSmt_extent.add( (RelateSmt)instance );
        else if ( instance instanceof RelateUsing ) return RelateUsing_extent.add( (RelateUsing)instance );
        else if ( instance instanceof RelationshipPopulationSelector ) return RelationshipPopulationSelector_extent.add( (RelationshipPopulationSelector)instance );
        else if ( instance instanceof RequiredExecutableProperty ) return RequiredExecutableProperty_extent.add( (RequiredExecutableProperty)instance );
        else if ( instance instanceof RequiredOperation ) return RequiredOperation_extent.add( (RequiredOperation)instance );
        else if ( instance instanceof RequiredOperationBody ) return RequiredOperationBody_extent.add( (RequiredOperationBody)instance );
        else if ( instance instanceof RequiredSignal ) return RequiredSignal_extent.add( (RequiredSignal)instance );
        else if ( instance instanceof RequiredSignalBody ) return RequiredSignalBody_extent.add( (RequiredSignalBody)instance );
        else if ( instance instanceof Requirement ) return Requirement_extent.add( (Requirement)instance );
        else if ( instance instanceof ReturnMessage ) return ReturnMessage_extent.add( (ReturnMessage)instance );
        else if ( instance instanceof ReturnSmt ) return ReturnSmt_extent.add( (ReturnSmt)instance );
        else if ( instance instanceof ReturnStmt ) return ReturnStmt_extent.add( (ReturnStmt)instance );
        else if ( instance instanceof RuntimeChannel ) return RuntimeChannel_extent.add( (RuntimeChannel)instance );
        else if ( instance instanceof SEMEvent ) return SEMEvent_extent.add( (SEMEvent)instance );
        else if ( instance instanceof SM_SM ) return SM_SM_extent.add( (SM_SM)instance );
        else if ( instance instanceof S_ENUM ) return S_ENUM_extent.add( (S_ENUM)instance );
        else if ( instance instanceof S_SYNC ) return S_SYNC_extent.add( (S_SYNC)instance );
        else if ( instance instanceof Satisfaction ) return Satisfaction_extent.add( (Satisfaction)instance );
        else if ( instance instanceof SatisfactionInComponent ) return SatisfactionInComponent_extent.add( (SatisfactionInComponent)instance );
        else if ( instance instanceof SearchResultSet ) return SearchResultSet_extent.add( (SearchResultSet)instance );
        else if ( instance instanceof Select ) return Select_extent.add( (Select)instance );
        else if ( instance instanceof SelectFromInstances ) return SelectFromInstances_extent.add( (SelectFromInstances)instance );
        else if ( instance instanceof SelectFromInstancesWhere ) return SelectFromInstancesWhere_extent.add( (SelectFromInstancesWhere)instance );
        else if ( instance instanceof SelectRelated ) return SelectRelated_extent.add( (SelectRelated)instance );
        else if ( instance instanceof SelectRelatedBy ) return SelectRelatedBy_extent.add( (SelectRelatedBy)instance );
        else if ( instance instanceof SelectRelatedWhere ) return SelectRelatedWhere_extent.add( (SelectRelatedWhere)instance );
        else if ( instance instanceof Selected ) return Selected_extent.add( (Selected)instance );
        else if ( instance instanceof SelectedReference ) return SelectedReference_extent.add( (SelectedReference)instance );
        else if ( instance instanceof Selector ) return Selector_extent.add( (Selector)instance );
        else if ( instance instanceof SelfQueueEntry ) return SelfQueueEntry_extent.add( (SelfQueueEntry)instance );
        else if ( instance instanceof SendSignal ) return SendSignal_extent.add( (SendSignal)instance );
        else if ( instance instanceof ServiceInSequence ) return ServiceInSequence_extent.add( (ServiceInSequence)instance );
        else if ( instance instanceof SetSelector ) return SetSelector_extent.add( (SetSelector)instance );
        else if ( instance instanceof SignalEvent ) return SignalEvent_extent.add( (SignalEvent)instance );
        else if ( instance instanceof SignalInvocation ) return SignalInvocation_extent.add( (SignalInvocation)instance );
        else if ( instance instanceof SignalMessage ) return SignalMessage_extent.add( (SignalMessage)instance );
        else if ( instance instanceof SimpleAssociation ) return SimpleAssociation_extent.add( (SimpleAssociation)instance );
        else if ( instance instanceof Stack ) return Stack_extent.add( (Stack)instance );
        else if ( instance instanceof StackFrame ) return StackFrame_extent.add( (StackFrame)instance );
        else if ( instance instanceof State ) return State_extent.add( (State)instance );
        else if ( instance instanceof StateActionBody ) return StateActionBody_extent.add( (StateActionBody)instance );
        else if ( instance instanceof StateEventMatrixEntry ) return StateEventMatrixEntry_extent.add( (StateEventMatrixEntry)instance );
        else if ( instance instanceof StateMachine ) return StateMachine_extent.add( (StateMachine)instance );
        else if ( instance instanceof StateMachineEvent ) return StateMachineEvent_extent.add( (StateMachineEvent)instance );
        else if ( instance instanceof StateMachineEventDataItem ) return StateMachineEventDataItem_extent.add( (StateMachineEventDataItem)instance );
        else if ( instance instanceof StateMachineState ) return StateMachineState_extent.add( (StateMachineState)instance );
        else if ( instance instanceof StateTransition ) return StateTransition_extent.add( (StateTransition)instance );
        else if ( instance instanceof Statement ) return Statement_extent.add( (Statement)instance );
        else if ( instance instanceof StructureMember ) return StructureMember_extent.add( (StructureMember)instance );
        else if ( instance instanceof StructuredDataType ) return StructuredDataType_extent.add( (StructuredDataType)instance );
        else if ( instance instanceof SubtypeSupertypeAssociation ) return SubtypeSupertypeAssociation_extent.add( (SubtypeSupertypeAssociation)instance );
        else if ( instance instanceof SymbolicConstant ) return SymbolicConstant_extent.add( (SymbolicConstant)instance );
        else if ( instance instanceof SymbolicConstantValue ) return SymbolicConstantValue_extent.add( (SymbolicConstantValue)instance );
        else if ( instance instanceof SynchronousMessage ) return SynchronousMessage_extent.add( (SynchronousMessage)instance );
        else if ( instance instanceof SystemModel ) return SystemModel_extent.add( (SystemModel)instance );
        else if ( instance instanceof Terminator ) return Terminator_extent.add( (Terminator)instance );
        else if ( instance instanceof TerminatorService ) return TerminatorService_extent.add( (TerminatorService)instance );
        else if ( instance instanceof TerminatorServiceParameter ) return TerminatorServiceParameter_extent.add( (TerminatorServiceParameter)instance );
        else if ( instance instanceof TerminatorServiceSequence ) return TerminatorServiceSequence_extent.add( (TerminatorServiceSequence)instance );
        else if ( instance instanceof TimeSpan ) return TimeSpan_extent.add( (TimeSpan)instance );
        else if ( instance instanceof Timer ) return Timer_extent.add( (Timer)instance );
        else if ( instance instanceof TimingMark ) return TimingMark_extent.add( (TimingMark)instance );
        else if ( instance instanceof TransientValueReference ) return TransientValueReference_extent.add( (TransientValueReference)instance );
        else if ( instance instanceof TransientVar ) return TransientVar_extent.add( (TransientVar)instance );
        else if ( instance instanceof Transition ) return Transition_extent.add( (Transition)instance );
        else if ( instance instanceof TransitionActionBody ) return TransitionActionBody_extent.add( (TransitionActionBody)instance );
        else if ( instance instanceof TransitionActionHome ) return TransitionActionHome_extent.add( (TransitionActionHome)instance );
        else if ( instance instanceof TransitionTableCell ) return TransitionTableCell_extent.add( (TransitionTableCell)instance );
        else if ( instance instanceof TransitionTableRow ) return TransitionTableRow_extent.add( (TransitionTableRow)instance );
        else if ( instance instanceof Type ) return Type_extent.add( (Type)instance );
        else if ( instance instanceof TypeImport ) return TypeImport_extent.add( (TypeImport)instance );
        else if ( instance instanceof TypeImportReference ) return TypeImportReference_extent.add( (TypeImportReference)instance );
        else if ( instance instanceof TypeReference ) return TypeReference_extent.add( (TypeReference)instance );
        else if ( instance instanceof UnaryOperation ) return UnaryOperation_extent.add( (UnaryOperation)instance );
        else if ( instance instanceof Unrelate ) return Unrelate_extent.add( (Unrelate)instance );
        else if ( instance instanceof UnrelateSmt ) return UnrelateSmt_extent.add( (UnrelateSmt)instance );
        else if ( instance instanceof UnrelateUsing ) return UnrelateUsing_extent.add( (UnrelateUsing)instance );
        else if ( instance instanceof UnresolvedType ) return UnresolvedType_extent.add( (UnresolvedType)instance );
        else if ( instance instanceof UseCaseAssociation ) return UseCaseAssociation_extent.add( (UseCaseAssociation)instance );
        else if ( instance instanceof UseCaseParticipant ) return UseCaseParticipant_extent.add( (UseCaseParticipant)instance );
        else if ( instance instanceof UserDataType ) return UserDataType_extent.add( (UserDataType)instance );
        else if ( instance instanceof UserDefinedType ) return UserDefinedType_extent.add( (UserDefinedType)instance );
        else if ( instance instanceof Utility ) return Utility_extent.add( (Utility)instance );
        else if ( instance instanceof UtilityFunction ) return UtilityFunction_extent.add( (UtilityFunction)instance );
        else if ( instance instanceof UtilityReference ) return UtilityReference_extent.add( (UtilityReference)instance );
        else if ( instance instanceof V_AER ) return V_AER_extent.add( (V_AER)instance );
        else if ( instance instanceof V_BIN ) return V_BIN_extent.add( (V_BIN)instance );
        else if ( instance instanceof V_INS ) return V_INS_extent.add( (V_INS)instance );
        else if ( instance instanceof V_PAR ) return V_PAR_extent.add( (V_PAR)instance );
        else if ( instance instanceof V_UNY ) return V_UNY_extent.add( (V_UNY)instance );
        else if ( instance instanceof V_VAR ) return V_VAR_extent.add( (V_VAR)instance );
        else if ( instance instanceof Value ) return Value_extent.add( (Value)instance );
        else if ( instance instanceof ValueInStackFrame ) return ValueInStackFrame_extent.add( (ValueInStackFrame)instance );
        else if ( instance instanceof Variable ) return Variable_extent.add( (Variable)instance );
        else if ( instance instanceof VariableInScope ) return VariableInScope_extent.add( (VariableInScope)instance );
        else if ( instance instanceof VariableLocation ) return VariableLocation_extent.add( (VariableLocation)instance );
        else if ( instance instanceof VariableReference ) return VariableReference_extent.add( (VariableReference)instance );
        else if ( instance instanceof Where ) return Where_extent.add( (Where)instance );
        else if ( instance instanceof WhileSmt ) return WhileSmt_extent.add( (WhileSmt)instance );
        else if ( instance instanceof WhileStmt ) return WhileStmt_extent.add( (WhileStmt)instance );
        return false;
    }

    @Override
    public boolean removeInstance( IModelInstance instance ) throws XtumlException {
        if ( null == instance ) throw new BadArgumentException( "Null instance passed." );
        if ( instance.isEmpty() ) throw new EmptyInstanceException( "Cannot remove empty instance from population." );
        if ( instance instanceof ACT_BRK ) return ACT_BRK_extent.remove( (ACT_BRK)instance );
        else if ( instance instanceof ACT_CON ) return ACT_CON_extent.remove( (ACT_CON)instance );
        else if ( instance instanceof ACT_FIO ) return ACT_FIO_extent.remove( (ACT_FIO)instance );
        else if ( instance instanceof ACT_SEL ) return ACT_SEL_extent.remove( (ACT_SEL)instance );
        else if ( instance instanceof ACT_SMT ) return ACT_SMT_extent.remove( (ACT_SMT)instance );
        else if ( instance instanceof AcceptEvent ) return AcceptEvent_extent.remove( (AcceptEvent)instance );
        else if ( instance instanceof AcceptEventAction ) return AcceptEventAction_extent.remove( (AcceptEventAction)instance );
        else if ( instance instanceof AcceptTimeEventAction ) return AcceptTimeEventAction_extent.remove( (AcceptTimeEventAction)instance );
        else if ( instance instanceof Action ) return Action_extent.remove( (Action)instance );
        else if ( instance instanceof ActionHome ) return ActionHome_extent.remove( (ActionHome)instance );
        else if ( instance instanceof ActionNode ) return ActionNode_extent.remove( (ActionNode)instance );
        else if ( instance instanceof ActivityDiagramAction ) return ActivityDiagramAction_extent.remove( (ActivityDiagramAction)instance );
        else if ( instance instanceof ActivityEdge ) return ActivityEdge_extent.remove( (ActivityEdge)instance );
        else if ( instance instanceof ActivityFinalNode ) return ActivityFinalNode_extent.remove( (ActivityFinalNode)instance );
        else if ( instance instanceof ActivityNode ) return ActivityNode_extent.remove( (ActivityNode)instance );
        else if ( instance instanceof ActivityPartition ) return ActivityPartition_extent.remove( (ActivityPartition)instance );
        else if ( instance instanceof ActorParticipant ) return ActorParticipant_extent.remove( (ActorParticipant)instance );
        else if ( instance instanceof ActualParameter ) return ActualParameter_extent.remove( (ActualParameter)instance );
        else if ( instance instanceof Any ) return Any_extent.remove( (Any)instance );
        else if ( instance instanceof Application ) return Application_extent.remove( (Application)instance );
        else if ( instance instanceof ApplicationExecutor ) return ApplicationExecutor_extent.remove( (ApplicationExecutor)instance );
        else if ( instance instanceof ArrayElementReference ) return ArrayElementReference_extent.remove( (ArrayElementReference)instance );
        else if ( instance instanceof ArrayLengthAccess ) return ArrayLengthAccess_extent.remove( (ArrayLengthAccess)instance );
        else if ( instance instanceof ArrayLengthValue ) return ArrayLengthValue_extent.remove( (ArrayLengthValue)instance );
        else if ( instance instanceof ArrayTypeReference ) return ArrayTypeReference_extent.remove( (ArrayTypeReference)instance );
        else if ( instance instanceof AssignToMember ) return AssignToMember_extent.remove( (AssignToMember)instance );
        else if ( instance instanceof Association ) return Association_extent.remove( (Association)instance );
        else if ( instance instanceof AsynchronousMessage ) return AsynchronousMessage_extent.remove( (AsynchronousMessage)instance );
        else if ( instance instanceof Attribute ) return Attribute_extent.remove( (Attribute)instance );
        else if ( instance instanceof AttributeAccess ) return AttributeAccess_extent.remove( (AttributeAccess)instance );
        else if ( instance instanceof AttributeAccessor ) return AttributeAccessor_extent.remove( (AttributeAccessor)instance );
        else if ( instance instanceof AttributeDerivation ) return AttributeDerivation_extent.remove( (AttributeDerivation)instance );
        else if ( instance instanceof AttributeReference ) return AttributeReference_extent.remove( (AttributeReference)instance );
        else if ( instance instanceof AttributeReferenceInClass ) return AttributeReferenceInClass_extent.remove( (AttributeReferenceInClass)instance );
        else if ( instance instanceof AttributeValue ) return AttributeValue_extent.remove( (AttributeValue)instance );
        else if ( instance instanceof AttributeValueReference ) return AttributeValueReference_extent.remove( (AttributeValueReference)instance );
        else if ( instance instanceof BaseAttribute ) return BaseAttribute_extent.remove( (BaseAttribute)instance );
        else if ( instance instanceof BasicTypeReference ) return BasicTypeReference_extent.remove( (BasicTypeReference)instance );
        else if ( instance instanceof BinaryAssociation ) return BinaryAssociation_extent.remove( (BinaryAssociation)instance );
        else if ( instance instanceof BinaryOperation ) return BinaryOperation_extent.remove( (BinaryOperation)instance );
        else if ( instance instanceof Block ) return Block_extent.remove( (Block)instance );
        else if ( instance instanceof BlockInStackFrame ) return BlockInStackFrame_extent.remove( (BlockInStackFrame)instance );
        else if ( instance instanceof Body ) return Body_extent.remove( (Body)instance );
        else if ( instance instanceof BodyInComponent ) return BodyInComponent_extent.remove( (BodyInComponent)instance );
        else if ( instance instanceof BodyInElement ) return BodyInElement_extent.remove( (BodyInElement)instance );
        else if ( instance instanceof BreakSmt ) return BreakSmt_extent.remove( (BreakSmt)instance );
        else if ( instance instanceof Bridge ) return Bridge_extent.remove( (Bridge)instance );
        else if ( instance instanceof BridgeArgument ) return BridgeArgument_extent.remove( (BridgeArgument)instance );
        else if ( instance instanceof BridgeBody ) return BridgeBody_extent.remove( (BridgeBody)instance );
        else if ( instance instanceof BridgeInvocation ) return BridgeInvocation_extent.remove( (BridgeInvocation)instance );
        else if ( instance instanceof BridgeMessage ) return BridgeMessage_extent.remove( (BridgeMessage)instance );
        else if ( instance instanceof BridgeParameter ) return BridgeParameter_extent.remove( (BridgeParameter)instance );
        else if ( instance instanceof BridgeValue ) return BridgeValue_extent.remove( (BridgeValue)instance );
        else if ( instance instanceof BuiltInType ) return BuiltInType_extent.remove( (BuiltInType)instance );
        else if ( instance instanceof C_C ) return C_C_extent.remove( (C_C)instance );
        else if ( instance instanceof C_I ) return C_I_extent.remove( (C_I)instance );
        else if ( instance instanceof C_PO ) return C_PO_extent.remove( (C_PO)instance );
        else if ( instance instanceof CantHappen ) return CantHappen_extent.remove( (CantHappen)instance );
        else if ( instance instanceof CardinalityCheck ) return CardinalityCheck_extent.remove( (CardinalityCheck)instance );
        else if ( instance instanceof ChainLink ) return ChainLink_extent.remove( (ChainLink)instance );
        else if ( instance instanceof ClassAsAssociatedOneSide ) return ClassAsAssociatedOneSide_extent.remove( (ClassAsAssociatedOneSide)instance );
        else if ( instance instanceof ClassAsAssociatedOtherSide ) return ClassAsAssociatedOtherSide_extent.remove( (ClassAsAssociatedOtherSide)instance );
        else if ( instance instanceof ClassAsDerivedOneSide ) return ClassAsDerivedOneSide_extent.remove( (ClassAsDerivedOneSide)instance );
        else if ( instance instanceof ClassAsDerivedOtherSide ) return ClassAsDerivedOtherSide_extent.remove( (ClassAsDerivedOtherSide)instance );
        else if ( instance instanceof ClassAsLink ) return ClassAsLink_extent.remove( (ClassAsLink)instance );
        else if ( instance instanceof ClassAsSimpleFormalizer ) return ClassAsSimpleFormalizer_extent.remove( (ClassAsSimpleFormalizer)instance );
        else if ( instance instanceof ClassAsSimpleParticipant ) return ClassAsSimpleParticipant_extent.remove( (ClassAsSimpleParticipant)instance );
        else if ( instance instanceof ClassAsSubtype ) return ClassAsSubtype_extent.remove( (ClassAsSubtype)instance );
        else if ( instance instanceof ClassAsSupertype ) return ClassAsSupertype_extent.remove( (ClassAsSupertype)instance );
        else if ( instance instanceof ClassIdentifier ) return ClassIdentifier_extent.remove( (ClassIdentifier)instance );
        else if ( instance instanceof ClassIdentifierAttribute ) return ClassIdentifierAttribute_extent.remove( (ClassIdentifierAttribute)instance );
        else if ( instance instanceof ClassInAssociation ) return ClassInAssociation_extent.remove( (ClassInAssociation)instance );
        else if ( instance instanceof ClassInstanceParticipant ) return ClassInstanceParticipant_extent.remove( (ClassInstanceParticipant)instance );
        else if ( instance instanceof ClassParticipant ) return ClassParticipant_extent.remove( (ClassParticipant)instance );
        else if ( instance instanceof ClassParticipantAttribute ) return ClassParticipantAttribute_extent.remove( (ClassParticipantAttribute)instance );
        else if ( instance instanceof ClassRelationship ) return ClassRelationship_extent.remove( (ClassRelationship)instance );
        else if ( instance instanceof ClassStateMachine ) return ClassStateMachine_extent.remove( (ClassStateMachine)instance );
        else if ( instance instanceof CodeBlock ) return CodeBlock_extent.remove( (CodeBlock)instance );
        else if ( instance instanceof CommunicationLink ) return CommunicationLink_extent.remove( (CommunicationLink)instance );
        else if ( instance instanceof ComponentDefinition ) return ComponentDefinition_extent.remove( (ComponentDefinition)instance );
        else if ( instance instanceof ComponentInstance ) return ComponentInstance_extent.remove( (ComponentInstance)instance );
        else if ( instance instanceof ComponentInstanceContainer ) return ComponentInstanceContainer_extent.remove( (ComponentInstanceContainer)instance );
        else if ( instance instanceof ComponentInstantiation ) return ComponentInstantiation_extent.remove( (ComponentInstantiation)instance );
        else if ( instance instanceof ComponentParticipant ) return ComponentParticipant_extent.remove( (ComponentParticipant)instance );
        else if ( instance instanceof ComponentReference ) return ComponentReference_extent.remove( (ComponentReference)instance );
        else if ( instance instanceof ComponentResultSet ) return ComponentResultSet_extent.remove( (ComponentResultSet)instance );
        else if ( instance instanceof ComponentVisibility ) return ComponentVisibility_extent.remove( (ComponentVisibility)instance );
        else if ( instance instanceof ConstantReference ) return ConstantReference_extent.remove( (ConstantReference)instance );
        else if ( instance instanceof ConstantSpecification ) return ConstantSpecification_extent.remove( (ConstantSpecification)instance );
        else if ( instance instanceof ContinueSmt ) return ContinueSmt_extent.remove( (ContinueSmt)instance );
        else if ( instance instanceof Control ) return Control_extent.remove( (Control)instance );
        else if ( instance instanceof ControlNode ) return ControlNode_extent.remove( (ControlNode)instance );
        else if ( instance instanceof CoreDataType ) return CoreDataType_extent.remove( (CoreDataType)instance );
        else if ( instance instanceof Create ) return Create_extent.remove( (Create)instance );
        else if ( instance instanceof CreateEventStatement ) return CreateEventStatement_extent.remove( (CreateEventStatement)instance );
        else if ( instance instanceof CreateEventToClass ) return CreateEventToClass_extent.remove( (CreateEventToClass)instance );
        else if ( instance instanceof CreateEventToCreator ) return CreateEventToCreator_extent.remove( (CreateEventToCreator)instance );
        else if ( instance instanceof CreateEventToInstance ) return CreateEventToInstance_extent.remove( (CreateEventToInstance)instance );
        else if ( instance instanceof CreateNoVariable ) return CreateNoVariable_extent.remove( (CreateNoVariable)instance );
        else if ( instance instanceof CreateSMEventStatement ) return CreateSMEventStatement_extent.remove( (CreateSMEventStatement)instance );
        else if ( instance instanceof Creation ) return Creation_extent.remove( (Creation)instance );
        else if ( instance instanceof CreationTransition ) return CreationTransition_extent.remove( (CreationTransition)instance );
        else if ( instance instanceof DataItemValue ) return DataItemValue_extent.remove( (DataItemValue)instance );
        else if ( instance instanceof DataType ) return DataType_extent.remove( (DataType)instance );
        else if ( instance instanceof DecisionMergeNode ) return DecisionMergeNode_extent.remove( (DecisionMergeNode)instance );
        else if ( instance instanceof Deferral ) return Deferral_extent.remove( (Deferral)instance );
        else if ( instance instanceof Delegation ) return Delegation_extent.remove( (Delegation)instance );
        else if ( instance instanceof DelegationInComponent ) return DelegationInComponent_extent.remove( (DelegationInComponent)instance );
        else if ( instance instanceof Delete ) return Delete_extent.remove( (Delete)instance );
        else if ( instance instanceof DeleteSmt ) return DeleteSmt_extent.remove( (DeleteSmt)instance );
        else if ( instance instanceof Deployment ) return Deployment_extent.remove( (Deployment)instance );
        else if ( instance instanceof DerivedAssociation ) return DerivedAssociation_extent.remove( (DerivedAssociation)instance );
        else if ( instance instanceof DerivedAttributeBody ) return DerivedAttributeBody_extent.remove( (DerivedAttributeBody)instance );
        else if ( instance instanceof DerivedBaseAttribute ) return DerivedBaseAttribute_extent.remove( (DerivedBaseAttribute)instance );
        else if ( instance instanceof Dimensions ) return Dimensions_extent.remove( (Dimensions)instance );
        else if ( instance instanceof EP_PKG ) return EP_PKG_extent.remove( (EP_PKG)instance );
        else if ( instance instanceof E_GEN ) return E_GEN_extent.remove( (E_GEN)instance );
        else if ( instance instanceof ElementVisibility ) return ElementVisibility_extent.remove( (ElementVisibility)instance );
        else if ( instance instanceof ElseIfStmt ) return ElseIfStmt_extent.remove( (ElseIfStmt)instance );
        else if ( instance instanceof ElseStmt ) return ElseStmt_extent.remove( (ElseStmt)instance );
        else if ( instance instanceof EnumeratedType ) return EnumeratedType_extent.remove( (EnumeratedType)instance );
        else if ( instance instanceof EnumerationDataType ) return EnumerationDataType_extent.remove( (EnumerationDataType)instance );
        else if ( instance instanceof Enumerator ) return Enumerator_extent.remove( (Enumerator)instance );
        else if ( instance instanceof EnumeratorReference ) return EnumeratorReference_extent.remove( (EnumeratorReference)instance );
        else if ( instance instanceof Event ) return Event_extent.remove( (Event)instance );
        else if ( instance instanceof EventArgument ) return EventArgument_extent.remove( (EventArgument)instance );
        else if ( instance instanceof EventCreation ) return EventCreation_extent.remove( (EventCreation)instance );
        else if ( instance instanceof EventDatumValue ) return EventDatumValue_extent.remove( (EventDatumValue)instance );
        else if ( instance instanceof EventIgnored ) return EventIgnored_extent.remove( (EventIgnored)instance );
        else if ( instance instanceof EventMessage ) return EventMessage_extent.remove( (EventMessage)instance );
        else if ( instance instanceof EventParameterReference ) return EventParameterReference_extent.remove( (EventParameterReference)instance );
        else if ( instance instanceof EventQueueEntry ) return EventQueueEntry_extent.remove( (EventQueueEntry)instance );
        else if ( instance instanceof EventSpecificationStatement ) return EventSpecificationStatement_extent.remove( (EventSpecificationStatement)instance );
        else if ( instance instanceof Exception ) return Exception_extent.remove( (Exception)instance );
        else if ( instance instanceof ExecutableProperty ) return ExecutableProperty_extent.remove( (ExecutableProperty)instance );
        else if ( instance instanceof ExecutablePropertyArgument ) return ExecutablePropertyArgument_extent.remove( (ExecutablePropertyArgument)instance );
        else if ( instance instanceof Expression ) return Expression_extent.remove( (Expression)instance );
        else if ( instance instanceof ExpressionAsStatement ) return ExpressionAsStatement_extent.remove( (ExpressionAsStatement)instance );
        else if ( instance instanceof Extend ) return Extend_extent.remove( (Extend)instance );
        else if ( instance instanceof ExternalEntity ) return ExternalEntity_extent.remove( (ExternalEntity)instance );
        else if ( instance instanceof ExternalEntityInModel ) return ExternalEntityInModel_extent.remove( (ExternalEntityInModel)instance );
        else if ( instance instanceof ExternalEntityParticipant ) return ExternalEntityParticipant_extent.remove( (ExternalEntityParticipant)instance );
        else if ( instance instanceof Feature ) return Feature_extent.remove( (Feature)instance );
        else if ( instance instanceof File ) return File_extent.remove( (File)instance );
        else if ( instance instanceof Finalization ) return Finalization_extent.remove( (Finalization)instance );
        else if ( instance instanceof FlowFinalNode ) return FlowFinalNode_extent.remove( (FlowFinalNode)instance );
        else if ( instance instanceof ForSmt ) return ForSmt_extent.remove( (ForSmt)instance );
        else if ( instance instanceof ForStmt ) return ForStmt_extent.remove( (ForStmt)instance );
        else if ( instance instanceof ForkJoinNode ) return ForkJoinNode_extent.remove( (ForkJoinNode)instance );
        else if ( instance instanceof FormalAttribute ) return FormalAttribute_extent.remove( (FormalAttribute)instance );
        else if ( instance instanceof FormalAttributeValue ) return FormalAttributeValue_extent.remove( (FormalAttributeValue)instance );
        else if ( instance instanceof FormalParameter ) return FormalParameter_extent.remove( (FormalParameter)instance );
        else if ( instance instanceof Function ) return Function_extent.remove( (Function)instance );
        else if ( instance instanceof FunctionArgument ) return FunctionArgument_extent.remove( (FunctionArgument)instance );
        else if ( instance instanceof FunctionBody ) return FunctionBody_extent.remove( (FunctionBody)instance );
        else if ( instance instanceof FunctionInvocation ) return FunctionInvocation_extent.remove( (FunctionInvocation)instance );
        else if ( instance instanceof FunctionMessage ) return FunctionMessage_extent.remove( (FunctionMessage)instance );
        else if ( instance instanceof FunctionParameter ) return FunctionParameter_extent.remove( (FunctionParameter)instance );
        else if ( instance instanceof FunctionValue ) return FunctionValue_extent.remove( (FunctionValue)instance );
        else if ( instance instanceof GeneralFile ) return GeneralFile_extent.remove( (GeneralFile)instance );
        else if ( instance instanceof Generalization ) return Generalization_extent.remove( (Generalization)instance );
        else if ( instance instanceof Generate ) return Generate_extent.remove( (Generate)instance );
        else if ( instance instanceof GenerateEventStatement ) return GenerateEventStatement_extent.remove( (GenerateEventStatement)instance );
        else if ( instance instanceof GeneratePreexistingEvent ) return GeneratePreexistingEvent_extent.remove( (GeneratePreexistingEvent)instance );
        else if ( instance instanceof GenerateSMEventStatement ) return GenerateSMEventStatement_extent.remove( (GenerateSMEventStatement)instance );
        else if ( instance instanceof GenerateToClass ) return GenerateToClass_extent.remove( (GenerateToClass)instance );
        else if ( instance instanceof GenerateToCreator ) return GenerateToCreator_extent.remove( (GenerateToCreator)instance );
        else if ( instance instanceof GenericInvocable ) return GenericInvocable_extent.remove( (GenericInvocable)instance );
        else if ( instance instanceof GlobalElementInSystem ) return GlobalElementInSystem_extent.remove( (GlobalElementInSystem)instance );
        else if ( instance instanceof Halt ) return Halt_extent.remove( (Halt)instance );
        else if ( instance instanceof I_INS ) return I_INS_extent.remove( (I_INS)instance );
        else if ( instance instanceof IfSmt ) return IfSmt_extent.remove( (IfSmt)instance );
        else if ( instance instanceof IfStmt ) return IfStmt_extent.remove( (IfStmt)instance );
        else if ( instance instanceof Iface ) return Iface_extent.remove( (Iface)instance );
        else if ( instance instanceof ImportedClass ) return ImportedClass_extent.remove( (ImportedClass)instance );
        else if ( instance instanceof ImportedProvision ) return ImportedProvision_extent.remove( (ImportedProvision)instance );
        else if ( instance instanceof ImportedProvisionInSatisfaction ) return ImportedProvisionInSatisfaction_extent.remove( (ImportedProvisionInSatisfaction)instance );
        else if ( instance instanceof ImportedReference ) return ImportedReference_extent.remove( (ImportedReference)instance );
        else if ( instance instanceof ImportedRequirement ) return ImportedRequirement_extent.remove( (ImportedRequirement)instance );
        else if ( instance instanceof Include ) return Include_extent.remove( (Include)instance );
        else if ( instance instanceof InformalArgument ) return InformalArgument_extent.remove( (InformalArgument)instance );
        else if ( instance instanceof InformalAsynchronousMessage ) return InformalAsynchronousMessage_extent.remove( (InformalAsynchronousMessage)instance );
        else if ( instance instanceof InformalAttribute ) return InformalAttribute_extent.remove( (InformalAttribute)instance );
        else if ( instance instanceof InformalAttributeValue ) return InformalAttributeValue_extent.remove( (InformalAttributeValue)instance );
        else if ( instance instanceof InformalSynchronousMessage ) return InformalSynchronousMessage_extent.remove( (InformalSynchronousMessage)instance );
        else if ( instance instanceof InitialNode ) return InitialNode_extent.remove( (InitialNode)instance );
        else if ( instance instanceof InstSet ) return InstSet_extent.remove( (InstSet)instance );
        else if ( instance instanceof InstanceAttributeValue ) return InstanceAttributeValue_extent.remove( (InstanceAttributeValue)instance );
        else if ( instance instanceof InstanceHandle ) return InstanceHandle_extent.remove( (InstanceHandle)instance );
        else if ( instance instanceof InstancePopulationSelector ) return InstancePopulationSelector_extent.remove( (InstancePopulationSelector)instance );
        else if ( instance instanceof InstanceReference ) return InstanceReference_extent.remove( (InstanceReference)instance );
        else if ( instance instanceof InstanceReferenceDataType ) return InstanceReferenceDataType_extent.remove( (InstanceReferenceDataType)instance );
        else if ( instance instanceof InstanceSelector ) return InstanceSelector_extent.remove( (InstanceSelector)instance );
        else if ( instance instanceof InstanceSetReference ) return InstanceSetReference_extent.remove( (InstanceSetReference)instance );
        else if ( instance instanceof InstanceStateMachine ) return InstanceStateMachine_extent.remove( (InstanceStateMachine)instance );
        else if ( instance instanceof InteractionParticipant ) return InteractionParticipant_extent.remove( (InteractionParticipant)instance );
        else if ( instance instanceof IntercomponentQueueEntry ) return IntercomponentQueueEntry_extent.remove( (IntercomponentQueueEntry)instance );
        else if ( instance instanceof InterfaceOperation ) return InterfaceOperation_extent.remove( (InterfaceOperation)instance );
        else if ( instance instanceof InterfaceOperationInvocation ) return InterfaceOperationInvocation_extent.remove( (InterfaceOperationInvocation)instance );
        else if ( instance instanceof InterfaceOperationMessage ) return InterfaceOperationMessage_extent.remove( (InterfaceOperationMessage)instance );
        else if ( instance instanceof InterfaceReference ) return InterfaceReference_extent.remove( (InterfaceReference)instance );
        else if ( instance instanceof InterfaceReferenceInDelegation ) return InterfaceReferenceInDelegation_extent.remove( (InterfaceReferenceInDelegation)instance );
        else if ( instance instanceof InterfaceSignal ) return InterfaceSignal_extent.remove( (InterfaceSignal)instance );
        else if ( instance instanceof InvocableObject ) return InvocableObject_extent.remove( (InvocableObject)instance );
        else if ( instance instanceof Invocation ) return Invocation_extent.remove( (Invocation)instance );
        else if ( instance instanceof LeafSymbolicConstant ) return LeafSymbolicConstant_extent.remove( (LeafSymbolicConstant)instance );
        else if ( instance instanceof Lifespan ) return Lifespan_extent.remove( (Lifespan)instance );
        else if ( instance instanceof Link ) return Link_extent.remove( (Link)instance );
        else if ( instance instanceof LinkParticipation ) return LinkParticipation_extent.remove( (LinkParticipation)instance );
        else if ( instance instanceof LinkedAssociation ) return LinkedAssociation_extent.remove( (LinkedAssociation)instance );
        else if ( instance instanceof Literal ) return Literal_extent.remove( (Literal)instance );
        else if ( instance instanceof LiteralBoolean ) return LiteralBoolean_extent.remove( (LiteralBoolean)instance );
        else if ( instance instanceof LiteralEnumerator ) return LiteralEnumerator_extent.remove( (LiteralEnumerator)instance );
        else if ( instance instanceof LiteralInteger ) return LiteralInteger_extent.remove( (LiteralInteger)instance );
        else if ( instance instanceof LiteralReal ) return LiteralReal_extent.remove( (LiteralReal)instance );
        else if ( instance instanceof LiteralString ) return LiteralString_extent.remove( (LiteralString)instance );
        else if ( instance instanceof LiteralSymbolicConstant ) return LiteralSymbolicConstant_extent.remove( (LiteralSymbolicConstant)instance );
        else if ( instance instanceof LocalEvent ) return LocalEvent_extent.remove( (LocalEvent)instance );
        else if ( instance instanceof MSG_M ) return MSG_M_extent.remove( (MSG_M)instance );
        else if ( instance instanceof Mark ) return Mark_extent.remove( (Mark)instance );
        else if ( instance instanceof MarkableElementType ) return MarkableElementType_extent.remove( (MarkableElementType)instance );
        else if ( instance instanceof MealyActionHome ) return MealyActionHome_extent.remove( (MealyActionHome)instance );
        else if ( instance instanceof MealyStateMachine ) return MealyStateMachine_extent.remove( (MealyStateMachine)instance );
        else if ( instance instanceof MemberReference ) return MemberReference_extent.remove( (MemberReference)instance );
        else if ( instance instanceof MemberValueReference ) return MemberValueReference_extent.remove( (MemberValueReference)instance );
        else if ( instance instanceof Message ) return Message_extent.remove( (Message)instance );
        else if ( instance instanceof MessageArgument ) return MessageArgument_extent.remove( (MessageArgument)instance );
        else if ( instance instanceof MessageValue ) return MessageValue_extent.remove( (MessageValue)instance );
        else if ( instance instanceof ModelClass ) return ModelClass_extent.remove( (ModelClass)instance );
        else if ( instance instanceof ModelInst ) return ModelInst_extent.remove( (ModelInst)instance );
        else if ( instance instanceof Monitor ) return Monitor_extent.remove( (Monitor)instance );
        else if ( instance instanceof MooreActionHome ) return MooreActionHome_extent.remove( (MooreActionHome)instance );
        else if ( instance instanceof MooreStateMachine ) return MooreStateMachine_extent.remove( (MooreStateMachine)instance );
        else if ( instance instanceof NamedReference ) return NamedReference_extent.remove( (NamedReference)instance );
        else if ( instance instanceof NewBaseAttribute ) return NewBaseAttribute_extent.remove( (NewBaseAttribute)instance );
        else if ( instance instanceof NewStateTransition ) return NewStateTransition_extent.remove( (NewStateTransition)instance );
        else if ( instance instanceof NoEventTransition ) return NoEventTransition_extent.remove( (NoEventTransition)instance );
        else if ( instance instanceof NonLocalEvent ) return NonLocalEvent_extent.remove( (NonLocalEvent)instance );
        else if ( instance instanceof NullSmt ) return NullSmt_extent.remove( (NullSmt)instance );
        else if ( instance instanceof O_ATTR ) return O_ATTR_extent.remove( (O_ATTR)instance );
        else if ( instance instanceof O_TFR ) return O_TFR_extent.remove( (O_TFR)instance );
        else if ( instance instanceof ObjectNode ) return ObjectNode_extent.remove( (ObjectNode)instance );
        else if ( instance instanceof Operation ) return Operation_extent.remove( (Operation)instance );
        else if ( instance instanceof OperationArgument ) return OperationArgument_extent.remove( (OperationArgument)instance );
        else if ( instance instanceof OperationBody ) return OperationBody_extent.remove( (OperationBody)instance );
        else if ( instance instanceof OperationInvocation ) return OperationInvocation_extent.remove( (OperationInvocation)instance );
        else if ( instance instanceof OperationMessage ) return OperationMessage_extent.remove( (OperationMessage)instance );
        else if ( instance instanceof OperationParameter ) return OperationParameter_extent.remove( (OperationParameter)instance );
        else if ( instance instanceof OperationValue ) return OperationValue_extent.remove( (OperationValue)instance );
        else if ( instance instanceof PackageParticipant ) return PackageParticipant_extent.remove( (PackageParticipant)instance );
        else if ( instance instanceof PackageReference ) return PackageReference_extent.remove( (PackageReference)instance );
        else if ( instance instanceof PackageableElement ) return PackageableElement_extent.remove( (PackageableElement)instance );
        else if ( instance instanceof ParameterReference ) return ParameterReference_extent.remove( (ParameterReference)instance );
        else if ( instance instanceof ParameterValue ) return ParameterValue_extent.remove( (ParameterValue)instance );
        else if ( instance instanceof ParenthesizedExpression ) return ParenthesizedExpression_extent.remove( (ParenthesizedExpression)instance );
        else if ( instance instanceof PendingEvent ) return PendingEvent_extent.remove( (PendingEvent)instance );
        else if ( instance instanceof PolymorphicEvent ) return PolymorphicEvent_extent.remove( (PolymorphicEvent)instance );
        else if ( instance instanceof Port ) return Port_extent.remove( (Port)instance );
        else if ( instance instanceof PortMessage ) return PortMessage_extent.remove( (PortMessage)instance );
        else if ( instance instanceof PortReference ) return PortReference_extent.remove( (PortReference)instance );
        else if ( instance instanceof Promotion ) return Promotion_extent.remove( (Promotion)instance );
        else if ( instance instanceof PropertyParameter ) return PropertyParameter_extent.remove( (PropertyParameter)instance );
        else if ( instance instanceof ProvidedExecutableProperty ) return ProvidedExecutableProperty_extent.remove( (ProvidedExecutableProperty)instance );
        else if ( instance instanceof ProvidedOperation ) return ProvidedOperation_extent.remove( (ProvidedOperation)instance );
        else if ( instance instanceof ProvidedOperationBody ) return ProvidedOperationBody_extent.remove( (ProvidedOperationBody)instance );
        else if ( instance instanceof ProvidedSignal ) return ProvidedSignal_extent.remove( (ProvidedSignal)instance );
        else if ( instance instanceof ProvidedSignalBody ) return ProvidedSignalBody_extent.remove( (ProvidedSignalBody)instance );
        else if ( instance instanceof Provision ) return Provision_extent.remove( (Provision)instance );
        else if ( instance instanceof Range ) return Range_extent.remove( (Range)instance );
        else if ( instance instanceof ReferentialAttribute ) return ReferentialAttribute_extent.remove( (ReferentialAttribute)instance );
        else if ( instance instanceof ReferredToClassInAssoc ) return ReferredToClassInAssoc_extent.remove( (ReferredToClassInAssoc)instance );
        else if ( instance instanceof ReferredToIdentifierAttribute ) return ReferredToIdentifierAttribute_extent.remove( (ReferredToIdentifierAttribute)instance );
        else if ( instance instanceof ReferringClassInAssoc ) return ReferringClassInAssoc_extent.remove( (ReferringClassInAssoc)instance );
        else if ( instance instanceof Relate ) return Relate_extent.remove( (Relate)instance );
        else if ( instance instanceof RelateSmt ) return RelateSmt_extent.remove( (RelateSmt)instance );
        else if ( instance instanceof RelateUsing ) return RelateUsing_extent.remove( (RelateUsing)instance );
        else if ( instance instanceof RelationshipPopulationSelector ) return RelationshipPopulationSelector_extent.remove( (RelationshipPopulationSelector)instance );
        else if ( instance instanceof RequiredExecutableProperty ) return RequiredExecutableProperty_extent.remove( (RequiredExecutableProperty)instance );
        else if ( instance instanceof RequiredOperation ) return RequiredOperation_extent.remove( (RequiredOperation)instance );
        else if ( instance instanceof RequiredOperationBody ) return RequiredOperationBody_extent.remove( (RequiredOperationBody)instance );
        else if ( instance instanceof RequiredSignal ) return RequiredSignal_extent.remove( (RequiredSignal)instance );
        else if ( instance instanceof RequiredSignalBody ) return RequiredSignalBody_extent.remove( (RequiredSignalBody)instance );
        else if ( instance instanceof Requirement ) return Requirement_extent.remove( (Requirement)instance );
        else if ( instance instanceof ReturnMessage ) return ReturnMessage_extent.remove( (ReturnMessage)instance );
        else if ( instance instanceof ReturnSmt ) return ReturnSmt_extent.remove( (ReturnSmt)instance );
        else if ( instance instanceof ReturnStmt ) return ReturnStmt_extent.remove( (ReturnStmt)instance );
        else if ( instance instanceof RuntimeChannel ) return RuntimeChannel_extent.remove( (RuntimeChannel)instance );
        else if ( instance instanceof SEMEvent ) return SEMEvent_extent.remove( (SEMEvent)instance );
        else if ( instance instanceof SM_SM ) return SM_SM_extent.remove( (SM_SM)instance );
        else if ( instance instanceof S_ENUM ) return S_ENUM_extent.remove( (S_ENUM)instance );
        else if ( instance instanceof S_SYNC ) return S_SYNC_extent.remove( (S_SYNC)instance );
        else if ( instance instanceof Satisfaction ) return Satisfaction_extent.remove( (Satisfaction)instance );
        else if ( instance instanceof SatisfactionInComponent ) return SatisfactionInComponent_extent.remove( (SatisfactionInComponent)instance );
        else if ( instance instanceof SearchResultSet ) return SearchResultSet_extent.remove( (SearchResultSet)instance );
        else if ( instance instanceof Select ) return Select_extent.remove( (Select)instance );
        else if ( instance instanceof SelectFromInstances ) return SelectFromInstances_extent.remove( (SelectFromInstances)instance );
        else if ( instance instanceof SelectFromInstancesWhere ) return SelectFromInstancesWhere_extent.remove( (SelectFromInstancesWhere)instance );
        else if ( instance instanceof SelectRelated ) return SelectRelated_extent.remove( (SelectRelated)instance );
        else if ( instance instanceof SelectRelatedBy ) return SelectRelatedBy_extent.remove( (SelectRelatedBy)instance );
        else if ( instance instanceof SelectRelatedWhere ) return SelectRelatedWhere_extent.remove( (SelectRelatedWhere)instance );
        else if ( instance instanceof Selected ) return Selected_extent.remove( (Selected)instance );
        else if ( instance instanceof SelectedReference ) return SelectedReference_extent.remove( (SelectedReference)instance );
        else if ( instance instanceof Selector ) return Selector_extent.remove( (Selector)instance );
        else if ( instance instanceof SelfQueueEntry ) return SelfQueueEntry_extent.remove( (SelfQueueEntry)instance );
        else if ( instance instanceof SendSignal ) return SendSignal_extent.remove( (SendSignal)instance );
        else if ( instance instanceof ServiceInSequence ) return ServiceInSequence_extent.remove( (ServiceInSequence)instance );
        else if ( instance instanceof SetSelector ) return SetSelector_extent.remove( (SetSelector)instance );
        else if ( instance instanceof SignalEvent ) return SignalEvent_extent.remove( (SignalEvent)instance );
        else if ( instance instanceof SignalInvocation ) return SignalInvocation_extent.remove( (SignalInvocation)instance );
        else if ( instance instanceof SignalMessage ) return SignalMessage_extent.remove( (SignalMessage)instance );
        else if ( instance instanceof SimpleAssociation ) return SimpleAssociation_extent.remove( (SimpleAssociation)instance );
        else if ( instance instanceof Stack ) return Stack_extent.remove( (Stack)instance );
        else if ( instance instanceof StackFrame ) return StackFrame_extent.remove( (StackFrame)instance );
        else if ( instance instanceof State ) return State_extent.remove( (State)instance );
        else if ( instance instanceof StateActionBody ) return StateActionBody_extent.remove( (StateActionBody)instance );
        else if ( instance instanceof StateEventMatrixEntry ) return StateEventMatrixEntry_extent.remove( (StateEventMatrixEntry)instance );
        else if ( instance instanceof StateMachine ) return StateMachine_extent.remove( (StateMachine)instance );
        else if ( instance instanceof StateMachineEvent ) return StateMachineEvent_extent.remove( (StateMachineEvent)instance );
        else if ( instance instanceof StateMachineEventDataItem ) return StateMachineEventDataItem_extent.remove( (StateMachineEventDataItem)instance );
        else if ( instance instanceof StateMachineState ) return StateMachineState_extent.remove( (StateMachineState)instance );
        else if ( instance instanceof StateTransition ) return StateTransition_extent.remove( (StateTransition)instance );
        else if ( instance instanceof Statement ) return Statement_extent.remove( (Statement)instance );
        else if ( instance instanceof StructureMember ) return StructureMember_extent.remove( (StructureMember)instance );
        else if ( instance instanceof StructuredDataType ) return StructuredDataType_extent.remove( (StructuredDataType)instance );
        else if ( instance instanceof SubtypeSupertypeAssociation ) return SubtypeSupertypeAssociation_extent.remove( (SubtypeSupertypeAssociation)instance );
        else if ( instance instanceof SymbolicConstant ) return SymbolicConstant_extent.remove( (SymbolicConstant)instance );
        else if ( instance instanceof SymbolicConstantValue ) return SymbolicConstantValue_extent.remove( (SymbolicConstantValue)instance );
        else if ( instance instanceof SynchronousMessage ) return SynchronousMessage_extent.remove( (SynchronousMessage)instance );
        else if ( instance instanceof SystemModel ) return SystemModel_extent.remove( (SystemModel)instance );
        else if ( instance instanceof Terminator ) return Terminator_extent.remove( (Terminator)instance );
        else if ( instance instanceof TerminatorService ) return TerminatorService_extent.remove( (TerminatorService)instance );
        else if ( instance instanceof TerminatorServiceParameter ) return TerminatorServiceParameter_extent.remove( (TerminatorServiceParameter)instance );
        else if ( instance instanceof TerminatorServiceSequence ) return TerminatorServiceSequence_extent.remove( (TerminatorServiceSequence)instance );
        else if ( instance instanceof TimeSpan ) return TimeSpan_extent.remove( (TimeSpan)instance );
        else if ( instance instanceof Timer ) return Timer_extent.remove( (Timer)instance );
        else if ( instance instanceof TimingMark ) return TimingMark_extent.remove( (TimingMark)instance );
        else if ( instance instanceof TransientValueReference ) return TransientValueReference_extent.remove( (TransientValueReference)instance );
        else if ( instance instanceof TransientVar ) return TransientVar_extent.remove( (TransientVar)instance );
        else if ( instance instanceof Transition ) return Transition_extent.remove( (Transition)instance );
        else if ( instance instanceof TransitionActionBody ) return TransitionActionBody_extent.remove( (TransitionActionBody)instance );
        else if ( instance instanceof TransitionActionHome ) return TransitionActionHome_extent.remove( (TransitionActionHome)instance );
        else if ( instance instanceof TransitionTableCell ) return TransitionTableCell_extent.remove( (TransitionTableCell)instance );
        else if ( instance instanceof TransitionTableRow ) return TransitionTableRow_extent.remove( (TransitionTableRow)instance );
        else if ( instance instanceof Type ) return Type_extent.remove( (Type)instance );
        else if ( instance instanceof TypeImport ) return TypeImport_extent.remove( (TypeImport)instance );
        else if ( instance instanceof TypeImportReference ) return TypeImportReference_extent.remove( (TypeImportReference)instance );
        else if ( instance instanceof TypeReference ) return TypeReference_extent.remove( (TypeReference)instance );
        else if ( instance instanceof UnaryOperation ) return UnaryOperation_extent.remove( (UnaryOperation)instance );
        else if ( instance instanceof Unrelate ) return Unrelate_extent.remove( (Unrelate)instance );
        else if ( instance instanceof UnrelateSmt ) return UnrelateSmt_extent.remove( (UnrelateSmt)instance );
        else if ( instance instanceof UnrelateUsing ) return UnrelateUsing_extent.remove( (UnrelateUsing)instance );
        else if ( instance instanceof UnresolvedType ) return UnresolvedType_extent.remove( (UnresolvedType)instance );
        else if ( instance instanceof UseCaseAssociation ) return UseCaseAssociation_extent.remove( (UseCaseAssociation)instance );
        else if ( instance instanceof UseCaseParticipant ) return UseCaseParticipant_extent.remove( (UseCaseParticipant)instance );
        else if ( instance instanceof UserDataType ) return UserDataType_extent.remove( (UserDataType)instance );
        else if ( instance instanceof UserDefinedType ) return UserDefinedType_extent.remove( (UserDefinedType)instance );
        else if ( instance instanceof Utility ) return Utility_extent.remove( (Utility)instance );
        else if ( instance instanceof UtilityFunction ) return UtilityFunction_extent.remove( (UtilityFunction)instance );
        else if ( instance instanceof UtilityReference ) return UtilityReference_extent.remove( (UtilityReference)instance );
        else if ( instance instanceof V_AER ) return V_AER_extent.remove( (V_AER)instance );
        else if ( instance instanceof V_BIN ) return V_BIN_extent.remove( (V_BIN)instance );
        else if ( instance instanceof V_INS ) return V_INS_extent.remove( (V_INS)instance );
        else if ( instance instanceof V_PAR ) return V_PAR_extent.remove( (V_PAR)instance );
        else if ( instance instanceof V_UNY ) return V_UNY_extent.remove( (V_UNY)instance );
        else if ( instance instanceof V_VAR ) return V_VAR_extent.remove( (V_VAR)instance );
        else if ( instance instanceof Value ) return Value_extent.remove( (Value)instance );
        else if ( instance instanceof ValueInStackFrame ) return ValueInStackFrame_extent.remove( (ValueInStackFrame)instance );
        else if ( instance instanceof Variable ) return Variable_extent.remove( (Variable)instance );
        else if ( instance instanceof VariableInScope ) return VariableInScope_extent.remove( (VariableInScope)instance );
        else if ( instance instanceof VariableLocation ) return VariableLocation_extent.remove( (VariableLocation)instance );
        else if ( instance instanceof VariableReference ) return VariableReference_extent.remove( (VariableReference)instance );
        else if ( instance instanceof Where ) return Where_extent.remove( (Where)instance );
        else if ( instance instanceof WhileSmt ) return WhileSmt_extent.remove( (WhileSmt)instance );
        else if ( instance instanceof WhileStmt ) return WhileStmt_extent.remove( (WhileStmt)instance );
        return false;
    }

    @Override
    public Core context() {
        return this;
    }

    @Override
    public Class getClassByKeyLetters(String keyLetters) {
        return classDirectory.get(keyLetters);
    }

}