//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 (!input.incrementToken()) { return(false); } char[] termBuffer = termAtt.buffer(); int len = termAtt.length(); //TODO: Is this the right behavior or should we return false? Currently, " ", returns true, so I think this should //also return true if (len == 0) { return(true); } int start = 0; int end = 0; int endOff = 0; // eat the first characters for (start = 0; start < len && char.IsWhiteSpace(termBuffer[start]); start++) { } // eat the end characters for (end = len; end >= start && char.IsWhiteSpace(termBuffer[end - 1]); end--) { endOff++; } if (start > 0 || end < len) { if (start < end) { termAtt.copyBuffer(termBuffer, start, (end - start)); } else { termAtt.setEmpty(); } if (updateOffsets && len == offsetAtt.endOffset() - offsetAtt.startOffset()) { int newStart = offsetAtt.startOffset() + start; int newEnd = offsetAtt.endOffset() - (start < end ? endOff:0); offsetAtt.setOffset(newStart, newEnd); } } return(true); }
//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() { //System.out.println("\nS: incrToken inputSkipCount=" + inputSkipCount + " nextRead=" + nextRead + " nextWrite=" + nextWrite); while (true) { // First play back any buffered future inputs/outputs // w/o running parsing again: while (inputSkipCount != 0) { // At each position, we first output the original // token // TODO: maybe just a PendingState class, holding // both input & outputs? //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final PendingInput input = futureInputs[nextRead]; PendingInput input = futureInputs[nextRead]; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final PendingOutputs outputs = futureOutputs[nextRead]; PendingOutputs outputs = futureOutputs[nextRead]; //System.out.println(" cycle nextRead=" + nextRead + " nextWrite=" + nextWrite + " inputSkipCount="+ inputSkipCount + " input.keepOrig=" + input.keepOrig + " input.consumed=" + input.consumed + " input.state=" + input.state); if (!input.consumed && (input.keepOrig || !input.matched)) { if (input.state != null) { // Return a previously saved token (because we // had to lookahead): restoreState(input.state); } else { // Pass-through case: return token we just pulled // but didn't capture: Debug.Assert(inputSkipCount == 1, "inputSkipCount=" + inputSkipCount + " nextRead=" + nextRead); } input.Reset(); if (outputs.count > 0) { outputs.posIncr = 0; } else { nextRead = rollIncr(nextRead); inputSkipCount--; } //System.out.println(" return token=" + termAtt.toString()); return(true); } else if (outputs.upto < outputs.count) { // Still have pending outputs to replay at this // position input.Reset(); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final int posIncr = outputs.posIncr; int posIncr = outputs.posIncr; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.apache.lucene.util.CharsRef output = outputs.pullNext(); CharsRef output = outputs.pullNext(); clearAttributes(); termAtt.copyBuffer(output.chars, output.offset, output.length); typeAtt.Type = TYPE_SYNONYM; int endOffset = outputs.LastEndOffset; if (endOffset == -1) { endOffset = input.endOffset; } offsetAtt.setOffset(input.startOffset, endOffset); posIncrAtt.PositionIncrement = posIncr; posLenAtt.PositionLength = outputs.LastPosLength; if (outputs.count == 0) { // Done with the buffered input and all outputs at // this position nextRead = rollIncr(nextRead); inputSkipCount--; } //System.out.println(" return token=" + termAtt.toString()); return(true); } else { // Done with the buffered input and all outputs at // this position input.Reset(); nextRead = rollIncr(nextRead); inputSkipCount--; } } if (finished && nextRead == nextWrite) { // End case: if any output syns went beyond end of // input stream, enumerate them now: //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final PendingOutputs outputs = futureOutputs[nextRead]; PendingOutputs outputs = futureOutputs[nextRead]; if (outputs.upto < outputs.count) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final int posIncr = outputs.posIncr; int posIncr = outputs.posIncr; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.apache.lucene.util.CharsRef output = outputs.pullNext(); CharsRef output = outputs.pullNext(); futureInputs[nextRead].Reset(); if (outputs.count == 0) { nextWrite = nextRead = rollIncr(nextRead); } clearAttributes(); // Keep offset from last input token: offsetAtt.setOffset(lastStartOffset, lastEndOffset); termAtt.copyBuffer(output.chars, output.offset, output.length); typeAtt.Type = TYPE_SYNONYM; //System.out.println(" set posIncr=" + outputs.posIncr + " outputs=" + outputs); posIncrAtt.PositionIncrement = posIncr; //System.out.println(" return token=" + termAtt.toString()); return(true); } else { return(false); } } // Find new synonym matches: Parse(); } }