public DutchAnalyzer(Version matchVersion, CharArraySet stopwords, CharArraySet stemExclusionTable, CharArrayMap <string> stemOverrideDict) { this.matchVersion = matchVersion; this.stoptable = CharArraySet.unmodifiableSet(CharArraySet.copy(matchVersion, stopwords)); this.excltable = CharArraySet.unmodifiableSet(CharArraySet.copy(matchVersion, stemExclusionTable)); if (stemOverrideDict.Empty || !matchVersion.onOrAfter(Version.LUCENE_31)) { this.stemdict = null; this.origStemdict = CharArrayMap.unmodifiableMap(CharArrayMap.copy(matchVersion, stemOverrideDict)); } else { this.origStemdict = null; // we don't need to ignore case here since we lowercase in this analyzer anyway StemmerOverrideFilter.Builder builder = new StemmerOverrideFilter.Builder(false); CharArrayMap <string> .EntryIterator iter = stemOverrideDict.entrySet().GetEnumerator(); CharsRef spare = new CharsRef(); while (iter.hasNext()) { char[] nextKey = iter.nextKey(); spare.copyChars(nextKey, 0, nextKey.Length); builder.add(spare, iter.currentValue()); } try { this.stemdict = builder.build(); } catch (IOException ex) { throw new Exception("can not build stem dict", ex); } } }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: //ORIGINAL LINE: @Override public boolean incrementToken() throws java.io.IOException public override bool incrementToken() { if (currentMatcher != -1 && nextCapture()) { Debug.Assert(state != null); clearAttributes(); restoreState(state); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final int start = matchers[currentMatcher].start(currentGroup[currentMatcher]); int start = matchers[currentMatcher].start(currentGroup[currentMatcher]); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final int end = matchers[currentMatcher].end(currentGroup[currentMatcher]); int end = matchers[currentMatcher].end(currentGroup[currentMatcher]); posAttr.PositionIncrement = 0; charTermAttr.copyBuffer(spare.chars, start, end - start); currentGroup[currentMatcher]++; return(true); } if (!input.incrementToken()) { return(false); } char[] buffer = charTermAttr.buffer(); int length = charTermAttr.length(); spare.copyChars(buffer, 0, length); state = captureState(); for (int i = 0; i < matchers.Length; i++) { matchers[i].reset(spare); currentGroup[i] = -1; } if (preserveOriginal) { currentMatcher = 0; } else if (nextCapture()) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final int start = matchers[currentMatcher].start(currentGroup[currentMatcher]); int start = matchers[currentMatcher].start(currentGroup[currentMatcher]); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final int end = matchers[currentMatcher].end(currentGroup[currentMatcher]); int end = matchers[currentMatcher].end(currentGroup[currentMatcher]); // if we start at 0 we can simply set the length and save the copy if (start == 0) { charTermAttr.Length = end; } else { charTermAttr.copyBuffer(spare.chars, start, end - start); } currentGroup[currentMatcher]++; } return(true); }