refactor method binding base and assign parameter assignments
This commit is contained in:
parent
d15f7066e5
commit
2bd8ad8b0e
@ -37,33 +37,48 @@ public class OmsMethodBuilder
|
||||
c_ReturnElementMethodBinding = Oms.GetInstance(KnownInstanceGuids.Classes.ReturnElementMethodBinding);
|
||||
}
|
||||
|
||||
public ReturnAttributeMethodBinding CreateReturnAttributeMethodBinding(MethodReturningAttribute method)
|
||||
private InstanceHandle CreateMethodBindingBase(InstanceHandle parentClass, Method method, IEnumerable<KeyValuePair<InstanceHandle, InstanceHandle>>? parameterAssignments)
|
||||
{
|
||||
InstanceHandle methodBinding = Oms.CreateInstanceOf(c_ReturnAttributeMethodBinding);
|
||||
InstanceHandle methodBinding = Oms.CreateInstanceOf(parentClass);
|
||||
Oms.AssignRelationship(methodBinding, Oms.GetInstance(KnownRelationshipGuids.Method_Binding__executes__Method), method.GetHandle());
|
||||
if (parameterAssignments != null)
|
||||
{
|
||||
CreateParameterAssignments(methodBinding, parameterAssignments);
|
||||
}
|
||||
return methodBinding;
|
||||
}
|
||||
|
||||
private void CreateParameterAssignments(InstanceHandle methodBinding, IEnumerable<KeyValuePair<InstanceHandle, InstanceHandle>> parameterAssignments)
|
||||
{
|
||||
List<InstanceHandle> parmAssignments = new List<InstanceHandle>();
|
||||
foreach (KeyValuePair<InstanceHandle, InstanceHandle> kvp in parameterAssignments)
|
||||
{
|
||||
InstanceHandle parmAssignment = Oms.CreateInstanceOf(Oms.GetInstance(KnownInstanceGuids.Classes.ParameterAssignment));
|
||||
Oms.AssignRelationship(parmAssignment, Oms.GetInstance(KnownRelationshipGuids.Parameter_Assignment__assigns_to__Work_Data), kvp.Key);
|
||||
Oms.AssignRelationship(parmAssignment, Oms.GetInstance(KnownRelationshipGuids.Parameter_Assignment__assigns_from__Executable_returning_Work_Data), kvp.Value);
|
||||
parmAssignments.Add(parmAssignment);
|
||||
}
|
||||
Oms.AssignRelationship(methodBinding, Oms.GetInstance(KnownRelationshipGuids.Method_Binding__has__Parameter_Assignment), parmAssignments);
|
||||
}
|
||||
|
||||
public ReturnAttributeMethodBinding CreateReturnAttributeMethodBinding(MethodReturningAttribute method, IEnumerable<KeyValuePair<InstanceHandle, InstanceHandle>>? parameterAssignments = null)
|
||||
{
|
||||
InstanceHandle methodBinding = CreateMethodBindingBase(c_ReturnAttributeMethodBinding, method, parameterAssignments);
|
||||
return new ReturnAttributeMethodBinding(methodBinding);
|
||||
}
|
||||
public ReturnInstanceSetMethodBinding CreateReturnInstanceSetMethodBinding(MethodReturningInstanceSet method)
|
||||
public ReturnInstanceSetMethodBinding CreateReturnInstanceSetMethodBinding(MethodReturningInstanceSet method, IEnumerable<KeyValuePair<InstanceHandle, InstanceHandle>>? parameterAssignments = null)
|
||||
{
|
||||
InstanceHandle methodBinding = Oms.CreateInstanceOf(c_ReturnInstanceSetMethodBinding);
|
||||
Oms.AssignRelationship(methodBinding, Oms.GetInstance(KnownRelationshipGuids.Method_Binding__executes__Method), method.GetHandle());
|
||||
InstanceHandle methodBinding = CreateMethodBindingBase(c_ReturnInstanceSetMethodBinding, method, parameterAssignments);
|
||||
return new ReturnInstanceSetMethodBinding(methodBinding);
|
||||
}
|
||||
public ReturnElementMethodBinding CreateReturnElementMethodBinding(MethodReturningElement method)
|
||||
public ReturnElementMethodBinding CreateReturnElementMethodBinding(MethodReturningElement method, IEnumerable<KeyValuePair<InstanceHandle, InstanceHandle>>? parameterAssignments = null)
|
||||
{
|
||||
InstanceHandle methodBinding = Oms.CreateInstanceOf(c_ReturnElementMethodBinding);
|
||||
Oms.AssignRelationship(methodBinding, Oms.GetInstance(KnownRelationshipGuids.Method_Binding__executes__Method), method.GetHandle());
|
||||
InstanceHandle methodBinding = CreateMethodBindingBase(c_ReturnElementMethodBinding, method, parameterAssignments);
|
||||
return new ReturnElementMethodBinding(methodBinding);
|
||||
}
|
||||
public BuildResponseMethodBinding CreateBuildResponseMethodBinding(MethodBuildingResponse method)
|
||||
public BuildResponseMethodBinding CreateBuildResponseMethodBinding(MethodBuildingResponse method, IEnumerable<KeyValuePair<InstanceHandle, InstanceHandle>>? parameterAssignments = null)
|
||||
{
|
||||
if (c_BuildResponseMethodBinding == InstanceHandle.Empty)
|
||||
{
|
||||
c_BuildResponseMethodBinding = Oms.GetInstance(KnownInstanceGuids.Classes.BuildResponseMethodBinding);
|
||||
}
|
||||
|
||||
InstanceHandle methodBinding = Oms.CreateInstanceOf(c_BuildResponseMethodBinding);
|
||||
Oms.AssignRelationship(methodBinding, Oms.GetInstance(KnownRelationshipGuids.Method_Binding__executes__Method), method.GetHandle());
|
||||
InstanceHandle methodBinding = CreateMethodBindingBase(c_BuildResponseMethodBinding, method, parameterAssignments);
|
||||
return new BuildResponseMethodBinding(methodBinding);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user