From 41d7fb195999d4d43a84f84d624e98d73262c409 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Wed, 14 Aug 2024 22:42:37 -0400 Subject: [PATCH] move some UI-specific stuff from MethodsModule to UserInterfaceModule --- .../src/lib/Mocha.Core/KnownInstanceGuids.cs | 6 +- .../lib/Mocha.Core/KnownRelationshipGuids.cs | 1 + .../Mini/Modules/MethodsModule.cs | 34 +++-------- .../Mini/Modules/UserInterfaceModule.cs | 60 +++++++++++++++++++ .../src/lib/Mocha.Core/OmsMethodBuilder.cs | 12 +++- 5 files changed, 83 insertions(+), 30 deletions(-) create mode 100644 mocha-dotnet/src/lib/Mocha.Core/OmsImplementations/Mini/Modules/UserInterfaceModule.cs diff --git a/mocha-dotnet/src/lib/Mocha.Core/KnownInstanceGuids.cs b/mocha-dotnet/src/lib/Mocha.Core/KnownInstanceGuids.cs index f58bbfb..66ffd03 100755 --- a/mocha-dotnet/src/lib/Mocha.Core/KnownInstanceGuids.cs +++ b/mocha-dotnet/src/lib/Mocha.Core/KnownInstanceGuids.cs @@ -190,8 +190,10 @@ namespace Mocha.Core public static class GetRelationship { public static Guid Instance__get__Parent_Class { get; } = new Guid("{bac8c59f-8994-41e8-b0c0-659ec8efc4e2}"); - // public static Guid Method__get__Parent_Class__HACK { get; } = new Guid("{89034a1c-50e5-47a1-abb8-076ece5343a8}"); - } + + public static Guid Instance__get__Parent_Class__for__Method_Binding__HACK { get; set; } + // public static Guid Method__get__Parent_Class__HACK { get; } = new Guid("{89034a1c-50e5-47a1-abb8-076ece5343a8}"); + } public static class ConditionalSelectAttribute { public static Guid Method__get__Method_Abbreviation { get; } = new Guid("{f0c64709-385d-481b-8f58-83e507fb261c}"); diff --git a/mocha-dotnet/src/lib/Mocha.Core/KnownRelationshipGuids.cs b/mocha-dotnet/src/lib/Mocha.Core/KnownRelationshipGuids.cs index 03c1146..d8e14c1 100755 --- a/mocha-dotnet/src/lib/Mocha.Core/KnownRelationshipGuids.cs +++ b/mocha-dotnet/src/lib/Mocha.Core/KnownRelationshipGuids.cs @@ -297,6 +297,7 @@ namespace Mocha.Core public static Guid Instance__for__Element_Content { get; } = new Guid("{c3959f84-248d-4ede-a3f2-f262917c7b56}"); public static Guid Element_Content__has__Element_Content_Display_Option { get; } = new Guid("{f070dfa7-6260-4488-a779-fae291903f2d}"); + public static Guid Element_Content_Display_Option__for__Element_Content { get; } = new Guid("{12fe7923-b3d2-4152-96c7-a901410b3466}"); public static Guid Element_Content__has__Parameter_Assignment { get; } = new Guid("{51214ef0-458a-44fa-8b9d-f3d9d2309388}"); public static Guid Parameter__assigned_from__Element_Content { get; } = new Guid("{dcef180b-a2ca-4d87-bb05-b946c319b562}"); diff --git a/mocha-dotnet/src/lib/Mocha.Core/OmsImplementations/Mini/Modules/MethodsModule.cs b/mocha-dotnet/src/lib/Mocha.Core/OmsImplementations/Mini/Modules/MethodsModule.cs index 4243539..2a3194f 100644 --- a/mocha-dotnet/src/lib/Mocha.Core/OmsImplementations/Mini/Modules/MethodsModule.cs +++ b/mocha-dotnet/src/lib/Mocha.Core/OmsImplementations/Mini/Modules/MethodsModule.cs @@ -32,11 +32,11 @@ public class MethodsModule : MiniOmsModule private InstanceHandle c_WorkData, c_OMS; private InstanceHandle c_ParameterAssignment, c_Method, c_MethodBinding; private InstanceHandle a_Name, a_Order, a_Singular, a_Verb, a_Static, a_UseAnyCondition, a_Value; - private InstanceHandle c_ReturnAttributeMethodBinding, c_ReturnInstanceSetMethodBinding, c_ReturnElementMethodBinding, c_BuildResponseMethodBinding; + private InstanceHandle c_ReturnAttributeMethodBinding, c_ReturnInstanceSetMethodBinding, c_ReturnElementMethodBinding; private InstanceHandle c_CommonText, c_CommonBoolean, c_CommonNumeric, c_CommonDate, c_CommonInstanceSet; private InstanceHandle c_ConditionGroup; - private InstanceHandle c_BuildAttributeMethod, c_GetAttributeMethod, c_GetSpecifiedInstancesMethod, c_GetAttributeBySystemRoutineMethod, c_AssignAttributeMethod, c_GetRelationshipMethod, c_GetReferencedAttributeMethod, c_SelectFromInstanceSetMethod, c_ConditionalSelectFromInstanceSetCase, c_ConditionalSelectFromInstanceSetMethod, c_ConditionalSelectAttributeMethod, c_ConditionalSelectAttributeCase, c_EvaluateBooleanExpressionMethod, c_BuildUIResponseMethod, c_ControlTransactionMethod; - private InstanceHandle c_ExecutableReturningAttribute, c_ExecutableReturningInstanceSet, c_ExecutableReturningElement, c_ExecutableReturningWorkData; + private InstanceHandle c_BuildAttributeMethod, c_GetAttributeMethod, c_GetSpecifiedInstancesMethod, c_GetAttributeBySystemRoutineMethod, c_AssignAttributeMethod, c_GetRelationshipMethod, c_GetReferencedAttributeMethod, c_SelectFromInstanceSetMethod, c_ConditionalSelectFromInstanceSetCase, c_ConditionalSelectFromInstanceSetMethod, c_ConditionalSelectAttributeMethod, c_ConditionalSelectAttributeCase, c_EvaluateBooleanExpressionMethod; + private InstanceHandle c_ExecutableReturningAttribute, c_ExecutableReturningInstanceSet, c_ExecutableReturningWorkData; private InstanceHandle c_AccessModifier, i_AccessModifier_Private, i_AccessModifier_Protected, i_AccessModifier_Public, i_AccessModifier_RootA2; private InstanceHandle c_SystemRoutine, c_SystemAttributeRoutine, c_SystemInstanceSetRoutine; private InstanceHandle c_AccumulationFunction, c_SelectionFunction, c_SetFunction; @@ -44,14 +44,10 @@ public class MethodsModule : MiniOmsModule protected override void BuildInternal(Oms oms) { - c_Element = oms.CreateClass("Element", KnownInstanceGuids.Classes.Element); - c_ElementContent = oms.CreateClass("Element Content", KnownInstanceGuids.Classes.ElementContent); - oms.CreateRelationship(c_Element, "has", c_ElementContent, KnownRelationshipGuids.Element__has__Element_Content, false, "for", KnownRelationshipGuids.Element_Content__for__Element); - oms.CreateRelationship(c_ElementContent, "has", c_Instance, KnownRelationshipGuids.Element_Content__has__Instance, true, "has", KnownRelationshipGuids.Instance__for__Element_Content); - + a_Name = oms.GetInstance(KnownAttributeGuids.Text.Name); + c_ExecutableReturningAttribute = oms.CreateClass("Executable returning Attribute", KnownInstanceGuids.Classes.ExecutableReturningAttribute); c_ExecutableReturningInstanceSet = oms.CreateClass("Executable returning Instance Set", KnownInstanceGuids.Classes.ExecutableReturningInstanceSet); - c_ExecutableReturningElement = oms.CreateClass("Executable returning Element", KnownInstanceGuids.Classes.ExecutableReturningElement); c_ExecutableReturningWorkData = oms.CreateClass("Executable returning Work Data", KnownInstanceGuids.Classes.ExecutableReturningWorkData); oms.AddSuperClass(c_Attribute, c_ExecutableReturningAttribute); @@ -75,9 +71,6 @@ public class MethodsModule : MiniOmsModule c_ReturnElementMethodBinding = oms.CreateClass("Return Element Method Binding", KnownInstanceGuids.Classes.ReturnElementMethodBinding); oms.AddSuperClass(c_ReturnElementMethodBinding, c_MethodBinding); - c_BuildResponseMethodBinding = oms.CreateClass("Build Response Method Binding", KnownInstanceGuids.Classes.BuildResponseMethodBinding); - oms.AddSuperClass(c_BuildResponseMethodBinding, c_MethodBinding); - // c_ReturnWorkDataMethodBinding = oms.CreateClass("Return Work Data Method Binding", KnownInstanceGuids.Classes.ReturnWorkDataMethodBinding); c_AccumulationFunction = oms.CreateEnumeration(KnownInstanceGuids.Classes.AccumulationFunction, new Guid[] @@ -91,7 +84,6 @@ public class MethodsModule : MiniOmsModule KnownInstanceGuids.SelectionFunctions.Minimum }); - a_Name = oms.GetInstance(KnownAttributeGuids.Text.Name); a_Order = oms.GetInstance(KnownAttributeGuids.Text.Order); a_Verb = oms.CreateInstanceOf(c_TextAttribute, KnownAttributeGuids.Text.Verb); a_Static = oms.CreateInstanceOf(c_BooleanAttribute, KnownAttributeGuids.Boolean.Static); @@ -206,15 +198,6 @@ public class MethodsModule : MiniOmsModule oms.CreateRelationship(c_ConditionalSelectAttributeMethod, "has", c_ConditionalSelectAttributeCase, KnownRelationshipGuids.Conditional_Select_Attribute_Method__has__Conditional_Select_Attribute_Case, false, "for", KnownRelationshipGuids.Conditional_Select_Attribute_Case__for__Conditional_Select_Attribute_Method); oms.AddSuperClass(c_ConditionalSelectAttributeMethod, c_Method); - c_BuildUIResponseMethod = oms.CreateClass("BUIR - Build UI Response Method", KnownInstanceGuids.MethodClasses.BuildUIResponseMethod); - oms.CreateRelationship(c_BuildUIResponseMethod, "uses", c_ExecutableReturningElement, KnownRelationshipGuids.Build_UI_Response_Method__uses__Executable_returning_Element, true, "used by", KnownRelationshipGuids.Executable_returning_Element__used_by__Build_UI_Response_Method); - oms.AddSuperClass(c_BuildUIResponseMethod, c_Method); - - c_ControlTransactionMethod = oms.CreateClass("CT - Control Transaction Method", KnownInstanceGuids.MethodClasses.ControlTransactionMethod); - oms.CreateRelationship(c_ControlTransactionMethod, "processes", c_Element, KnownRelationshipGuids.Control_Transaction_Method__processes__Element, true, "processed by", KnownRelationshipGuids.Element__processed_by__Control_Transaction_Method); - oms.CreateRelationship(c_ControlTransactionMethod, "uses", c_BuildResponseMethodBinding, KnownRelationshipGuids.Control_Transaction_Method__uses__Build_Response_Method_Binding, true, "used by", KnownRelationshipGuids.Build_Response_Method_Binding__used_by__Control_Transaction_Method); - oms.AddSuperClass(c_ControlTransactionMethod, c_Method); - InstanceHandle c_BooleanOperator = oms.CreateClass("Boolean Operator", KnownInstanceGuids.Classes.BooleanOperator); InstanceHandle c_RelationalOperator = oms.CreateClass("Relational Operator", KnownInstanceGuids.Classes.RelationalOperator); @@ -298,12 +281,8 @@ public class MethodsModule : MiniOmsModule BuildAttributeMethod Method__get__GR_Method_Suffix = mb.CreateBuildAttributeMethod(c_Method, "get", "GR Method Suffix", AccessModifier.Public, true, a_Value, "GR"); EvaluateBooleanExpressionMethod Method__is__Get_Relationship_Method = mb.CreateEvaluateBooleanExpressionMethod(c_Method, "is", "GR", AccessModifier.Public, false, oms.GetInstance(KnownAttributeGuids.Boolean.MethodIsOfTypeSpecified), Instance__get__Parent_Class_rsmb.Handle, RelationalOperator.InSelectionList, oms.GetInstance(KnownInstanceGuids.MethodClasses.GetRelationshipMethod)); - BuildAttributeMethod Method__get__CT_Method_Suffix = mb.CreateBuildAttributeMethod(c_Method, "get", "CT Method Suffix", AccessModifier.Public, true, a_Value, "CT"); - EvaluateBooleanExpressionMethod Method__is__CT = mb.CreateEvaluateBooleanExpressionMethod(c_Method, "is", "CT", AccessModifier.Public, false, oms.GetInstance(KnownAttributeGuids.Boolean.MethodIsOfTypeSpecified), Instance__get__Parent_Class_rsmb.Handle, RelationalOperator.InSelectionList, oms.GetInstance(KnownInstanceGuids.MethodClasses.ControlTransactionMethod)); - mb.CreateConditionalSelectAttributeMethod(c_Method, "get", "Method Abbreviation", AccessModifier.Public, false, KnownInstanceGuids.Methods.ConditionalSelectAttribute.Method__get__Method_Abbreviation, a_Value, new ConditionalSelectAttributeCase[] { - new ConditionalSelectAttributeCase(new IExecutableReturningAttribute[] { Method__is__CT.CreateMethodBinding(oms) }, null, false, Method__get__CT_Method_Suffix.CreateMethodBinding(oms)), new ConditionalSelectAttributeCase(new IExecutableReturningAttribute[] { Method__is__Get_Attribute_by_System_Routine_Method.CreateMethodBinding(oms) }, null, false, Method__get__GAS_Method_Suffix.CreateMethodBinding(oms)), new ConditionalSelectAttributeCase(new IExecutableReturningAttribute[] { Method__is__Get_Relationship_Method.CreateMethodBinding(oms) }, null, false, Method__get__GR_Method_Suffix.CreateMethodBinding(oms)), new ConditionalSelectAttributeCase(new IExecutableReturningAttribute[] { Method__is__Conditional_Select_Attribute_Method.CreateMethodBinding(oms) }, null, false, Method__get__SAC_Method_Suffix.CreateMethodBinding(oms)) @@ -319,6 +298,7 @@ public class MethodsModule : MiniOmsModule { new KeyValuePair(c_Instance, c_MethodBinding) }); + KnownInstanceGuids.Methods.GetRelationship.Instance__get__Parent_Class__for__Method_Binding__HACK = oms.GetGlobalIdentifier(Instance__get__Parent_Class_rsmb.Handle); // RAMB BuildAttributeMethod Method_Binding__get__RAMB_Method_Binding_Suffix = mb.CreateBuildAttributeMethod(c_MethodBinding, "get", "RAMB Method Suffix", AccessModifier.Public, true, a_Value, "ramb"); @@ -334,7 +314,7 @@ public class MethodsModule : MiniOmsModule EvaluateBooleanExpressionMethod Method_Binding__is__Return_Instance_Set_Method_Binding = mb.CreateEvaluateBooleanExpressionMethod(c_MethodBinding, "is", "RSMB", AccessModifier.Public, false, oms.GetInstance(KnownAttributeGuids.Boolean.MethodIsOfTypeSpecified), Instance__get__Parent_Class_rsmb.Handle, RelationalOperator.InSelectionList, oms.GetInstance(KnownInstanceGuids.Classes.ReturnInstanceSetMethodBinding)); ReturnAttributeMethodBinding Method_Binding__is__Return_Instance_Set_Method_Binding_ramb = Method_Binding__is__Return_Instance_Set_Method_Binding.CreateMethodBinding(oms); - mb.CreateConditionalSelectAttributeMethod(c_MethodBinding, "get", "Method Binding Abbreviation", AccessModifier.Public, false, KnownInstanceGuids.Methods.ConditionalSelectAttribute.Method_Binding__get__Method_Binding_Abbreviation, a_Value, new ConditionalSelectAttributeCase[] + ConditionalSelectAttributeMethod sac = mb.CreateConditionalSelectAttributeMethod(c_MethodBinding, "get", "Method Binding Abbreviation", AccessModifier.Public, false, KnownInstanceGuids.Methods.ConditionalSelectAttribute.Method_Binding__get__Method_Binding_Abbreviation, a_Value, new ConditionalSelectAttributeCase[] { new ConditionalSelectAttributeCase(new IExecutableReturningAttribute[] { Method_Binding__is__Return_Attribute_Method_Binding_ramb }, null, false, Method_Binding__get__RAMB_Method_Binding_Suffix_ramb), new ConditionalSelectAttributeCase(new IExecutableReturningAttribute[] { Method_Binding__is__Return_Instance_Set_Method_Binding_ramb }, null, false, Method_Binding__get__RSMB_Method_Binding_Suffix_ramb) diff --git a/mocha-dotnet/src/lib/Mocha.Core/OmsImplementations/Mini/Modules/UserInterfaceModule.cs b/mocha-dotnet/src/lib/Mocha.Core/OmsImplementations/Mini/Modules/UserInterfaceModule.cs new file mode 100644 index 0000000..07ed508 --- /dev/null +++ b/mocha-dotnet/src/lib/Mocha.Core/OmsImplementations/Mini/Modules/UserInterfaceModule.cs @@ -0,0 +1,60 @@ +using System; +using System.Reflection.Emit; +using Mocha.Core.Oop; +using Mocha.Core.Oop.Methods; + +namespace Mocha.Core.OmsImplementations.Mini.Modules; + +public class UserInterfaceModule : MiniOmsModule +{ + private InstanceHandle c_Element, c_ElementContent; + private InstanceHandle r_User__has__Role; + private InstanceHandle a_Name; + private InstanceHandle c_ExecutableReturningElement; + private InstanceHandle c_ElementContentDisplayOption; + private InstanceHandle c_Method, c_MethodBinding, c_BuildUIResponseMethod, c_ControlTransactionMethod; + private InstanceHandle c_BuildResponseMethodBinding; + + protected override void BuildInternal(Oms oms) + { + a_Name = oms.GetInstance(KnownAttributeGuids.Text.Name); + c_Method = oms.GetInstance(KnownInstanceGuids.Classes.Method); + c_MethodBinding = oms.GetInstance(KnownInstanceGuids.Classes.MethodBinding); + + c_Element = oms.CreateClass("Element", KnownInstanceGuids.Classes.Element); + oms.AddAttribute(c_Element, a_Name); + + c_ElementContent = oms.CreateClass("Element Content", KnownInstanceGuids.Classes.ElementContent); + + oms.CreateRelationship(c_Element, "has", c_ElementContent, KnownRelationshipGuids.Element__has__Element_Content, false, "for", KnownRelationshipGuids.Element_Content__for__Element); + oms.CreateRelationship(c_ElementContent, "has", c_Instance, KnownRelationshipGuids.Element_Content__has__Instance, true, "has", KnownRelationshipGuids.Instance__for__Element_Content); + oms.CreateRelationship(c_ElementContent, "has", c_ElementContentDisplayOption, KnownRelationshipGuids.Element_Content__has__Element_Content_Display_Option, false, "for", KnownRelationshipGuids.Element_Content_Display_Option__for__Element_Content); + + c_ExecutableReturningElement = oms.CreateClass("Executable returning Element", KnownInstanceGuids.Classes.ExecutableReturningElement); + + c_BuildResponseMethodBinding = oms.CreateClass("Build Response Method Binding", KnownInstanceGuids.Classes.BuildResponseMethodBinding); + oms.AddSuperClass(c_BuildResponseMethodBinding, c_MethodBinding); + + c_BuildUIResponseMethod = oms.CreateClass("BUIR - Build UI Response Method", KnownInstanceGuids.MethodClasses.BuildUIResponseMethod); + oms.CreateRelationship(c_BuildUIResponseMethod, "uses", c_ExecutableReturningElement, KnownRelationshipGuids.Build_UI_Response_Method__uses__Executable_returning_Element, true, "used by", KnownRelationshipGuids.Executable_returning_Element__used_by__Build_UI_Response_Method); + oms.AddSuperClass(c_BuildUIResponseMethod, c_Method); + + c_ControlTransactionMethod = oms.CreateClass("CT - Control Transaction Method", KnownInstanceGuids.MethodClasses.ControlTransactionMethod); + oms.CreateRelationship(c_ControlTransactionMethod, "processes", c_Element, KnownRelationshipGuids.Control_Transaction_Method__processes__Element, true, "processed by", KnownRelationshipGuids.Element__processed_by__Control_Transaction_Method); + oms.CreateRelationship(c_ControlTransactionMethod, "uses", c_BuildResponseMethodBinding, KnownRelationshipGuids.Control_Transaction_Method__uses__Build_Response_Method_Binding, true, "used by", KnownRelationshipGuids.Build_Response_Method_Binding__used_by__Control_Transaction_Method); + oms.AddSuperClass(c_ControlTransactionMethod, c_Method); + + InstanceHandle i_Method__get__Method_Abbreviation = oms.GetInstance(KnownInstanceGuids.Methods.ConditionalSelectAttribute.Method__get__Method_Abbreviation); + + OmsMethodBuilder mb = new OmsMethodBuilder(oms); + + InstanceHandle Method_Binding__get__Method_Binding_Abbreviation = oms.GetInstance(KnownInstanceGuids.Methods.ConditionalSelectAttribute.Method_Binding__get__Method_Binding_Abbreviation); + InstanceHandle a_Value = oms.GetInstance(KnownAttributeGuids.Text.Value); + InstanceHandle Instance__get__Parent_Class_rsmb = oms.GetInstance(KnownInstanceGuids.Methods.GetRelationship.Instance__get__Parent_Class__for__Method_Binding__HACK); + BuildAttributeMethod Method__get__CT_Method_Suffix = mb.CreateBuildAttributeMethod(c_Method, "get", "CT Method Suffix", AccessModifier.Public, true, a_Value, "CT"); + EvaluateBooleanExpressionMethod Method__is__CT = mb.CreateEvaluateBooleanExpressionMethod(c_Method, "is", "CT", AccessModifier.Public, false, oms.GetInstance(KnownAttributeGuids.Boolean.MethodIsOfTypeSpecified), Instance__get__Parent_Class_rsmb, RelationalOperator.InSelectionList, oms.GetInstance(KnownInstanceGuids.MethodClasses.ControlTransactionMethod)); + + ConditionalSelectAttributeCase i_CT_Case = new ConditionalSelectAttributeCase(new IExecutableReturningAttribute[] { Method__is__CT.CreateMethodBinding(oms) }, null, false, Method__get__CT_Method_Suffix.CreateMethodBinding(oms)); + mb.AddConditionalSelectAttributeCase(new ConditionalSelectAttributeMethod(Method_Binding__get__Method_Binding_Abbreviation), i_CT_Case); + } +} \ No newline at end of file diff --git a/mocha-dotnet/src/lib/Mocha.Core/OmsMethodBuilder.cs b/mocha-dotnet/src/lib/Mocha.Core/OmsMethodBuilder.cs index 27cb583..b29300d 100644 --- a/mocha-dotnet/src/lib/Mocha.Core/OmsMethodBuilder.cs +++ b/mocha-dotnet/src/lib/Mocha.Core/OmsMethodBuilder.cs @@ -35,7 +35,6 @@ public class OmsMethodBuilder c_ReturnAttributeMethodBinding = Oms.GetInstance(KnownInstanceGuids.Classes.ReturnAttributeMethodBinding); c_ReturnInstanceSetMethodBinding = Oms.GetInstance(KnownInstanceGuids.Classes.ReturnInstanceSetMethodBinding); c_ReturnElementMethodBinding = Oms.GetInstance(KnownInstanceGuids.Classes.ReturnElementMethodBinding); - c_BuildResponseMethodBinding = oms.GetInstance(KnownInstanceGuids.Classes.BuildResponseMethodBinding); } public ReturnAttributeMethodBinding CreateReturnAttributeMethodBinding(MethodReturningAttribute method) @@ -58,6 +57,11 @@ public class OmsMethodBuilder } public BuildResponseMethodBinding CreateBuildResponseMethodBinding(MethodBuildingResponse method) { + if (c_BuildResponseMethodBinding == InstanceHandle.Empty) + { + c_BuildResponseMethodBinding = Oms.GetInstance(KnownInstanceGuids.Classes.BuildResponseMethodBinding); + } + InstanceHandle methodBinding = Oms.CreateInstanceOf(c_BuildResponseMethodBinding); Oms.AssignRelationship(methodBinding, Oms.GetInstance(KnownRelationshipGuids.Method_Binding__executes__Method), method.Handle); return new BuildResponseMethodBinding(methodBinding); @@ -322,4 +326,10 @@ public class OmsMethodBuilder Oms.AssignRelationship(method, r_Control_Transaction_Method__uses__Build_Response_Method_Binding, usesBuildResponseMethodBinding.Handle); return new ControlTransactionMethod(method); } + + public void AddConditionalSelectAttributeCase(ConditionalSelectAttributeMethod method, ConditionalSelectAttributeCase cas) + { + InstanceHandle ihCase = CreateConditionalSelectAttributeCase(cas); + Oms.AssignRelationship(method.Handle, Oms.GetInstance(KnownRelationshipGuids.Conditional_Select_Attribute_Method__has__Conditional_Select_Attribute_Case), ihCase); + } } \ No newline at end of file