private ParsedScrubfuTag GetParsedTagFromTagString(string tagName, string tagOptions, int?columnArrayIndex, int lineNum) { ParsedScrubfuTag tag = null; switch (tagName.ToUpper()) { case "MA": case "MASK": tag = new MaskTag(tagOptions, columnArrayIndex); break; case "RE": case "REPLACE": tag = new ReplaceTag(tagOptions, columnArrayIndex); break; case "RA": case "RANDOM": tag = new RandomTag(tagOptions, columnArrayIndex); break; case "FZ": case "FUZZ": tag = new FuzzTag(tagOptions, columnArrayIndex); break; } if (tag != null && !tag.ValidateTag()) { LogWarning(string.Format("A potentially invalidly formatted Scrubfu tag was found while processing line {0}.", lineNum)); tag = null; } return(tag); }
private List <ParsedScrubfuTag> GetScrubfuTagsFromColumnComment(string comment, int lineNum) { List <ParsedScrubfuTag> returnTags = new List <ParsedScrubfuTag>(); List <string> tagDefinitions = GetTagSetsInComment(comment, lineNum); for (int i = 0; i < tagDefinitions.Count; i++) { string tagDefinition = tagDefinitions[i]; var tagName = tagDefinition; int?columnArrayIndex = null; var tagOptions = ""; if (tagDefinition.IndexOf(":", StringComparison.Ordinal) > -1) { tagName = tagDefinition.Substring(0, tagDefinition.IndexOf(":", StringComparison.Ordinal)); if (tagName.Contains("[") && tagName.Contains("]")) { columnArrayIndex = int.Parse(tagName.Substring(tagName.IndexOf("[", StringComparison.Ordinal) + 1, tagName.IndexOf("[", StringComparison.Ordinal) - 1)); tagName = tagName.Substring(0, tagName.IndexOf("[", StringComparison.Ordinal)); } tagOptions = tagDefinition.Substring(tagDefinition.IndexOf(":", StringComparison.Ordinal) + 1); } ParsedScrubfuTag tag = GetParsedTagFromTagString(tagName, tagOptions, columnArrayIndex, lineNum); if (tag != null) { returnTags.Add(tag); } } return(returnTags); }