public override IEnumerable <Row> Execute(IEnumerable <Row> rows) { foreach (var row in rows) { if (ShouldRun(row)) { foreach (var pair in Parameters) { _context.Put(pair.Value.Name, pair.Value.Value ?? row[pair.Key]); } var sw = StringWriters.GetObject(); Velocity.Evaluate(_context, sw, string.Empty, Template); var sb = sw.GetStringBuilder(); row[OutKey] = Common.ConversionMap[OutType](sb.ToString()); sb.Clear(); StringWriters.PutObject(sw); foreach (var pair in Parameters) { _context.Remove(pair.Value.Name); } } else { Skip(); } yield return(row); } }