A map of synonyms, keys and values are phrases. @lucene.experimental
 public AnalyzerAnonymousInnerClassHelper9(TestSynonymMapFilter outerInstance, SynonymMap map)
 {
     this.outerInstance = outerInstance;
       this.map = map;
 }
	  /// <param name="input"> input tokenstream </param>
	  /// <param name="synonyms"> synonym map </param>
	  /// <param name="ignoreCase"> case-folds input for matching with <seealso cref="Character#toLowerCase(int)"/>.
	  ///                   Note, if you set this to true, its your responsibility to lowercase
	  ///                   the input entries when you create the <seealso cref="SynonymMap"/> </param>
	  public SynonymFilter(TokenStream input, SynonymMap synonyms, bool ignoreCase) : base(input)
	  {
		this.synonyms = synonyms;
		this.ignoreCase = ignoreCase;
		this.fst = synonyms.fst;
		if (fst == null)
		{
		  throw new System.ArgumentException("fst must be non-null");
		}
		this.fstReader = fst.BytesReader;

		// Must be 1+ so that when roll buffer is at full
		// lookahead we can distinguish this full buffer from
		// the empty buffer:
		rollBufferSize = 1 + synonyms.maxHorizontalContext;

		futureInputs = new PendingInput[rollBufferSize];
		futureOutputs = new PendingOutputs[rollBufferSize];
		for (int pos = 0;pos < rollBufferSize;pos++)
		{
		  futureInputs[pos] = new PendingInput();
		  futureOutputs[pos] = new PendingOutputs();
		}

		//System.out.println("FSTFilt maxH=" + synonyms.maxHorizontalContext);

		scratchArc = new FST.Arc<>();
	  }
 public AnalyzerAnonymousInnerClassHelper4(TestSynonymMapFilter outerInstance, SynonymMap map, bool ignoreCase)
 {
     this.outerInstance = outerInstance;
       this.map = map;
       this.ignoreCase = ignoreCase;
 }
 public AnalyzerAnonymousInnerClassHelper2(TestSolrSynonymParser outerInstance, SynonymMap map)
 {
     this.outerInstance = outerInstance;
       this.map = map;
 }