org.jplate.tabular.csv.parser.impl.defaults
Class DefaultRfc4180CsvParser<B extends CsvBuilderIfc<?>>

java.lang.Object
  extended by org.jplate.foundation.parser.javacc.impl.AbstractJavaccParser<B>
      extended by org.jplate.tabular.csv.parser.impl.defaults.DefaultRfc4180CsvParser<B>
All Implemented Interfaces:
JavaccParserIfc<B>, JPlateParserIfc<B>, CsvParserIfc<B>, DefaultRfc4180CsvParserConstants, TabularParserIfc<B>

public final class DefaultRfc4180CsvParser<B extends CsvBuilderIfc<?>>
extends AbstractJavaccParser<B>
implements CsvParserIfc<B>, DefaultRfc4180CsvParserConstants

This CSV parser strictly adheres to RFC 4180 Please note: This class is not thread-safe.

An example of CSV data follows:

The following are some examples on how to use this class. Assume some implemention of CsvBuilderIfc exists.

Modifications:
    $Date: 2008-12-02 12:32:45 -0500 (Tue, 02 Dec 2008) $
    $Revision: 479 $
    $Author: sfloess $
    $HeadURL: https://jplate.svn.sourceforge.net/svnroot/jplate/trunk/src/dev/javacc/org/jplate/tabular/csv/parser/impl/defaults/DefaultRfc4180CsvParser.jj $
    


Field Summary
private  org.apache.commons.logging.Log _log
          Used for logging.
private  java.util.Vector jj_expentries
           
private  int[] jj_expentry
           
private  int jj_gen
           
(package private)  SimpleCharStream jj_input_stream
           
private  int jj_kind
           
private  int[] jj_la1
           
private static int[] jj_la1_0
           
 Token jj_nt
           
private  int jj_ntk
           
 Token token
           
 DefaultRfc4180CsvParserTokenManager token_source
           
 
Fields inherited from interface org.jplate.tabular.csv.parser.impl.defaults.DefaultRfc4180CsvParserConstants
CR, DEFAULT, DELIMITER, DOUBLE_QUOTE, EOF, EOL, LF, NON_QUOTED_FIELD, QUOTED_FIELD, TEXT, tokenImage, TWO_DOUBLE_QUOTES
 
Fields inherited from interface org.jplate.foundation.parser.javacc.JavaccParserIfc
BUILDER_IS_NULL_MSG, FILE_DOES_NOT_EXIST_MSG, FILE_IS_NULL_MSG, INPUT_STREAM_IS_NULL_MSG, READER_IS_NULL_MSG, STRING_IS_EMPTY_MSG
 
Constructor Summary
DefaultRfc4180CsvParser()
          Default constructor.
DefaultRfc4180CsvParser(DefaultRfc4180CsvParserTokenManager tm)
           
DefaultRfc4180CsvParser(java.io.InputStream stream)
           
DefaultRfc4180CsvParser(java.io.InputStream stream, java.lang.String encoding)
           
DefaultRfc4180CsvParser(java.io.Reader stream)
           
 
Method Summary
 void disable_tracing()
           
 void enable_tracing()
           
 ParseException generateParseException()
           
 Token getNextToken()
           
 Token getToken(int index)
           
private  Token jj_consume_token(int kind)
           
private static void jj_la1_0()
           
private  int jj_ntk()
           
protected  void parse(B builder)
          Is called by self to start parsing.
 void parseField(B builder, int maxFields, int fieldCount)
          Parses either a quoted or non-quoted field.
 void ReInit(DefaultRfc4180CsvParserTokenManager tm)
           
 void ReInit(java.io.InputStream stream)
          JavaCC will generate this method so it is not needed to be implemented.
 void ReInit(java.io.InputStream stream, java.lang.String encoding)
          JavaCC will generate this method so it is not needed to be implemented.
 void ReInit(java.io.Reader stream)
          JavaCC will generate this method so it is not needed to be implemented.
 
Methods inherited from class org.jplate.foundation.parser.javacc.impl.AbstractJavaccParser
parse, parse, parse, parse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jplate.foundation.parser.JPlateParserIfc
parse, parse, parse, parse
 

Field Detail

_log

private final transient org.apache.commons.logging.Log _log
Used for logging.


token_source

public DefaultRfc4180CsvParserTokenManager token_source

jj_input_stream

SimpleCharStream jj_input_stream

token

public Token token

jj_nt

public Token jj_nt

jj_ntk

private int jj_ntk

jj_gen

private int jj_gen

jj_la1

private final int[] jj_la1

jj_la1_0

private static int[] jj_la1_0

jj_expentries

private java.util.Vector jj_expentries

jj_expentry

private int[] jj_expentry

jj_kind

private int jj_kind
Constructor Detail

DefaultRfc4180CsvParser

public DefaultRfc4180CsvParser()
Default constructor.


DefaultRfc4180CsvParser

public DefaultRfc4180CsvParser(java.io.InputStream stream)

DefaultRfc4180CsvParser

public DefaultRfc4180CsvParser(java.io.InputStream stream,
                               java.lang.String encoding)

DefaultRfc4180CsvParser

public DefaultRfc4180CsvParser(java.io.Reader stream)

DefaultRfc4180CsvParser

public DefaultRfc4180CsvParser(DefaultRfc4180CsvParserTokenManager tm)
Method Detail

parse

protected final void parse(B builder)
                    throws ParseException,
                           java.lang.Exception
Description copied from class: AbstractJavaccParser
Is called by self to start parsing.

Specified by:
parse in class AbstractJavaccParser<B extends CsvBuilderIfc<?>>
Parameters:
builder - The object who can create objects from data contained in parser input stream/reader.
Throws:
java.lang.Exception - If any issue arise during parsing.
ParseException

parseField

public final void parseField(B builder,
                             int maxFields,
                             int fieldCount)
                      throws ParseException,
                             java.lang.Exception
Parses either a quoted or non-quoted field.

Parameters:
builder - The object who can build fields.
maxFields - The maximum number of fields thus far.
fieldCount - The current field count.
Throws:
FieldCountMismatchException - If the number of fields processed is greater than the maximum number of fields.
java.lang.Exception - If any problem arises parsing.
ParseException

jj_la1_0

private static void jj_la1_0()

ReInit

public void ReInit(java.io.InputStream stream)
Description copied from interface: JavaccParserIfc
JavaCC will generate this method so it is not needed to be implemented.

Specified by:
ReInit in interface JavaccParserIfc<B extends CsvBuilderIfc<?>>
Parameters:
stream - The stream from which parsing will commence.

ReInit

public void ReInit(java.io.InputStream stream,
                   java.lang.String encoding)
Description copied from interface: JavaccParserIfc
JavaCC will generate this method so it is not needed to be implemented.

Specified by:
ReInit in interface JavaccParserIfc<B extends CsvBuilderIfc<?>>
Parameters:
stream - The stream from which parsing will commence.
encoding - The character encoding to use when parsing.

ReInit

public void ReInit(java.io.Reader stream)
Description copied from interface: JavaccParserIfc
JavaCC will generate this method so it is not needed to be implemented.

Specified by:
ReInit in interface JavaccParserIfc<B extends CsvBuilderIfc<?>>
Parameters:
stream - The reader from which parsing will commence.

ReInit

public void ReInit(DefaultRfc4180CsvParserTokenManager tm)

jj_consume_token

private final Token jj_consume_token(int kind)
                              throws ParseException
Throws:
ParseException

getNextToken

public final Token getNextToken()

getToken

public final Token getToken(int index)

jj_ntk

private final int jj_ntk()

generateParseException

public ParseException generateParseException()

enable_tracing

public final void enable_tracing()

disable_tracing

public final void disable_tracing()