private Status createStatusInLine(Reason reason, String expected) { return new Status( reason, path, currentPhysicalHeadLine, currentRecordNumber, cellBeginPositions.position(), expected, lineBuffer.toString()); }
private void seekBuffer() throws CsvFormatException { if (cellBeginPositions.remaining() < 2) { throw new CsvFormatException(new Status( Reason.TOO_SHORT_RECORD, path, currentPhysicalHeadLine, currentRecordNumber, cellBeginPositions.position() + 1, "more cells", "no more cells"), null); } lineBuffer.limit(cellBeginPositions.get(cellBeginPositions.position() + 1)); lineBuffer.position(cellBeginPositions.get()); }
@Override public void endRecord() throws CsvFormatException, IOException { if (cellBeginPositions.remaining() > 1) { seekBuffer(); throw new CsvFormatException(new Status( Reason.TOO_LONG_RECORD, path, currentPhysicalHeadLine, currentRecordNumber, cellBeginPositions.position(), CHAR_END_OF_RECORD, lineBuffer.toString()), null); } }
private Status createStatusInDecode(Reason reason, String expected, String actual) { assert reason != null; return new Status( reason, path, currentPhysicalLine, currentRecordNumber, cellBeginPositions.limit(), expected, actual); }