public IEnumerable <SyntaxNode> BuildPort(IPortModel portModel) { var connectedPort = portModel.ConnectionPortModels.FirstOrDefault(); if (connectedPort != null && connectedPort.NodeModel.State == ModelState.Enabled) { return(BuildNode(connectedPort.NodeModel, connectedPort)); } if (portModel.EmbeddedValue != null) { return(BuildNode(portModel.EmbeddedValue)); } // return default datatype value (null) if not connected var defaultValue = RoslynBuilder.GetDefault(portModel.DataType.Resolve(Stencil)); if (defaultValue == null) { return(Enumerable.Repeat(LiteralExpression(SyntaxKind.NullLiteralExpression), 1)); } else { return(Enumerable.Repeat(Constant(defaultValue, Stencil), 1)); } }
IEnumerable <SyntaxNode> BuildPortInner(IPortModel portModel, out INodeModel builtNode) { var connectedPort = portModel.ConnectionPortModels.FirstOrDefault(); if (connectedPort != null && connectedPort.NodeModel.State == ModelState.Enabled) { return(BuildNode(builtNode = connectedPort.NodeModel, connectedPort)); } // if it' s an embedded value, no point in recording its value, keep a null builtNode builtNode = null; if (portModel.EmbeddedValue != null) { return(BuildNode(portModel.EmbeddedValue)); } // return default datatype value (null) if not connected. not recorded either var defaultValue = RoslynBuilder.GetDefault(portModel.DataType.Resolve(Stencil)); return(Enumerable.Repeat(defaultValue == null ? LiteralExpression(SyntaxKind.NullLiteralExpression) : (LiteralExpressionSyntax)Constant(defaultValue, Stencil), 1)); }