implement more strongly-typed bindings for Mocha instances
This commit is contained in:
parent
02cb89bd5b
commit
4c656d8d8b
@ -24,7 +24,6 @@ using MBS.Web.UI.WebControls;
|
||||
|
||||
using Mocha.Core;
|
||||
using Mocha.Core.OmsImplementations;
|
||||
using Mocha.Core.OmsImplementations.Mini;
|
||||
using Mocha.ServerApplication.HardcodedPages;
|
||||
|
||||
namespace Mocha.ServerApplication;
|
||||
|
||||
@ -20,7 +20,6 @@ using MBS.Core;
|
||||
using MBS.Web;
|
||||
using Mocha.Core;
|
||||
using Mocha.Core.OmsImplementations;
|
||||
using Mocha.Core.OmsImplementations.Mini;
|
||||
using Mocha.Core.Oop;
|
||||
using Mocha.Core.Oop.Methods;
|
||||
|
||||
@ -88,7 +87,7 @@ public class Program : MochaWebApplication
|
||||
InstanceHandle c_Application = oms.GetInstance(KnownInstanceGuids.Classes.Application);
|
||||
InstanceHandle i_Application = oms.CreateInstanceOf(c_Application, new Guid("{773f6c6e-6cef-4a04-b333-ac097c0ab705}"));
|
||||
|
||||
InstanceHandle c_Alerynn_Test_Class = oms.CreateClass("Alerynn Test Class", new Guid("{bb1b32ff-55fe-4de7-a0c4-2e0a9d8de63b}"));
|
||||
Class c_Alerynn_Test_Class = oms.CreateClass("Alerynn Test Class", new Guid("{bb1b32ff-55fe-4de7-a0c4-2e0a9d8de63b}"));
|
||||
InstanceHandle i_Alerynn_Test_Class = oms.CreateInstanceOf(c_Alerynn_Test_Class, new Guid("{d82182d5-451c-453f-9635-af07305b10ee}"));
|
||||
|
||||
InstanceHandle c_Tenant = oms.GetInstance(KnownInstanceGuids.Classes.Tenant);
|
||||
@ -116,7 +115,7 @@ public class Program : MochaWebApplication
|
||||
InstanceHandle a_Value = oms.GetInstance(KnownAttributeGuids.Text.Value);
|
||||
|
||||
OmsMethodBuilder mb = new OmsMethodBuilder(oms);
|
||||
BuildAttributeMethod ba = mb.CreateBuildAttributeMethod(c_Alerynn_Test_Class, "get", "Welcome Message", AccessModifier.Public, true, a_Value, "This is the Super User tenant");
|
||||
BuildAttributeMethod ba = mb.CreateBuildAttributeMethod(c_Alerynn_Test_Class.GetHandle(), "get", "Welcome Message", AccessModifier.Public, true, a_Value, "This is the Super User tenant");
|
||||
ReturnAttributeMethodBinding ba_ramb = ba.CreateMethodBinding(oms);
|
||||
|
||||
|
||||
@ -142,7 +141,7 @@ public class Program : MochaWebApplication
|
||||
InstanceHandle ec_AlerynnWelcome1 = oms.CreateInstanceOf(c_DerivedElementContent);
|
||||
oms.AssignRelationship(ec_AlerynnWelcome1, r_Element_Content__has__Instance, a_AlerynnWelcome1);
|
||||
oms.AssignRelationship(el_AlerynnWelcome1, r_Element__has__Element_Content, ec_AlerynnWelcome1);
|
||||
oms.AssignRelationship(ec_AlerynnWelcome1, oms.GetInstance(KnownRelationshipGuids.Derived_Element_Content__update_with__Executable_returning_Work_Data), ba_ramb.Handle);
|
||||
oms.AssignRelationship(ec_AlerynnWelcome1, oms.GetInstance(KnownRelationshipGuids.Derived_Element_Content__update_with__Executable_returning_Work_Data), ba_ramb.GetHandle());
|
||||
oms.AssignRelationship(ec_AlerynnWelcome1, r_Derived_Element_Content__has__Derived_EC_Display_Option, new InstanceHandle[]
|
||||
{
|
||||
do_WideText,
|
||||
@ -169,7 +168,7 @@ public class Program : MochaWebApplication
|
||||
InstanceHandle r_Route__secured_to__Domain = oms.GetInstance(KnownRelationshipGuids.Route__secured_to__Domain);
|
||||
oms.AssignRelationship(route, r_Route__secured_to__Domain, [i_Domain_AuthenticatedUsers]);
|
||||
|
||||
oms.AssignRelationship(route, r_Route__processed_by__Control_Transaction_Method, ct.Handle);
|
||||
oms.AssignRelationship(route, r_Route__processed_by__Control_Transaction_Method, ct.GetHandle());
|
||||
|
||||
InstanceHandle r_Tenant__has_initiating__Route = oms.GetInstance(KnownRelationshipGuids.Tenant__has_initiating__Route);
|
||||
oms.AssignRelationship(i_Tenant, r_Tenant__has_initiating__Route, route);
|
||||
@ -201,7 +200,7 @@ public class Program : MochaWebApplication
|
||||
InstanceHandle c_Application = oms.GetInstance(KnownInstanceGuids.Classes.Application);
|
||||
InstanceHandle i_Application = oms.CreateInstanceOf(c_Application, new Guid("{32582607-1198-4e11-a283-b7f56e26f164}"));
|
||||
|
||||
InstanceHandle c_Alerynn_Test_Class = oms.CreateClass("Alerynn Test Class", new Guid("{bb1b32ff-55fe-4de7-a0c4-2e0a9d8de63b}"));
|
||||
Class c_Alerynn_Test_Class = oms.CreateClass("Alerynn Test Class", new Guid("{bb1b32ff-55fe-4de7-a0c4-2e0a9d8de63b}"));
|
||||
InstanceHandle i_Alerynn_Test_Class = oms.CreateInstanceOf(c_Alerynn_Test_Class, new Guid("{d82182d5-451c-453f-9635-af07305b10ee}"));
|
||||
|
||||
InstanceHandle c_Tenant = oms.GetInstance(KnownInstanceGuids.Classes.Tenant);
|
||||
@ -222,7 +221,7 @@ public class Program : MochaWebApplication
|
||||
InstanceHandle a_Value = oms.GetInstance(KnownAttributeGuids.Text.Value);
|
||||
|
||||
OmsMethodBuilder mb = new OmsMethodBuilder(oms);
|
||||
BuildAttributeMethod ba = mb.CreateBuildAttributeMethod(c_Alerynn_Test_Class, "get", "Welcome Message", AccessModifier.Public, true, a_Value, "Welcome to Alerynn: Infinite Universe!");
|
||||
BuildAttributeMethod ba = mb.CreateBuildAttributeMethod(c_Alerynn_Test_Class.GetHandle(), "get", "Welcome Message", AccessModifier.Public, true, a_Value, "Welcome to Alerynn: Infinite Universe!");
|
||||
ReturnAttributeMethodBinding ba_ramb = ba.CreateMethodBinding(oms);
|
||||
|
||||
|
||||
@ -256,7 +255,7 @@ public class Program : MochaWebApplication
|
||||
InstanceHandle ec_AlerynnWelcome1 = oms.CreateInstanceOf(c_DerivedElementContent);
|
||||
oms.AssignRelationship(ec_AlerynnWelcome1, r_Element_Content__has__Instance, a_AlerynnWelcome1);
|
||||
oms.AssignRelationship(el_AlerynnWelcome1, r_Element__has__Element_Content, ec_AlerynnWelcome1);
|
||||
oms.AssignRelationship(ec_AlerynnWelcome1, oms.GetInstance(KnownRelationshipGuids.Derived_Element_Content__update_with__Executable_returning_Work_Data), ba_ramb.Handle);
|
||||
oms.AssignRelationship(ec_AlerynnWelcome1, oms.GetInstance(KnownRelationshipGuids.Derived_Element_Content__update_with__Executable_returning_Work_Data), ba_ramb.GetHandle());
|
||||
oms.AssignRelationship(ec_AlerynnWelcome1, r_Derived_Element_Content__has__Derived_EC_Display_Option, new InstanceHandle[]
|
||||
{
|
||||
do_WideText,
|
||||
@ -283,7 +282,7 @@ public class Program : MochaWebApplication
|
||||
InstanceHandle r_Route__secured_to__Domain = oms.GetInstance(KnownRelationshipGuids.Route__secured_to__Domain);
|
||||
oms.AssignRelationship(route, r_Route__secured_to__Domain, [i_Domain_Anyone]);
|
||||
|
||||
oms.AssignRelationship(route, r_Route__processed_by__Control_Transaction_Method, ct.Handle);
|
||||
oms.AssignRelationship(route, r_Route__processed_by__Control_Transaction_Method, ct.GetHandle());
|
||||
|
||||
InstanceHandle r_Tenant__has_initiating__Route = oms.GetInstance(KnownRelationshipGuids.Tenant__has_initiating__Route);
|
||||
oms.AssignRelationship(i_Tenant, r_Tenant__has_initiating__Route, route);
|
||||
|
||||
@ -63,10 +63,10 @@ public class SelectFromInstanceSetMethodImplementation : MethodImplementation
|
||||
if (inst != null)
|
||||
{
|
||||
OrderableData od = new OrderableData();
|
||||
od.Data = inst.Handle;
|
||||
od.Data = inst.GetHandle();
|
||||
if (orderAttribute != InstanceHandle.Empty)
|
||||
{
|
||||
InstanceHandle ihWorkData = oms.Execute(context, orderAttribute, inst.Handle);
|
||||
InstanceHandle ihWorkData = oms.Execute(context, orderAttribute, inst.GetHandle());
|
||||
string order = context.GetWorkData<string>(ihWorkData);
|
||||
|
||||
od.Order = order;
|
||||
|
||||
@ -295,51 +295,58 @@ public abstract class Oms
|
||||
}
|
||||
|
||||
protected abstract InstanceKey GetInstanceKeyInternal(InstanceHandle instance);
|
||||
public InstanceKey GetInstanceKey(InstanceHandle instance)
|
||||
public InstanceKey GetInstanceKey(IInstanceReference instance)
|
||||
{
|
||||
if (instance.Equals(GetInstance(KnownInstanceGuids.Classes.Class)))
|
||||
{
|
||||
return new InstanceKey(1, 1);
|
||||
}
|
||||
if (IsDerivedInstance(instance))
|
||||
if (IsDerivedInstance(instance.GetHandle()))
|
||||
{
|
||||
InstanceHandle parent = GetParentClass(instance);
|
||||
InstanceKey ikParent = GetInstanceKeyInternal(parent);
|
||||
|
||||
InstanceKey ik = new InstanceKey(ikParent.InstanceIndex, -1);
|
||||
ik.SetDerivedData(this, instance, GetDerivedData(instance));
|
||||
ik.SetDerivedData(this, instance.GetHandle(), GetDerivedData(instance.GetHandle()));
|
||||
return ik;
|
||||
}
|
||||
return GetInstanceKeyInternal(instance);
|
||||
return GetInstanceKeyInternal(instance.GetHandle());
|
||||
}
|
||||
|
||||
protected abstract Guid GetGlobalIdentifierInternal(InstanceHandle instance);
|
||||
public Guid GetGlobalIdentifier(InstanceHandle instance)
|
||||
public Guid GetGlobalIdentifier(IInstanceReference wrapper)
|
||||
{
|
||||
return GetGlobalIdentifierInternal(instance);
|
||||
}
|
||||
public Guid GetGlobalIdentifier(InstanceWrapper wrapper)
|
||||
{
|
||||
return GetGlobalIdentifier(wrapper.Handle);
|
||||
return GetGlobalIdentifierInternal(wrapper.GetHandle());
|
||||
}
|
||||
|
||||
protected abstract void AssignRelationshipInternal(InstanceHandle source, InstanceHandle relationship, IEnumerable<InstanceHandle> targets, DateTime effectiveDate);
|
||||
public void AssignRelationship(InstanceHandle source, InstanceHandle relationship, IEnumerable<InstanceHandle> targets, DateTime effectiveDate)
|
||||
public void AssignRelationship(IInstanceReference source, InstanceHandle relationship, IEnumerable<InstanceHandle> targets, DateTime? effectiveDate = null)
|
||||
{
|
||||
ValidateConstraintsForRelationship(source, relationship, targets);
|
||||
AssignRelationshipInternal(source, relationship, targets, effectiveDate);
|
||||
ValidateConstraintsForRelationship(source.GetHandle(), relationship, targets);
|
||||
AssignRelationshipInternal(source.GetHandle(), relationship, targets, effectiveDate.GetValueOrDefault(DateTime.Now));
|
||||
}
|
||||
public void AssignRelationship(InstanceHandle source, InstanceHandle relationship, IEnumerable<InstanceHandle> targets)
|
||||
public void AssignRelationship(IInstanceReference source, Relationship relationship, IEnumerable<InstanceHandle> targets, DateTime? effectiveDate = null)
|
||||
{
|
||||
AssignRelationship(source, relationship, targets, DateTime.Now);
|
||||
ValidateConstraintsForRelationship(source.GetHandle(), relationship.GetHandle(), targets);
|
||||
AssignRelationshipInternal(source.GetHandle(), relationship.GetHandle(), targets, effectiveDate.GetValueOrDefault(DateTime.Now));
|
||||
}
|
||||
public void AssignRelationship(InstanceHandle source, InstanceHandle relationship, InstanceHandle target, DateTime effectiveDate)
|
||||
|
||||
public void AssignRelationship(IInstanceReference source, InstanceHandle relationship, IInstanceReference target, DateTime? effectiveDate = null)
|
||||
{
|
||||
AssignRelationship(source, relationship, new InstanceHandle[] { target.GetHandle() }, effectiveDate);
|
||||
}
|
||||
public void AssignRelationship(IInstanceReference source, Relationship relationship, IInstanceReference target, DateTime? effectiveDate = null)
|
||||
{
|
||||
AssignRelationship(source, relationship, new InstanceHandle[] { target.GetHandle() }, effectiveDate);
|
||||
}
|
||||
|
||||
public void AssignRelationship(IInstanceReference source, InstanceHandle relationship, InstanceHandle target, DateTime? effectiveDate = null)
|
||||
{
|
||||
AssignRelationship(source, relationship, new InstanceHandle[] { target }, effectiveDate);
|
||||
}
|
||||
public void AssignRelationship(InstanceHandle source, InstanceHandle relationship, InstanceHandle target)
|
||||
public void AssignRelationship(IInstanceReference source, Relationship relationship, InstanceHandle target, DateTime? effectiveDate = null)
|
||||
{
|
||||
AssignRelationship(source, relationship, new InstanceHandle[] { target }, DateTime.Now);
|
||||
AssignRelationship(source, relationship, new InstanceHandle[] { target }, effectiveDate);
|
||||
}
|
||||
|
||||
private void ValidateConstraintsForRelationship(InstanceHandle source, InstanceHandle relationship, IEnumerable<InstanceHandle> targets)
|
||||
@ -458,6 +465,7 @@ public abstract class Oms
|
||||
}
|
||||
else
|
||||
{
|
||||
// !FIXME! allow inherited parent classes
|
||||
throw new InvalidOperationException("cannot cast inst");
|
||||
}
|
||||
}
|
||||
@ -490,12 +498,17 @@ public abstract class Oms
|
||||
{
|
||||
return CreateInstanceInternal(globalIdentifier);
|
||||
}
|
||||
protected T? CreateInstance<T>(Guid globalIdentifier) where T : ConcreteInstanceWrapper
|
||||
{
|
||||
InstanceHandle ih = CreateInstance(globalIdentifier);
|
||||
return ConcreteInstanceWrapper.Wrap<T>(this, ih);
|
||||
}
|
||||
|
||||
public InstanceHandle CreateInstanceOf(InstanceHandle ir_class)
|
||||
public InstanceHandle CreateInstanceOf(IInstanceReference ir_class)
|
||||
{
|
||||
return CreateInstanceOf(ir_class, Guid.NewGuid());
|
||||
}
|
||||
public InstanceHandle CreateInstanceOf(InstanceHandle ir_class, Guid guid)
|
||||
public InstanceHandle CreateInstanceOf(IInstanceReference ir_class, Guid guid)
|
||||
{
|
||||
if (GetParentClass(ir_class) != GetInstance(KnownInstanceGuids.Classes.Class))
|
||||
{
|
||||
@ -503,14 +516,19 @@ public abstract class Oms
|
||||
}
|
||||
|
||||
InstanceHandle ir = CreateInstance(guid);
|
||||
SetParentClass(ir, ir_class);
|
||||
SetParentClass(ir, ir_class.GetHandle());
|
||||
|
||||
int ct = CountInstances(ir_class);
|
||||
InstanceKey pclass_key = GetInstanceKey(ir_class);
|
||||
int ct = CountInstances(ir_class.GetHandle());
|
||||
InstanceKey pclass_key = GetInstanceKey(ir_class.GetHandle());
|
||||
InstanceKey new_index = new InstanceKey(pclass_key.InstanceIndex, ct);
|
||||
SetInstanceKey(ir, new_index);
|
||||
return ir;
|
||||
}
|
||||
public T CreateInstanceOf<T>(IInstanceReference ir_class, Guid guid) where T : ConcreteInstanceWrapper
|
||||
{
|
||||
InstanceHandle ih = CreateInstanceOf(ir_class, guid);
|
||||
return ConcreteInstanceWrapper.Wrap<T>(this, ih);
|
||||
}
|
||||
|
||||
public InstanceHandle CreateFile(string name, string contentType, Stream stream)
|
||||
{
|
||||
@ -542,11 +560,15 @@ public abstract class Oms
|
||||
/// </summary>
|
||||
/// <param name="target"></param>
|
||||
/// <param name="instanceKey"></param>
|
||||
public void SetInstanceKey(InstanceHandle target, InstanceKey instanceKey)
|
||||
public void SetInstanceKey(IInstanceReference target, InstanceKey instanceKey)
|
||||
{
|
||||
SetInstanceKeyInternal(target, instanceKey);
|
||||
SetInstanceKeyInternal(target.GetHandle(), instanceKey);
|
||||
}
|
||||
|
||||
protected void SetParentClass(InstanceHandle ir, Class ir_parent)
|
||||
{
|
||||
SetParentClass(ir, ir_parent.GetHandle());
|
||||
}
|
||||
protected void SetParentClass(InstanceHandle ir, InstanceHandle ir_parent)
|
||||
{
|
||||
ClearRelationship(ir, GetInstance(KnownRelationshipGuids.Instance__for__Class));
|
||||
@ -566,10 +588,10 @@ public abstract class Oms
|
||||
return irs.Count();
|
||||
}
|
||||
|
||||
public InstanceHandle GetParentClass(InstanceHandle ir)
|
||||
public InstanceHandle GetParentClass(IInstanceReference ir)
|
||||
{
|
||||
InstanceHandle relInstance__for__Class = GetInstance(KnownRelationshipGuids.Instance__for__Class);
|
||||
IEnumerable<InstanceHandle> irs = GetRelatedInstances(ir, relInstance__for__Class);
|
||||
IEnumerable<InstanceHandle> irs = GetRelatedInstances(ir.GetHandle(), relInstance__for__Class);
|
||||
if (irs.Count() > 0)
|
||||
{
|
||||
return irs.First();
|
||||
@ -588,16 +610,16 @@ public abstract class Oms
|
||||
object? val = GetAttributeValueInternal(source, attribute, effectiveDate.GetValueOrDefault(DateTime.Now));
|
||||
return val;
|
||||
}
|
||||
public bool TryGetAttributeValue<T>(InstanceHandle source, InstanceHandle attribute, out T value)
|
||||
public bool TryGetAttributeValue<T>(IInstanceReference source, InstanceHandle attribute, out T value)
|
||||
{
|
||||
return TryGetAttributeValue<T>(source, attribute, null, out value);
|
||||
}
|
||||
public bool TryGetAttributeValue<T>(InstanceHandle source, InstanceHandle attribute, DateTime? effectiveDate, out T value)
|
||||
public bool TryGetAttributeValue<T>(IInstanceReference source, InstanceHandle attribute, DateTime? effectiveDate, out T value)
|
||||
{
|
||||
DateTime dt = DateTime.Now;
|
||||
// if (HasAttributeValueInternal(source, attribute, effectiveDate.GetValueOrDefault(dt)))
|
||||
{
|
||||
object? val = GetAttributeValueInternal(source, attribute, effectiveDate.GetValueOrDefault(dt));
|
||||
object? val = GetAttributeValueInternal(source.GetHandle(), attribute, effectiveDate.GetValueOrDefault(dt));
|
||||
if (val is T)
|
||||
{
|
||||
value = (T)val;
|
||||
@ -695,20 +717,21 @@ public abstract class Oms
|
||||
return defaultValue;
|
||||
}
|
||||
protected abstract void SetAttributeValueInternal(InstanceHandle source, InstanceHandle attribute, object value, DateTime effectiveDate);
|
||||
public void SetAttributeValue(InstanceHandle source, InstanceHandle attribute, object value, DateTime? effectiveDate = null)
|
||||
public void SetAttributeValue(IInstanceReference source, InstanceHandle attribute, object value, DateTime? effectiveDate = null)
|
||||
{
|
||||
ValidateConstraintsForAttribute(source, attribute, value);
|
||||
InstanceHandle sh = source.GetHandle();
|
||||
ValidateConstraintsForAttribute(sh, attribute, value);
|
||||
|
||||
if (IsDerivedInstance(source))
|
||||
if (IsDerivedInstance(sh))
|
||||
{
|
||||
if (!_derivedData.ContainsKey(source))
|
||||
if (!_derivedData.ContainsKey(sh))
|
||||
{
|
||||
_derivedData[source] = new Dictionary<InstanceHandle, object>();
|
||||
_derivedData[sh] = new Dictionary<InstanceHandle, object>();
|
||||
}
|
||||
_derivedData[source][attribute] = value;
|
||||
_derivedData[sh][attribute] = value;
|
||||
return;
|
||||
}
|
||||
SetAttributeValueInternal(source, attribute, value, effectiveDate.GetValueOrDefault(DateTime.Now));
|
||||
SetAttributeValueInternal(sh, attribute, value, effectiveDate.GetValueOrDefault(DateTime.Now));
|
||||
}
|
||||
|
||||
private void ValidateConstraintsForAttribute(InstanceHandle source, InstanceHandle attribute, object value)
|
||||
@ -895,16 +918,16 @@ public abstract class Oms
|
||||
}
|
||||
|
||||
|
||||
public InstanceHandle CreateRelationship(InstanceHandle sourceClass, string relationshipName, InstanceHandle destinationClass, Guid relationshipGuid, bool singular)
|
||||
public Relationship? CreateRelationship(IInstanceReference sourceClass, string relationshipName, IInstanceReference destinationClass, Guid relationshipGuid, bool singular)
|
||||
{
|
||||
return CreateRelationship(sourceClass, relationshipName, destinationClass, relationshipGuid, singular, null, Guid.Empty);
|
||||
}
|
||||
public InstanceHandle CreateRelationship(InstanceHandle sourceClass, string relationshipName, InstanceHandle destinationClass, Guid relationshipGuid, bool singular, string siblingRelationshipName, Guid siblingRelationshipGuid)
|
||||
public Relationship? CreateRelationship(IInstanceReference sourceClass, string relationshipName, IInstanceReference destinationClass, Guid relationshipGuid, bool singular, string siblingRelationshipName, Guid siblingRelationshipGuid)
|
||||
{
|
||||
InstanceHandle relationshipInstance = CreateRelationship(sourceClass, relationshipName, destinationClass, relationshipGuid, singular, siblingRelationshipName, siblingRelationshipGuid, out InstanceHandle siblingRelationshipInstance);
|
||||
Relationship? relationshipInstance = CreateRelationship(sourceClass, relationshipName, destinationClass, relationshipGuid, singular, siblingRelationshipName, siblingRelationshipGuid, out Relationship siblingRelationshipInstance);
|
||||
return relationshipInstance;
|
||||
}
|
||||
public InstanceHandle CreateRelationship(InstanceHandle sourceClass, string relationshipName, InstanceHandle destinationClass, Guid relationshipGuid, bool singular, string siblingRelationshipName, Guid siblingRelationshipGuid, out InstanceHandle siblingRelationshipInstance)
|
||||
public Relationship? CreateRelationship(IInstanceReference sourceClass, string relationshipName, IInstanceReference destinationClass, Guid relationshipGuid, bool singular, string siblingRelationshipName, Guid siblingRelationshipGuid, out Relationship siblingRelationshipInstance)
|
||||
{
|
||||
InstanceHandle c_Relationship = GetInstance(KnownInstanceGuids.Classes.Relationship);
|
||||
if (c_Relationship == InstanceHandle.Empty)
|
||||
@ -947,7 +970,7 @@ public abstract class Oms
|
||||
SetAttributeValue(irRelationship, a_Singular, singular);
|
||||
AssignRelationship(irRelationship, r_Relationship__has_destination__Class, destinationClass);
|
||||
|
||||
siblingRelationshipInstance = InstanceHandle.Empty;
|
||||
siblingRelationshipInstance = null;
|
||||
if (siblingRelationshipName != null)
|
||||
{
|
||||
if (siblingRelationshipGuid == Guid.Empty)
|
||||
@ -955,7 +978,7 @@ public abstract class Oms
|
||||
siblingRelationshipGuid = Guid.NewGuid();
|
||||
}
|
||||
|
||||
siblingRelationshipInstance = CreateInstanceOf(c_Relationship, siblingRelationshipGuid);
|
||||
siblingRelationshipInstance = CreateInstanceOf<Relationship>(c_Relationship, siblingRelationshipGuid);
|
||||
AssignRelationship(siblingRelationshipInstance, r_Relationship__has_source__Class, destinationClass);
|
||||
SetAttributeValue(siblingRelationshipInstance, a_RelationshipType, siblingRelationshipName);
|
||||
AssignRelationship(siblingRelationshipInstance, r_Relationship__has_destination__Class, sourceClass);
|
||||
@ -963,9 +986,17 @@ public abstract class Oms
|
||||
AssignRelationship(irRelationship, r_Relationship__has_sibling__Relationship, siblingRelationshipInstance);
|
||||
AssignRelationship(siblingRelationshipInstance, r_Relationship__has_sibling__Relationship, irRelationship);
|
||||
}
|
||||
return irRelationship;
|
||||
return ConcreteInstanceWrapper.Wrap<Relationship>(this, irRelationship);
|
||||
}
|
||||
|
||||
public T? GetRelatedInstance<T>(InstanceHandle source, Relationship relationship) where T : ConcreteInstanceWrapper
|
||||
{
|
||||
return ConcreteInstanceWrapper.Wrap<T>(this, GetRelatedInstance(source, relationship));
|
||||
}
|
||||
public InstanceHandle GetRelatedInstance(InstanceHandle source, Relationship relationship)
|
||||
{
|
||||
return GetRelatedInstance(source, relationship.GetHandle());
|
||||
}
|
||||
public InstanceHandle GetRelatedInstance(InstanceHandle source, InstanceHandle relationship)
|
||||
{
|
||||
IEnumerable<InstanceHandle> irs = GetRelatedInstances(source, relationship);
|
||||
@ -982,7 +1013,7 @@ public abstract class Oms
|
||||
/// </summary>
|
||||
/// <param name="name">The name of the new Class.</param>
|
||||
/// <returns></returns>
|
||||
public InstanceHandle CreateClass(string name)
|
||||
public Class CreateClass(string name)
|
||||
{
|
||||
return CreateClass(name, Guid.NewGuid());
|
||||
}
|
||||
@ -992,20 +1023,20 @@ public abstract class Oms
|
||||
/// <param name="name">The name of the new Class.</param>
|
||||
/// <param name="globalIdentifier">The global identifier to assign the newly-created Class instance.</param>
|
||||
/// <returns></returns>
|
||||
public InstanceHandle CreateClass(string name, Guid globalIdentifier)
|
||||
public Class? CreateClass(string name, Guid globalIdentifier)
|
||||
{
|
||||
InstanceHandle c_Class = GetInstance(KnownInstanceGuids.Classes.Class);
|
||||
InstanceHandle c_new = CreateInstanceOf(c_Class, globalIdentifier);
|
||||
SetAttributeValue(c_new, GetInstance(KnownAttributeGuids.Text.Name), name);
|
||||
return c_new;
|
||||
return new Class(c_new);
|
||||
}
|
||||
|
||||
public InstanceHandle ExecuteInstanceMethod(OmsContext context, InstanceHandle instance, MethodBinding methodBinding)
|
||||
{
|
||||
InstanceHandle method = GetRelatedInstance(methodBinding.Handle, GetInstance(KnownRelationshipGuids.Method_Binding__executes__Method));
|
||||
InstanceHandle method = GetRelatedInstance(methodBinding.GetHandle(), GetInstance(KnownRelationshipGuids.Method_Binding__executes__Method));
|
||||
InstanceHandle forClass = GetRelatedInstance(method, GetInstance(KnownRelationshipGuids.Method__for__Class));
|
||||
context.SetWorkData(forClass, instance);
|
||||
return Execute(context, methodBinding.Handle);
|
||||
return Execute(context, methodBinding.GetHandle());
|
||||
}
|
||||
public object? ExecuteInstanceMethodReturningAttribute(OmsContext context, InstanceHandle instance, MethodBinding methodBinding)
|
||||
{
|
||||
@ -1020,31 +1051,31 @@ public abstract class Oms
|
||||
methodImplementations[methodClassId] = implementation;
|
||||
}
|
||||
|
||||
public InstanceHandle Execute(OmsContext context, MethodBinding methodBinding, IInstanceWrapper? targetInstance = null)
|
||||
public InstanceHandle Execute(OmsContext context, MethodBinding methodBinding, IInstanceReference? targetInstance = null)
|
||||
{
|
||||
InstanceHandle? targetInstanceHandle = null;
|
||||
if (targetInstance != null)
|
||||
{
|
||||
targetInstanceHandle = targetInstance.Handle;
|
||||
targetInstanceHandle = targetInstance.GetHandle();
|
||||
}
|
||||
return Execute(context, methodBinding, targetInstanceHandle);
|
||||
}
|
||||
|
||||
public InstanceHandle Execute(OmsContext context, MethodBinding methodBinding, InstanceHandle? targetInstance = null)
|
||||
{
|
||||
return Execute(context, methodBinding.Handle, targetInstance);
|
||||
return Execute(context, methodBinding.GetHandle(), targetInstance);
|
||||
}
|
||||
public InstanceHandle Execute(OmsContext context, Method method, InstanceHandle? targetInstance = null)
|
||||
{
|
||||
return Execute(context, method.Handle, targetInstance);
|
||||
return Execute(context, method.GetHandle(), targetInstance);
|
||||
}
|
||||
public InstanceHandle Execute(OmsContext context, MethodBinding methodBinding)
|
||||
{
|
||||
return Execute(context, methodBinding.Handle);
|
||||
return Execute(context, methodBinding.GetHandle());
|
||||
}
|
||||
public object? ExecuteReturningAttributeValue(OmsContext context, ReturnAttributeMethodBinding methodBinding)
|
||||
{
|
||||
InstanceHandle workData = Execute(context, methodBinding.Handle);
|
||||
InstanceHandle workData = Execute(context, methodBinding.GetHandle());
|
||||
return context.GetWorkData(workData);
|
||||
}
|
||||
public T ExecuteReturningAttributeValue<T>(OmsContext context, ReturnAttributeMethodBinding methodBinding, T defaultValue = default(T))
|
||||
@ -1113,6 +1144,7 @@ public abstract class Oms
|
||||
{
|
||||
if (methodImplementations.ContainsKey(parentClassId))
|
||||
{
|
||||
|
||||
if (targetInstance != null)
|
||||
{
|
||||
InstanceHandle hh = targetInstance.GetValueOrDefault();
|
||||
@ -1153,7 +1185,7 @@ public abstract class Oms
|
||||
|
||||
public IEnumerable<InstanceHandle> ExecuteStaticMethodReturningInstanceSet(OmsContext context, ReturnInstanceSetMethodBinding methodBinding)
|
||||
{
|
||||
InstanceHandle method = GetRelatedInstance(methodBinding.Handle, GetInstance(KnownRelationshipGuids.Method_Binding__executes__Method));
|
||||
InstanceHandle method = GetRelatedInstance(methodBinding.GetHandle(), GetInstance(KnownRelationshipGuids.Method_Binding__executes__Method));
|
||||
if (TryGetAttributeValue<bool>(method, GetInstance(KnownAttributeGuids.Boolean.Static), out bool is_static))
|
||||
{
|
||||
if (is_static)
|
||||
@ -1193,6 +1225,10 @@ public abstract class Oms
|
||||
return new WorkSet(workSet);
|
||||
}
|
||||
|
||||
public void AddAttribute(Class targetClass, InstanceHandle attributeInstance)
|
||||
{
|
||||
AddAttribute(targetClass.GetHandle(), attributeInstance);
|
||||
}
|
||||
public void AddAttribute(InstanceHandle targetInstance, InstanceHandle attributeInstance)
|
||||
{
|
||||
AssignRelationship(targetInstance, GetInstance(KnownRelationshipGuids.Class__has__Attribute), attributeInstance);
|
||||
@ -1200,6 +1236,10 @@ public abstract class Oms
|
||||
AssignRelationship(attributeInstance, GetInstance(KnownRelationshipGuids.Attribute__for__Class), targetInstance);
|
||||
}
|
||||
|
||||
public void AddSuperClass(Class classInstance, Class inheritsFrom)
|
||||
{
|
||||
AddSuperClass(classInstance.GetHandle(), inheritsFrom.GetHandle());
|
||||
}
|
||||
public void AddSuperClass(InstanceHandle classInstance, InstanceHandle inheritsFrom)
|
||||
{
|
||||
AssignRelationship(classInstance, GetInstance(KnownRelationshipGuids.Class__has_super__Class), inheritsFrom);
|
||||
@ -1229,11 +1269,7 @@ public abstract class Oms
|
||||
return list;
|
||||
}
|
||||
|
||||
public string GetInstanceText(InstanceWrapper inst)
|
||||
{
|
||||
return GetInstanceText(inst.Handle);
|
||||
}
|
||||
public string GetInstanceText(InstanceHandle inst)
|
||||
public string GetInstanceText(IInstanceReference inst)
|
||||
{
|
||||
InstanceHandle parentClass = GetParentClass(inst);
|
||||
InstanceHandle ihLabeledByRAMB = InstanceHandle.Empty;
|
||||
@ -1254,10 +1290,11 @@ public abstract class Oms
|
||||
}
|
||||
|
||||
// FIXME: remove when we have Class@get Instance Text implemented
|
||||
return _GetInstanceTextHack(inst);
|
||||
return _GetInstanceTextHack(inst.GetHandle());
|
||||
}
|
||||
private string _GetInstanceTextHack(InstanceHandle inst)
|
||||
{
|
||||
Console.Error.WriteLine("!!! HACK !!! GetInstanceTextHack !!! HACK !!!");
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (IsInstanceOf(inst, GetInstance(KnownInstanceGuids.Classes.Relationship)))
|
||||
{
|
||||
@ -1425,12 +1462,12 @@ public abstract class Oms
|
||||
/// <param name="globalIdentifier">The global identifier of the resulting enumeration class.</param>
|
||||
/// <param name="memberGlobalIdentifiers">The global identifiers of the instances (members) of the enumeration class.</param>
|
||||
/// <returns></returns>
|
||||
public InstanceHandle CreateEnumeration(Guid globalIdentifier, Guid[] memberGlobalIdentifiers)
|
||||
public Class CreateEnumeration(Guid globalIdentifier, Guid[] memberGlobalIdentifiers)
|
||||
{
|
||||
InstanceHandle c_Enum = CreateEnumeration(globalIdentifier, memberGlobalIdentifiers, out InstanceHandle[] memberInstanceHandles);
|
||||
Class c_Enum = CreateEnumeration(globalIdentifier, memberGlobalIdentifiers, out InstanceHandle[] memberInstanceHandles);
|
||||
return c_Enum;
|
||||
}
|
||||
public InstanceHandle CreateEnumeration(Guid globalIdentifier, Guid[] memberGlobalIdentifiers, out InstanceHandle[] memberInstanceHandles)
|
||||
public Class CreateEnumeration(Guid globalIdentifier, Guid[] memberGlobalIdentifiers, out InstanceHandle[] memberInstanceHandles)
|
||||
{
|
||||
if (!TryGetInstance(globalIdentifier, out InstanceHandle c_Enum))
|
||||
{
|
||||
@ -1441,7 +1478,7 @@ public abstract class Oms
|
||||
{
|
||||
memberInstanceHandles[i] = CreateInstanceOf(c_Enum, memberGlobalIdentifiers[i]);
|
||||
}
|
||||
return c_Enum;
|
||||
return ConcreteInstanceWrapper.Wrap<Class>(this, c_Enum);
|
||||
}
|
||||
|
||||
public string GetTranslationValue(InstanceHandle sourceInstance, InstanceHandle relationshipInstance, string defaultValue = "")
|
||||
@ -2080,6 +2117,10 @@ public abstract class Oms
|
||||
return value;
|
||||
}
|
||||
|
||||
public InstanceHandle GetInstanceByName(Class parentClass, string name)
|
||||
{
|
||||
return GetInstanceByName(parentClass.GetHandle(), name);
|
||||
}
|
||||
public InstanceHandle GetInstanceByName(InstanceHandle parentClass, string name)
|
||||
{
|
||||
InstanceHandle a_Name = GetInstance(KnownAttributeGuids.Text.Name);
|
||||
|
||||
@ -37,7 +37,7 @@ public class OmsContext
|
||||
private Dictionary<InstanceHandle, object?> _GlobalData = new Dictionary<InstanceHandle, object?>();
|
||||
public object? GetWorkData(WorkSet parm)
|
||||
{
|
||||
return GetWorkData(parm.Handle);
|
||||
return GetWorkData(parm.GetHandle());
|
||||
}
|
||||
public object? GetWorkData(InstanceHandle parm)
|
||||
{
|
||||
@ -66,11 +66,7 @@ public class OmsContext
|
||||
|
||||
public void SetWorkData(WorkSet parm, object? value)
|
||||
{
|
||||
SetWorkData(parm.Handle, value);
|
||||
}
|
||||
public void SetWorkData(InstanceHandle parm, IInstanceWrapper value)
|
||||
{
|
||||
SetWorkData(parm, value.Handle);
|
||||
SetWorkData(parm.GetHandle(), value);
|
||||
}
|
||||
public void SetWorkData(InstanceHandle parm, object? value)
|
||||
{
|
||||
@ -84,12 +80,12 @@ public class OmsContext
|
||||
singular = false;
|
||||
}
|
||||
|
||||
if (value is InstanceHandle)
|
||||
if (value is IInstanceReference)
|
||||
{
|
||||
IReadOnlyCollection<InstanceHandle> irs = Oms.GetRelatedInstances(parm, Oms.GetInstance(KnownRelationshipGuids.Work_Set__has_valid__Class));
|
||||
if (irs.Count > 0)
|
||||
{
|
||||
InstanceHandle ir = (InstanceHandle)value;
|
||||
InstanceHandle ir = ((IInstanceReference)value).GetHandle();
|
||||
InstanceHandle parentClass = Oms.GetParentClass(ir);
|
||||
if (!irs.Contains(parentClass))
|
||||
{
|
||||
@ -132,7 +128,7 @@ public class OmsContext
|
||||
{
|
||||
foreach (InstanceWrapper iw in insts)
|
||||
{
|
||||
InstanceHandle ir = iw.Handle;
|
||||
InstanceHandle ir = iw.GetHandle();
|
||||
InstanceHandle parentClass = Oms.GetParentClass(ir);
|
||||
if (!irs.Contains(parentClass))
|
||||
{
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
|
||||
using System;
|
||||
using MBS.Core;
|
||||
using Mocha.Core.Oop;
|
||||
|
||||
/// <summary>
|
||||
/// Implements <see cref="Oms" /> completely in-memory with a bare minimum schema definition which
|
||||
@ -32,8 +33,8 @@ public class HardcodedMiniOms : MemoryOms
|
||||
}
|
||||
|
||||
private TenantHandle t_super;
|
||||
private InstanceHandle c_Class, c_Attribute, c_Relationship, c_TextAttribute, c_BooleanAttribute, c_NumericAttribute, c_DateAttribute, c_WorkSet, c_Instance, c_OMS, c_File;
|
||||
private InstanceHandle c_CommonText, c_CommonBoolean, c_CommonNumeric, c_CommonDate, c_CommonInstanceSet;
|
||||
private Class c_Class, c_Attribute, c_Relationship, c_TextAttribute, c_BooleanAttribute, c_NumericAttribute, c_DateAttribute, c_WorkSet, c_Instance, c_OMS, c_File;
|
||||
private Class c_CommonText, c_CommonBoolean, c_CommonNumeric, c_CommonDate, c_CommonInstanceSet;
|
||||
private InstanceHandle r_Class__has__Instance, r_Instance__for__Class;
|
||||
private InstanceHandle r_Relationship__has_source__Class, r_Relationship__has_destination__Class, r_Relationship__has_sibling__Relationship;
|
||||
private InstanceHandle a_Name, a_Order, a_Value, a_ContentType, a_RelationshipType, a_Singular;
|
||||
@ -61,7 +62,7 @@ public class HardcodedMiniOms : MemoryOms
|
||||
{
|
||||
base.InitializeTenantInternal();
|
||||
|
||||
c_Class = CreateInstance(KnownInstanceGuids.Classes.Class);
|
||||
c_Class = CreateInstance<Class>(KnownInstanceGuids.Classes.Class);
|
||||
|
||||
// we need to create `Class.has Instance` and `Instance.for Class`
|
||||
// before we can use CreateInstanceOf, which uses SetParentClass
|
||||
@ -73,8 +74,8 @@ public class HardcodedMiniOms : MemoryOms
|
||||
AssignRelationship(c_Class, r_Instance__for__Class, c_Class);
|
||||
|
||||
// now that we have SetParentClass, we can use CreateInstanceOf
|
||||
c_Attribute = CreateInstanceOf(c_Class, KnownInstanceGuids.Classes.Attribute);
|
||||
c_Relationship = CreateInstanceOf(c_Class, KnownInstanceGuids.Classes.Relationship);
|
||||
c_Attribute = CreateInstanceOf<Class>(c_Class, KnownInstanceGuids.Classes.Attribute);
|
||||
c_Relationship = CreateInstanceOf<Class>(c_Class, KnownInstanceGuids.Classes.Relationship);
|
||||
|
||||
// now that Relationship class has been defined, we can identify the relationships
|
||||
SetParentClass(r_Class__has__Instance, c_Relationship);
|
||||
@ -82,10 +83,10 @@ public class HardcodedMiniOms : MemoryOms
|
||||
|
||||
// ?============ ATTRIBUTES ============?
|
||||
// and now we define attribute classes
|
||||
c_TextAttribute = CreateInstanceOf(c_Class, KnownInstanceGuids.Classes.TextAttribute);
|
||||
c_BooleanAttribute = CreateInstanceOf(c_Class, KnownInstanceGuids.Classes.BooleanAttribute);
|
||||
c_NumericAttribute = CreateInstanceOf(c_Class, KnownInstanceGuids.Classes.NumericAttribute);
|
||||
c_DateAttribute = CreateInstanceOf(c_Class, KnownInstanceGuids.Classes.DateAttribute);
|
||||
c_TextAttribute = CreateInstanceOf<Class>(c_Class, KnownInstanceGuids.Classes.TextAttribute);
|
||||
c_BooleanAttribute = CreateInstanceOf<Class>(c_Class, KnownInstanceGuids.Classes.BooleanAttribute);
|
||||
c_NumericAttribute = CreateInstanceOf<Class>(c_Class, KnownInstanceGuids.Classes.NumericAttribute);
|
||||
c_DateAttribute = CreateInstanceOf<Class>(c_Class, KnownInstanceGuids.Classes.DateAttribute);
|
||||
|
||||
a_Name = CreateInstanceOf(c_TextAttribute, KnownAttributeGuids.Text.Name);
|
||||
a_Order = CreateInstanceOf(c_TextAttribute, KnownAttributeGuids.Text.Order);
|
||||
@ -171,9 +172,9 @@ public class HardcodedMiniOms : MemoryOms
|
||||
CreateClass("Work Data", KnownInstanceGuids.Classes.WorkData);
|
||||
c_OMS = CreateClass("OMS", KnownInstanceGuids.Classes.OMS);
|
||||
|
||||
InstanceHandle c_Application = CreateClass("Application", KnownInstanceGuids.Classes.Application);
|
||||
Class c_Application = CreateClass("Application", KnownInstanceGuids.Classes.Application);
|
||||
|
||||
InstanceHandle c_Tenant = CreateClass("Tenant", KnownInstanceGuids.Classes.Tenant);
|
||||
Class c_Tenant = CreateClass("Tenant", KnownInstanceGuids.Classes.Tenant);
|
||||
CreateInstanceOf(c_Tenant);
|
||||
|
||||
CreateRelationship(c_Tenant, "has", c_Application, KnownRelationshipGuids.Tenant__has__Application, true, "for", KnownRelationshipGuids.Application__for__Tenant);
|
||||
|
||||
@ -15,26 +15,28 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Mocha.NET. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
using Mocha.Core.Oop;
|
||||
|
||||
namespace Mocha.Core.OmsImplementations.Mini;
|
||||
|
||||
public abstract class MiniOmsModule
|
||||
{
|
||||
// public virtual int Priority { get; } = 0;
|
||||
|
||||
protected InstanceHandle c_Class, c_Attribute, c_Relationship, c_TextAttribute, c_BooleanAttribute, c_NumericAttribute, c_DateAttribute, c_WorkSet, c_Instance;
|
||||
protected Class c_Class, c_Attribute, c_Relationship, c_TextAttribute, c_BooleanAttribute, c_NumericAttribute, c_DateAttribute, c_WorkSet, c_Instance;
|
||||
|
||||
protected abstract void BuildInternal(Oms oms);
|
||||
public void Build(Oms oms)
|
||||
{
|
||||
c_Class = oms.GetInstance(KnownInstanceGuids.Classes.Class);
|
||||
c_Attribute = oms.GetInstance(KnownInstanceGuids.Classes.Attribute);
|
||||
c_Relationship = oms.GetInstance(KnownInstanceGuids.Classes.Relationship);
|
||||
c_TextAttribute = oms.GetInstance(KnownInstanceGuids.Classes.TextAttribute);
|
||||
c_BooleanAttribute = oms.GetInstance(KnownInstanceGuids.Classes.BooleanAttribute);
|
||||
c_NumericAttribute = oms.GetInstance(KnownInstanceGuids.Classes.NumericAttribute);
|
||||
c_DateAttribute = oms.GetInstance(KnownInstanceGuids.Classes.DateAttribute);
|
||||
c_Instance = oms.GetInstance(KnownInstanceGuids.Classes.Instance);
|
||||
c_WorkSet = oms.GetInstance(KnownInstanceGuids.Classes.WorkSet);
|
||||
c_Class = oms.GetInstance<Class>(KnownInstanceGuids.Classes.Class);
|
||||
c_Attribute = oms.GetInstance<Class>(KnownInstanceGuids.Classes.Attribute);
|
||||
c_Relationship = oms.GetInstance<Class>(KnownInstanceGuids.Classes.Relationship);
|
||||
c_TextAttribute = oms.GetInstance<Class>(KnownInstanceGuids.Classes.TextAttribute);
|
||||
c_BooleanAttribute = oms.GetInstance<Class>(KnownInstanceGuids.Classes.BooleanAttribute);
|
||||
c_NumericAttribute = oms.GetInstance<Class>(KnownInstanceGuids.Classes.NumericAttribute);
|
||||
c_DateAttribute = oms.GetInstance<Class>(KnownInstanceGuids.Classes.DateAttribute);
|
||||
c_Instance = oms.GetInstance<Class>(KnownInstanceGuids.Classes.Instance);
|
||||
c_WorkSet = oms.GetInstance<Class>(KnownInstanceGuids.Classes.WorkSet);
|
||||
|
||||
BuildInternal(oms);
|
||||
}
|
||||
|
||||
@ -29,18 +29,19 @@ using Mocha.Core.Oop.Methods;
|
||||
/// </summary>
|
||||
public class MethodsModule : MiniOmsModule
|
||||
{
|
||||
private InstanceHandle c_WorkData, c_OMS;
|
||||
private InstanceHandle c_ParameterAssignment, c_Method, c_MethodBinding;
|
||||
private Class c_WorkData, c_OMS;
|
||||
private Class 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;
|
||||
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_GetInstanceSetBySystemRoutineMethod, 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;
|
||||
private InstanceHandle c_Element, c_ElementContent;
|
||||
private Class c_ReturnAttributeMethodBinding, c_ReturnInstanceSetMethodBinding, c_ReturnElementMethodBinding;
|
||||
private Class c_CommonText, c_CommonBoolean, c_CommonNumeric, c_CommonDate, c_CommonInstanceSet;
|
||||
private Class c_ConditionGroup;
|
||||
private Class c_BuildAttributeMethod, c_GetAttributeMethod, c_GetSpecifiedInstancesMethod, c_GetAttributeBySystemRoutineMethod, c_GetInstanceSetBySystemRoutineMethod, c_AssignAttributeMethod, c_GetRelationshipMethod, c_GetReferencedAttributeMethod, c_SelectFromInstanceSetMethod, c_ConditionalSelectFromInstanceSetCase, c_ConditionalSelectFromInstanceSetMethod, c_ConditionalSelectAttributeMethod, c_ConditionalSelectAttributeCase, c_EvaluateBooleanExpressionMethod;
|
||||
private Class c_ExecutableReturningAttribute, c_ExecutableReturningInstanceSet, c_ExecutableReturningWorkData;
|
||||
private Class c_AccessModifier;
|
||||
private InstanceHandle i_AccessModifier_Private, i_AccessModifier_Protected, i_AccessModifier_Public, i_AccessModifier_RootA2;
|
||||
private Class c_SystemRoutine, c_SystemAttributeRoutine, c_SystemInstanceSetRoutine;
|
||||
private Class c_AccumulationFunction, c_SelectionFunction, c_SetFunction;
|
||||
private Class c_Element, c_ElementContent;
|
||||
|
||||
protected override void BuildInternal(Oms oms)
|
||||
{
|
||||
@ -52,7 +53,7 @@ public class MethodsModule : MiniOmsModule
|
||||
|
||||
oms.AddSuperClass(c_Attribute, c_ExecutableReturningAttribute);
|
||||
|
||||
c_WorkData = oms.GetInstance(KnownInstanceGuids.Classes.WorkData);
|
||||
c_WorkData = oms.GetInstance<Class>(KnownInstanceGuids.Classes.WorkData);
|
||||
oms.AddSuperClass(c_WorkData, c_ExecutableReturningWorkData);
|
||||
|
||||
c_ParameterAssignment = oms.CreateClass("Parameter Assignment", KnownInstanceGuids.Classes.ParameterAssignment);
|
||||
@ -93,7 +94,7 @@ public class MethodsModule : MiniOmsModule
|
||||
a_UseAnyCondition = oms.CreateInstanceOf(oms.GetInstance(KnownInstanceGuids.Classes.BooleanAttribute), KnownAttributeGuids.Boolean.UseAnyCondition);
|
||||
oms.SetAttributeValue(a_UseAnyCondition, a_Name, "Use Any Condition");
|
||||
|
||||
c_AccessModifier = oms.CreateInstanceOf(c_Class, KnownInstanceGuids.Classes.AccessModifier);
|
||||
c_AccessModifier = oms.CreateInstanceOf<Class>(c_Class, KnownInstanceGuids.Classes.AccessModifier);
|
||||
oms.AddAttribute(c_AccessModifier, a_Name);
|
||||
oms.AddAttribute(c_AccessModifier, a_Order);
|
||||
|
||||
@ -203,8 +204,8 @@ 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);
|
||||
|
||||
InstanceHandle c_BooleanOperator = oms.CreateClass("Boolean Operator", KnownInstanceGuids.Classes.BooleanOperator);
|
||||
InstanceHandle c_RelationalOperator = oms.CreateClass("Relational Operator", KnownInstanceGuids.Classes.RelationalOperator);
|
||||
Class c_BooleanOperator = oms.CreateClass("Boolean Operator", KnownInstanceGuids.Classes.BooleanOperator);
|
||||
Class c_RelationalOperator = oms.CreateClass("Relational Operator", KnownInstanceGuids.Classes.RelationalOperator);
|
||||
|
||||
RelationalOperator.CountEqualTo = new RelationalOperator(oms.CreateInstanceOf(c_RelationalOperator, KnownInstanceGuids.RelationalOperators.CountEqualTo));
|
||||
RelationalOperator.CountGreaterThan = new RelationalOperator(oms.CreateInstanceOf(c_RelationalOperator, KnownInstanceGuids.RelationalOperators.CountGreaterThan));
|
||||
@ -240,19 +241,19 @@ public class MethodsModule : MiniOmsModule
|
||||
oms.AddAttribute(c_Method, a_Verb);
|
||||
oms.AddAttribute(c_Method, a_Static);
|
||||
|
||||
c_OMS = oms.GetInstance(KnownInstanceGuids.Classes.OMS);
|
||||
c_OMS = oms.GetInstance<Class>(KnownInstanceGuids.Classes.OMS);
|
||||
OmsMethodBuilder mb = new OmsMethodBuilder(oms);
|
||||
OmsSystemRoutineBuilder srb = new OmsSystemRoutineBuilder(oms);
|
||||
SystemAttributeRoutine sr = srb.CreateSystemAttributeRoutine(KnownInstanceGuids.SystemAttributeRoutines.GetRuntimeVersion, new Func<Oms, OmsContext, object?>(delegate (Oms oms, OmsContext context) { return oms.RuntimeVersion.ToString(); }));
|
||||
mb.CreateGetAttributeBySystemRoutineMethod(c_OMS, "get", "Runtime Version", null, true, KnownInstanceGuids.Methods.GetAttributeBySystemRoutine.OMS__get__Runtime_Version, oms.GetInstance(KnownAttributeGuids.Text.Value), sr);
|
||||
mb.CreateGetAttributeBySystemRoutineMethod(c_OMS.GetHandle(), "get", "Runtime Version", null, true, KnownInstanceGuids.Methods.GetAttributeBySystemRoutine.OMS__get__Runtime_Version, oms.GetInstance(KnownAttributeGuids.Text.Value), sr);
|
||||
|
||||
mb.CreateGetRelationshipMethod(c_Instance, "get", "Parent Class", AccessModifier.Public, false, KnownInstanceGuids.Methods.GetRelationship.Instance__get__Parent_Class, oms.GetInstance(KnownRelationshipGuids.Instance__for__Class));
|
||||
mb.CreateGetRelationshipMethod(c_Instance.GetHandle(), "get", "Parent Class", AccessModifier.Public, false, KnownInstanceGuids.Methods.GetRelationship.Instance__get__Parent_Class, oms.GetInstance(KnownRelationshipGuids.Instance__for__Class));
|
||||
|
||||
InstanceHandle a_Seed = oms.CreateInstanceOf(oms.GetInstance(KnownInstanceGuids.Classes.NumericAttribute), KnownAttributeGuids.Numeric.Seed);
|
||||
oms.SetAttributeValue(a_Seed, a_Name, "Seed");
|
||||
|
||||
InstanceHandle a_RandomNumber = oms.CreateInstanceOf(oms.GetInstance(KnownInstanceGuids.Classes.NumericAttribute), KnownAttributeGuids.Numeric.RandomNumber);
|
||||
mb.CreateGetAttributeBySystemRoutineMethod(c_CommonNumeric, "get", "Random Number", AccessModifier.Public, true, KnownInstanceGuids.Methods.GetAttributeBySystemRoutine.Common_Numeric__get__Random_Number, a_RandomNumber, srb.CreateSystemAttributeRoutine<decimal>(KnownInstanceGuids.SystemAttributeRoutines.GetRandomNumber, new Func<Oms, OmsContext, decimal>(delegate (Oms oms, OmsContext context)
|
||||
mb.CreateGetAttributeBySystemRoutineMethod(c_CommonNumeric.GetHandle(), "get", "Random Number", AccessModifier.Public, true, KnownInstanceGuids.Methods.GetAttributeBySystemRoutine.Common_Numeric__get__Random_Number, a_RandomNumber, srb.CreateSystemAttributeRoutine<decimal>(KnownInstanceGuids.SystemAttributeRoutines.GetRandomNumber, new Func<Oms, OmsContext, decimal>(delegate (Oms oms, OmsContext context)
|
||||
{
|
||||
object? seedO = context.GetWorkData(a_Seed);
|
||||
if (seedO is decimal)
|
||||
|
||||
@ -22,8 +22,8 @@ namespace Mocha.Core.OmsImplementations.Mini.Modules;
|
||||
|
||||
public class SecurityModule : MiniOmsModule
|
||||
{
|
||||
private InstanceHandle c_User, c_UserLogin, c_Role, c_Domain;
|
||||
private InstanceHandle r_User__has__Role;
|
||||
private Class c_User, c_UserLogin, c_Role, c_Domain;
|
||||
private Relationship r_User__has__Role;
|
||||
private InstanceHandle a_Token, a_Name, a_UserName, a_PasswordHash, a_PasswordSalt, a_UserIsLoggedIn;
|
||||
private MethodReturningInstanceSet m_User__get__Current_User;
|
||||
|
||||
@ -56,14 +56,14 @@ public class SecurityModule : MiniOmsModule
|
||||
OmsSystemRoutineBuilder sr = new OmsSystemRoutineBuilder(oms);
|
||||
|
||||
WorkSet ws_CurrentUser = oms.CreateWorkSet("Current User");
|
||||
m_User__get__Current_User = mb.CreateGetInstanceSetBySystemRoutineMethod(c_User, "get", "Current User", AccessModifier.Public, true, ws_CurrentUser, sr.CreateSystemInstanceSetRoutine(KnownInstanceGuids.SystemInstanceSetRoutines.GetCurrentUser, delegate (Oms oms, OmsContext context)
|
||||
m_User__get__Current_User = mb.CreateGetInstanceSetBySystemRoutineMethod(c_User.GetHandle(), "get", "Current User", AccessModifier.Public, true, ws_CurrentUser, sr.CreateSystemInstanceSetRoutine(KnownInstanceGuids.SystemInstanceSetRoutines.GetCurrentUser, delegate (Oms oms, OmsContext context)
|
||||
{
|
||||
List<InstanceHandle> list = new List<InstanceHandle>();
|
||||
return list;
|
||||
}));
|
||||
MethodBinding mb_User__get__Current_User = m_User__get__Current_User.CreateMethodBinding(oms);
|
||||
|
||||
EvaluateBooleanExpressionMethod m_User__is__Logged_In = mb.CreateEvaluateBooleanExpressionMethod(c_User, "is", "Logged In", AccessModifier.Public, true, a_UserIsLoggedIn, m_User__get__Current_User, RelationalOperator.IsNotEmpty);
|
||||
EvaluateBooleanExpressionMethod m_User__is__Logged_In = mb.CreateEvaluateBooleanExpressionMethod(c_User.GetHandle(), "is", "Logged In", AccessModifier.Public, true, a_UserIsLoggedIn, m_User__get__Current_User, RelationalOperator.IsNotEmpty);
|
||||
MethodBinding mb_User__is__Logged_In = m_User__is__Logged_In.CreateMethodBinding(oms);
|
||||
|
||||
c_Domain = oms.CreateClass("Domain", KnownInstanceGuids.Classes.Domain);
|
||||
|
||||
@ -15,14 +15,16 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Mocha.NET. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
using Mocha.Core.Oop;
|
||||
|
||||
namespace Mocha.Core.OmsImplementations.Mini.Modules;
|
||||
|
||||
public class TranslationModule : MiniOmsModule
|
||||
{
|
||||
private InstanceHandle c_Tenant, c_Translation, c_TranslationValue, c_Language;
|
||||
private Class c_Tenant, c_Translation, c_TranslationValue, c_Language;
|
||||
private InstanceHandle a_Name, a_Value;
|
||||
private InstanceHandle r_Translation__has__Translation_Value, r_Translation_Value__has__Language;
|
||||
private InstanceHandle r_Tenant__has_login_header__Translation, r_Tenant__has_login_footer__Translation;
|
||||
private Relationship r_Translation__has__Translation_Value, r_Translation_Value__has__Language;
|
||||
private Relationship r_Tenant__has_login_header__Translation, r_Tenant__has_login_footer__Translation;
|
||||
|
||||
protected override void BuildInternal(Oms oms)
|
||||
{
|
||||
@ -48,11 +50,11 @@ public class TranslationModule : MiniOmsModule
|
||||
r_Translation__has__Translation_Value = oms.CreateRelationship(c_Translation, "has", c_TranslationValue, KnownRelationshipGuids.Translation__has__Translation_Value, false, "for", KnownRelationshipGuids.Translation_Value__for__Translation);
|
||||
r_Translation_Value__has__Language = oms.CreateRelationship(c_TranslationValue, "has", c_Language, KnownRelationshipGuids.Translation_Value__has__Language, true, "for", KnownRelationshipGuids.Language__for__Translation_Value);
|
||||
|
||||
c_Tenant = oms.GetInstance(KnownInstanceGuids.Classes.Tenant);
|
||||
c_Tenant = oms.GetInstance<Class>(KnownInstanceGuids.Classes.Tenant);
|
||||
r_Tenant__has_login_header__Translation = oms.CreateRelationship(c_Tenant, "has login header", c_Translation, KnownRelationshipGuids.Tenant__has_login_header__Translation, true);
|
||||
r_Tenant__has_login_footer__Translation = oms.CreateRelationship(c_Tenant, "has login footer", c_Translation, KnownRelationshipGuids.Tenant__has_login_footer__Translation, true);
|
||||
|
||||
InstanceHandle c_Application = oms.CreateClass("Application", KnownInstanceGuids.Classes.Application);
|
||||
Class c_Application = oms.CreateClass("Application", KnownInstanceGuids.Classes.Application);
|
||||
oms.CreateRelationship(c_Application, "has title", c_Translation, KnownRelationshipGuids.Application__has_title__Translation, true, "title for", KnownRelationshipGuids.Translation__title_for__Application);
|
||||
}
|
||||
}
|
||||
@ -7,21 +7,21 @@ namespace Mocha.Core.OmsImplementations.Mini.Modules;
|
||||
|
||||
public class UserInterfaceModule : MiniOmsModule
|
||||
{
|
||||
private InstanceHandle c_Element, c_ElementContent, c_DerivedElementContent;
|
||||
private InstanceHandle r_User__has__Role;
|
||||
private Class c_Element, c_ElementContent, c_DerivedElementContent;
|
||||
private Relationship r_User__has__Role;
|
||||
private InstanceHandle a_Name;
|
||||
private InstanceHandle c_ExecutableReturningWorkData, c_ExecutableReturningElement;
|
||||
private InstanceHandle c_ElementContentDisplayOption;
|
||||
private InstanceHandle c_Tenant, c_Method, c_MethodBinding, c_BuildUIResponseMethod, c_ControlTransactionMethod;
|
||||
private InstanceHandle c_BuildResponseMethodBinding;
|
||||
private Class c_ExecutableReturningWorkData, c_ExecutableReturningElement;
|
||||
private Class c_ElementContentDisplayOption;
|
||||
private Class c_Tenant, c_Method, c_MethodBinding, c_BuildUIResponseMethod, c_ControlTransactionMethod;
|
||||
private Class c_BuildResponseMethodBinding;
|
||||
|
||||
protected override void BuildInternal(Oms oms)
|
||||
{
|
||||
c_Tenant = oms.GetInstance(KnownInstanceGuids.Classes.Tenant);
|
||||
c_Tenant = oms.GetInstance<Class>(KnownInstanceGuids.Classes.Tenant);
|
||||
|
||||
a_Name = oms.GetInstance(KnownAttributeGuids.Text.Name);
|
||||
c_Method = oms.GetInstance(KnownInstanceGuids.Classes.Method);
|
||||
c_MethodBinding = oms.GetInstance(KnownInstanceGuids.Classes.MethodBinding);
|
||||
c_Method = oms.GetInstance<Class>(KnownInstanceGuids.Classes.Method);
|
||||
c_MethodBinding = oms.GetInstance<Class>(KnownInstanceGuids.Classes.MethodBinding);
|
||||
|
||||
c_Element = oms.CreateClass("Element", KnownInstanceGuids.Classes.Element);
|
||||
oms.AddAttribute(c_Element, a_Name);
|
||||
@ -45,7 +45,7 @@ public class UserInterfaceModule : MiniOmsModule
|
||||
c_DerivedElementContent = oms.CreateClass("Derived Element Content", KnownInstanceGuids.Classes.DerivedElementContent);
|
||||
oms.AddSuperClass(c_DerivedElementContent, c_ElementContent);
|
||||
|
||||
c_ExecutableReturningWorkData = oms.GetInstance(KnownInstanceGuids.Classes.ExecutableReturningWorkData);
|
||||
c_ExecutableReturningWorkData = oms.GetInstance<Class>(KnownInstanceGuids.Classes.ExecutableReturningWorkData);
|
||||
|
||||
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);
|
||||
@ -73,28 +73,28 @@ public class UserInterfaceModule : MiniOmsModule
|
||||
// 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));
|
||||
BuildAttributeMethod Method__get__CT_Method_Suffix = mb.CreateBuildAttributeMethod(c_Method.GetHandle(), "get", "CT Method Suffix", AccessModifier.Public, true, a_Value, "CT");
|
||||
EvaluateBooleanExpressionMethod Method__is__CT = mb.CreateEvaluateBooleanExpressionMethod(c_Method.GetHandle(), "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);
|
||||
|
||||
InstanceHandle c_Menu = oms.CreateClass("Menu", KnownInstanceGuids.Classes.Menu);
|
||||
InstanceHandle c_MenuItem = oms.CreateClass("Menu Item", KnownInstanceGuids.Classes.MenuItem);
|
||||
Class c_Menu = oms.CreateClass("Menu", KnownInstanceGuids.Classes.Menu);
|
||||
Class c_MenuItem = oms.CreateClass("Menu Item", KnownInstanceGuids.Classes.MenuItem);
|
||||
|
||||
InstanceHandle c_MenuItemCommand = oms.CreateClass("Menu Item Command", KnownInstanceGuids.Classes.MenuItemCommand);
|
||||
Class c_MenuItemCommand = oms.CreateClass("Menu Item Command", KnownInstanceGuids.Classes.MenuItemCommand);
|
||||
oms.AddSuperClass(c_MenuItemCommand, c_MenuItem);
|
||||
|
||||
InstanceHandle c_MenuItemGroup = oms.CreateClass("Menu Item Group", KnownInstanceGuids.Classes.MenuItemGroup);
|
||||
Class c_MenuItemGroup = oms.CreateClass("Menu Item Group", KnownInstanceGuids.Classes.MenuItemGroup);
|
||||
oms.AddSuperClass(c_MenuItemGroup, c_MenuItem);
|
||||
|
||||
InstanceHandle c_MenuItemHeader = oms.CreateClass("Menu Item Header", KnownInstanceGuids.Classes.MenuItemHeader);
|
||||
Class c_MenuItemHeader = oms.CreateClass("Menu Item Header", KnownInstanceGuids.Classes.MenuItemHeader);
|
||||
oms.AddSuperClass(c_MenuItemHeader, c_MenuItem);
|
||||
|
||||
InstanceHandle c_MenuItemInstance = oms.CreateClass("Menu Item Instance", KnownInstanceGuids.Classes.MenuItemInstance);
|
||||
Class c_MenuItemInstance = oms.CreateClass("Menu Item Instance", KnownInstanceGuids.Classes.MenuItemInstance);
|
||||
oms.AddSuperClass(c_MenuItemInstance, c_MenuItem);
|
||||
|
||||
InstanceHandle c_MenuItemSeparator = oms.CreateClass("Menu Item Separator", KnownInstanceGuids.Classes.MenuItemSeparator);
|
||||
Class c_MenuItemSeparator = oms.CreateClass("Menu Item Separator", KnownInstanceGuids.Classes.MenuItemSeparator);
|
||||
oms.AddSuperClass(c_MenuItemSeparator, c_MenuItem);
|
||||
|
||||
oms.CreateRelationship(c_Menu, "has", c_MenuItem, KnownRelationshipGuids.Menu__has__Menu_Item, false, "for", KnownRelationshipGuids.Menu_Item__for__Menu);
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
using Mocha.Core.Oop;
|
||||
|
||||
namespace Mocha.Core.OmsImplementations.Mini.Modules;
|
||||
|
||||
public class WebModule : MiniOmsModule
|
||||
{
|
||||
private InstanceHandle c_Route, c_ControlTransactionMethod;
|
||||
private Class c_Route, c_ControlTransactionMethod;
|
||||
private InstanceHandle a_TargetURL;
|
||||
|
||||
private InstanceHandle CreateRoute(Oms oms, string targetUrl, InstanceHandle processedByControlTransactionMethod)
|
||||
@ -22,7 +24,7 @@ public class WebModule : MiniOmsModule
|
||||
c_Tenant = oms.GetInstance(KnownInstanceGuids.Classes.Tenant);
|
||||
oms.AddAttribute(c_Route, a_TargetURL);
|
||||
|
||||
c_ControlTransactionMethod = oms.GetInstance(KnownInstanceGuids.MethodClasses.ControlTransactionMethod);
|
||||
c_ControlTransactionMethod = oms.GetInstance<Class>(KnownInstanceGuids.MethodClasses.ControlTransactionMethod);
|
||||
|
||||
oms.CreateRelationship(c_Route, "processed by", c_ControlTransactionMethod, KnownRelationshipGuids.Route__processed_by__Control_Transaction_Method, true, "processes", KnownRelationshipGuids.Control_Transaction_Method__processes__Route);
|
||||
oms.CreateRelationship(c_Tenant, "has initiating", c_Route, KnownRelationshipGuids.Tenant__has_initiating__Route, true, "initiates for", KnownRelationshipGuids.Route__initiates_for__Tenant);
|
||||
|
||||
@ -40,19 +40,19 @@ public class OmsMethodBuilder
|
||||
public ReturnAttributeMethodBinding CreateReturnAttributeMethodBinding(MethodReturningAttribute method)
|
||||
{
|
||||
InstanceHandle methodBinding = Oms.CreateInstanceOf(c_ReturnAttributeMethodBinding);
|
||||
Oms.AssignRelationship(methodBinding, Oms.GetInstance(KnownRelationshipGuids.Method_Binding__executes__Method), method.Handle);
|
||||
Oms.AssignRelationship(methodBinding, Oms.GetInstance(KnownRelationshipGuids.Method_Binding__executes__Method), method.GetHandle());
|
||||
return new ReturnAttributeMethodBinding(methodBinding);
|
||||
}
|
||||
public ReturnInstanceSetMethodBinding CreateReturnInstanceSetMethodBinding(MethodReturningInstanceSet method)
|
||||
{
|
||||
InstanceHandle methodBinding = Oms.CreateInstanceOf(c_ReturnInstanceSetMethodBinding);
|
||||
Oms.AssignRelationship(methodBinding, Oms.GetInstance(KnownRelationshipGuids.Method_Binding__executes__Method), method.Handle);
|
||||
Oms.AssignRelationship(methodBinding, Oms.GetInstance(KnownRelationshipGuids.Method_Binding__executes__Method), method.GetHandle());
|
||||
return new ReturnInstanceSetMethodBinding(methodBinding);
|
||||
}
|
||||
public ReturnElementMethodBinding CreateReturnElementMethodBinding(MethodReturningElement method)
|
||||
{
|
||||
InstanceHandle methodBinding = Oms.CreateInstanceOf(c_ReturnElementMethodBinding);
|
||||
Oms.AssignRelationship(methodBinding, Oms.GetInstance(KnownRelationshipGuids.Method_Binding__executes__Method), method.Handle);
|
||||
Oms.AssignRelationship(methodBinding, Oms.GetInstance(KnownRelationshipGuids.Method_Binding__executes__Method), method.GetHandle());
|
||||
return new ReturnElementMethodBinding(methodBinding);
|
||||
}
|
||||
public BuildResponseMethodBinding CreateBuildResponseMethodBinding(MethodBuildingResponse method)
|
||||
@ -63,7 +63,7 @@ public class OmsMethodBuilder
|
||||
}
|
||||
|
||||
InstanceHandle methodBinding = Oms.CreateInstanceOf(c_BuildResponseMethodBinding);
|
||||
Oms.AssignRelationship(methodBinding, Oms.GetInstance(KnownRelationshipGuids.Method_Binding__executes__Method), method.Handle);
|
||||
Oms.AssignRelationship(methodBinding, Oms.GetInstance(KnownRelationshipGuids.Method_Binding__executes__Method), method.GetHandle());
|
||||
return new BuildResponseMethodBinding(methodBinding);
|
||||
}
|
||||
|
||||
@ -86,7 +86,7 @@ public class OmsMethodBuilder
|
||||
public GetSpecifiedInstancesMethod CreateGetSpecifiedInstancesMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, WorkSet returnsWorkSet, InstanceHandle specifiedInstance)
|
||||
{
|
||||
GetSpecifiedInstancesMethod meth = CreateGetSpecifiedInstancesMethod(forClassInstance, verb, name, accessModifier, isStatic, returnsWorkSet, new InstanceHandle[] { specifiedInstance });
|
||||
Oms.SetAttributeValue(meth.Handle, Oms.GetInstance(KnownAttributeGuids.Boolean.Singular), true);
|
||||
Oms.SetAttributeValue(meth.GetHandle(), Oms.GetInstance(KnownAttributeGuids.Boolean.Singular), true);
|
||||
return meth;
|
||||
}
|
||||
public GetSpecifiedInstancesMethod CreateGetSpecifiedInstancesMethod(InstanceHandle forClassInstance, string verb, string name, WorkSet returnsWorkSet, InstanceHandle[] specifiedInstances)
|
||||
@ -96,7 +96,7 @@ public class OmsMethodBuilder
|
||||
public GetSpecifiedInstancesMethod CreateGetSpecifiedInstancesMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, WorkSet returnsWorkSet, InstanceHandle[] specifiedInstances)
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.GetSpecifiedInstancesMethod), forClassInstance, verb, name, accessModifier, isStatic);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Get_Specified_Instances_Method__returns__Work_Set), returnsWorkSet.Handle);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Get_Specified_Instances_Method__returns__Work_Set), returnsWorkSet.GetHandle());
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Get_Specified_Instances_Method__uses__Instance), specifiedInstances);
|
||||
return new GetSpecifiedInstancesMethod(method);
|
||||
}
|
||||
@ -136,7 +136,7 @@ public class OmsMethodBuilder
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.GetAttributeBySystemRoutineMethod), forClassInstance, verb, name, accessModifier, isStatic, globalIdentifier);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Get_Attribute_by_System_Routine_Method__returns__Attribute), returnsAttribute);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Get_Attribute_by_System_Routine_Method__uses__System_Attribute_Routine), usesSystemAttributeRoutine.Handle);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Get_Attribute_by_System_Routine_Method__uses__System_Attribute_Routine), usesSystemAttributeRoutine.GetHandle());
|
||||
return new GetAttributeBySystemRoutineMethod(method);
|
||||
}
|
||||
|
||||
@ -147,14 +147,14 @@ public class OmsMethodBuilder
|
||||
public GetInstanceSetBySystemRoutineMethod CreateGetInstanceSetBySystemRoutineMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, Guid globalIdentifier, WorkSet returnsWorkSet, SystemInstanceSetRoutine usesSystemInstanceSetRoutine)
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.GetAttributeBySystemRoutineMethod), forClassInstance, verb, name, accessModifier, isStatic, globalIdentifier);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Get_Instance_Set_by_System_Routine_Method__returns__Work_Set), returnsWorkSet.Handle);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Get_Instance_Set_by_System_Routine_Method__uses__System_Instance_Set_Routine), usesSystemInstanceSetRoutine.Handle);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Get_Instance_Set_by_System_Routine_Method__returns__Work_Set), returnsWorkSet.GetHandle());
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Get_Instance_Set_by_System_Routine_Method__uses__System_Instance_Set_Routine), usesSystemInstanceSetRoutine.GetHandle());
|
||||
return new GetInstanceSetBySystemRoutineMethod(method);
|
||||
}
|
||||
|
||||
public AssignAttributeMethod CreateAssignAttributeMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, ReturnAttributeMethodBinding assignsFromExecutableReturningAttribute, InstanceHandle assignsToAttribute)
|
||||
{
|
||||
return CreateAssignAttributeMethod(forClassInstance, verb, name, accessModifier, isStatic, assignsFromExecutableReturningAttribute.Handle, assignsToAttribute);
|
||||
return CreateAssignAttributeMethod(forClassInstance, verb, name, accessModifier, isStatic, assignsFromExecutableReturningAttribute.GetHandle(), assignsToAttribute);
|
||||
}
|
||||
public AssignAttributeMethod CreateAssignAttributeMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle assignsFromExecutableReturningAttribute, InstanceHandle assignsToAttribute)
|
||||
{
|
||||
@ -164,6 +164,14 @@ public class OmsMethodBuilder
|
||||
return new AssignAttributeMethod(method);
|
||||
}
|
||||
|
||||
public GetRelationshipMethod CreateGetRelationshipMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, Relationship returnsRelationship, bool singular = false)
|
||||
{
|
||||
return CreateGetRelationshipMethod(forClassInstance, verb, name, accessModifier, isStatic, Guid.NewGuid(), returnsRelationship.GetHandle(), singular);
|
||||
}
|
||||
public GetRelationshipMethod CreateGetRelationshipMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, Guid globalIdentifier, Relationship returnsRelationship, bool singular = false)
|
||||
{
|
||||
return CreateGetRelationshipMethod(forClassInstance, verb, name, accessModifier, isStatic, globalIdentifier, returnsRelationship.GetHandle(), singular);
|
||||
}
|
||||
public GetRelationshipMethod CreateGetRelationshipMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsRelationship, bool singular = false)
|
||||
{
|
||||
return CreateGetRelationshipMethod(forClassInstance, verb, name, accessModifier, isStatic, Guid.NewGuid(), returnsRelationship, singular);
|
||||
@ -178,7 +186,7 @@ public class OmsMethodBuilder
|
||||
|
||||
public GetReferencedAttributeMethod CreateGetReferencedAttributeMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, IExecutableReturningInstanceSet usesReferenceInstanceSet, IExecutableReturningAttribute usesAnswerExecutableReturningAttribute, InstanceHandle? usesAccumulationFunction = null, InstanceHandle? usesOrderExecutableReturningAttribute = null)
|
||||
{
|
||||
return CreateGetReferencedAttributeMethod(forClassInstance, verb, name, accessModifier, isStatic, returnsAttribute, usesReferenceInstanceSet.Handle, usesAnswerExecutableReturningAttribute.Handle, usesAccumulationFunction, usesOrderExecutableReturningAttribute);
|
||||
return CreateGetReferencedAttributeMethod(forClassInstance, verb, name, accessModifier, isStatic, returnsAttribute, usesReferenceInstanceSet.GetHandle(), usesAnswerExecutableReturningAttribute.GetHandle(), usesAccumulationFunction, usesOrderExecutableReturningAttribute);
|
||||
}
|
||||
public GetReferencedAttributeMethod CreateGetReferencedAttributeMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, InstanceHandle usesReferenceInstanceSet, InstanceHandle usesAnswerExecutableReturningAttribute, InstanceHandle? usesAccumulationFunction = null, InstanceHandle? usesOrderExecutableReturningAttribute = null)
|
||||
{
|
||||
@ -199,7 +207,7 @@ public class OmsMethodBuilder
|
||||
|
||||
public SelectFromInstanceSetMethod CreateSelectFromInstanceSetMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, WorkSet returnsWorkSet, InstanceWrapper usesExecutableReturningInstanceSet, InstanceHandle? usesSetFunction = null, InstanceHandle? usesSelectionFunction = null, InstanceHandle? usesOrderExecutableReturningAttribute = null)
|
||||
{
|
||||
return CreateSelectFromInstanceSetMethod(forClassInstance, verb, name, accessModifier, isStatic, returnsWorkSet.Handle, usesExecutableReturningInstanceSet.Handle, usesSetFunction, usesSelectionFunction, usesOrderExecutableReturningAttribute);
|
||||
return CreateSelectFromInstanceSetMethod(forClassInstance, verb, name, accessModifier, isStatic, returnsWorkSet.GetHandle(), usesExecutableReturningInstanceSet.GetHandle(), usesSetFunction, usesSelectionFunction, usesOrderExecutableReturningAttribute);
|
||||
}
|
||||
public SelectFromInstanceSetMethod CreateSelectFromInstanceSetMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsWorkSet, InstanceHandle usesExecutableReturningInstanceSet, InstanceHandle? usesSetFunction = null, InstanceHandle? usesSelectionFunction = null, InstanceHandle? usesOrderExecutableReturningAttribute = null)
|
||||
{
|
||||
@ -237,9 +245,9 @@ public class OmsMethodBuilder
|
||||
List<InstanceHandle> cases2 = new List<InstanceHandle>();
|
||||
foreach (InstanceWrapper wrapper in cases)
|
||||
{
|
||||
cases2.Add(wrapper.Handle);
|
||||
cases2.Add(wrapper.GetHandle());
|
||||
}
|
||||
return CreateConditionalSelectFromInstanceSetMethod(forClassInstance, verb, name, accessModifier, isStatic, returnsWorkSet.Handle, cases2.ToArray(), usesSetFunction, usesSelectionFunction, usesOrderExecutableReturningAttribute);
|
||||
return CreateConditionalSelectFromInstanceSetMethod(forClassInstance, verb, name, accessModifier, isStatic, returnsWorkSet.GetHandle(), cases2.ToArray(), usesSetFunction, usesSelectionFunction, usesOrderExecutableReturningAttribute);
|
||||
}
|
||||
public ConditionalSelectFromInstanceSetMethod CreateConditionalSelectFromInstanceSetMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsWorkSet, InstanceHandle[] cases, InstanceHandle? usesSetFunction = null, InstanceHandle? usesSelectionFunction = null, InstanceHandle? usesOrderExecutableReturningAttribute = null)
|
||||
{
|
||||
@ -307,13 +315,13 @@ public class OmsMethodBuilder
|
||||
Oms.AssignRelationship(ih, Oms.GetInstance(KnownRelationshipGuids.Condition_Group__has_false_condition__Executable_returning_Work_Data), falseConditions);
|
||||
}
|
||||
|
||||
Oms.AssignRelationship(ih, Oms.GetInstance(KnownRelationshipGuids.Conditional_Select_Attribute_Case__invokes__Executable_returning_Attribute), sacCase.UsesExecutableReturningAttribute.Handle);
|
||||
Oms.AssignRelationship(ih, Oms.GetInstance(KnownRelationshipGuids.Conditional_Select_Attribute_Case__invokes__Executable_returning_Attribute), sacCase.UsesExecutableReturningAttribute.GetHandle());
|
||||
return ih;
|
||||
}
|
||||
|
||||
public EvaluateBooleanExpressionMethod CreateEvaluateBooleanExpressionMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, IInstanceWrapper sourceWorkData, BooleanOperator booleanOperator, IInstanceWrapper compareToWorkData = null)
|
||||
public EvaluateBooleanExpressionMethod CreateEvaluateBooleanExpressionMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, IInstanceReference sourceWorkData, BooleanOperator booleanOperator, IInstanceReference compareToWorkData = null)
|
||||
{
|
||||
return CreateEvaluateBooleanExpressionMethod(forClassInstance, verb, name, accessModifier, isStatic, returnsAttribute, sourceWorkData.Handle, booleanOperator, compareToWorkData?.Handle);
|
||||
return CreateEvaluateBooleanExpressionMethod(forClassInstance, verb, name, accessModifier, isStatic, returnsAttribute, sourceWorkData.GetHandle(), booleanOperator, compareToWorkData?.GetHandle());
|
||||
}
|
||||
|
||||
public EvaluateBooleanExpressionMethod CreateEvaluateBooleanExpressionMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, InstanceHandle sourceWorkData, BooleanOperator booleanOperator, InstanceHandle? compareToWorkData)
|
||||
@ -321,7 +329,7 @@ public class OmsMethodBuilder
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.EvaluateBooleanExpressionMethod), forClassInstance, verb, name, accessModifier, isStatic);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Evaluate_Boolean_Expression_Method__returns__Boolean_Attribute), returnsAttribute);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Evaluate_Boolean_Expression_Method__has_source__Executable_returning_Work_Data), sourceWorkData);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Evaluate_Boolean_Expression_Method__uses__Boolean_Operator), booleanOperator.Handle);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Evaluate_Boolean_Expression_Method__uses__Boolean_Operator), booleanOperator.GetHandle());
|
||||
if (compareToWorkData.HasValue)
|
||||
{
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Evaluate_Boolean_Expression_Method__has_target__Executable_returning_Work_Data), compareToWorkData.Value);
|
||||
@ -353,13 +361,13 @@ public class OmsMethodBuilder
|
||||
{
|
||||
Oms.AssignRelationship(method, r_Control_Transaction_Method__processes__Element, processesElement);
|
||||
}
|
||||
Oms.AssignRelationship(method, r_Control_Transaction_Method__uses__Build_Response_Method_Binding, usesBuildResponseMethodBinding.Handle);
|
||||
Oms.AssignRelationship(method, r_Control_Transaction_Method__uses__Build_Response_Method_Binding, usesBuildResponseMethodBinding.GetHandle());
|
||||
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);
|
||||
Oms.AssignRelationship(method.GetHandle(), Oms.GetInstance(KnownRelationshipGuids.Conditional_Select_Attribute_Method__has__Conditional_Select_Attribute_Case), ihCase);
|
||||
}
|
||||
}
|
||||
12
mocha-dotnet/src/lib/Mocha.Core/Oop/Class.cs
Normal file
12
mocha-dotnet/src/lib/Mocha.Core/Oop/Class.cs
Normal file
@ -0,0 +1,12 @@
|
||||
using System;
|
||||
|
||||
namespace Mocha.Core.Oop;
|
||||
|
||||
public class Class : ConcreteInstanceWrapper
|
||||
{
|
||||
public Class(InstanceHandle h) : base(h)
|
||||
{
|
||||
|
||||
}
|
||||
public override Guid ClassId => KnownInstanceGuids.Classes.Class;
|
||||
}
|
||||
@ -19,7 +19,6 @@ namespace Mocha.Core.Oop;
|
||||
|
||||
public abstract class ConcreteInstanceWrapper : InstanceWrapper
|
||||
{
|
||||
|
||||
private InstanceHandle TheHandle { get; }
|
||||
internal ConcreteInstanceWrapper(InstanceHandle handle)
|
||||
{
|
||||
@ -60,9 +59,29 @@ public abstract class ConcreteInstanceWrapper : InstanceWrapper
|
||||
}
|
||||
return null;
|
||||
}
|
||||
internal static T? Wrap<T>(Oms oms, InstanceHandle methodInstance) where T : ConcreteInstanceWrapper
|
||||
{
|
||||
ConcreteInstanceWrapper? cc = Wrap(oms, methodInstance);
|
||||
if (cc is T)
|
||||
{
|
||||
return (T)cc;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return TheHandle.ToString();
|
||||
}
|
||||
|
||||
protected virtual void UpdateInternal(Oms oms) { }
|
||||
|
||||
/// <summary>
|
||||
/// Updates the details in this language binding object to match the values in the OMS.
|
||||
/// </summary>
|
||||
/// <param name="oms"></param>
|
||||
internal void Update(Oms oms)
|
||||
{
|
||||
UpdateInternal(oms);
|
||||
}
|
||||
}
|
||||
@ -19,11 +19,11 @@ namespace Mocha.Core.Oop;
|
||||
|
||||
public abstract class ConditionGroup
|
||||
{
|
||||
public IInstanceWrapper[] TrueConditions { get; }
|
||||
public IInstanceWrapper[] FalseConditions { get; }
|
||||
public IInstanceReference[] TrueConditions { get; }
|
||||
public IInstanceReference[] FalseConditions { get; }
|
||||
public bool UseAnyCondition { get; set; } = false;
|
||||
|
||||
public ConditionGroup(IInstanceWrapper[] trueConditions, IInstanceWrapper[] falseConditions, bool useAnyCondition)
|
||||
public ConditionGroup(IInstanceReference[] trueConditions, IInstanceReference[] falseConditions, bool useAnyCondition)
|
||||
{
|
||||
TrueConditions = trueConditions;
|
||||
FalseConditions = falseConditions;
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
|
||||
namespace Mocha.Core.Oop;
|
||||
|
||||
public interface IExecutableReturningAttribute : IInstanceWrapper
|
||||
public interface IExecutableReturningAttribute : IInstanceReference
|
||||
{
|
||||
|
||||
}
|
||||
@ -17,7 +17,7 @@
|
||||
|
||||
namespace Mocha.Core.Oop;
|
||||
|
||||
public interface IExecutableReturningElement : IInstanceWrapper
|
||||
public interface IExecutableReturningElement : IInstanceReference
|
||||
{
|
||||
|
||||
}
|
||||
@ -17,7 +17,7 @@
|
||||
|
||||
namespace Mocha.Core.Oop;
|
||||
|
||||
public interface IExecutableReturningInstanceSet : IInstanceWrapper
|
||||
public interface IExecutableReturningInstanceSet : IInstanceReference
|
||||
{
|
||||
|
||||
}
|
||||
@ -17,13 +17,19 @@
|
||||
|
||||
namespace Mocha.Core.Oop;
|
||||
|
||||
public interface IInstanceWrapper
|
||||
public abstract class InstanceWrapper : IInstanceReference
|
||||
{
|
||||
InstanceHandle Handle { get; }
|
||||
public virtual Guid ClassId { get; }
|
||||
protected abstract InstanceHandle GetHandleInternal();
|
||||
|
||||
public InstanceHandle GetHandle()
|
||||
{
|
||||
return GetHandleInternal();
|
||||
}
|
||||
}
|
||||
public static class InstanceWrapperArrayExtensions
|
||||
{
|
||||
public static InstanceHandle[] ToInstanceHandleArray(this IInstanceWrapper[] z)
|
||||
public static InstanceHandle[] ToInstanceHandleArray(this IInstanceReference[] z)
|
||||
{
|
||||
if (z == null)
|
||||
{
|
||||
@ -33,7 +39,7 @@ public static class InstanceWrapperArrayExtensions
|
||||
InstanceHandle[] array = new InstanceHandle[z.Length];
|
||||
for (int i = 0; i < z.Length; i++)
|
||||
{
|
||||
array[i] = z[i].Handle;
|
||||
array[i] = z[i].GetHandle();
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
@ -1,47 +0,0 @@
|
||||
// Copyright (C) 2024 Michael Becker <alcexhim@gmail.com>
|
||||
//
|
||||
// This file is part of Mocha.NET.
|
||||
//
|
||||
// Mocha.NET is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Mocha.NET is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Mocha.NET. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
namespace Mocha.Core.Oop;
|
||||
|
||||
public abstract class InstanceWrapper : IInstanceWrapper
|
||||
{
|
||||
public abstract Guid ClassId { get; }
|
||||
|
||||
private InstanceHandle _Handle = InstanceHandle.Empty;
|
||||
protected abstract InstanceHandle GetHandleInternal();
|
||||
|
||||
public InstanceHandle Handle
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_Handle == InstanceHandle.Empty)
|
||||
{
|
||||
_Handle = GetHandleInternal();
|
||||
}
|
||||
return _Handle;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool Equals(object? obj)
|
||||
{
|
||||
if (obj is InstanceWrapper)
|
||||
{
|
||||
return Handle.Equals(((InstanceWrapper)obj).Handle);
|
||||
}
|
||||
return base.Equals(obj);
|
||||
}
|
||||
}
|
||||
@ -46,7 +46,7 @@ public abstract class Method : ConcreteInstanceWrapper
|
||||
}
|
||||
else if (kvp.Value is InstanceWrapper)
|
||||
{
|
||||
assignsFromWorkData = ((InstanceWrapper)kvp.Value).Handle;
|
||||
assignsFromWorkData = ((InstanceWrapper)kvp.Value).GetHandle();
|
||||
}
|
||||
|
||||
oms.AssignRelationship(parm, r_Parameter_Assignment__assigns_to__Work_Data, assignsToParm);
|
||||
@ -54,7 +54,7 @@ public abstract class Method : ConcreteInstanceWrapper
|
||||
parms.Add(parm);
|
||||
}
|
||||
|
||||
oms.AssignRelationship(mb.Handle, r_Method_Binding__has__Parameter_Assignment, parms.ToArray());
|
||||
oms.AssignRelationship(mb.GetHandle(), r_Method_Binding__has__Parameter_Assignment, parms.ToArray());
|
||||
}
|
||||
}
|
||||
}
|
||||
12
mocha-dotnet/src/lib/Mocha.Core/Oop/Relationship.cs
Normal file
12
mocha-dotnet/src/lib/Mocha.Core/Oop/Relationship.cs
Normal file
@ -0,0 +1,12 @@
|
||||
using System;
|
||||
|
||||
namespace Mocha.Core.Oop;
|
||||
|
||||
public class Relationship : ConcreteInstanceWrapper
|
||||
{
|
||||
public Relationship(InstanceHandle handle) : base(handle)
|
||||
{
|
||||
}
|
||||
|
||||
public override Guid ClassId => KnownInstanceGuids.Classes.Relationship;
|
||||
}
|
||||
@ -1,34 +0,0 @@
|
||||
// Copyright (C) 2024 Michael Becker <alcexhim@gmail.com>
|
||||
//
|
||||
// This file is part of Mocha.NET.
|
||||
//
|
||||
// Mocha.NET is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Mocha.NET is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Mocha.NET. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Mocha.Core
|
||||
{
|
||||
public class Relationship
|
||||
{
|
||||
public Relationship(InstanceHandle sourceInstance, InstanceHandle relationshipInstance)
|
||||
{
|
||||
SourceInstance = sourceInstance;
|
||||
RelationshipInstance = relationshipInstance;
|
||||
}
|
||||
|
||||
public InstanceHandle SourceInstance { get; }
|
||||
public InstanceHandle RelationshipInstance { get; }
|
||||
}
|
||||
}
|
||||
@ -3,6 +3,7 @@ using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using Microsoft.VisualBasic;
|
||||
using Mocha.Core;
|
||||
using Mocha.Core.Oop;
|
||||
using Mocha.Zq.Expressions;
|
||||
using Mocha.Zq.Methods;
|
||||
|
||||
@ -32,7 +33,7 @@ public class ZqIntegrator
|
||||
{
|
||||
if (obj is ZqClass zql)
|
||||
{
|
||||
InstanceHandle ih = OMS.CreateClass(zql.Name);
|
||||
Class ih = OMS.CreateClass(zql.Name);
|
||||
if (zql.InstanceKey != InstanceKey.Empty)
|
||||
{
|
||||
if (zql.InstanceKey.ClassIndex == 1)
|
||||
@ -80,14 +81,14 @@ public class ZqIntegrator
|
||||
}
|
||||
}
|
||||
|
||||
OMS.MethodBuilder.CreateGetSpecifiedInstancesMethod(ih, null, meth.Name, ws, list.ToArray());
|
||||
OMS.MethodBuilder.CreateGetSpecifiedInstancesMethod(ih.GetHandle(), null, meth.Name, ws, list.ToArray());
|
||||
}
|
||||
else if (gsi.ReturnValue is ZqVariableReference)
|
||||
{
|
||||
object r = ResolveVariable(ih, ((ZqVariableReference)gsi.ReturnValue).Name);
|
||||
if (r is InstanceHandle ihret)
|
||||
{
|
||||
OMS.MethodBuilder.CreateGetSpecifiedInstancesMethod(ih, null, meth.Name, ws, ihret);
|
||||
OMS.MethodBuilder.CreateGetSpecifiedInstancesMethod(ih.GetHandle(), null, meth.Name, ws, ihret);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -97,7 +98,7 @@ public class ZqIntegrator
|
||||
return null;
|
||||
}
|
||||
|
||||
private object ResolveVariable(InstanceHandle parentClassInstance, string name)
|
||||
private object ResolveVariable(Class parentClassInstance, string name)
|
||||
{
|
||||
InstanceHandle ihret = OMS.GetInstanceByName(parentClassInstance, name);
|
||||
if (ihret != InstanceHandle.Empty)
|
||||
|
||||
@ -1,11 +1,12 @@
|
||||
using System;
|
||||
using Mocha.Core.Oop;
|
||||
using Newtonsoft.Json.Serialization;
|
||||
|
||||
namespace Mocha.Core.Tests;
|
||||
|
||||
public class DerivedInstanceTests : OmsTestsBase
|
||||
{
|
||||
InstanceHandle TEST_CLASS_DERIVED;
|
||||
Class TEST_CLASS_DERIVED;
|
||||
protected override void AfterSetup()
|
||||
{
|
||||
base.AfterSetup();
|
||||
|
||||
@ -15,10 +15,6 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Mocha.NET. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
using Mocha.Core.OmsImplementations.Mini;
|
||||
|
||||
namespace Mocha.Core.Tests;
|
||||
|
||||
[TestFixture]
|
||||
|
||||
@ -15,10 +15,6 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Mocha.NET. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
using System.Runtime.CompilerServices;
|
||||
using Mocha.Core.OmsImplementations;
|
||||
using Mocha.Core.OmsImplementations.Mini;
|
||||
|
||||
namespace Mocha.Core.Tests;
|
||||
|
||||
[TestFixture]
|
||||
|
||||
@ -1,9 +1,3 @@
|
||||
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Mocha.Core.OmsImplementations.Mini;
|
||||
using Mocha.Core.Oop;
|
||||
using Mocha.Core.Oop.Methods;
|
||||
|
||||
namespace Mocha.Core.Tests;
|
||||
|
||||
public class CalculateDateMethodTests : MethodTestsBase
|
||||
|
||||
@ -41,13 +41,13 @@ public class EvaluateBooleanExpressionMethodTests : MethodTestsBase
|
||||
Assert.That(pclass, Is.EqualTo(Oms.GetInstance(KnownInstanceGuids.MethodClasses.GetRelationshipMethod)));
|
||||
|
||||
|
||||
EvaluateBooleanExpressionMethod Method__is__Conditional_Select_Attribute_Method = methodBuilder.CreateEvaluateBooleanExpressionMethod(c_Method, "is", "SAC", AccessModifier.Public, false, Oms.GetInstance(KnownAttributeGuids.Boolean.MethodIsOfTypeSpecified), Instance__get__Parent_Class_rsmb.Handle, RelationalOperator.InSelectionList, Oms.GetInstance(KnownInstanceGuids.MethodClasses.ConditionalSelectAttributeMethod));
|
||||
EvaluateBooleanExpressionMethod Method__is__Conditional_Select_Attribute_Method = methodBuilder.CreateEvaluateBooleanExpressionMethod(c_Method, "is", "SAC", AccessModifier.Public, false, Oms.GetInstance(KnownAttributeGuids.Boolean.MethodIsOfTypeSpecified), Instance__get__Parent_Class_rsmb.GetHandle(), RelationalOperator.InSelectionList, Oms.GetInstance(KnownInstanceGuids.MethodClasses.ConditionalSelectAttributeMethod));
|
||||
ReturnAttributeMethodBinding Method__is__Conditional_Select_Attribute_Method_ramb = Method__is__Conditional_Select_Attribute_Method.CreateMethodBinding(Oms);
|
||||
|
||||
EvaluateBooleanExpressionMethod Method__is__Get_Relationship_Method = methodBuilder.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));
|
||||
EvaluateBooleanExpressionMethod Method__is__Get_Relationship_Method = methodBuilder.CreateEvaluateBooleanExpressionMethod(c_Method, "is", "GR", AccessModifier.Public, false, Oms.GetInstance(KnownAttributeGuids.Boolean.MethodIsOfTypeSpecified), Instance__get__Parent_Class_rsmb.GetHandle(), RelationalOperator.InSelectionList, Oms.GetInstance(KnownInstanceGuids.MethodClasses.GetRelationshipMethod));
|
||||
ReturnAttributeMethodBinding Method__is__Get_Relationship_Method_ramb = Method__is__Get_Relationship_Method.CreateMethodBinding(Oms);
|
||||
|
||||
context.SetWorkData(Oms.GetInstance(KnownInstanceGuids.Classes.Method), Instance__get__Parent_Class.Handle);
|
||||
context.SetWorkData(Oms.GetInstance(KnownInstanceGuids.Classes.Method), Instance__get__Parent_Class.GetHandle());
|
||||
|
||||
InstanceHandle workData = Oms.Execute(context, Method__is__Conditional_Select_Attribute_Method_ramb);
|
||||
object? value = context.GetWorkData(workData);
|
||||
@ -74,13 +74,13 @@ public class EvaluateBooleanExpressionMethodTests : MethodTestsBase
|
||||
InstanceHandle pclass = (InstanceHandle) context.GetWorkData(wsRet);
|
||||
Assert.That(pclass, Is.EqualTo(Oms.GetInstance(KnownInstanceGuids.MethodClasses.GetRelationshipMethod)));
|
||||
|
||||
EvaluateBooleanExpressionMethod Method__is__Conditional_Select_Attribute_Method = methodBuilder.CreateEvaluateBooleanExpressionMethod(c_Method, "is", "SAC", AccessModifier.Public, false, Oms.GetInstance(KnownAttributeGuids.Boolean.MethodIsOfTypeSpecified), Instance__get__Parent_Class_rsmb.Handle, RelationalOperator.InSelectionList, Oms.GetInstance(KnownInstanceGuids.MethodClasses.ConditionalSelectAttributeMethod));
|
||||
EvaluateBooleanExpressionMethod Method__is__Conditional_Select_Attribute_Method = methodBuilder.CreateEvaluateBooleanExpressionMethod(c_Method, "is", "SAC", AccessModifier.Public, false, Oms.GetInstance(KnownAttributeGuids.Boolean.MethodIsOfTypeSpecified), Instance__get__Parent_Class_rsmb.GetHandle(), RelationalOperator.InSelectionList, Oms.GetInstance(KnownInstanceGuids.MethodClasses.ConditionalSelectAttributeMethod));
|
||||
ReturnAttributeMethodBinding Method__is__Conditional_Select_Attribute_Method_ramb = Method__is__Conditional_Select_Attribute_Method.CreateMethodBinding(Oms);
|
||||
|
||||
EvaluateBooleanExpressionMethod Method__is__Get_Relationship_Method = methodBuilder.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));
|
||||
EvaluateBooleanExpressionMethod Method__is__Get_Relationship_Method = methodBuilder.CreateEvaluateBooleanExpressionMethod(c_Method, "is", "GR", AccessModifier.Public, false, Oms.GetInstance(KnownAttributeGuids.Boolean.MethodIsOfTypeSpecified), Instance__get__Parent_Class_rsmb.GetHandle(), RelationalOperator.InSelectionList, Oms.GetInstance(KnownInstanceGuids.MethodClasses.GetRelationshipMethod));
|
||||
ReturnAttributeMethodBinding Method__is__Get_Relationship_Method_ramb = Method__is__Get_Relationship_Method.CreateMethodBinding(Oms);
|
||||
|
||||
context.SetWorkData(Oms.GetInstance(KnownInstanceGuids.Classes.Method), Instance__get__Parent_Class.Handle);
|
||||
context.SetWorkData(Oms.GetInstance(KnownInstanceGuids.Classes.Method), Instance__get__Parent_Class.GetHandle());
|
||||
|
||||
InstanceHandle workData = Oms.Execute(context, Method__is__Get_Relationship_Method_ramb);
|
||||
object? value = context.GetWorkData(workData);
|
||||
|
||||
@ -24,7 +24,7 @@ public class GetReferencedAttributeTests : MethodTestsBase
|
||||
{
|
||||
protected InstanceHandle c_Nurse, c_Patient;
|
||||
protected InstanceHandle a_Name, a_Acuity;
|
||||
protected InstanceHandle r_Nurse__has__Patient, r_Patient__for__Nurse;
|
||||
protected Relationship r_Nurse__has__Patient, r_Patient__for__Nurse;
|
||||
|
||||
protected override void AfterSetup()
|
||||
{
|
||||
|
||||
@ -150,7 +150,7 @@ public class GetRelationshipTests : MethodTestsBase
|
||||
object? oih = context.GetWorkData(ihResult);
|
||||
if (Oms.TryGetSingularInstance(oih, out InstanceHandle ih))
|
||||
{
|
||||
InstanceHandle ihRealParent = Oms.GetParentClass(sac.Handle);
|
||||
InstanceHandle ihRealParent = Oms.GetParentClass(sac);
|
||||
Assert.That(ih, Is.EqualTo(ihRealParent));
|
||||
}
|
||||
else
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using Mocha.Core.Oop;
|
||||
using Mocha.Core.Oop.Methods;
|
||||
|
||||
namespace Mocha.Core.Tests.MethodTests;
|
||||
|
||||
@ -12,9 +13,9 @@ public class MethodBindingTests : MethodTestsBase
|
||||
InstanceHandle c_MethodBinding = Oms.GetInstance(KnownInstanceGuids.Classes.MethodBinding);
|
||||
|
||||
WorkSet ws_1 = Oms.CreateWorkSet("Test Work Set 1");
|
||||
MethodReturningInstanceSet dummy = mb.CreateGetSpecifiedInstancesMethod(c_TestClass, "get", "Test Class", ws_1, new InstanceHandle[] { c_TestClass });
|
||||
MethodReturningInstanceSet dummy = mb.CreateGetSpecifiedInstancesMethod(c_TestClass.GetHandle(), "get", "Test Class", ws_1, new InstanceHandle[] { c_TestClass.GetHandle() });
|
||||
|
||||
InstanceHandle handle = mb.CreateReturnInstanceSetMethodBinding(dummy).Handle;
|
||||
InstanceHandle handle = mb.CreateReturnInstanceSetMethodBinding(dummy).GetHandle();
|
||||
Assert.That(Oms.IsInstanceOf(handle, c_MethodBinding));
|
||||
}
|
||||
[Test]
|
||||
@ -24,9 +25,9 @@ public class MethodBindingTests : MethodTestsBase
|
||||
InstanceHandle c_MethodBinding = Oms.GetInstance(KnownInstanceGuids.Classes.MethodBinding);
|
||||
InstanceHandle a_Text = Oms.GetInstance(KnownAttributeGuids.Text.Value);
|
||||
|
||||
MethodReturningAttribute dummy = mb.CreateGetAttributeMethod(c_TestClass, "get", "Test Attribute", a_Text);
|
||||
MethodReturningAttribute dummy = mb.CreateGetAttributeMethod(c_TestClass.GetHandle(), "get", "Test Attribute", a_Text);
|
||||
|
||||
InstanceHandle handle = mb.CreateReturnAttributeMethodBinding(dummy).Handle;
|
||||
InstanceHandle handle = mb.CreateReturnAttributeMethodBinding(dummy).GetHandle();
|
||||
Assert.That(Oms.IsInstanceOf(handle, c_MethodBinding));
|
||||
}
|
||||
[Test]
|
||||
@ -51,9 +52,9 @@ public class MethodBindingTests : MethodTestsBase
|
||||
InstanceHandle c_MethodBinding = Oms.GetInstance(KnownInstanceGuids.Classes.MethodBinding);
|
||||
InstanceHandle a_Text = Oms.GetInstance(KnownAttributeGuids.Text.Value);
|
||||
|
||||
MethodBuildingResponse dummy = mb.CreateBuildUIResponseMethod(c_TestClass, "get", "Test Attribute", AccessModifier.Public, false, InstanceHandle.Empty);
|
||||
MethodBuildingResponse dummy = mb.CreateBuildUIResponseMethod(c_TestClass.GetHandle(), "get", "Test Attribute", AccessModifier.Public, false, InstanceHandle.Empty);
|
||||
|
||||
InstanceHandle handle = mb.CreateBuildResponseMethodBinding(dummy).Handle;
|
||||
InstanceHandle handle = mb.CreateBuildResponseMethodBinding(dummy).GetHandle();
|
||||
Assert.That(Oms.IsInstanceOf(handle, c_MethodBinding));
|
||||
}
|
||||
[Test]
|
||||
@ -105,20 +106,20 @@ public class MethodBindingTests : MethodTestsBase
|
||||
[Test]
|
||||
public void Method_Binding__uses_super__Return_Instance_Set_Method_Binding()
|
||||
{
|
||||
InstanceHandle c_OMS = Oms.GetInstance(KnownInstanceGuids.Classes.OMS);
|
||||
Class c_OMS = Oms.GetInstance<Class>(KnownInstanceGuids.Classes.OMS);
|
||||
InstanceHandle i_OMS = Oms.CreateInstanceOf(c_OMS);
|
||||
InstanceHandle i_OMS2 = Oms.CreateInstanceOf(c_OMS);
|
||||
|
||||
WorkSet ws = Oms.CreateWorkSet("Singleton OMS");
|
||||
|
||||
Oop.Methods.GetSpecifiedInstancesMethod m1 = Oms.MethodBuilder.CreateGetSpecifiedInstancesMethod(c_OMS, "get", "Singleton", ws, new InstanceHandle[] { i_OMS });
|
||||
GetSpecifiedInstancesMethod m1 = Oms.MethodBuilder.CreateGetSpecifiedInstancesMethod(c_OMS.GetHandle(), "get", "Singleton", ws, new InstanceHandle[] { i_OMS });
|
||||
ReturnInstanceSetMethodBinding rsmb1 = m1.CreateMethodBinding(Oms);
|
||||
|
||||
Oop.Methods.GetSpecifiedInstancesMethod m2 = Oms.MethodBuilder.CreateGetSpecifiedInstancesMethod(c_OMS, "get", "Singleton 2", ws, new InstanceHandle[] { i_OMS2 });
|
||||
GetSpecifiedInstancesMethod m2 = Oms.MethodBuilder.CreateGetSpecifiedInstancesMethod(c_OMS.GetHandle(), "get", "Singleton 2", ws, new InstanceHandle[] { i_OMS2 });
|
||||
ReturnInstanceSetMethodBinding rsmb2 = m2.CreateMethodBinding(Oms);
|
||||
|
||||
ReturnInstanceSetMethodBinding rsmb3 = m2.CreateMethodBinding(Oms);
|
||||
Oms.AssignRelationship(rsmb3.Handle, Oms.GetInstance(KnownRelationshipGuids.Method_Binding__uses_super__Return_Instance_Set_Method_Binding), rsmb1.Handle);
|
||||
Oms.AssignRelationship(rsmb3, Oms.GetInstance<Relationship>(KnownRelationshipGuids.Method_Binding__uses_super__Return_Instance_Set_Method_Binding), rsmb1);
|
||||
|
||||
OmsContext context = Oms.CreateContext();
|
||||
InstanceHandle valWS = Oms.Execute(context, rsmb3);
|
||||
|
||||
@ -37,7 +37,7 @@ public class SelectFromInstanceSetMethodTests : MethodTestsBase
|
||||
OmsMethodBuilder methodBuilder = new OmsMethodBuilder(Oms);
|
||||
GetAttributeMethod get_Order = methodBuilder.CreateGetAttributeMethod(c_AccessModifier, "get", "Order", a_Order);
|
||||
|
||||
SelectFromInstanceSetMethod m_Access_Modifier__get__Most_Restrictive_from_Set = methodBuilder.CreateSelectFromInstanceSetMethod(c_AccessModifier, "get", "Most Restrictive from Set", AccessModifier.Public, true, ws_Access_Modifier__Singular, ws_Access_Modifier__Nonsingular, null, Oms.GetInstance(KnownInstanceGuids.SelectionFunctions.Minimum), get_Order.Handle);
|
||||
SelectFromInstanceSetMethod m_Access_Modifier__get__Most_Restrictive_from_Set = methodBuilder.CreateSelectFromInstanceSetMethod(c_AccessModifier, "get", "Most Restrictive from Set", AccessModifier.Public, true, ws_Access_Modifier__Singular, ws_Access_Modifier__Nonsingular, null, Oms.GetInstance(KnownInstanceGuids.SelectionFunctions.Minimum), get_Order.GetHandle());
|
||||
|
||||
if (m_Access_Modifier__get__Most_Restrictive_from_Set != null)
|
||||
{
|
||||
@ -56,7 +56,7 @@ public class SelectFromInstanceSetMethodTests : MethodTestsBase
|
||||
object? value = context.GetWorkData(workData);
|
||||
|
||||
Assert.That(value is InstanceHandle);
|
||||
Assert.That((InstanceHandle?)value, Is.EqualTo(AccessModifier.Private.Handle));
|
||||
Assert.That((InstanceHandle?)value, Is.EqualTo(AccessModifier.Private.GetHandle()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -15,11 +15,7 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Mocha.NET. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Security.Principal;
|
||||
using Mocha.Core.OmsImplementations.Mini;
|
||||
using Mocha.Core.Oop;
|
||||
using Mocha.Core.Oop.Methods;
|
||||
|
||||
namespace Mocha.Core.Tests;
|
||||
|
||||
@ -30,18 +26,18 @@ public abstract class MethodTestsBase : OmsTestsBase
|
||||
Guid gid_r_Test_Class__has_multiple__Test_Class_2 = new Guid("{a5b67aad-e46f-4673-b339-77417396b2fe}");
|
||||
Guid gid_r_Test_Class_2__multiple_for__Test_Class = new Guid("{2864dfd9-0313-4801-96bf-b9be99ea172d}");
|
||||
|
||||
protected InstanceHandle c_TestClass, c_TestClass2;
|
||||
protected InstanceHandle r_Test_Class__has__Test_Class_2, r_Test_Class_2__for__Test_Class;
|
||||
protected InstanceHandle r_Test_Class__has_multiple__Test_Class_2, r_Test_Class_2__multiple_for__Test_Class;
|
||||
protected Class c_TestClass, c_TestClass2;
|
||||
protected Relationship r_Test_Class__has__Test_Class_2, r_Test_Class_2__for__Test_Class;
|
||||
protected Relationship r_Test_Class__has_multiple__Test_Class_2, r_Test_Class_2__multiple_for__Test_Class;
|
||||
|
||||
protected override void AfterSetup()
|
||||
{
|
||||
base.AfterSetup();
|
||||
|
||||
c_TestClass = Oms.GetInstance(TEST_CLASS_GUID);
|
||||
c_TestClass2 = Oms.GetInstance(TEST_CLASS2_GUID);
|
||||
c_TestClass = Oms.GetInstance<Class>(TEST_CLASS_GUID);
|
||||
c_TestClass2 = Oms.GetInstance<Class>(TEST_CLASS2_GUID);
|
||||
|
||||
r_Test_Class__has__Test_Class_2 = Oms.CreateRelationship(c_TestClass, "has", c_TestClass2, gid_r_Test_Class__has__Test_Class_2, true, "for", gid_r_Test_Class_2__for__Test_Class, out r_Test_Class_2__for__Test_Class);
|
||||
r_Test_Class__has_multiple__Test_Class_2 = Oms.CreateRelationship(c_TestClass, "has multiple", c_TestClass2, gid_r_Test_Class__has_multiple__Test_Class_2, false, "multiple for", gid_r_Test_Class_2__multiple_for__Test_Class, out r_Test_Class_2__multiple_for__Test_Class);
|
||||
r_Test_Class__has__Test_Class_2 = Oms.CreateRelationship(c_TestClass.GetHandle(), "has", c_TestClass2.GetHandle(), gid_r_Test_Class__has__Test_Class_2, true, "for", gid_r_Test_Class_2__for__Test_Class, out r_Test_Class_2__for__Test_Class);
|
||||
r_Test_Class__has_multiple__Test_Class_2 = Oms.CreateRelationship(c_TestClass.GetHandle(), "has multiple", c_TestClass2.GetHandle(), gid_r_Test_Class__has_multiple__Test_Class_2, false, "multiple for", gid_r_Test_Class_2__multiple_for__Test_Class, out r_Test_Class_2__multiple_for__Test_Class);
|
||||
}
|
||||
}
|
||||
@ -15,7 +15,7 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Mocha.NET. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
using Mocha.Core.OmsImplementations.Mini;
|
||||
using Mocha.Core.Oop;
|
||||
|
||||
namespace Mocha.Core.Tests;
|
||||
|
||||
@ -70,8 +70,8 @@ public abstract class OmsTestsBase
|
||||
InstanceHandle irTestNumericAttribute = Oms.CreateInstanceOf(Oms.GetInstance(KnownInstanceGuids.Classes.NumericAttribute), TEST_ATTR_NUM_GUID);
|
||||
Assert.That(irTestNumericAttribute, Is.Not.EqualTo(InstanceHandle.Empty));
|
||||
|
||||
InstanceHandle irTestRelationship = Oms.CreateRelationship(irTestClass, "has", irTestClass2, TEST_REL_GUID, true, "for", TEST_REL2_GUID);
|
||||
Assert.That(irTestRelationship, Is.Not.EqualTo(InstanceHandle.Empty));
|
||||
Relationship? irTestRelationship = Oms.CreateRelationship(irTestClass, "has", irTestClass2, TEST_REL_GUID, true, "for", TEST_REL2_GUID);
|
||||
Assert.That(irTestRelationship, Is.Not.Null);
|
||||
|
||||
AfterSetup();
|
||||
}
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
// along with Mocha.NET. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
using Mocha.Core.OmsImplementations.Mini;
|
||||
using Mocha.Core.Oop;
|
||||
|
||||
namespace Mocha.Core.Tests;
|
||||
|
||||
@ -27,10 +27,10 @@ public class RelationshipTests : OmsTestsBase
|
||||
protected readonly Guid TEST_REL5_GUID = new Guid("{b80995cf-6a2d-44c2-9c93-ebb80c9be802}");
|
||||
protected readonly Guid TEST_REL6_GUID = new Guid("{f5f53839-b47c-42e4-944e-e8fa0bfa9779}");
|
||||
|
||||
private InstanceHandle c_TestClass, c_TestClass2;
|
||||
private Class c_TestClass, c_TestClass2;
|
||||
private InstanceHandle c_TestClassInstance;
|
||||
private InstanceHandle c_TestClass2Instance1, c_TestClass2Instance2;
|
||||
private InstanceHandle r_Test_Class__has_single__Test_Class_2, r_Test_Class__has_multiple__Test_Class_2, r_Test_Class_2__single_for__Test_Class;
|
||||
private Relationship r_Test_Class__has_single__Test_Class_2, r_Test_Class__has_multiple__Test_Class_2, r_Test_Class_2__single_for__Test_Class;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
@ -45,7 +45,7 @@ public class RelationshipTests : OmsTestsBase
|
||||
c_TestClass2Instance2 = Oms.CreateInstanceOf(c_TestClass2);
|
||||
|
||||
r_Test_Class__has_single__Test_Class_2 = Oms.CreateRelationship(c_TestClass, "has single", c_TestClass2, TEST_REL3_GUID, true, "single for", TEST_REL4_GUID);
|
||||
r_Test_Class_2__single_for__Test_Class = Oms.GetInstance(TEST_REL4_GUID);
|
||||
r_Test_Class_2__single_for__Test_Class = Oms.GetInstance<Relationship>(TEST_REL4_GUID);
|
||||
|
||||
r_Test_Class__has_multiple__Test_Class_2 = Oms.CreateRelationship(c_TestClass, "has multiple", c_TestClass2, TEST_REL5_GUID, false, "multiple for", TEST_REL6_GUID);
|
||||
}
|
||||
|
||||
@ -16,12 +16,14 @@
|
||||
// along with Mocha.NET. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
using Mocha.Core.Oop;
|
||||
|
||||
namespace Mocha.Core.Tests.SampleDatabases;
|
||||
|
||||
public class MovieRentalTests : OmsTestsBase
|
||||
{
|
||||
private InstanceHandle c_MovieRental, c_Movie, c_MovieRating;
|
||||
private InstanceHandle r_Movie_Rental__has__Movie, r_Movie__has__Movie_Rating;
|
||||
private Class c_MovieRental, c_Movie, c_MovieRating;
|
||||
private Relationship r_Movie_Rental__has__Movie, r_Movie__has__Movie_Rating;
|
||||
|
||||
private Guid g_c_Movie = new Guid("{da1cf074-d7be-44a2-95fc-4a31621a85d2}");
|
||||
private Guid g_c_MovieRating = new Guid("{1f84afec-a9fb-42ff-a66e-7ba231c3fee3}");
|
||||
|
||||
@ -16,8 +16,6 @@
|
||||
// along with Mocha.NET. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
using System.Xml.Serialization;
|
||||
using Mocha.Core.OmsImplementations.Mini;
|
||||
using Mocha.Core.Oop;
|
||||
|
||||
namespace Mocha.Core.Tests;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user