refactor MethodImplementations as subclass of ClassImplementation

This commit is contained in:
Michael Becker 2025-10-21 11:26:37 -04:00
parent 6e99d815eb
commit 9eebbef630
24 changed files with 24 additions and 26 deletions

View File

@ -17,10 +17,8 @@
namespace Mocha.Core; namespace Mocha.Core;
public abstract class MethodImplementation public abstract class MethodImplementation : ClassImplementation
{ {
public abstract Guid MethodClassGuid { get; }
protected abstract InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method); protected abstract InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method);
public InstanceHandle Execute(Oms oms, OmsContext context, InstanceHandle method) public InstanceHandle Execute(Oms oms, OmsContext context, InstanceHandle method)
{ {

View File

@ -19,7 +19,7 @@ namespace Mocha.Core.MethodImplementations;
public class AssignAttributeMethodImplementation : MethodImplementation public class AssignAttributeMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.AssignAttributeMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.AssignAttributeMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {
InstanceHandle irForClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class)); InstanceHandle irForClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class));

View File

@ -19,7 +19,7 @@ namespace Mocha.Core.MethodImplementations;
public class BuildAttributeMethodImplementation : MethodImplementation public class BuildAttributeMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.BuildAttributeMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.BuildAttributeMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {
InstanceHandle irForClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class)); InstanceHandle irForClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class));

View File

@ -6,7 +6,7 @@ namespace Mocha.Core.MethodImplementations;
public class BuildElementMethodImplementation : MethodImplementation public class BuildElementMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.BuildElementMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.BuildElementMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {

View File

@ -21,7 +21,7 @@ namespace Mocha.Core.MethodImplementations;
public class BuildUIResponseMethodImplementation : MethodImplementation public class BuildUIResponseMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.BuildUIResponseMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.BuildUIResponseMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {
InstanceHandle irForClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class)); InstanceHandle irForClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class));

View File

@ -23,7 +23,7 @@ namespace Mocha.Core.MethodImplementations;
public class CalculateNumericMethodImplementation : MethodImplementation public class CalculateNumericMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.CalculateNumericMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.CalculateNumericMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {
InstanceHandle irForClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class)); InstanceHandle irForClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class));

View File

@ -20,7 +20,7 @@ namespace Mocha.Core.MethodImplementations;
public class ConditionalSelectAttributeMethodImplementation : MethodImplementation public class ConditionalSelectAttributeMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.ConditionalSelectAttributeMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.ConditionalSelectAttributeMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {

View File

@ -20,7 +20,7 @@ namespace Mocha.Core.MethodImplementations;
public class ConditionalSelectFromInstanceSetMethodImplementation : MethodImplementation public class ConditionalSelectFromInstanceSetMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.ConditionalSelectFromInstanceSetMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.ConditionalSelectFromInstanceSetMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {

View File

@ -23,7 +23,7 @@ namespace Mocha.Core.MethodImplementations;
public class EvaluateBooleanExpressionMethodImplementation : MethodImplementation public class EvaluateBooleanExpressionMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.EvaluateBooleanExpressionMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.EvaluateBooleanExpressionMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {
InstanceHandle c_Class = oms.GetInstance(KnownInstanceGuids.Classes.Class); InstanceHandle c_Class = oms.GetInstance(KnownInstanceGuids.Classes.Class);

View File

@ -19,7 +19,7 @@ namespace Mocha.Core.MethodImplementations;
public class GetAttributeBySystemRoutineMethodImplementation : MethodImplementation public class GetAttributeBySystemRoutineMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.GetAttributeBySystemRoutineMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.GetAttributeBySystemRoutineMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {
InstanceHandle irForClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class)); InstanceHandle irForClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class));

View File

@ -19,7 +19,7 @@ namespace Mocha.Core.MethodImplementations;
public class GetAttributeMethodImplementation : MethodImplementation public class GetAttributeMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.GetAttributeMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.GetAttributeMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {
InstanceHandle irForClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class)); InstanceHandle irForClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class));

View File

@ -19,7 +19,7 @@ namespace Mocha.Core.MethodImplementations;
public class GetInstanceSetBySystemRoutineMethodImplementation : MethodImplementation public class GetInstanceSetBySystemRoutineMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.GetInstanceSetBySystemRoutineMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.GetInstanceSetBySystemRoutineMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {
InstanceHandle irForClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class)); InstanceHandle irForClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class));

View File

@ -20,7 +20,7 @@ namespace Mocha.Core.MethodImplementations;
public class GetInstancesMethodImplementation : MethodImplementation public class GetInstancesMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => new Guid("{0a379314-9d0f-432d-ae59-63194ab32dd3}"); public override Guid ClassGuid => new Guid("{0a379314-9d0f-432d-ae59-63194ab32dd3}");
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {

View File

@ -19,7 +19,7 @@ namespace Mocha.Core.MethodImplementations;
public class GetReferencedAttributeMethodImplementation : MethodImplementation public class GetReferencedAttributeMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.GetReferencedAttributeMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.GetReferencedAttributeMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {
Guid methodId = oms.GetGlobalIdentifier(method); Guid methodId = oms.GetGlobalIdentifier(method);

View File

@ -19,7 +19,7 @@ namespace Mocha.Core.MethodImplementations;
public class GetReferencedInstanceSetMethodImplementation : MethodImplementation public class GetReferencedInstanceSetMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.GetReferencedInstanceSetMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.GetReferencedInstanceSetMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {
Guid methodId = oms.GetGlobalIdentifier(method); Guid methodId = oms.GetGlobalIdentifier(method);

View File

@ -21,7 +21,7 @@ namespace Mocha.Core.MethodImplementations;
public class GetRelationshipMethodImplementation : MethodImplementation public class GetRelationshipMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.GetRelationshipMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.GetRelationshipMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {
Guid methodId = oms.GetGlobalIdentifier(method); Guid methodId = oms.GetGlobalIdentifier(method);

View File

@ -19,7 +19,7 @@ namespace Mocha.Core.MethodImplementations;
public class GetSpecifiedInstancesMethodImplementation : MethodImplementation public class GetSpecifiedInstancesMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.GetSpecifiedInstancesMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.GetSpecifiedInstancesMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)

View File

@ -19,7 +19,7 @@ namespace Mocha.Core.MethodImplementations;
public class InstanceOpMethodImplementation : MethodImplementation public class InstanceOpMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.InstanceOpMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.InstanceOpMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {
InstanceHandle op = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Op_Scope__invokes__Instance_Op)); InstanceHandle op = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Op_Scope__invokes__Instance_Op));

View File

@ -21,7 +21,7 @@ namespace Mocha.Core.MethodImplementations;
public class InvokeWebServiceMethodImplementation : MethodImplementation public class InvokeWebServiceMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.InvokeWebServiceMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.InvokeWebServiceMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)

View File

@ -19,7 +19,7 @@ namespace Mocha.Core.MethodImplementations;
public class ProcessRelatedUpdatesMethodImplementation : MethodImplementation public class ProcessRelatedUpdatesMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.ProcessRelatedUpdatesMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.ProcessRelatedUpdatesMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {
InstanceHandle forClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class)); InstanceHandle forClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class));

View File

@ -19,7 +19,7 @@ namespace Mocha.Core.MethodImplementations;
public class ProcessUpdatesMethodImplementation : MethodImplementation public class ProcessUpdatesMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.ProcessUpdatesMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.ProcessUpdatesMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {
InstanceHandle forClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class)); InstanceHandle forClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class));

View File

@ -30,7 +30,7 @@ public class SelectFromInstanceSetMethodImplementation : MethodImplementation
public T Data; public T Data;
} }
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.SelectFromInstanceSetMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.SelectFromInstanceSetMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {
//! FIXME ! //! FIXME !

View File

@ -19,7 +19,7 @@ namespace Mocha.Core.MethodImplementations;
public class UpdateBySystemRoutineMethodImplementation : MethodImplementation public class UpdateBySystemRoutineMethodImplementation : MethodImplementation
{ {
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.UpdateBySystemRoutineMethod; public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.UpdateBySystemRoutineMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method) protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{ {
InstanceHandle irForClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class)); InstanceHandle irForClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class));

View File

@ -55,7 +55,7 @@ public abstract class Oms
MethodImplementation[] methodImplementations = MBS.Core.Reflection.TypeLoader.GetAvailableTypes<MethodImplementation>(new System.Reflection.Assembly[] { Assembly.GetExecutingAssembly() }); MethodImplementation[] methodImplementations = MBS.Core.Reflection.TypeLoader.GetAvailableTypes<MethodImplementation>(new System.Reflection.Assembly[] { Assembly.GetExecutingAssembly() });
foreach (MethodImplementation impl in methodImplementations) foreach (MethodImplementation impl in methodImplementations)
{ {
RegisterMethodImplementation(impl.MethodClassGuid, impl); RegisterMethodImplementation(impl.ClassGuid, impl);
} }
AttributeImplementation[] attributeImplementations = MBS.Core.Reflection.TypeLoader.GetAvailableTypes<AttributeImplementation>(new System.Reflection.Assembly[] { Assembly.GetExecutingAssembly() }); AttributeImplementation[] attributeImplementations = MBS.Core.Reflection.TypeLoader.GetAvailableTypes<AttributeImplementation>(new System.Reflection.Assembly[] { Assembly.GetExecutingAssembly() });