public SpanReplacementEngine(IEscapeRouteConfiguration config) { _config = config; _pattern = GetPattern(config); _replacementMap = CreateReplacementMap(config); _unicodeReplacer = _config.UnicodeEscapeHandler .GetReplacement(_config.UnicodeBehavior); _unicodeSurrogateReplacer = _config.UnicodeSurrogateEscapeHandler .GetReplacement(_config.UnicodeSurrogateBehavior); }
private static HashSet <char> GetPattern(IEscapeRouteConfiguration config) { var pattern = new HashSet <char>() { config.BackspaceEscapeHandler.GetPattern(), config.BackslashEscapeHandler.GetPattern(), config.CarriageReturnEscapeHandler.GetPattern(), config.DoubleQuoteEscapeHandler.GetPattern(), config.FormFeedEscapeHandler.GetPattern(), config.NewLineEscapeHandler.GetPattern(), config.SingleQuoteEscapeHandler.GetPattern(), config.TabEscapeHandler.GetPattern(), config.UnicodeNullEscapeHandler.GetPattern() }; return(pattern); }
private static Dictionary <char, ReadOnlyMemory <char> > CreateReplacementMap(IEscapeRouteConfiguration config) { return(new Dictionary <char, ReadOnlyMemory <char> >() { { config.BackspaceEscapeHandler.GetPattern(), config.BackspaceEscapeHandler.GetReplacement(config.BackspaceBehavior) }, { config.BackslashEscapeHandler.GetPattern(), config.BackslashEscapeHandler.GetReplacement(config.BackslashBehavior) }, { config.DoubleQuoteEscapeHandler.GetPattern(), config.DoubleQuoteEscapeHandler.GetReplacement(config.DoubleQuoteBehavior) }, { config.FormFeedEscapeHandler.GetPattern(), config.FormFeedEscapeHandler.GetReplacement(config.FormFeedBehavior) }, { config.SingleQuoteEscapeHandler.GetPattern(), config.SingleQuoteEscapeHandler.GetReplacement(config.SingleQuoteBehavior) }, { config.TabEscapeHandler.GetPattern(), config.TabEscapeHandler.GetReplacement(config.TabBehavior) }, { config.NewLineEscapeHandler.GetPattern(), config.NewLineEscapeHandler.GetReplacement(config.NewLineBehavior) }, { config.CarriageReturnEscapeHandler.GetPattern(), config.CarriageReturnEscapeHandler.GetReplacement(config.CarriageReturnBehavior) }, { config.UnicodeNullEscapeHandler.GetPattern(), config.UnicodeNullEscapeHandler.GetReplacement(config.UnicodeNullBehavior) } }); }