test_class.file: base/lang/src/test/java/leap/lang/csv/ExtendedBufferedReaderTest.java
test_class.identifier: ExtendedBufferedReaderTest
test_case.body: @Test
      public void testReadLine() throws Exception {
          ExtendedBufferedReader br = getBufferedReader("");
          assertNull(br.readLine());
  
          br = getBufferedReader("\n");
          assertEquals("",br.readLine());
          assertNull(br.readLine());
  
          br = getBufferedReader("foo\n\nhello");
          assertEquals(0, br.getCurrentLineNumber());
          assertEquals("foo",br.readLine());
          assertEquals(1, br.getCurrentLineNumber());
          assertEquals("",br.readLine());
          assertEquals(2, br.getCurrentLineNumber());
          assertEquals("hello",br.readLine());
          assertEquals(3, br.getCurrentLineNumber());
          assertNull(br.readLine());
          assertEquals(3, br.getCurrentLineNumber());
  
          br = getBufferedReader("foo\n\nhello");
          assertEquals('f', br.read());
          assertEquals('o', br.lookAhead());
          assertEquals("oo",br.readLine());
          assertEquals(1, br.getCurrentLineNumber());
          assertEquals('\n', br.lookAhead());
          assertEquals("",br.readLine());
          assertEquals(2, br.getCurrentLineNumber());
          assertEquals('h', br.lookAhead());
          assertEquals("hello",br.readLine());
          assertNull(br.readLine());
          assertEquals(3, br.getCurrentLineNumber());
  
  
          br = getBufferedReader("foo\rbaar\r\nfoo");
          assertEquals("foo",br.readLine());
          assertEquals('b', br.lookAhead());
          assertEquals("baar",br.readLine());
          assertEquals('f', br.lookAhead());
          assertEquals("foo",br.readLine());
          assertNull(br.readLine());
      }
test_case.class_method_signature: ExtendedBufferedReaderTest.testReadLine()
test_case.full_signature: @Test public void testReadLine()
test_case.identifier: testReadLine
test_case.invocations: getBufferedReader assertNull readLine getBufferedReader assertEquals readLine assertNull readLine getBufferedReader assertEquals getCurrentLineNumber assertEquals readLine assertEquals getCurrentLineNumber assertEquals readLine assertEquals getCurrentLineNumber assertEquals readLine assertEquals getCurrentLineNumber assertNull readLine assertEquals getCurrentLineNumber getBufferedReader assertEquals read assertEquals lookAhead assertEquals readLine assertEquals getCurrentLineNumber assertEquals lookAhead assertEquals readLine assertEquals getCurrentLineNumber assertEquals lookAhead assertEquals readLine assertNull readLine assertEquals getCurrentLineNumber getBufferedReader assertEquals readLine assertEquals lookAhead assertEquals readLine assertEquals lookAhead assertEquals readLine assertNull readLine
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testReadLine()
focal_class.declarator: lastChar = UNDEFINED
focal_class.modifier: private
focal_class.original_string: private int lastChar = UNDEFINED;
focal_class.type: int
focal_class.var_name: lastChar
focal_class.declarator: eolCounter = 0
focal_class.modifier: private
focal_class.original_string: private long eolCounter = 0;
focal_class.type: long
focal_class.var_name: eolCounter
focal_class.declarator: closed
focal_class.modifier: private
focal_class.original_string: private boolean closed;
focal_class.type: boolean
focal_class.var_name: closed
focal_class.file: base/lang/src/main/java/leap/lang/csv/ExtendedBufferedReader.java
focal_class.identifier: ExtendedBufferedReader
focal_class.class_method_signature: ExtendedBufferedReader.ExtendedBufferedReader(final Reader reader)
focal_class.full_signature:   ExtendedBufferedReader(final Reader reader)
focal_class.identifier: ExtendedBufferedReader
focal_class.parameters: (final Reader reader)
focal_class.signature:  ExtendedBufferedReader(final Reader reader)
focal_class.class_method_signature: ExtendedBufferedReader.read()
focal_class.full_signature: @Override public int read()
focal_class.identifier: read
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int read()
focal_class.class_method_signature: ExtendedBufferedReader.getLastChar()
focal_class.full_signature:  int getLastChar()
focal_class.identifier: getLastChar
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getLastChar()
focal_class.class_method_signature: ExtendedBufferedReader.read(final char[] buf, final int offset, final int length)
focal_class.full_signature: @Override public int read(final char[] buf, final int offset, final int length)
focal_class.identifier: read
focal_class.modifiers: @Override public
focal_class.parameters: (final char[] buf, final int offset, final int length)
focal_class.return: int
focal_class.signature: int read(final char[] buf, final int offset, final int length)
focal_class.class_method_signature: ExtendedBufferedReader.readLine()
focal_class.full_signature: @Override public String readLine()
focal_class.identifier: readLine
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String readLine()
focal_class.class_method_signature: ExtendedBufferedReader.lookAhead()
focal_class.full_signature:  int lookAhead()
focal_class.identifier: lookAhead
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int lookAhead()
focal_class.class_method_signature: ExtendedBufferedReader.getCurrentLineNumber()
focal_class.full_signature:  long getCurrentLineNumber()
focal_class.identifier: getCurrentLineNumber
focal_class.parameters: ()
focal_class.return: long
focal_class.signature: long getCurrentLineNumber()
focal_class.class_method_signature: ExtendedBufferedReader.isClosed()
focal_class.full_signature: public boolean isClosed()
focal_class.identifier: isClosed
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isClosed()
focal_class.class_method_signature: ExtendedBufferedReader.close()
focal_class.full_signature: @Override public void close()
focal_class.identifier: close
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void close()
focal_class.superclass: extends BufferedReader
focal_method.body: @Override
      public String readLine() throws IOException {
          final String line = super.readLine();
  
          if (line != null) {
              lastChar = LF; // needed for detecting start of line
              eolCounter++;
          } else {
              lastChar = END_OF_STREAM;
          }
  
          return line;
      }
focal_method.class_method_signature: ExtendedBufferedReader.readLine()
focal_method.full_signature: @Override public String readLine()
focal_method.identifier: readLine
focal_method.invocations: readLine
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: String
focal_method.signature: String readLine()