public IFieldMapper Parse(JobParser parser, ParseState state) { var tableName = state.Require <string>("Name"); var inline = state.TryGet("Inline", false); var fieldState = state.Clone(); var affix = state.TryGet("AffixNames", true); if (affix) { tableName = state.AffixName(tableName); } else { fieldState = fieldState.ClearAffix(); } var fieldPrefix = state.TryGet("Prefix", ""); return(new FieldMapperSet(tableName, inline, fieldState.SelectMany("Fields").Select(parser.ParseFieldMapper), state.AffixName, fieldNamePrefix: fieldPrefix) { Key = state.TryGet("Key", false) }); }