// TODO: this should use inputstreams from the loader, not File! public virtual void Inform(IResourceLoader loader) { if (mapping != null) { IList <string> wlist = null; if (File.Exists(mapping)) { wlist = new List <string>(GetLines(loader, mapping)); } else { var files = SplitFileNames(mapping); wlist = new List <string>(); foreach (string file in files) { var lines = GetLines(loader, file.Trim()); wlist.AddRange(lines); } } NormalizeCharMap.Builder builder = new NormalizeCharMap.Builder(); ParseRules(wlist, builder); m_normMap = builder.Build(); if (m_normMap.map == null) { // if the inner FST is null, it means it accepts nothing (e.g. the file is empty) // so just set the whole map to null m_normMap = null; } } }
/// <summary> /// Default constructor that takes a <see cref="TextReader"/>. </summary> public MappingCharFilter(NormalizeCharMap normMap, TextReader @in) : base(@in) { //LUCENENET support to reset the reader. _input = GetBufferedReader(@in); _input.Mark(BufferedCharFilter.DEFAULT_CHAR_BUFFER_SIZE); buffer.Reset(_input); //buffer.Reset(@in); map = normMap.map; cachedRootArcs = normMap.cachedRootArcs; if (map != null) { fstReader = map.GetBytesReader(); } else { fstReader = null; } }