/// <summary>Render to string. </summary> /// <param name="writer">to render</param> /// <param name="formatter">for formatting</param> public void ToEPL(TextWriter writer, EPStatementFormatter formatter) { writer.Write(OperatorName); if (Input.IsNotEmpty()) { writer.Write("("); String delimiter = ""; foreach (DataFlowOperatorInput inputItem in Input) { writer.Write(delimiter); WriteInput(inputItem, writer); if (inputItem.OptionalAsName != null) { writer.Write(" as "); writer.Write(inputItem.OptionalAsName); } delimiter = ", "; } writer.Write(")"); } if (Output.IsNotEmpty()) { writer.Write(" -> "); String delimiter = ""; foreach (DataFlowOperatorOutput outputItem in Output) { writer.Write(delimiter); writer.Write(outputItem.StreamName); WriteTypes(outputItem.TypeInfo, writer); delimiter = ", "; } } if (Parameters.IsEmpty()) { writer.Write(" {}"); formatter.EndDataFlowOperatorDetails(writer); } else { writer.Write(" {"); formatter.BeginDataFlowOperatorDetails(writer); String delimiter = ","; int count = 0; foreach (DataFlowOperatorParameter parameter in Parameters) { parameter.ToEPL(writer); count++; if (Parameters.Count > count) { writer.Write(delimiter); formatter.EndDataFlowOperatorConfig(writer); } formatter.EndDataFlowOperatorConfig(writer); } writer.Write("}"); formatter.EndDataFlowOperatorDetails(writer); } }