/*::.
==================================================================================================================================
=================================================¦ Copyright © 2009 Allen Baker ¦=================================================
                                                 +------------------------------+
File:       CsvFileTemplate.java
Originator: Allen Baker (2009.03.03 17:34)
LayoutRev:  5
================================================================================================================================== */



package cosmicabyss.com.lib;

import java.io.*;
import java.util.*;
import java.net.*;



/*::
======================================================================================================================== *//**
Instances of this class represent csv files that fit the definition found in the csv column definition file named
C:/adb/pkg/java/cosmicabyss/com/lib/CsvFileTemplate.csv.

<P>
   <DL>
      <DT>
         <B>
            Example usage:
         </B>
         <DD>
            <BLOCKQUOTE>
               <PRE id="unindent">
                  no example provided
               </PRE>
            </BLOCKQUOTE>
         </DD>
      </DT>
      <DT>
         <B>
            View Source:
         </B>
         <DD>
            <A href="CsvFileTemplate.java.html">
               CsvFileTemplate.java
            </A>
         </DD>
      </DT>
      <DT>
         <B>
            Author:
         </B>
         <DD>
            <A href="mailto:sourcecode.v01@cosmicabyss.com">
               Allen Baker
            </A>
         </DD>
      </DT>
   </DL>
*//*
======================================================================================================================== */
public class CsvFileTemplate extends CsvFile
   {



   /*:.
   ==============================================================================================================
   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[  Public Classes, Constants, and Variables  ]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   ============================================================================================================== */



   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Public Inner Classes  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */
   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Public Class Constants  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */



   /*.
   ==========================================================================================
   This is the name of the csv column definition file that defines the columns in a
   CsvFileTemplate
   ------------------------------------------------------------------------------------------ */
   private static XString  cColDefsFileName = new XString("<ColDefFileName>");



   /*.
   ==========================================================================================
   Column ids. These allow the user to reference columns in the csv file without having to
   know the actual column number. This class maps these column ids to the actual column
   numbers
   ------------------------------------------------------------------------------------------ */
// <ColIds>



   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Public Class Variables  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */
   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Public Instance Constants  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */
   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Public Instance Variables  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */



   /*:.
   ==============================================================================================================
   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[  Protected Classes, Constants, and Variables  ]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   ============================================================================================================== */



   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Protected Inner Classes  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */
   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Protected Class Constants  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */
   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Protected Class Variables  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */
   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Protected Instance Constants  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */
   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Protected Instance Variables  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */



   /*:.
   ==============================================================================================================
   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[  Private Classes, Constants, and Variables  ]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   ============================================================================================================== */



   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Private Inner Classes  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */
   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Private Class Constants  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */



   /*.
   ==========================================================================================
   CLASS_NAME:
      The name of this class
   DFLT_LINE_LEN:
      The default line length for word wrapping
   ------------------------------------------------------------------------------------------ */
   private static final XString  CLASS_NAME    = new XString(CsvFileTemplate.class.getName());
   private static final int      DFLT_LINE_LEN = ConsoleMessage.defaultLineLength();



   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Private Class Variables  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */



   /*.
   ==========================================================================================
   cOut : console output.
   ------------------------------------------------------------------------------------------ */
   private static ConsoleStream  cOut = ConsoleStream.getSingleton();



   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Private Instance Constants  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */
   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Private Instance Variables  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */



   /*:.
   ==============================================================================================================
   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[  Private Class Initialization  ]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   ============================================================================================================== */



   static
      {
      /*.
      ==========================================================================================
      Make sure all the class constants and variables are initialized the first time the JVM
      loads this class code and before anything else in this class is accessed
      ------------------------------------------------------------------------------------------ */
      initializeClassConstantsAndVariables();
      }



   /*:.
   ==============================================================================================================
   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[  Private Methods  ]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   ============================================================================================================== */



   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Private Constructors  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */
   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Private Instance Methods  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */



   /*:                                    
   ====================================================================================================
   [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
   ==================================================================================================== *//**
   This method initializes all the instance constants and variables. The intent of this method is to
   encapsulate all the common instance initializations in one place that can be called from all the
   constructors.

   <P><B>Implementation: </B><A HREF="CsvFileTemplate.java.html#000">View source</A>

   @return
      True if the initialization succeeded, flase otherwise.
   *//*
   ---------------------------------------------------------------------------------------------------- */
   private boolean initializeInstanceConstantsAndVariables() throws Exception
      {
      boolean  successCode = true;

      if (successCode)
         {
         }
      return successCode;
      }



   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Private Class Methods  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */



   /*:                                    
   ====================================================================================================
   [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
   ==================================================================================================== *//**
   This method initializes all the class constants and variables

   <P><B>Implementation: </B><A HREF="CsvFileTemplate.java.html#001">View source</A>

   *//*
   ---------------------------------------------------------------------------------------------------- */
   private static void initializeClassConstantsAndVariables()
      {
      }



   /*:.
   ==============================================================================================================
   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[  Protected Methods  ]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   ============================================================================================================== */



   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Protected Constructors  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */
   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Protected Instance Methods  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */
   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Protected Class Methods  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */



   /*:.
   ==============================================================================================================
   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[  Public Methods  ]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   ============================================================================================================== */



   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Public Constructors  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */



   /*:                                    
   ====================================================================================================
   [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
   ==================================================================================================== *//**
   This method creates an instance of the CsvFileTemplate class.

   <P><B>Implementation: </B><A HREF="CsvFileTemplate.java.html#002">View source</A>

   @param
      pFile is an XFile that this object will process as an CsvFileTemplate
   *//*
   ---------------------------------------------------------------------------------------------------- */
   public CsvFileTemplate(XFile pFile) throws Exception
      {
      super(pFile,cColDefsFileName);
      initializeInstanceConstantsAndVariables();
      }



   /*:                                    
   ====================================================================================================
   [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
   ==================================================================================================== *//**
   This method creates an instance of the CsvFileTemplate class.

   <P><B>Implementation: </B><A HREF="CsvFileTemplate.java.html#003">View source</A>

   @param
      pFile is an TextFile that this object will process as an CsvFileTemplate
   *//*
   ---------------------------------------------------------------------------------------------------- */
   public CsvFileTemplate(TextFile pFile) throws Exception
      {
      super(pFile,cColDefsFileName);
      initializeInstanceConstantsAndVariables();
      }



   /*:                                    
   ====================================================================================================
   [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
   ==================================================================================================== *//**
   This method creates an instance of the CsvFileTemplate class.

   <P><B>Implementation: </B><A HREF="CsvFileTemplate.java.html#004">View source</A>

   @param
      pFile is an CsvFileTemplate that this object will process as an CsvFileTemplate
   *//*
   ---------------------------------------------------------------------------------------------------- */
   public CsvFileTemplate(CsvFileTemplate pFile) throws Exception
      {
      super(pFile,cColDefsFileName);
      initializeInstanceConstantsAndVariables();
      }



   /*:                                    
   ====================================================================================================
   [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
   ==================================================================================================== *//**
   This method creates an instance of the CsvFileTemplate class.

   <P><B>Implementation: </B><A HREF="CsvFileTemplate.java.html#005">View source</A>

   @param
      Uri is a URI that this object will process as an CsvFileTemplate
   *//*
   ---------------------------------------------------------------------------------------------------- */
   public CsvFileTemplate(URI uri) throws Exception
      {
      super(uri,cColDefsFileName);
      initializeInstanceConstantsAndVariables();
      }



   /*:                                    
   ====================================================================================================
   [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
   ==================================================================================================== *//**
   This method creates an instance of the CsvFileTemplate class.

   <P><B>Implementation: </B><A HREF="CsvFileTemplate.java.html#006">View source</A>

   @param
      pFile is an File that this object will process as an CsvFileTemplate
   *//*
   ---------------------------------------------------------------------------------------------------- */
   public CsvFileTemplate(File pFile) throws Exception
      {
      super(pFile,cColDefsFileName);
      initializeInstanceConstantsAndVariables();
      }



   /*:                                    
   ====================================================================================================
   [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
   ==================================================================================================== *//**
   This method creates an instance of the CsvFileTemplate class.

   <P><B>Implementation: </B><A HREF="CsvFileTemplate.java.html#007">View source</A>

   @param
      Parent is a File that this object will combine with child and process as an CsvFileTemplate
   @param
      Child is a child pathname string that this object will combine with parent and process as an
      CsvFileTemplate
   *//*
   ---------------------------------------------------------------------------------------------------- */
   public <Type> CsvFileTemplate(File parent, Type child) throws Exception
      {
      super(parent,child,cColDefsFileName);
      initializeInstanceConstantsAndVariables();
      }



   /*:                                    
   ====================================================================================================
   [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
   ==================================================================================================== *//**
   This method creates an instance of the CsvFileTemplate class.

   <P><B>Implementation: </B><A HREF="CsvFileTemplate.java.html#008">View source</A>

   @param
      Pathname is a pathname string that this object will process as an CsvFileTemplate
   *//*
   ---------------------------------------------------------------------------------------------------- */
   public <Type> CsvFileTemplate(Type pathname) throws Exception
      {
      super(pathname,cColDefsFileName);
      initializeInstanceConstantsAndVariables();
      }



   /*:                                    
   ====================================================================================================
   [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
   ==================================================================================================== *//**
   This method creates an instance of the CsvFileTemplate class.

   <P><B>Implementation: </B><A HREF="CsvFileTemplate.java.html#009">View source</A>

   @param
      Parent is a pathname string that this object will combine with child and process as an
      CsvFileTemplate
   @param
      Child is a child pathname string that this object will combine with parent and process as an
      CsvFileTemplate
   @param
      cColDefsFileName identifies the file containing the csv column definitions to use for
      interpreting this csv file.
   *//*
   ---------------------------------------------------------------------------------------------------- */
   public <Type1,Type2> CsvFileTemplate(Type1 parent, Type2 child) throws Exception
      {
      super(parent,child,cColDefsFileName);
      initializeInstanceConstantsAndVariables();
      }



   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Public Instance Methods  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */
// <SetValColMethods>



   /*:                                    
   ====================================================================================================
   [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
   ==================================================================================================== *//**
   This method sets the quote character for this object.

   <P><B>Implementation: </B><A HREF="CsvFileTemplate.java.html#010">View source</A>

   @return
      A reference to this object

   @param
      pQuoteChar is the character to use as a quote for this object
   *//*
   ---------------------------------------------------------------------------------------------------- */
   public CsvFileTemplate setQuote(char pQuoteChar)
      {
      super.setQuote(pQuoteChar);
      return this;
      }



   /*:                                    
   ====================================================================================================
   [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
   ==================================================================================================== *//**
   This method sets the delimiter character for this object.

   <P><B>Implementation: </B><A HREF="CsvFileTemplate.java.html#011">View source</A>

   @return
      A reference to this object

   @param
      pDelimiterChar is the character to use as a delimiter for this object
   *//*
   ---------------------------------------------------------------------------------------------------- */
   public CsvFileTemplate setDelimiter(char pDelimiterChar)
      {
      super.setDelimiter(pDelimiterChar);
      return this;
      }



   /*:                                    
   ====================================================================================================
   [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
   ==================================================================================================== *//**
   This method sets the flag that determines whether or not the parseLine() method wil return the
   header line.

   <P><B>Implementation: </B><A HREF="CsvFileTemplate.java.html#012">View source</A>

   @return
      A reference to this object

   @param
      pSkipHeaderLines is the boolean value to turn on or off the skipping of header lines. If
      pSkipHeaderLines is true, then the parsedLine() will skip the header line. If false, it will not
      skip header lines.
   *//*
   ---------------------------------------------------------------------------------------------------- */
   public CsvFileTemplate setSkipHeaderLine(boolean pSkipHeaderLine)
      {
      super.setSkipHeaderLine(pSkipHeaderLine);
      return this;
      }



   /*:                                    
   ====================================================================================================
   [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
   ==================================================================================================== *//**
   This method tells this object whether to skip white space lines or not. A white space line is a line
   of the text file that contains only white space characters.<P>

   This method is a superset of setSkipBlankLines() because white space lines include blank lines.

   <P><B>Implementation: </B><A HREF="CsvFileTemplate.java.html#013">View source</A>

   @return
      A reference to this object

   @param
      pSkipWhiteSpaceLines is the boolean value to turn on or off the skipping of white space lines. If
      pSkipWhiteSpaceLines is true, then the TextReaderIterator will skip white space lines. If false,
      it will not skip white space lines.
   *//*
   ---------------------------------------------------------------------------------------------------- */
   public CsvFileTemplate setSkipWhiteSpaceLines(boolean pSkipWhiteSpaceLines)
      {
      super.setSkipWhiteSpaceLines(pSkipWhiteSpaceLines);
      return this;
      }



   /*:                                    
   ====================================================================================================
   [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
   ==================================================================================================== *//**
   This method sets the ConsoleStream for this object.

   <P><B>Implementation: </B><A HREF="CsvFileTemplate.java.html#014">View source</A>

   @return
      A reference to this object

   @param
      pConsole is a ConsoleStream through which this objects sends its output.
   *//*
   ---------------------------------------------------------------------------------------------------- */
   public CsvFileTemplate setOut(ConsoleStream pConsole)
      {
      cOut = pConsole;
      return this;
      }



   /*:                                    
   ====================================================================================================
   [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
   ==================================================================================================== *//**
   This boilerplate method is used for testing an instantiated object of this class and may include any
   code the developer chooses.

   <P><B>Implementation: </B><A HREF="CsvFileTemplate.java.html#015">View source</A>

   @return
      A reference to this object
   *//*
   ---------------------------------------------------------------------------------------------------- */
   public CsvFileTemplate test() throws Exception
      {
      cOut.titledPrintf
         (
         "\"HELLO WORLD!\"",
         "%s  %s  %s",
         "I'm an object of the", CLASS_NAME, "class, and I approved this message."
         );
      return this;
      }



   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Public Class Methods  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */
   /*:.
   ==============================================================================================================
   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<[  Main  ]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   ============================================================================================================== */



   /*:                                    
   ====================================================================================================
   [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
   ==================================================================================================== *//**
   This method allows this class file to be unit tested as a standalone application. It's the method
   that's called when the class is invoked from the command line by using the java application launcher
   - "java". Main() is not a required method, but the practice of putting one in each class and
   wrapping class test code within it allows easy unit testing of the class; and main does not need to
   be removed when testing is complete.

   <P>
      <DL>
         <DT>
            <B>
               Command line usage:
            </B>
            <DD>
               Java cosmicabyss.com.lib.CsvFileTemplate
            </DD>
         </DT>
      </DL>

   <P><B>Implementation: </B><A HREF="CsvFileTemplate.java.html#016">View source</A>

   @param
      pArgs contains the command line arguments with which this class was invoked as an application.
   *//*
   ---------------------------------------------------------------------------------------------------- */
   public static void main(String[] pArgs) throws Exception
      {
      /*.
      ==========================================================================================
      Greetings !
      ------------------------------------------------------------------------------------------ */
      cOut.banner(CLASS_NAME);
      /*.
      ==========================================================================================
      The name of the csv file (not the csv column definition file) is passed in on the command
      line
      ------------------------------------------------------------------------------------------ */
      if (pArgs.length < 1)
         {
         throw new Exception("Pass in the name of the csv file (not the csv column definition file) on the command line.");
         }
      cOut.println("running with : " + pArgs[0]);
      /*.
      ==========================================================================================
      Create an object and send its output to the ConsoleStream
      ------------------------------------------------------------------------------------------ */
      CsvFileTemplate  obj = new CsvFileTemplate(pArgs[0]);
      /*.
      ==========================================================================================
      Test code
      ------------------------------------------------------------------------------------------ */
      obj.test();
      /*.
      ==========================================================================================
      We're going to read every line (row) of data in the file and print something out about it
      but we dont want to include the header line in that process. So tell the object to skip
      over that line abd not to return the header line on the first call to retrieve a line of
      the file.
      ------------------------------------------------------------------------------------------ */
      obj.setSkipHeaderLine(true);
      /*.
      ==========================================================================================
      For every row of the file ...
      ------------------------------------------------------------------------------------------ */
      int i=0;
      while (obj.hasNext())
         {
         /*.
         ==========================================================================================
         Only do the first 3 lines
         ------------------------------------------------------------------------------------------ */
         if (i++ > 3) break;
         /*.
         ==========================================================================================
         Read the row from the file
         ------------------------------------------------------------------------------------------ */
         obj.readNext();
         /*.
         ==========================================================================================
         ------------------------------------------------------------------------------------------ */
         obj.println();
         }
      }



   }  // class CsvFileTemplate



   /*:.
   ==============================================================================================================
   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[  Notes  ]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   ============================================================================================================== */