public List<CharsRef> stem(char word[],int length){
  if (dictionary.needsInputCleaning) {
    scratchSegment.setLength(0);
    scratchSegment.append(word,0,length);
    CharSequence cleaned=dictionary.cleanInput(scratchSegment,segment);
    scratchBuffer=ArrayUtil.grow(scratchBuffer,cleaned.length());
    length=segment.length();
    segment.getChars(0,length,scratchBuffer,0);
    word=scratchBuffer;
  }
  int caseType=caseOf(word,length);
  if (caseType == UPPER_CASE) {
    caseFoldTitle(word,length);
    caseFoldLower(titleBuffer,length);
    List<CharsRef> list=doStem(word,length,false);
    list.addAll(doStem(titleBuffer,length,true));
    list.addAll(doStem(lowerBuffer,length,true));
    return list;
  }
 else   if (caseType == TITLE_CASE) {
    caseFoldLower(word,length);
    List<CharsRef> list=doStem(word,length,false);
    list.addAll(doStem(lowerBuffer,length,true));
    return list;
  }
 else {
    return doStem(word,length,false);
  }
}

public List < CharsRef > stem ( char word [ ] , int length ) { if ( dictionary . needsInputCleaning ) { scratchSegment . setLength ( 0 ) ; scratchSegment . append ( word , 0 , length ) ; CharSequence cleaned = dictionary . cleanInput ( scratchSegment , segment ) ; scratchBuffer = ArrayUtil . grow ( scratchBuffer , cleaned . length ( ) ) ; length = segment . length ( ) ; segment . getChars ( 0 , length , scratchBuffer , 0 ) ; word = scratchBuffer ; } int caseType = caseOf ( word , length ) ; if ( caseType == UPPER_CASE ) { caseFoldTitle ( word , length ) ; caseFoldLower ( titleBuffer , length ) ; List < CharsRef > list = doStem ( word , length , false ) ; list . addAll ( doStem ( titleBuffer , length , true ) ) ; list . addAll ( doStem ( lowerBuffer , length , true ) ) ; return list ; } else if ( caseType == TITLE_CASE ) { caseFoldLower ( word , length ) ; List < CharsRef > list = doStem ( word , length , false ) ; list . addAll ( doStem ( lowerBuffer , length , true ) ) ; return list ; } else { return doStem ( word , length , false ) ; } }
find the stem ( s ) of the provided word
