private void releaseBufferedToken() throws IOException { //System.out.println(" releaseBufferedToken"); BufferedOutputToken token = outputBuffer.pollFirst(); if (token.state != null) { // This is an original input token (keepOrig=true case): //System.out.println(" hasState"); restoreState(token.state); //System.out.println(" startOffset=" + offsetAtt.startOffset() + " endOffset=" + offsetAtt.endOffset()); } else { clearAttributes(); //System.out.println(" no state"); termAtt.append(token.term); // We better have a match already: assert matchStartOffset != -1; offsetAtt.setOffset(matchStartOffset, matchEndOffset); //System.out.println(" startOffset=" + matchStartOffset + " endOffset=" + matchEndOffset); typeAtt.setType(TYPE_SYNONYM); } //System.out.println(" lastNodeOut=" + lastNodeOut); //System.out.println(" term=" + termAtt); posIncrAtt.setPositionIncrement(token.startNode - lastNodeOut); lastNodeOut = token.startNode; posLenAtt.setPositionLength(token.endNode - token.startNode); }