org.apache.pivot.serialization
Class CSVSerializer

java.lang.Object
  extended by org.apache.pivot.serialization.CSVSerializer
All Implemented Interfaces:
Serializer<List<?>>

public class CSVSerializer
extends Object
implements Serializer<List<?>>

Implementation of the Serializer interface that reads data from and writes data to a comma-separated value (CSV) file.

TODO Add "firstLineContainsKeys" flag.


Nested Class Summary
 class CSVSerializer.KeySequence
          Class representing the serializers key sequence.
 class CSVSerializer.StreamIterator
          Allows a caller to retrieve the contents of a CSV stream iteratively.
 
Field Summary
static int BUFFER_SIZE
           
static String DEFAULT_CHARSET_NAME
           
static String MIME_TYPE
           
 
Constructor Summary
CSVSerializer()
           
CSVSerializer(Charset charset)
           
 
Method Summary
 Charset getCharset()
           
 Class<?> getItemClass()
          Returns the item class that will be instantiated by the serializer during a read operation.
 CSVSerializer.KeySequence getKeys()
          Returns a sequence representing the fields that will be read or written by this serializer.
 String getMIMEType(List<?> objects)
          Returns the MIME type of the data read and written by this serializer.
 CSVSerializer.StreamIterator getStreamIterator(InputStream inputStream)
          Reads values from a comma-separated value stream.
 CSVSerializer.StreamIterator getStreamIterator(Reader reader)
          Reads values from a comma-separated value stream.
 boolean isVerbose()
          Returns the serializer's verbosity flag.
 List<?> readObject(InputStream inputStream)
          Reads values from a comma-separated value stream.
 List<?> readObject(Reader reader)
          Reads values from a comma-separated value stream.
 void setItemClass(Class<?> itemClass)
          Sets the item class that will be instantiated by the serializer during a read operation.
 void setVerbose(boolean verbose)
          Sets the serializer's verbosity flag.
 void writeObject(List<?> items, OutputStream outputStream)
          Writes values to a comma-separated value stream.
 void writeObject(List<?> items, Writer writer)
          Writes values to a comma-separated value stream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_CHARSET_NAME

public static final String DEFAULT_CHARSET_NAME
See Also:
Constant Field Values

MIME_TYPE

public static final String MIME_TYPE
See Also:
Constant Field Values

BUFFER_SIZE

public static final int BUFFER_SIZE
See Also:
Constant Field Values
Constructor Detail

CSVSerializer

public CSVSerializer()

CSVSerializer

public CSVSerializer(Charset charset)
Method Detail

getCharset

public Charset getCharset()

getKeys

public CSVSerializer.KeySequence getKeys()
Returns a sequence representing the fields that will be read or written by this serializer.


getItemClass

public Class<?> getItemClass()
Returns the item class that will be instantiated by the serializer during a read operation.


setItemClass

public void setItemClass(Class<?> itemClass)
Sets the item class that will be instantiated by the serializer during a read operation. The class must implement the Dictionary interface.


isVerbose

public boolean isVerbose()
Returns the serializer's verbosity flag.


setVerbose

public void setVerbose(boolean verbose)
Sets the serializer's verbosity flag. When verbosity is enabled, all data read or written will be echoed to the console.

Parameters:
verbose -

readObject

public List<?> readObject(InputStream inputStream)
                   throws IOException,
                          SerializationException
Reads values from a comma-separated value stream.

Specified by:
readObject in interface Serializer<List<?>>
Parameters:
inputStream - The input stream from which data will be read.
Returns:
The deserialized object.
Throws:
IOException
SerializationException
See Also:
readObject(Reader)

readObject

public List<?> readObject(Reader reader)
                   throws IOException,
                          SerializationException
Reads values from a comma-separated value stream.

Parameters:
reader - The reader from which data will be read.
Returns:
A list containing the data read from the CSV file. The list items are instances of Dictionary populated by mapping columns in the CSV file to keys in the key sequence.
Throws:
IOException
SerializationException

getStreamIterator

public CSVSerializer.StreamIterator getStreamIterator(InputStream inputStream)
                                               throws IOException
Reads values from a comma-separated value stream.

Parameters:
inputStream - The input stream from which data will be read.
Throws:
IOException
See Also:
getStreamIterator(Reader)

getStreamIterator

public CSVSerializer.StreamIterator getStreamIterator(Reader reader)
                                               throws IOException
Reads values from a comma-separated value stream.

Parameters:
reader - The reader from which data will be read.
Returns:
A stream iterator on the data read from the CSV file. The list items are instances of Dictionary populated by mapping columns in the CSV file to keys in the key sequence.
Throws:
IOException

writeObject

public void writeObject(List<?> items,
                        OutputStream outputStream)
                 throws IOException,
                        SerializationException
Writes values to a comma-separated value stream.

Specified by:
writeObject in interface Serializer<List<?>>
Parameters:
items -
outputStream - The output stream to which data will be written.
Throws:
IOException
SerializationException
See Also:
writeObject(List, Writer)

writeObject

public void writeObject(List<?> items,
                        Writer writer)
                 throws IOException
Writes values to a comma-separated value stream.

Parameters:
items - A list containing the data to write to the CSV file. List items must be instances of Dictionary. The dictionary values will be written out in the order specified by the key sequence.
writer - The writer to which data will be written.
Throws:
IOException

getMIMEType

public String getMIMEType(List<?> objects)
Description copied from interface: Serializer
Returns the MIME type of the data read and written by this serializer.

Specified by:
getMIMEType in interface Serializer<List<?>>
Parameters:
objects - If provided, allows the serializer to attach parameters to the returned MIME type containing more detailed information about the data. If null, the base MIME type is returned.