You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ja...@apache.org on 2011/02/01 09:18:59 UTC
svn commit: r1065948 - in /commons/sandbox/csv/trunk/src:
java/org/apache/commons/csv/ExtendedBufferedReader.java
test/org/apache/commons/csv/ExtendedBufferedReaderTest.java
Author: jacopoc
Date: Tue Feb 1 08:18:59 2011
New Revision: 1065948
URL: http://svn.apache.org/viewvc?rev=1065948&view=rev
Log:
Applied patch contributed by Henri Yandell in SANDBOX-219: "ExtendedBufferedReader does too much"
Modified:
commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/ExtendedBufferedReader.java
commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/ExtendedBufferedReaderTest.java
Modified: commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/ExtendedBufferedReader.java
URL: http://svn.apache.org/viewvc/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/ExtendedBufferedReader.java?rev=1065948&r1=1065947&r2=1065948&view=diff
==============================================================================
--- commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/ExtendedBufferedReader.java (original)
+++ commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/ExtendedBufferedReader.java Tue Feb 1 08:18:59 2011
@@ -29,9 +29,6 @@ import java.io.Reader;
* In particular the reader supports a look-ahead option,
* which allows you to see the next char returned by
* next().
- * Furthermore the skip-method supports skipping until
- * (but excluding) a given char. Similar functionality
- * is supported by the reader as well.
*
*/
class ExtendedBufferedReader extends BufferedReader {
@@ -151,29 +148,6 @@ class ExtendedBufferedReader extends Buf
}
/**
- * Reads all characters up to (but not including) the given character.
- *
- * @param c the character to read up to
- * @return the string up to the character <code>c</code>
- * @throws IOException
- */
- public String readUntil(char c) throws IOException {
- if (lookaheadChar == UNDEFINED) {
- lookaheadChar = super.read();
- }
- line.clear(); // reuse
- while (lookaheadChar != c && lookaheadChar != END_OF_STREAM) {
- line.append((char) lookaheadChar);
- if (lookaheadChar == '\n') {
- lineCounter++;
- }
- lastChar = lookaheadChar;
- lookaheadChar = super.read();
- }
- return line.toString();
- }
-
- /**
* @return A String containing the contents of the line, not
* including any line-termination characters, or null
* if the end of the stream has been reached
@@ -217,60 +191,10 @@ class ExtendedBufferedReader extends Buf
}
/**
- * Skips char in the stream
- *
- * ATTENTION: invalidates the line-counter !!!!!
- *
- * @return nof skiped chars
+ * Unsupported
*/
public long skip(long n) throws IllegalArgumentException, IOException {
-
- if (lookaheadChar == UNDEFINED) {
- lookaheadChar = super.read();
- }
-
- // illegal argument
- if (n < 0) {
- throw new IllegalArgumentException("negative argument not supported");
- }
-
- // no skipping
- if (n == 0 || lookaheadChar == END_OF_STREAM) {
- return 0;
- }
-
- // skip and reread the lookahead-char
- long skiped = 0;
- if (n > 1) {
- skiped = super.skip(n - 1);
- }
- lookaheadChar = super.read();
- // fixme uh: we should check the skiped sequence for line-terminations...
- lineCounter = Integer.MIN_VALUE;
- return skiped + 1;
- }
-
- /**
- * Skips all chars in the input until (but excluding) the given char
- *
- * @param c
- * @return
- * @throws IllegalArgumentException
- * @throws IOException
- */
- public long skipUntil(char c) throws IllegalArgumentException, IOException {
- if (lookaheadChar == UNDEFINED) {
- lookaheadChar = super.read();
- }
- long counter = 0;
- while (lookaheadChar != c && lookaheadChar != END_OF_STREAM) {
- if (lookaheadChar == '\n') {
- lineCounter++;
- }
- lookaheadChar = super.read();
- counter++;
- }
- return counter;
+ throw new UnsupportedOperationException("CSV has no reason to implement this");
}
/**
@@ -291,7 +215,6 @@ class ExtendedBufferedReader extends Buf
/**
* Returns the nof line read
- * ATTENTION: the skip-method does invalidate the line-number counter
*
* @return the current-line-number (or -1)
*/
@@ -302,11 +225,12 @@ class ExtendedBufferedReader extends Buf
return -1;
}
}
+
+ /**
+ * Unsupported
+ */
public boolean markSupported() {
- /* note uh: marking is not supported, cause we cannot
- * see into the future...
- */
- return false;
+ throw new UnsupportedOperationException("CSV has no reason to implement this");
}
}
Modified: commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/ExtendedBufferedReaderTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/ExtendedBufferedReaderTest.java?rev=1065948&r1=1065947&r2=1065948&view=diff
==============================================================================
--- commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/ExtendedBufferedReaderTest.java (original)
+++ commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/ExtendedBufferedReaderTest.java Tue Feb 1 08:18:59 2011
@@ -115,10 +115,6 @@ public class ExtendedBufferedReaderTest
}
- public void testMarkSupported() {
- assertFalse(getEBR("foo").markSupported());
- }
-
public void testReadLine() throws Exception {
ExtendedBufferedReader br = getEBR("");
assertTrue(br.readLine() == null);
@@ -161,61 +157,6 @@ public class ExtendedBufferedReaderTest
assertTrue(br.readLine() == null);
}
- public void testSkip0() throws Exception {
-
- ExtendedBufferedReader br = getEBR("");
- assertEquals(0, br.skip(0));
- assertEquals(0, br.skip(1));
-
- br = getEBR("");
- assertEquals(0, br.skip(1));
-
- br = getEBR("abcdefg");
- assertEquals(0, br.skip(0));
- assertEquals('a', br.lookAhead());
- assertEquals(0, br.skip(0));
- assertEquals('a', br.lookAhead());
- assertEquals(1, br.skip(1));
- assertEquals('b', br.lookAhead());
- assertEquals('b', br.read());
- assertEquals(3, br.skip(3));
- assertEquals('f', br.lookAhead());
- assertEquals(2, br.skip(5));
- assertTrue(br.readLine() == null);
-
- br = getEBR("12345");
- assertEquals(5, br.skip(5));
- assertTrue (br.lookAhead() == ExtendedBufferedReader.END_OF_STREAM);
- }
-
- public void testSkipUntil() throws Exception {
- ExtendedBufferedReader br = getEBR("");
- assertEquals(0, br.skipUntil(';'));
- br = getEBR("ABCDEF,GHL,,MN");
- assertEquals(6, br.skipUntil(','));
- assertEquals(0, br.skipUntil(','));
- br.skip(1);
- assertEquals(3, br.skipUntil(','));
- br.skip(1);
- assertEquals(0, br.skipUntil(','));
- br.skip(1);
- assertEquals(2, br.skipUntil(','));
- }
-
- public void testReadUntil() throws Exception {
- ExtendedBufferedReader br = getEBR("");
- assertTrue(br.readUntil(';').equals(""));
- br = getEBR("ABCDEF;GHL;;MN");
- assertTrue(br.readUntil(';').equals("ABCDEF"));
- assertTrue(br.readUntil(';').length() == 0);
- br.skip(1);
- assertTrue(br.readUntil(';').equals("GHL"));
- br.skip(1);
- assertTrue(br.readUntil(';').equals(""));
- br.skip(1);
- assertTrue(br.readUntil(',').equals("MN"));
- }
-
private ExtendedBufferedReader getEBR(String s) {
return new ExtendedBufferedReader(new StringReader(s));
}