commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ebo...@apache.org
Subject svn commit: r1300659 - in /commons/proper/csv/trunk/src: main/java/org/apache/commons/csv/CSVParser.java main/java/org/apache/commons/csv/CharBuffer.java test/java/org/apache/commons/csv/CharBufferTest.java
Date Wed, 14 Mar 2012 17:42:28 GMT
Author: ebourg
Date: Wed Mar 14 17:42:28 2012
New Revision: 1300659

URL: http://svn.apache.org/viewvc?rev=1300659&view=rev
Log:
Replaced CharBuffer with StringBuilder (CSV-59)

Removed:
    commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CharBuffer.java
    commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CharBufferTest.java
Modified:
    commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java

Modified: commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java
URL: http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java?rev=1300659&r1=1300658&r2=1300659&view=diff
==============================================================================
--- commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java (original)
+++ commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java Wed Mar 14
17:42:28 2012
@@ -235,7 +235,7 @@ class CSVLexer {
     /** length of the initial token (content-)buffer */
     private static final int INITIAL_TOKEN_LENGTH = 50;
     
-    private final CharBuffer wsBuf = new CharBuffer();
+    private final StringBuilder wsBuf = new StringBuilder();
     
     private final CSVFormat format;
     
@@ -267,13 +267,13 @@ class CSVLexer {
         Type type = INVALID;
         
         /** The content buffer. */
-        CharBuffer content = new CharBuffer(INITIAL_TOKEN_LENGTH);
+        StringBuilder content = new StringBuilder(INITIAL_TOKEN_LENGTH);
         
         /** Token ready flag: indicates a valid token with content (ready for the parser).
*/
         boolean isReady;
 
         Token reset() {
-            content.clear();
+            content.setLength(0);
             type = INVALID;
             isReady = false;
             return this;
@@ -299,7 +299,7 @@ class CSVLexer {
      * @throws IOException on stream access error
      */
     Token nextToken(Token tkn) throws IOException {
-        wsBuf.clear(); // reuse
+        wsBuf.setLength(0); // reuse
 
         // get the last read char (required for empty line detection)
         int lastChar = in.readAgain();
@@ -308,7 +308,6 @@ class CSVLexer {
         /* note: unfortunately isEndOfLine may consumes a character silently.
         *       this has no effect outside of the method. so a simple workaround
         *       is to call 'readAgain' on the stream...
-        *       uh: might using objects instead of base-types (jdk1.5 autoboxing!)
         */
         int c = in.read();
         boolean eol = isEndOfLine(c);
@@ -427,12 +426,17 @@ class CSVLexer {
         }
 
         if (format.isTrailingSpacesIgnored()) {
-            tkn.content.trimTrailingWhitespace();
+            trimTrailingSpaces(tkn.content);
         }
 
         return tkn;
     }
 
+    private void trimTrailingSpaces(StringBuilder buffer) {
+        while (buffer.length() > 0 && Character.isWhitespace(buffer.charAt(buffer.length()
- 1))) {
+            buffer.setLength(buffer.length() - 1);
+        }
+    }
 
     /**
      * An encapsulated token lexer



Mime
View raw message