protected override IEnumerable <XmlPortNode> CreateItems() { var xmlPortTextElement = new XmlPortTextElement(Name, GetIndentation(), ID); xmlPortTextElement.Properties.DataType = DataType; xmlPortTextElement.Properties.MaxOccurs = MaxOccurs; xmlPortTextElement.Properties.MinOccurs = MinOccurs; xmlPortTextElement.Properties.NamespacePrefix = NamespacePrefix; xmlPortTextElement.Properties.OnAfterAssignVariable.Set(OnAfterAssignVariable); xmlPortTextElement.Properties.OnBeforePassVariable.Set(OnBeforePassVariable); xmlPortTextElement.Properties.TextType = TextType; xmlPortTextElement.Properties.Unbound = NullableBooleanFromSwitch(nameof(Unbound)); xmlPortTextElement.Properties.VariableName = VariableName; xmlPortTextElement.Properties.Width = Width; yield return(xmlPortTextElement); if (ChildNodes != null) { var variables = new List <PSVariable>() { new PSVariable("NodeIndentation", GetIndentation() + 1) }; var childNodes = ChildNodes.InvokeWithContext(null, variables).Select(c => c.BaseObject); foreach (var childNode in childNodes.OfType <XmlPortNode>()) { yield return(childNode); } } }
public static void Write(this XmlPortTextElement xmlPortTextElement, CSideWriter writer) { var relevantProperties = xmlPortTextElement.Properties.Where(p => p.HasValue); WriteDeclaration(xmlPortTextElement.ID, xmlPortTextElement.NodeName, xmlPortTextElement.IndentationLevel, "Element", "Text", relevantProperties.Any(), writer); relevantProperties.Write(PropertiesStyle.Field, writer); writer.Write(IndentationAfterLastTrigger(relevantProperties)); writer.WriteLine("}"); writer.Unindent(); writer.InnerWriter.WriteLine(); }