internal static DecomposeStructNode InsertDecompositionForStructVariable(Diagram parentDiagram, LiveVariable liveStructVariable, ITypeUnificationResultFactory unificationResultFactory) { NIType variableType = liveStructVariable.Variable.Type; DecomposeStructNode decomposeStruct = TupleNodeHelpers.CreateDecomposeStructNodeWithFacades( parentDiagram, variableType); Terminal structInputTerminal = decomposeStruct.InputTerminals[0]; liveStructVariable.ConnectToTerminalAsInputAndUnifyVariables( structInputTerminal, unificationResultFactory); return(decomposeStruct); }
internal static DecomposeTupleNode InsertDecompositionForTupleVariable(Diagram parentDiagram, LiveVariable liveTupleVariable, ITypeUnificationResultFactory unificationResultFactory) { NIType variableType = liveTupleVariable.Variable.Type; DecomposeTupleNode decomposeTuple = TupleNodeHelpers.CreateDecomposeTupleNodeWithFacades( parentDiagram, variableType.GetFields().Count(), DecomposeMode.Move); Terminal tupleInputTerminal = decomposeTuple.InputTerminals[0]; liveTupleVariable.ConnectToTerminalAsInputAndUnifyVariables( tupleInputTerminal, unificationResultFactory); return(decomposeTuple); }