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;
public abstract class MethodImplementation
public abstract class MethodImplementation : ClassImplementation
{
public abstract Guid MethodClassGuid { get; }
protected abstract InstanceHandle ExecuteInternal(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 override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.AssignAttributeMethod;
public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.AssignAttributeMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{
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 override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.BuildAttributeMethod;
public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.BuildAttributeMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{
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 override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.BuildElementMethod;
public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.BuildElementMethod;
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 override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.BuildUIResponseMethod;
public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.BuildUIResponseMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{
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 override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.CalculateNumericMethod;
public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.CalculateNumericMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{
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 override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.ConditionalSelectAttributeMethod;
public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.ConditionalSelectAttributeMethod;
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 override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.ConditionalSelectFromInstanceSetMethod;
public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.ConditionalSelectFromInstanceSetMethod;
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 override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.EvaluateBooleanExpressionMethod;
public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.EvaluateBooleanExpressionMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{
InstanceHandle c_Class = oms.GetInstance(KnownInstanceGuids.Classes.Class);

View File

@ -19,7 +19,7 @@ namespace Mocha.Core.MethodImplementations;
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)
{
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 override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.GetAttributeMethod;
public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.GetAttributeMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{
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 override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.GetInstanceSetBySystemRoutineMethod;
public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.GetInstanceSetBySystemRoutineMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{
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 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)
{

View File

@ -19,7 +19,7 @@ namespace Mocha.Core.MethodImplementations;
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)
{
Guid methodId = oms.GetGlobalIdentifier(method);

View File

@ -19,7 +19,7 @@ namespace Mocha.Core.MethodImplementations;
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)
{
Guid methodId = oms.GetGlobalIdentifier(method);

View File

@ -21,7 +21,7 @@ namespace Mocha.Core.MethodImplementations;
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)
{
Guid methodId = oms.GetGlobalIdentifier(method);

View File

@ -19,7 +19,7 @@ namespace Mocha.Core.MethodImplementations;
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)

View File

@ -19,7 +19,7 @@ namespace Mocha.Core.MethodImplementations;
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)
{
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 override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.InvokeWebServiceMethod;
public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.InvokeWebServiceMethod;
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 override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.ProcessRelatedUpdatesMethod;
public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.ProcessRelatedUpdatesMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{
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 override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.ProcessUpdatesMethod;
public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.ProcessUpdatesMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{
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 override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.SelectFromInstanceSetMethod;
public override Guid ClassGuid => KnownInstanceGuids.MethodClasses.SelectFromInstanceSetMethod;
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
{
//! FIXME !

View File

@ -19,7 +19,7 @@ namespace Mocha.Core.MethodImplementations;
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)
{
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() });
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() });