You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(112) |
Nov
(44) |
Dec
(49) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(14) |
Feb
(12) |
Mar
(12) |
Apr
(12) |
May
(6) |
Jun
(11) |
Jul
(10) |
Aug
(6) |
Sep
(17) |
Oct
(3) |
Nov
(22) |
Dec
|
2008 |
Jan
(3) |
Feb
(7) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(3) |
Sep
(6) |
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
(1) |
Mar
(9) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
(2) |
Dec
|
2011 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
(3) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
2012 |
Jan
(3) |
Feb
|
Mar
(2) |
Apr
(8) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <be...@us...> - 2007-06-03 21:06:38
|
Revision: 318 http://flatpack.svn.sourceforge.net/flatpack/?rev=318&view=rev Author: benoitx Date: 2007-06-03 14:06:39 -0700 (Sun, 03 Jun 2007) Log Message: ----------- now it does build! Modified Paths: -------------- trunk/common-build/project.xml trunk/flatpack/maven.xml trunk/flatpack/qalab.xml trunk/flatpack-samples/qalab.xml This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <be...@us...> - 2007-05-30 23:14:59
|
Revision: 317 http://flatpack.svn.sourceforge.net/flatpack/?rev=317&view=rev Author: benoitx Date: 2007-05-30 16:14:57 -0700 (Wed, 30 May 2007) Log Message: ----------- more name changes. Modified Paths: -------------- trunk/common-build/project.xml trunk/flatpack/project.xml trunk/flatpack/src/site/index.xml trunk/flatpack/src/site/navigation.xml trunk/flatpack-samples/project.xml trunk/flatpack-samples/src/main/java/net/sf/pzfilereader/examples/jsptableexample/pzfilereaderwebsamples/PEOPLE.pzmap.xml trunk/flatpack-samples/src/main/java/net/sf/pzfilereader/examples/jsptableexample/pzfilereaderwebsamples/WEB-INF/web.xml trunk/flatpack-samples/src/main/script/INVENTORY-Delimited.pzmap.xml trunk/flatpack-samples/src/main/script/PEOPLE-Delimited.pzmap.xml trunk/flatpack-samples/src/main/script/PEOPLE-DelimitedWithHeaderTrailer.pzmap.xml trunk/flatpack-samples/src/main/script/PEOPLE-FixedLength.pzmap.xml trunk/flatpack-samples/src/main/script/PEOPLE-FixedLengthWithHeaderTrailer.pzmap.xml trunk/flatpack-samples/src/site/index.xml trunk/flatpack-samples/src/site/navigation.xml trunk/src/site/changes.xml trunk/src/site/documentation/index.xml trunk/src/site/history.xml trunk/src/site/index.xml trunk/src/site/navigation.xml trunk/src/site/parsing.xml trunk/src/site/press/index.xml Added Paths: ----------- trunk/src/site/flatpack.dtd This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2007-05-26 15:39:51
|
Revision: 313 http://svn.sourceforge.net/pzfilereader/?rev=313&view=rev Author: zepernick Date: 2007-05-26 08:39:23 -0700 (Sat, 26 May 2007) Log Message: ----------- removed old todo comment Modified Paths: -------------- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMapParser.java Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMapParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMapParser.java 2007-05-25 11:12:17 UTC (rev 312) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMapParser.java 2007-05-26 15:39:23 UTC (rev 313) @@ -235,7 +235,6 @@ showDebug = b; } - //TODO convert to logger instead of system out private static void showDebug(final Map xmlResults) { final Iterator mapIt = xmlResults.entrySet().iterator(); while (mapIt.hasNext()) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <be...@us...> - 2007-05-25 11:12:16
|
Revision: 312 http://svn.sourceforge.net/pzfilereader/?rev=312&view=rev Author: benoitx Date: 2007-05-25 04:12:17 -0700 (Fri, 25 May 2007) Log Message: ----------- Ooops, would be better if the new classes were checked in... Modified Paths: -------------- trunk/PZFileReader/qalab.xml trunk/PZFileReaderSamples/qalab.xml Added Paths: ----------- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/PZStringUtils.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMetaData.java Modified: trunk/PZFileReader/qalab.xml =================================================================== --- trunk/PZFileReader/qalab.xml 2007-05-24 22:58:30 UTC (rev 311) +++ trunk/PZFileReader/qalab.xml 2007-05-25 11:12:17 UTC (rev 312) @@ -199,6 +199,18 @@ project="default" statvalue="36" type="cobertura-branch"/> <summaryresult date="2007-02-11" filecount="2" module="default" project="default" statvalue="2" type="pmd"/> + <summaryresult date="2007-05-24" filecount="44" module="default" + project="default" statvalue="17" type="checkstyle"/> + <summaryresult date="2007-05-24" filecount="1" module="default" + project="default" statvalue="1" type="findbugs"/> + <summaryresult date="2007-05-24" filecount="6" module="default" + project="default" statvalue="118" type="simian"/> + <summaryresult date="2007-05-24" filecount="37" module="default" + project="default" statvalue="29" type="cobertura-line"/> + <summaryresult date="2007-05-24" filecount="37" module="default" + project="default" statvalue="37" type="cobertura-branch"/> + <summaryresult date="2007-05-24" filecount="1" module="default" + project="default" statvalue="1" type="pmd"/> </summary> <file id="default-default-com_pz_reader_ordering_package.html" module="default" path="com/pz/reader/ordering/package.html" project="default"> @@ -522,6 +534,8 @@ <result date="2006-12-16" statvalue="100" type="cobertura-branch"/> <result date="2007-01-18" statvalue="100" type="cobertura-branch"/> <result date="2007-02-11" statvalue="100" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="62" type="cobertura-line"/> + <result date="2007-05-24" statvalue="100" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_DataSet.java" module="default" path="net/sf/pzfilereader/DataSet.java" project="default"> @@ -561,6 +575,10 @@ <result date="2007-01-18" statvalue="100" type="cobertura-branch"/> <result date="2007-02-11" statvalue="100" type="cobertura-line"/> <result date="2007-02-11" statvalue="100" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="1" type="checkstyle"/> + <result date="2007-05-24" statvalue="100" type="cobertura-line"/> + <result date="2007-05-24" statvalue="100" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="1" type="pmd"/> </file> <file id="default-default-net_sf_pzfilereader_LargeDataSet.java" module="default" path="net/sf/pzfilereader/LargeDataSet.java" project="default"> @@ -636,6 +654,9 @@ <result date="2007-02-11" statvalue="4" type="checkstyle"/> <result date="2007-02-11" statvalue="54" type="cobertura-line"/> <result date="2007-02-11" statvalue="64" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="6" type="checkstyle"/> + <result date="2007-05-24" statvalue="45" type="cobertura-line"/> + <result date="2007-05-24" statvalue="56" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_xml_PZMapParser.java" module="default" path="net/sf/pzfilereader/xml/PZMapParser.java" project="default"> @@ -693,6 +714,7 @@ <result date="2006-12-16" statvalue="33" type="cobertura-branch"/> <result date="2007-01-18" statvalue="45" type="cobertura-line"/> <result date="2007-02-11" statvalue="45" type="cobertura-line"/> + <result date="2007-05-24" statvalue="54" type="cobertura-line"/> </file> <file id="default-default-net_sf_pzfilereader_structure_ColumnMetaData.java" @@ -718,6 +740,8 @@ <result date="2007-01-18" statvalue="100" type="cobertura-branch"/> <result date="2007-02-11" statvalue="66" type="cobertura-line"/> <result date="2007-02-11" statvalue="100" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="66" type="cobertura-line"/> + <result date="2007-05-24" statvalue="100" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_Version.java" module="default" path="net/sf/pzfilereader/Version.java" project="default"> @@ -731,12 +755,14 @@ <result date="2006-12-16" statvalue="100" type="cobertura-branch"/> <result date="2007-01-18" statvalue="100" type="cobertura-branch"/> <result date="2007-02-11" statvalue="100" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="100" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_xml_XMLRecordElement.java" module="default" path="net/sf/pzfilereader/xml/XMLRecordElement.java" project="default"> <result date="2006-10-17" statvalue="100" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="1" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_util_PZConstants.java" module="default" @@ -750,6 +776,7 @@ <result date="2006-12-16" statvalue="100" type="cobertura-branch"/> <result date="2007-01-18" statvalue="100" type="cobertura-branch"/> <result date="2007-02-11" statvalue="100" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="100" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_AbstractDelimiterPZParser.java" @@ -777,6 +804,9 @@ <result date="2007-02-11" statvalue="3" type="checkstyle"/> <result date="2007-02-11" statvalue="56" type="cobertura-line"/> <result date="2007-02-11" statvalue="66" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="2" type="checkstyle"/> + <result date="2007-05-24" statvalue="59" type="cobertura-line"/> + <result date="2007-05-24" statvalue="68" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_DelimiterPZParser.java" @@ -797,6 +827,9 @@ <result date="2007-01-18" statvalue="75" type="cobertura-branch"/> <result date="2007-02-11" statvalue="37" type="cobertura-line"/> <result date="2007-02-11" statvalue="75" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="1" type="checkstyle"/> + <result date="2007-05-24" statvalue="42" type="cobertura-line"/> + <result date="2007-05-24" statvalue="71" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_FixedLengthPZParser.java" @@ -839,6 +872,7 @@ <result date="2007-01-18" statvalue="2" type="checkstyle"/> <result date="2007-01-18" statvalue="2" type="pmd"/> <result date="2007-02-11" statvalue="2" type="checkstyle"/> + <result date="2007-05-24" statvalue="2" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_util_FixedWidthParserUtils.java" @@ -861,6 +895,8 @@ <result date="2007-01-18" statvalue="16" type="cobertura-branch"/> <result date="2007-02-11" statvalue="30" type="cobertura-line"/> <result date="2007-02-11" statvalue="16" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="20" type="cobertura-line"/> + <result date="2007-05-24" statvalue="10" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_util_RegExParser.java" module="default" @@ -904,6 +940,8 @@ <result date="2007-01-18" statvalue="50" type="cobertura-branch"/> <result date="2007-02-11" statvalue="43" type="cobertura-line"/> <result date="2007-02-11" statvalue="50" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="76" type="cobertura-line"/> + <result date="2007-05-24" statvalue="83" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_DefaultDataSet.java" module="default" path="net/sf/pzfilereader/DefaultDataSet.java" project="default"> @@ -922,6 +960,9 @@ <result date="2007-01-18" statvalue="11" type="cobertura-branch"/> <result date="2007-02-11" statvalue="22" type="cobertura-line"/> <result date="2007-02-11" statvalue="11" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="1" type="checkstyle"/> + <result date="2007-05-24" statvalue="34" type="cobertura-line"/> + <result date="2007-05-24" statvalue="33" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_DefaultPZParserFactory.java" @@ -939,6 +980,8 @@ <result date="2007-01-18" statvalue="100" type="cobertura-branch"/> <result date="2007-02-11" statvalue="33" type="cobertura-line"/> <result date="2007-02-11" statvalue="100" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="29" type="cobertura-line"/> + <result date="2007-05-24" statvalue="100" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_PZParser.java" module="default" path="net/sf/pzfilereader/PZParser.java" project="default"> @@ -954,6 +997,8 @@ <result date="2007-01-18" statvalue="100" type="cobertura-branch"/> <result date="2007-02-11" statvalue="100" type="cobertura-line"/> <result date="2007-02-11" statvalue="100" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="100" type="cobertura-line"/> + <result date="2007-05-24" statvalue="100" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_PZParserFactory.java" module="default" path="net/sf/pzfilereader/PZParserFactory.java" project="default"> @@ -969,6 +1014,8 @@ <result date="2007-01-18" statvalue="100" type="cobertura-branch"/> <result date="2007-02-11" statvalue="100" type="cobertura-line"/> <result date="2007-02-11" statvalue="100" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="100" type="cobertura-line"/> + <result date="2007-05-24" statvalue="100" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_InitialisationException.java" @@ -980,6 +1027,7 @@ <result date="2006-12-16" statvalue="100" type="cobertura-branch"/> <result date="2007-01-18" statvalue="100" type="cobertura-branch"/> <result date="2007-02-11" statvalue="100" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="100" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_converter_package.html" @@ -1001,6 +1049,8 @@ <result date="2007-01-18" statvalue="100" type="cobertura-branch"/> <result date="2007-02-11" statvalue="100" type="cobertura-line"/> <result date="2007-02-11" statvalue="100" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="100" type="cobertura-line"/> + <result date="2007-05-24" statvalue="100" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_converter_ConvertBigDecimal.java" @@ -1015,6 +1065,8 @@ <result date="2007-01-18" statvalue="100" type="cobertura-branch"/> <result date="2007-02-11" statvalue="100" type="cobertura-line"/> <result date="2007-02-11" statvalue="100" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="100" type="cobertura-line"/> + <result date="2007-05-24" statvalue="100" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_converter_PZConvertException.java" @@ -1025,6 +1077,7 @@ <result date="2006-12-16" statvalue="100" type="cobertura-branch"/> <result date="2007-01-18" statvalue="100" type="cobertura-branch"/> <result date="2007-02-11" statvalue="100" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="100" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_brparse_package.html" module="default" path="net/sf/pzfilereader/brparse/package.html" project="default"> @@ -1066,6 +1119,8 @@ <result date="2007-01-18" statvalue="100" type="cobertura-branch"/> <result date="2007-02-11" statvalue="100" type="cobertura-line"/> <result date="2007-02-11" statvalue="100" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="100" type="cobertura-line"/> + <result date="2007-05-24" statvalue="100" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_converter_ConvertInteger.java" @@ -1079,6 +1134,8 @@ <result date="2007-01-18" statvalue="100" type="cobertura-branch"/> <result date="2007-02-11" statvalue="100" type="cobertura-line"/> <result date="2007-02-11" statvalue="100" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="100" type="cobertura-line"/> + <result date="2007-05-24" statvalue="100" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_brparse_BuffReaderPZParseFactory.java" @@ -1088,6 +1145,7 @@ <result date="2006-12-16" statvalue="100" type="cobertura-branch"/> <result date="2007-01-18" statvalue="100" type="cobertura-branch"/> <result date="2007-02-11" statvalue="100" type="cobertura-branch"/> + <result date="2007-05-24" statvalue="100" type="cobertura-branch"/> </file> <file id="default-default-net_sf_pzfilereader_brparse_BuffReaderPZDataSet.java" @@ -1101,4 +1159,18 @@ <result date="2007-01-18" statvalue="1" type="pmd"/> <result date="2007-02-11" statvalue="1" type="pmd"/> </file> + <file + id="default-default-net_sf_pzfilereader_util_PZStringUtils.java" + module="default" + path="net/sf/pzfilereader/util/PZStringUtils.java" project="default"> + <result date="2007-05-24" statvalue="3" type="checkstyle"/> + <result date="2007-05-24" statvalue="25" type="cobertura-line"/> + <result date="2007-05-24" statvalue="25" type="cobertura-branch"/> + </file> + <file id="default-default-net_sf_pzfilereader_xml_PZMetaData.java" + module="default" path="net/sf/pzfilereader/xml/PZMetaData.java" project="default"> + <result date="2007-05-24" statvalue="1" type="findbugs"/> + <result date="2007-05-24" statvalue="41" type="cobertura-line"/> + <result date="2007-05-24" statvalue="100" type="cobertura-branch"/> + </file> </qalab> Added: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/PZStringUtils.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/PZStringUtils.java (rev 0) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/PZStringUtils.java 2007-05-25 11:12:17 UTC (rev 312) @@ -0,0 +1,57 @@ +package net.sf.pzfilereader.util; + +/** + * Thanks to the Apache Commons Contributors. + * + * @author Jakarta Commons + */ +public class PZStringUtils { + /** + * <p>Checks if a String is whitespace, empty ("") or null.</p> + * + * <pre> + * PZStringUtils.isBlank(null) = true + * PZStringUtils.isBlank("") = true + * PZStringUtils.isBlank(" ") = true + * PZStringUtils.isBlank("bob") = false + * PZStringUtils.isBlank(" bob ") = false + * </pre> + * + * @param str the String to check, may be null + * @return <code>true</code> if the String is null, empty or whitespace + * @since 2.0 + */ + public static boolean isBlank(final String str) { + int strLen; + if (str == null || (strLen = str.length()) == 0) { + return true; + } + for (int i = 0; i < strLen; i++) { + if ((Character.isWhitespace(str.charAt(i)) == false)) { + return false; + } + } + return true; + } + + /** + * <p>Checks if a String is not empty (""), not null and not whitespace only.</p> + * + * <pre> + * PZStringUtils.isNotBlank(null) = false + * PZStringUtils.isNotBlank("") = false + * PZStringUtils.isNotBlank(" ") = false + * PZStringUtils.isNotBlank("bob") = true + * PZStringUtils.isNotBlank(" bob ") = true + * </pre> + * + * @param str the String to check, may be null + * @return <code>true</code> if the String is + * not empty and not null and not whitespace + * @since 2.0 + */ + public static boolean isNotBlank(final String str) { + return !PZStringUtils.isBlank(str); + } + +} Added: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMetaData.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMetaData.java (rev 0) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMetaData.java 2007-05-25 11:12:17 UTC (rev 312) @@ -0,0 +1,79 @@ +/** + * + */ +package net.sf.pzfilereader.xml; + +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import net.sf.pzfilereader.util.PZConstants; + +/** + * @author Benoit Xhenseval + * + */ +public class PZMetaData { + private List columnsNames; + private Map columnIndexMap; + private Map xmlRecordElements; + + public PZMetaData(final Map fullMapFromPZParser) { + columnsNames = (List) fullMapFromPZParser.get(PZConstants.DETAIL_ID); + columnIndexMap = (Map) fullMapFromPZParser.get(PZConstants.COL_IDX); + xmlRecordElements = fullMapFromPZParser; + } + + public PZMetaData(final List columnNames, final Map columnIndexMap) { + this.columnsNames = Collections.unmodifiableList(columnNames); + this.columnIndexMap = Collections.unmodifiableMap(columnIndexMap); + } + + PZMetaData(final List columnNames, final Map columnIndexMap, final Map xmlRecordElements) { + this.columnsNames = Collections.unmodifiableList(columnNames); + this.columnIndexMap = columnIndexMap; + this.xmlRecordElements = xmlRecordElements; + } + + public List getColumnsNames() { + return columnsNames; + } + + public Map getColumnIndexMap() { + return columnIndexMap; + } + + public void setColumnIndexMap(final Map columnIndexMap) { + this.columnIndexMap = columnIndexMap; + } + + public void setColumnsNames(final List columnsNames) { + this.columnsNames = Collections.unmodifiableList(columnsNames); + } + + public boolean isAnyRecordFormatSpecified() { + return xmlRecordElements != null && !xmlRecordElements.isEmpty(); + } + + public Iterator xmlRecordIterator() { + return xmlRecordElements.entrySet().iterator(); + } + + public List getListColumnsForRecord(final String key) { + return ((XMLRecordElement) xmlRecordElements.get(key)).getColumns(); + } + + public int getColumnIndex(final String key, final String columnName) { + int idx = -1; + if (key != null && !key.equals(PZConstants.DETAIL_ID) && !key.equals(PZConstants.COL_IDX)) { + idx = ((XMLRecordElement) getListColumnsForRecord(key)).getColumnIndex(columnName); + } else if (key == null || key.equals(PZConstants.DETAIL_ID)) { + final Integer i = (Integer) columnIndexMap.get(columnName); + if (i != null) { //happens when the col name does not exist in the mapping + idx = i.intValue(); + } + } + return idx; + } +} Modified: trunk/PZFileReaderSamples/qalab.xml =================================================================== --- trunk/PZFileReaderSamples/qalab.xml 2007-05-24 22:58:30 UTC (rev 311) +++ trunk/PZFileReaderSamples/qalab.xml 2007-05-25 11:12:17 UTC (rev 312) @@ -101,6 +101,14 @@ project="default" statvalue="92" type="simian"/> <summaryresult date="2007-02-11" filecount="10" module="default" project="default" statvalue="10" type="pmd"/> + <summaryresult date="2007-05-25" filecount="34" module="default" + project="default" statvalue="163" type="checkstyle"/> + <summaryresult date="2007-05-25" filecount="8" module="default" + project="default" statvalue="12" type="findbugs"/> + <summaryresult date="2007-05-25" filecount="6" module="default" + project="default" statvalue="92" type="simian"/> + <summaryresult date="2007-05-25" filecount="10" module="default" + project="default" statvalue="10" type="pmd"/> </summary> <file id="default-default-com_pz_reader_examples_numericsanddates_package.html" @@ -314,6 +322,7 @@ <result date="2006-12-16" statvalue="1" type="checkstyle"/> <result date="2007-01-18" statvalue="1" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_examples_largedataset_largecsvperformancetest_package.html" @@ -328,6 +337,7 @@ <result date="2006-12-16" statvalue="1" type="checkstyle"/> <result date="2007-01-18" statvalue="1" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_examples_multilinedelimitedrecord_package.html" @@ -342,6 +352,7 @@ <result date="2006-12-16" statvalue="1" type="checkstyle"/> <result date="2007-01-18" statvalue="1" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_examples_numericsanddates_package.html" @@ -356,6 +367,7 @@ <result date="2006-12-16" statvalue="1" type="checkstyle"/> <result date="2007-01-18" statvalue="1" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_examples_delimitedcolumnnamesinfile_package.html" @@ -370,6 +382,7 @@ <result date="2006-12-16" statvalue="1" type="checkstyle"/> <result date="2007-01-18" statvalue="1" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_examples_delimiteddynamiccolumns_package.html" @@ -384,6 +397,7 @@ <result date="2006-12-16" statvalue="1" type="checkstyle"/> <result date="2007-01-18" statvalue="1" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_examples_exporttoexcel_package.html" @@ -398,6 +412,7 @@ <result date="2006-12-16" statvalue="1" type="checkstyle"/> <result date="2007-01-18" statvalue="1" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_examples_largedataset_fixedlengthdynamiccolumns_package.html" @@ -412,6 +427,7 @@ <result date="2006-12-16" statvalue="1" type="checkstyle"/> <result date="2007-01-18" statvalue="1" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_examples_createsamplecsv_package.html" @@ -426,6 +442,7 @@ <result date="2006-12-16" statvalue="1" type="checkstyle"/> <result date="2007-01-18" statvalue="1" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_examples_fixedlengthdynamiccolumns_package.html" @@ -440,6 +457,7 @@ <result date="2006-12-16" statvalue="1" type="checkstyle"/> <result date="2007-01-18" statvalue="1" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_examples_largedataset_delimiteddynamiccolumns_package.html" @@ -454,6 +472,7 @@ <result date="2006-12-16" statvalue="1" type="checkstyle"/> <result date="2007-01-18" statvalue="1" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_examples_csvperformancetest_package.html" @@ -468,6 +487,7 @@ <result date="2006-12-16" statvalue="1" type="checkstyle"/> <result date="2007-01-18" statvalue="1" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_examples_lowlevelparse_package.html" @@ -482,6 +502,7 @@ <result date="2006-12-16" statvalue="1" type="checkstyle"/> <result date="2007-01-18" statvalue="1" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_examples_delimiteddynamiccolumnswitherrors_package.html" @@ -496,6 +517,7 @@ <result date="2006-12-16" statvalue="1" type="checkstyle"/> <result date="2007-01-18" statvalue="1" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_examples_fixedlengthheaderandtrailer_package.html" @@ -510,6 +532,7 @@ <result date="2006-12-16" statvalue="1" type="checkstyle"/> <result date="2007-01-18" statvalue="1" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_examples_csvheaderandtrailer_package.html" @@ -524,6 +547,7 @@ <result date="2006-12-16" statvalue="1" type="checkstyle"/> <result date="2007-01-18" statvalue="1" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_examples_Examples.java" @@ -546,6 +570,8 @@ <result date="2007-01-18" statvalue="1" type="findbugs"/> <result date="2007-02-11" statvalue="14" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="findbugs"/> + <result date="2007-05-25" statvalue="14" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="findbugs"/> </file> <file id="default-default-net_sf_pzfilereader_examples_createsamplecsv_CSVTestFileCreator.java" @@ -578,6 +604,9 @@ <result date="2007-02-11" statvalue="7" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="findbugs"/> <result date="2007-02-11" statvalue="1" type="pmd"/> + <result date="2007-05-25" statvalue="7" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="findbugs"/> + <result date="2007-05-25" statvalue="1" type="pmd"/> </file> <file id="default-default-net_sf_pzfilereader_examples_csvheaderandtrailer_CSVHeaderAndTrailer.java" @@ -592,6 +621,7 @@ <result date="2006-12-16" statvalue="17" type="checkstyle"/> <result date="2007-01-18" statvalue="17" type="checkstyle"/> <result date="2007-02-11" statvalue="17" type="checkstyle"/> + <result date="2007-05-25" statvalue="17" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_examples_csvperformancetest_CSVPerformanceTest.java" @@ -620,6 +650,9 @@ <result date="2007-02-11" statvalue="17" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="findbugs"/> <result date="2007-02-11" statvalue="1" type="pmd"/> + <result date="2007-05-25" statvalue="17" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="findbugs"/> + <result date="2007-05-25" statvalue="1" type="pmd"/> </file> <file id="default-default-net_sf_pzfilereader_examples_delimitedcolumnnamesinfile_DelimitedColumnNamesInFile.java" @@ -639,6 +672,7 @@ <result date="2006-12-16" statvalue="2" type="pmd"/> <result date="2007-01-18" statvalue="5" type="checkstyle"/> <result date="2007-02-11" statvalue="5" type="checkstyle"/> + <result date="2007-05-25" statvalue="5" type="checkstyle"/> </file> <file id="default-default-net_sf_pzfilereader_examples_delimiteddynamiccolumns_DelimitedWithPZMap.java" @@ -658,6 +692,8 @@ <result date="2007-01-18" statvalue="1" type="pmd"/> <result date="2007-02-11" statvalue="14" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="pmd"/> + <result date="2007-05-25" statvalue="14" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="pmd"/> </file> <file id="default-default-net_sf_pzfilereader_examples_delimiteddynamiccolumnswitherrors_DelimitedWithPZMapErrors.java" @@ -677,6 +713,8 @@ <result date="2007-01-18" statvalue="1" type="pmd"/> <result date="2007-02-11" statvalue="14" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="pmd"/> + <result date="2007-05-25" statvalue="14" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="pmd"/> </file> <file id="default-default-net_sf_pzfilereader_examples_exporttoexcel_DelimitedFileExportToExcel.java" @@ -696,6 +734,8 @@ <result date="2007-01-18" statvalue="1" type="pmd"/> <result date="2007-02-11" statvalue="4" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="pmd"/> + <result date="2007-05-25" statvalue="4" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="pmd"/> </file> <file id="default-default-net_sf_pzfilereader_examples_fixedlengthdynamiccolumns_FixedLengthWithPZMap.java" @@ -715,6 +755,8 @@ <result date="2007-01-18" statvalue="1" type="pmd"/> <result date="2007-02-11" statvalue="4" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="pmd"/> + <result date="2007-05-25" statvalue="4" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="pmd"/> </file> <file id="default-default-net_sf_pzfilereader_examples_fixedlengthheaderandtrailer_FixedLengthHeaderAndTrailer.java" @@ -734,6 +776,8 @@ <result date="2007-01-18" statvalue="1" type="pmd"/> <result date="2007-02-11" statvalue="18" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="pmd"/> + <result date="2007-05-25" statvalue="18" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="pmd"/> </file> <file id="default-default-net_sf_pzfilereader_examples_largedataset_delimiteddynamiccolumns_LargeDelimitedWithPZMap.java" @@ -753,6 +797,8 @@ <result date="2007-01-18" statvalue="1" type="findbugs"/> <result date="2007-02-11" statvalue="4" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="findbugs"/> + <result date="2007-05-25" statvalue="4" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="findbugs"/> </file> <file id="default-default-net_sf_pzfilereader_examples_largedataset_fixedlengthdynamiccolumns_LargeFixedLengthWithPZMap.java" @@ -772,6 +818,8 @@ <result date="2007-01-18" statvalue="1" type="findbugs"/> <result date="2007-02-11" statvalue="3" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="findbugs"/> + <result date="2007-05-25" statvalue="3" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="findbugs"/> </file> <file id="default-default-net_sf_pzfilereader_examples_largedataset_largecsvperformancetest_CSVLarge.java" @@ -795,6 +843,8 @@ <result date="2007-01-18" statvalue="3" type="findbugs"/> <result date="2007-02-11" statvalue="9" type="checkstyle"/> <result date="2007-02-11" statvalue="3" type="findbugs"/> + <result date="2007-05-25" statvalue="9" type="checkstyle"/> + <result date="2007-05-25" statvalue="3" type="findbugs"/> </file> <file id="default-default-net_sf_pzfilereader_examples_lowlevelparse_LowLevelParse.java" @@ -827,6 +877,9 @@ <result date="2007-02-11" statvalue="5" type="checkstyle"/> <result date="2007-02-11" statvalue="2" type="findbugs"/> <result date="2007-02-11" statvalue="1" type="pmd"/> + <result date="2007-05-25" statvalue="5" type="checkstyle"/> + <result date="2007-05-25" statvalue="2" type="findbugs"/> + <result date="2007-05-25" statvalue="1" type="pmd"/> </file> <file id="default-default-net_sf_pzfilereader_examples_multilinedelimitedrecord_DelimitedMultiLine.java" @@ -846,6 +899,8 @@ <result date="2007-01-18" statvalue="1" type="pmd"/> <result date="2007-02-11" statvalue="5" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="pmd"/> + <result date="2007-05-25" statvalue="5" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="pmd"/> </file> <file id="default-default-net_sf_pzfilereader_examples_numericsanddates_NumericsAndDates.java" @@ -865,6 +920,8 @@ <result date="2007-01-18" statvalue="1" type="pmd"/> <result date="2007-02-11" statvalue="7" type="checkstyle"/> <result date="2007-02-11" statvalue="1" type="pmd"/> + <result date="2007-05-25" statvalue="7" type="checkstyle"/> + <result date="2007-05-25" statvalue="1" type="pmd"/> </file> <file id="default-default-net_sf_pzfilereader_examples_ConsoleMenu.java" @@ -879,5 +936,6 @@ <result date="2006-12-16" statvalue="2" type="findbugs"/> <result date="2007-01-18" statvalue="2" type="findbugs"/> <result date="2007-02-11" statvalue="2" type="findbugs"/> + <result date="2007-05-25" statvalue="2" type="findbugs"/> </file> </qalab> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <be...@us...> - 2007-05-24 22:58:28
|
Revision: 311 http://svn.sourceforge.net/pzfilereader/?rev=311&view=rev Author: benoitx Date: 2007-05-24 15:58:30 -0700 (Thu, 24 May 2007) Log Message: ----------- added comment on changes Modified Paths: -------------- trunk/src/site/changes.xml Modified: trunk/src/site/changes.xml =================================================================== --- trunk/src/site/changes.xml 2007-05-24 22:51:48 UTC (rev 310) +++ trunk/src/site/changes.xml 2007-05-24 22:58:30 UTC (rev 311) @@ -7,7 +7,8 @@ <title>Changes</title> </properties> <body> - <release version="3.1.0" date="in svn" description="Maintenance"> + <release version="3.1.0-SNAPSHOT" date="in svn" description="Maintenance"> + <action dev="benoitx" type="change">Created a PZMetaData class for internal use, it contains the list of column names and index for fast access.</action> <action dev="zepernick" type="change">Feature Request 1596087. Added attribute "elementCount" on record element mapping, which can determine a header, trailer, or detail record by the number of elements contained on the record. This only applies to delimited files.</action> @@ -30,7 +31,7 @@ Added PZMapParser.parse(Reader). Deprecated PZMapParser.parse(InputStream). </action> <action dev="zepernick" type="fix">Stopped column lookup from being case sensitive</action> <action dev="zepernick" type="change">Feature Request 1566626. Added setIgnoreExtraColumns() method to the PZParser. - Added the ability to ignore extra columns/bytes from delimited & fixed width files. Data is truncated when it goes + Added the ability to ignore extra columns/bytes from delimited & fixed width files. Data is truncated when it goes outside of the column definition.</action> </release> <release version="3.0.0" date="2007-02-11" description="Move to Maven and Subversion"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <be...@us...> - 2007-05-24 22:51:50
|
Revision: 310 http://svn.sourceforge.net/pzfilereader/?rev=310&view=rev Author: benoitx Date: 2007-05-24 15:51:48 -0700 (Thu, 24 May 2007) Log Message: ----------- Created PZMetaData that removes the use of some magic keys in a map This also provides a bit more semantic in the use of meta data. The old code is simply commented out or deprecated for now. Modified Paths: -------------- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractDelimiterPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractFixedLengthPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBDelimiterPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBFixedLengthPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DataSet.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultDataSet.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultPZParserFactory.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DelimiterPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/FixedLengthPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParserFactory.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderDelimPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderFixedPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderPZDataSet.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderPZParseFactory.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/converter/ConvertBigDecimal.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/converter/ConvertDouble.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/converter/ConvertInteger.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/converter/PZConvertException.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/converter/PZConverter.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/ordering/OrderBy.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/structure/Row.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/ExcelTransformer.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/FixedWidthParserUtils.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/PZConstants.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/ParserUtils.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMapParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/XMLRecordElement.java trunk/PZFileReader/src/test/java/net/sf/pzfilereader/columninfile/DelimitedColumnNamesInFile.java trunk/PZFileReader/src/test/java/net/sf/pzfilereader/columninfile/DelimitedColumnNamesInFileTest.java trunk/PZFileReader/src/test/java/net/sf/pzfilereader/delim/tab/TabDelimited.java trunk/PZFileReader/src/test/java/net/sf/pzfilereader/delim/tab/TabDelimitedTest.java trunk/PZFileReader/src/test/java/net/sf/pzfilereader/parserutils/FixedWidthParserUtilsTest.java trunk/PZFileReader/src/test/java/net/sf/pzfilereader/parserutils/ParserUtilsLTrimTest.java trunk/PZFileReader/src/test/java/net/sf/pzfilereader/parserutils/ParserUtilsSplitLineTest.java trunk/PZFileReader/src/test/java/net/sf/pzfilereader/parserutils/ParserUtilsTest.java trunk/PZFileReader/src/test/java/net/sf/pzfilereader/pzparser/PZParserOptsTest.java Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractDelimiterPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractDelimiterPZParser.java 2007-05-01 09:13:20 UTC (rev 309) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractDelimiterPZParser.java 2007-05-24 22:51:48 UTC (rev 310) @@ -33,20 +33,17 @@ package net.sf.pzfilereader; import java.io.BufferedReader; -import java.io.File; import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; import java.io.Reader; import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import net.sf.pzfilereader.structure.Row; import net.sf.pzfilereader.util.PZConstants; import net.sf.pzfilereader.util.ParserUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * @author xhensevb * @author zepernick @@ -54,50 +51,45 @@ */ public abstract class AbstractDelimiterPZParser extends AbstractPZParser { private char delimiter = 0; - private char qualifier = 0; - private boolean ignoreFirstRecord = false; - private int lineCount = 0; - + private final Logger logger = LoggerFactory.getLogger(AbstractDelimiterPZParser.class); - + /*public AbstractDelimiterPZParser(final InputStream dataSourceStream, final String dataDefinition, final char delimiter, - final char qualifier, final boolean ignoreFirstRecord) { - super(dataSourceStream, dataDefinition); - this.delimiter = delimiter; - this.qualifier = qualifier; - this.ignoreFirstRecord = ignoreFirstRecord; - } + final char qualifier, final boolean ignoreFirstRecord) { + super(dataSourceStream, dataDefinition); + this.delimiter = delimiter; + this.qualifier = qualifier; + this.ignoreFirstRecord = ignoreFirstRecord; + } - public AbstractDelimiterPZParser(final File dataSource, final char delimiter, final char qualifier, - final boolean ignoreFirstRecord) { - super(dataSource); - this.delimiter = delimiter; - this.qualifier = qualifier; - this.ignoreFirstRecord = ignoreFirstRecord; - } + public AbstractDelimiterPZParser(final File dataSource, final char delimiter, final char qualifier, + final boolean ignoreFirstRecord) { + super(dataSource); + this.delimiter = delimiter; + this.qualifier = qualifier; + this.ignoreFirstRecord = ignoreFirstRecord; + } - public AbstractDelimiterPZParser(final InputStream dataSourceStream, final char delimiter, final char qualifier, + public AbstractDelimiterPZParser(final InputStream dataSourceStream, final char delimiter, final char qualifier, + final boolean ignoreFirstRecord) { + super(dataSourceStream); + this.delimiter = delimiter; + this.qualifier = qualifier; + this.ignoreFirstRecord = ignoreFirstRecord; + }*/ + + public AbstractDelimiterPZParser(final Reader dataSourceReader, final String dataDefinition, final char delimiter, final char qualifier, final boolean ignoreFirstRecord) { - super(dataSourceStream); - this.delimiter = delimiter; - this.qualifier = qualifier; - this.ignoreFirstRecord = ignoreFirstRecord; - }*/ - - public AbstractDelimiterPZParser(final Reader dataSourceReader, final String dataDefinition, final char delimiter, - final char qualifier, final boolean ignoreFirstRecord) { super(dataSourceReader, dataDefinition); this.delimiter = delimiter; this.qualifier = qualifier; this.ignoreFirstRecord = ignoreFirstRecord; } - - - public AbstractDelimiterPZParser(final Reader dataSourceReader, final char delimiter, final char qualifier, - final boolean ignoreFirstRecord) { + + public AbstractDelimiterPZParser(final Reader dataSourceReader, final char delimiter, final char qualifier, final boolean ignoreFirstRecord) { super(dataSourceReader); this.delimiter = delimiter; this.qualifier = qualifier; @@ -108,22 +100,22 @@ try { lineCount = 0; return doDelimitedFile(getDataSourceReader(), shouldCreateMDFromFile()); - /* if (getDataSourceStream() != null) { - return doDelimitedFile(getDataSourceStream(), shouldCreateMDFromFile()); - } else { - InputStream stream = null; - try { - stream = ParserUtils.createInputStream(getDataSource()); - return doDelimitedFile(stream, shouldCreateMDFromFile()); - } finally { - if (stream != null) { - stream.close(); - } - } - }*/ + /* if (getDataSourceStream() != null) { + return doDelimitedFile(getDataSourceStream(), shouldCreateMDFromFile()); + } else { + InputStream stream = null; + try { + stream = ParserUtils.createInputStream(getDataSource()); + return doDelimitedFile(stream, shouldCreateMDFromFile()); + } finally { + if (stream != null) { + stream.close(); + } + } + }*/ } catch (final IOException e) { logger.error("error accessing/creating inputstream", e); - } + } return null; } @@ -156,7 +148,7 @@ protected int getLineCount() { return lineCount; } - + /* * This is the new version of doDelimitedFile using InputStrem instead of * File. This is more flexible especially it is working with WebStart. @@ -169,11 +161,12 @@ throw new NullPointerException("dataSource is null"); } BufferedReader br = null; - final DefaultDataSet ds = new DefaultDataSet(getColumnMD(), this); + // final DefaultDataSet ds = new DefaultDataSet(getColumnMD(), this); + final DefaultDataSet ds = new DefaultDataSet(getPzMetaData(), this); try { //gather the conversion properties ds.setPZConvertProps(ParserUtils.loadConvertProperties()); - + // get the total column count // columnCount = columnMD.size(); @@ -189,17 +182,21 @@ continue; } else if (!processedFirst && createMDFromFile) { processedFirst = true; - setColumnMD(ParserUtils.getColumnMDFromFile(line, delimiter, qualifier, this)); - ds.setColumnMD(getColumnMD()); + // setColumnMD(ParserUtils.getColumnMDFromFile(line, delimiter, qualifier, this)); + setPzMetaData(ParserUtils.getPZMetaDataFromFile(line, delimiter, qualifier, this)); + // ds.setColumnMD(getColumnMD()); + ds.setPzMetaData(getPzMetaData()); continue; } // column values List columns = ParserUtils.splitLine(line, getDelimiter(), getQualifier(), PZConstants.SPLITLINE_SIZE_INIT); - final String mdkey = ParserUtils.getCMDKeyForDelimitedFile(getColumnMD(), columns); - final List cmds = ParserUtils.getColumnMetaData(mdkey, getColumnMD()); + final String mdkey = ParserUtils.getCMDKeyForDelimitedFile(getPzMetaData(), columns); + // final String mdkey = ParserUtils.getCMDKeyForDelimitedFile(getColumnMD(), columns); + // final List cmds = ParserUtils.getColumnMetaData(mdkey, getColumnMD()); + final List cmds = ParserUtils.getColumnMetaData(mdkey, getPzMetaData()); final int columnCount = cmds.size(); - + if (columns.size() > columnCount) { // Incorrect record length on line log the error. Line // will not be included in the dataset log the error @@ -244,7 +241,7 @@ } return ds; } - + /** * Reads a record from a delimited file. This will account for records which * could span multiple lines. @@ -260,12 +257,11 @@ * Record from delimited file * */ - protected String fetchNextRecord(final BufferedReader br, final char qual, - final char delim) throws IOException{ + protected String fetchNextRecord(final BufferedReader br, final char qual, final char delim) throws IOException { String line = null; - StringBuffer lineData = new StringBuffer(); + final StringBuffer lineData = new StringBuffer(); boolean processingMultiLine = false; - + while ((line = br.readLine()) != null) { lineCount++; final String trimmed = line.trim(); @@ -344,15 +340,15 @@ // the data on the next line } } - + break; } - + if (line == null && lineData.length() == 0) { //eof return null; } - + return lineData.toString(); } } Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractFixedLengthPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractFixedLengthPZParser.java 2007-05-01 09:13:20 UTC (rev 309) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractFixedLengthPZParser.java 2007-05-24 22:51:48 UTC (rev 310) @@ -38,37 +38,37 @@ import java.util.List; import java.util.Map; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import net.sf.pzfilereader.structure.Row; import net.sf.pzfilereader.util.FixedWidthParserUtils; import net.sf.pzfilereader.util.PZConstants; import net.sf.pzfilereader.util.ParserUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * @author xhensevb * */ public abstract class AbstractFixedLengthPZParser extends AbstractPZParser { private final Logger logger = LoggerFactory.getLogger(AbstractFixedLengthPZParser.class); - - /* protected AbstractFixedLengthPZParser(final File dataSource, final String dataDefinition) { - super(dataSource, dataDefinition); - } - protected AbstractFixedLengthPZParser(final File dataSource) { - super(dataSource); - } + /* protected AbstractFixedLengthPZParser(final File dataSource, final String dataDefinition) { + super(dataSource, dataDefinition); + } - protected AbstractFixedLengthPZParser(final InputStream dataSourceStream, final String dataDefinition) { - super(dataSourceStream, dataDefinition); - } + protected AbstractFixedLengthPZParser(final File dataSource) { + super(dataSource); + } - protected AbstractFixedLengthPZParser(final InputStream dataSourceStream) { - super(dataSourceStream); - }*/ - + protected AbstractFixedLengthPZParser(final InputStream dataSourceStream, final String dataDefinition) { + super(dataSourceStream, dataDefinition); + } + + protected AbstractFixedLengthPZParser(final InputStream dataSourceStream) { + super(dataSourceStream); + }*/ + protected AbstractFixedLengthPZParser(final Reader dataSourceReader, final String dataDefinition) { super(dataSourceReader, dataDefinition); } @@ -79,19 +79,19 @@ public DataSet doParse() { try { - /* if (getDataSourceStream() != null) { - return doFixedLengthFile(getDataSourceStream()); - } else { - InputStream stream; - stream = ParserUtils.createInputStream(getDataSource()); - try { - return doFixedLengthFile(stream); - } finally { - if (stream != null) { - stream.close(); - } - } - }*/ + /* if (getDataSourceStream() != null) { + return doFixedLengthFile(getDataSourceStream()); + } else { + InputStream stream; + stream = ParserUtils.createInputStream(getDataSource()); + try { + return doFixedLengthFile(stream); + } finally { + if (stream != null) { + stream.close(); + } + } + }*/ return doFixedLengthFile(getDataSourceReader()); } catch (final IOException e) { logger.error("error accessing/reading data", e); @@ -109,13 +109,15 @@ private DataSet doFixedLengthFile(final Reader dataSource) throws IOException { BufferedReader br = null; - final DefaultDataSet ds = new DefaultDataSet(getColumnMD(), this); + // final DefaultDataSet ds = new DefaultDataSet(getColumnMD(), this); + final DefaultDataSet ds = new DefaultDataSet(getPzMetaData(), this); try { //gather the conversion properties ds.setPZConvertProps(ParserUtils.loadConvertProperties()); - final Map recordLengths = ParserUtils.calculateRecordLengths(getColumnMD()); + // final Map recordLengths = ParserUtils.calculateRecordLengths(getColumnMD()); + final Map recordLengths = ParserUtils.calculateRecordLengths(getPzMetaData()); // Read in the flat file br = new BufferedReader(dataSource); @@ -131,7 +133,8 @@ continue; } - final String mdkey = FixedWidthParserUtils.getCMDKey(getColumnMD(), line); + final String mdkey = FixedWidthParserUtils.getCMDKey(getPzMetaData(), line); + // final String mdkey = FixedWidthParserUtils.getCMDKey(getColumnMD(), line); final int recordLength = ((Integer) recordLengths.get(mdkey)).intValue(); if (line.length() > recordLength) { @@ -156,8 +159,7 @@ addError(ds, "PADDED LINE TO CORRECT RECORD LENGTH", lineCount, 1); } else { - addError(ds, "LINE TOO SHORT. LINE IS " + line.length() + " LONG. SHOULD BE " + recordLength, lineCount, - 2); + addError(ds, "LINE TOO SHORT. LINE IS " + line.length() + " LONG. SHOULD BE " + recordLength, lineCount, 2); continue; } } @@ -166,7 +168,8 @@ final Row row = new Row(); row.setMdkey(mdkey.equals(PZConstants.DETAIL_ID) ? null : mdkey); // try - final List cmds = ParserUtils.getColumnMetaData(mdkey, getColumnMD()); + // final List cmds = ParserUtils.getColumnMetaData(mdkey, getColumnMD()); + final List cmds = ParserUtils.getColumnMetaData(mdkey, getPzMetaData()); row.addColumn(FixedWidthParserUtils.splitFixedText(cmds, line)); // to limit the memory use // Build the columns for the row Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java 2007-05-01 09:13:20 UTC (rev 309) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java 2007-05-24 22:51:48 UTC (rev 310) @@ -36,10 +36,11 @@ import java.io.Reader; import java.util.ArrayList; import java.util.Iterator; -import java.util.LinkedHashMap; import java.util.List; -import java.util.Map; +import net.sf.pzfilereader.util.ParserUtils; +import net.sf.pzfilereader.xml.PZMetaData; + /** * @author xhensevb * @author zepernick @@ -48,52 +49,23 @@ public abstract class AbstractPZParser implements PZParser { private boolean handlingShortLines = false; - private boolean ignoreExtraColumns = false; - private boolean columnNamesCaseSensitive = false; - private boolean initialised = false; - private boolean ignoreParseWarnings = false; - private boolean nullEmptyStrings = false; /** Map of column metadata's */ - private Map columnMD = null; - + // private Map columnMD = null; + private PZMetaData pzMetaData = null; private String dataDefinition = null; - - // private InputStream dataSourceStream = null; - - // private File dataSource = null; - private Reader dataSourceReader = null; - - private List readersToClose = null; + private List readersToClose = null; - /*protected AbstractPZParser(final File dataSource) { - this.dataSourceReader = new FileReader(dataSource); - } - - protected AbstractPZParser(final InputStream dataSourceStream) { - this.dataSourceStream = dataSourceStream; - } - - protected AbstractPZParser(final File dataSource, final String dataDefinition) { - this.dataSource = dataSource; - this.dataDefinition = dataDefinition; - } - - protected AbstractPZParser(final InputStream dataSourceStream, final String dataDefinition) { - this.dataSourceStream = dataSourceStream; - this.dataDefinition = dataDefinition; - }*/ - protected AbstractPZParser(final Reader dataSourceReader) { this.dataSourceReader = dataSourceReader; } - + protected AbstractPZParser(final Reader dataSourceReader, final String dataDefinition) { this.dataSourceReader = dataSourceReader; this.dataDefinition = dataDefinition; @@ -116,13 +88,13 @@ public void setHandlingShortLines(final boolean handleShortLines) { this.handlingShortLines = handleShortLines; } - + public boolean isIgnoreExtraColumns() { return ignoreExtraColumns; } - - public void setIgnoreExtraColumns(boolean ignoreExtraColumns) { - this.ignoreExtraColumns = ignoreExtraColumns; + + public void setIgnoreExtraColumns(final boolean ignoreExtraColumns) { + this.ignoreExtraColumns = ignoreExtraColumns; } public final DataSet parse() { @@ -136,23 +108,25 @@ protected abstract void init(); - protected void setColumnMD(final Map map) { - columnMD = map; - } - + /** + * @deprecated + */ + // protected void setColumnMD(final Map map) { + // columnMD = map; + // } //this is used for backward compatability. We are instantiating Readers from //InputStream and File from previous versions. Close out any Readers in the //readersToClose list. This can be removed after we remove the deprecated methods - protected void closeReaders() throws IOException{ + protected void closeReaders() throws IOException { if (readersToClose != null) { final Iterator readersToCloseIt = readersToClose.iterator(); while (readersToCloseIt.hasNext()) { - final Reader r = (Reader)readersToCloseIt.next(); + final Reader r = (Reader) readersToCloseIt.next(); r.close(); } } } - + //adds a reader to the close list. the list will be processed after parsing is //completed. protected void addToCloseReaderList(final Reader r) { @@ -162,13 +136,22 @@ readersToClose.add(r); } - protected void addToColumnMD(final Object key, final Object value) { - if (columnMD == null) { - columnMD = new LinkedHashMap(); + protected void addToMetaData(final List columns) { + if (pzMetaData == null) { + pzMetaData = new PZMetaData(columns, ParserUtils.buidColumnIndexMap(columns, this)); + } else { + pzMetaData.setColumnsNames(columns); + pzMetaData.setColumnIndexMap(ParserUtils.buidColumnIndexMap(columns, this)); } - columnMD.put(key, value); } + // protected void addToColumnMD(final Object key, final Object value) { + // if (columnMD == null) { + // columnMD = new LinkedHashMap(); + // } + // columnMD.put(key, value); + // } + protected boolean isInitialised() { return initialised; } @@ -185,26 +168,25 @@ this.dataDefinition = dataDefinition; } - /* protected File getDataSource() { - return dataSource; - } + /* protected File getDataSource() { + return dataSource; + } - protected void setDataSource(final File dataSource) { - this.dataSource = dataSource; - } + protected void setDataSource(final File dataSource) { + this.dataSource = dataSource; + } - protected InputStream getDataSourceStream() { - return dataSourceStream; - } + protected InputStream getDataSourceStream() { + return dataSourceStream; + } - protected void setDataSourceStream(final InputStream dataSourceStream) { - this.dataSourceStream = dataSourceStream; - }*/ + protected void setDataSourceStream(final InputStream dataSourceStream) { + this.dataSourceStream = dataSourceStream; + }*/ - protected Map getColumnMD() { - return columnMD; - } - + // protected Map getColumnMD() { + // return columnMD; + // } /** * Adds a new error to this DataSet. These can be collected, and retreived * after processing @@ -235,32 +217,40 @@ /** * @param dataSourceReader the dataSourceReader to set */ - protected void setDataSourceReader(Reader dataSourceReader) { + protected void setDataSourceReader(final Reader dataSourceReader) { this.dataSourceReader = dataSourceReader; } - + public boolean isColumnNamesCaseSensitive() { return columnNamesCaseSensitive; } - - public void setColumnNamesCaseSensitive(boolean columnNamesCaseSensitive) { - this.columnNamesCaseSensitive = columnNamesCaseSensitive; + + public void setColumnNamesCaseSensitive(final boolean columnNamesCaseSensitive) { + this.columnNamesCaseSensitive = columnNamesCaseSensitive; } - + public boolean isIgnoreParseWarnings() { return ignoreParseWarnings; } - - public void setIgnoreParseWarnings(boolean ignoreParseWarnings) { - this.ignoreParseWarnings = ignoreParseWarnings; + + public void setIgnoreParseWarnings(final boolean ignoreParseWarnings) { + this.ignoreParseWarnings = ignoreParseWarnings; } - + public boolean isNullEmptyStrings() { return nullEmptyStrings; } - - public void setNullEmptyStrings(boolean nullEmptyStrings) { - this.nullEmptyStrings = nullEmptyStrings; + + public void setNullEmptyStrings(final boolean nullEmptyStrings) { + this.nullEmptyStrings = nullEmptyStrings; } + public PZMetaData getPzMetaData() { + return pzMetaData; + } + + public void setPzMetaData(final PZMetaData pzMap) { + this.pzMetaData = pzMap; + } + } Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBDelimiterPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBDelimiterPZParser.java 2007-05-01 09:13:20 UTC (rev 309) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBDelimiterPZParser.java 2007-05-24 22:51:48 UTC (rev 310) @@ -40,7 +40,6 @@ import java.sql.SQLException; import java.util.List; -import net.sf.pzfilereader.util.PZConstants; import net.sf.pzfilereader.util.ParserUtils; /** @@ -50,18 +49,18 @@ */ public class DBDelimiterPZParser extends AbstractDelimiterPZParser { private Connection con; - + private InputStream dataSourceStream; - public DBDelimiterPZParser(final Connection con, final InputStream dataSourceStream, final String dataDefinition, - final char delimiter, final char qualifier, final boolean ignoreFirstRecord) { + public DBDelimiterPZParser(final Connection con, final InputStream dataSourceStream, final String dataDefinition, final char delimiter, + final char qualifier, final boolean ignoreFirstRecord) { super(null, dataDefinition, delimiter, qualifier, ignoreFirstRecord); this.con = con; this.dataSourceStream = dataSourceStream; } - - public DBDelimiterPZParser(final Connection con, final Reader dataSourceReader, final String dataDefinition, - final char delimiter, final char qualifier, final boolean ignoreFirstRecord) { + + public DBDelimiterPZParser(final Connection con, final Reader dataSourceReader, final String dataDefinition, final char delimiter, + final char qualifier, final boolean ignoreFirstRecord) { super(dataSourceReader, dataDefinition, delimiter, qualifier, ignoreFirstRecord); this.con = con; } @@ -74,11 +73,12 @@ final Reader r = new InputStreamReader(dataSourceStream); setDataSourceReader(r); addToCloseReaderList(r); - } - + } + final List cmds = ParserUtils.buildMDFromSQLTable(con, getDataDefinition()); - addToColumnMD(PZConstants.DETAIL_ID, cmds); - addToColumnMD(PZConstants.COL_IDX, ParserUtils.buidColumnIndexMap(cmds, this)); + addToMetaData(cmds); + // addToColumnMD(PZConstants.DETAIL_ID, cmds); + // addToColumnMD(PZConstants.COL_IDX, ParserUtils.buidColumnIndexMap(cmds, this)); if (cmds.isEmpty()) { throw new FileNotFoundException("DATA DEFINITION CAN NOT BE FOUND IN THE DATABASE " + getDataDefinition()); @@ -88,7 +88,7 @@ throw new InitialisationException(e); } catch (final FileNotFoundException e) { throw new InitialisationException(e); - } + } } protected boolean shouldCreateMDFromFile() { Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBFixedLengthPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBFixedLengthPZParser.java 2007-05-01 09:13:20 UTC (rev 309) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBFixedLengthPZParser.java 2007-05-24 22:51:48 UTC (rev 310) @@ -42,8 +42,6 @@ import java.sql.SQLException; import java.util.List; - -import net.sf.pzfilereader.util.PZConstants; import net.sf.pzfilereader.util.ParserUtils; /** @@ -53,12 +51,12 @@ */ public class DBFixedLengthPZParser extends AbstractFixedLengthPZParser { private Connection con; - + //this InputStream and file can be removed after support for //file and inputstream is removed from the parserfactory. The //methods have been deprecated..pz private InputStream dataSourceStream = null; - + private File dataSource = null; public DBFixedLengthPZParser(final Connection con, final InputStream dataSourceStream, final String dataDefinition) { @@ -79,7 +77,7 @@ super(dataSourceReader, dataDefinition); this.con = con; } - + protected void init() { try { //check to see if the user is using a File or InputStream. This is @@ -88,16 +86,17 @@ final Reader r = new InputStreamReader(dataSourceStream); setDataSourceReader(r); addToCloseReaderList(r); - } else if (dataSource != null){ + } else if (dataSource != null) { final Reader r = new FileReader(dataSource); setDataSourceReader(r); addToCloseReaderList(r); } - + final List cmds = ParserUtils.buildMDFromSQLTable(con, getDataDefinition()); + addToMetaData(cmds); - addToColumnMD(PZConstants.DETAIL_ID, cmds); - addToColumnMD(PZConstants.COL_IDX, ParserUtils.buidColumnIndexMap(cmds, this)); + // addToColumnMD(PZConstants.DETAIL_ID, cmds); + // addToColumnMD(PZConstants.COL_IDX, ParserUtils.buidColumnIndexMap(cmds, this)); if (cmds.isEmpty()) { throw new FileNotFoundException("DATA DEFINITION CAN NOT BE FOUND IN THE DATABASE " + getDataDefinition()); @@ -108,7 +107,7 @@ throw new InitialisationException(e); } catch (final FileNotFoundException e) { throw new InitialisationException(e); - } + } } public DataSet doParse() { Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DataSet.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DataSet.java 2007-05-01 09:13:20 UTC (rev 309) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DataSet.java 2007-05-24 22:51:48 UTC (rev 310) @@ -36,6 +36,7 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; +import java.util.NoSuchElementException; import java.util.Properties; import net.sf.pzfilereader.ordering.OrderBy; @@ -132,8 +133,7 @@ * @return Date */ Date getDate(final String column, final SimpleDateFormat sdf) throws ParseException; - - + /** * Returns the value of the column with the type of object * specified @@ -145,7 +145,7 @@ * @return Object * Value of the column in the specified object */ - Object getObject(final String column, final Class classToConvertTo); + Object getObject(final String column, final Class classToConvertTo); /** * Returns a String array of column names in the DataSet. This will assume @@ -235,7 +235,6 @@ */ void orderRows(final OrderBy ob) throws Exception; - /** * Sets data in the DataSet to lowercase */ @@ -274,7 +273,7 @@ * The strictNumericParse to set. */ void setStrictNumericParse(final boolean strictNumericParse); - + /** * Sets the properties from the pzconvert.properties file. * This file specifies the PZConverter implementation to use @@ -284,7 +283,7 @@ * Property mapping for String to Object conversion */ void setPZConvertProps(Properties props); - + /** * Changes the value of the given column only for the * given row which the pointer is currently sitting on. Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultDataSet.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultDataSet.java 2007-05-01 09:13:20 UTC (rev 309) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultDataSet.java 2007-05-24 22:51:48 UTC (rev 310) @@ -39,14 +39,15 @@ import java.util.Date; import java.util.List; import java.util.Locale; -import java.util.Map; import java.util.Properties; import net.sf.pzfilereader.ordering.OrderBy; import net.sf.pzfilereader.structure.ColumnMetaData; import net.sf.pzfilereader.structure.Row; import net.sf.pzfilereader.util.PZConstants; +import net.sf.pzfilereader.util.PZStringUtils; import net.sf.pzfilereader.util.ParserUtils; +import net.sf.pzfilereader.xml.PZMetaData; /** * @author xhensevb @@ -56,7 +57,7 @@ private final List rows = new ArrayList(); private final List errors = new ArrayList(); - + private Properties pzConvertProps = null; /** Pointer for the current row in the array we are on */ @@ -74,12 +75,22 @@ */ private boolean strictNumericParse = false; - private Map columnMD; - + // private Map columnMD; + + private PZMetaData pzMetaData; + private PZParser pzparser; - public DefaultDataSet(final Map columnMD2, final PZParser pzparser) { - this.columnMD = columnMD2; + // /** + // * @deprecated use the constructor with PZMetaData + // */ + // public DefaultDataSet(final Map columnMD2, final PZParser pzparser) { + // this.columnMD = columnMD2; + // this.pzparser = pzparser; + // } + + public DefaultDataSet(final PZMetaData pzMetaData, final PZParser pzparser) { + this.pzMetaData = pzMetaData; this.pzparser = pzparser; } @@ -100,8 +111,8 @@ ColumnMetaData column = null; String[] array = null; - if (columnMD != null) { - final List cmds = ParserUtils.getColumnMetaData(PZConstants.DETAIL_ID, columnMD); + if (/*columnMD != null || */pzMetaData != null) { + final List cmds = pzMetaData.getColumnsNames();// ParserUtils.getColumnMetaData(PZConstants.DETAIL_ID, columnMD); array = new String[cmds.size()]; for (int i = 0; i < cmds.size(); i++) { @@ -121,8 +132,8 @@ public String[] getColumns(final String recordID) { String[] array = null; - if (columnMD != null) { - final List cmds = ParserUtils.getColumnMetaData(recordID, columnMD); + if (pzMetaData != null) { + final List cmds = ParserUtils.getColumnMetaData(recordID, pzMetaData); array = new String[cmds.size()]; for (int i = 0; i < cmds.size(); i++) { final ColumnMetaData column = (ColumnMetaData) cmds.get(i); @@ -149,9 +160,8 @@ * java.text.SimpleDateFormat) */ public Date getDate(final String column, final SimpleDateFormat sdf) throws ParseException { - final Row row = (Row) rows.get(pointer); - final String s = row.getValue(ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column, pzparser)); - if (s.trim().equals("")) { + final String s = getStringValue(column); + if (PZStringUtils.isBlank(s)) { //don't do the parse on empties return null; } @@ -165,10 +175,9 @@ */ public double getDouble(final String column) { final StringBuffer newString = new StringBuffer(); - final Row row = (Row) rows.get(pointer); + final String s = getStringValue(column); + // final String s = row.getValue(ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column, pzparser)); - final String s = row.getValue(ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column, pzparser)); - if (!strictNumericParse) { newString.append(ParserUtils.stripNonDoubleChars(s)); } else { @@ -177,11 +186,14 @@ return Double.parseDouble(newString.toString()); } - - - public Object getObject(String column, Class classToConvertTo) { + + private String getStringValue(final String column) { final Row row = (Row) rows.get(pointer); - final String s = row.getValue(ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column, pzparser)); + return row.getValue(ParserUtils.getColumnIndex(row.getMdkey(), pzMetaData, column, pzparser)); + } + + public Object getObject(final String column, final Class classToConvertTo) { + final String s = getStringValue(column); return ParserUtils.runPzConverter(pzConvertProps, s, classToConvertTo); } @@ -222,17 +234,13 @@ * @see net.sf.pzfilereader.IDataSet#getInt(java.lang.String) */ public int getInt(final String column) { - final StringBuffer newString = new StringBuffer(); - final Row row = (Row) rows.get(pointer); - final String s = row.getValue(ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column, pzparser)); + final String s = getStringValue(column); if (!strictNumericParse) { - newString.append(ParserUtils.stripNonLongChars(s)); - } else { - newString.append(s); + return Integer.parseInt(ParserUtils.stripNonLongChars(s)); } - return Integer.parseInt(newString.toString()); + return Integer.parseInt(s); } /* @@ -259,13 +267,12 @@ * @see net.sf.pzfilereader.IDataSet#getString(java.lang.String) */ public String getString(final String column) { - final Row row = (Row) rows.get(pointer); - final String s = row.getValue(ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column, pzparser)); - - if (pzparser.isNullEmptyStrings() && s.trim().equals("")) { + final String s = getStringValue(column); + + if (pzparser.isNullEmptyStrings() && PZStringUtils.isBlank(s)) { return null; - } - + } + if (upperCase) { // convert data to uppercase before returning // return row.getValue(ParserUtils.findColumn(column, @@ -283,12 +290,11 @@ // return value as how it is in the file return s; } - - - public void setValue(String column, String value) { + + public void setValue(final String column, final String value) { final Row row = (Row) rows.get(pointer); - final int colIndex = ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column, pzparser); - + final int colIndex = ParserUtils.getColumnIndex(row.getMdkey(), pzMetaData, column, pzparser); + row.setValue(colIndex, value); } @@ -350,7 +356,8 @@ // with <RECORD> mappings"); // } if (ob != null && rows != null) { - final List cmds = ParserUtils.getColumnMetaData(PZConstants.DETAIL_ID, columnMD); + final List cmds = pzMetaData.getColumnsNames(); + // final List cmds = ParserUtils.getColumnMetaData(PZConstants.DETAIL_ID, columnMD); ob.setColumnMD(cmds); Collections.sort(rows, ob); goTop(); @@ -439,32 +446,18 @@ rows.remove(pointer); pointer--; } - - public void setPZConvertProps(Properties props) { + + public void setPZConvertProps(final Properties props) { this.pzConvertProps = props; } - protected void setColumnMD(final Map columnMD) { - this.columnMD = columnMD; - } - /** - * Returns the column meta data assoicated with - * this DataSet - * - * @return Map - */ - protected Map getColumnMD() { - return this.columnMD; - } - - /** * @param pointer the pointer to set */ - protected void setPointer(int pointer) { + protected void setPointer(final int pointer) { this.pointer = pointer; } - + /** * Clears all of the in memory rows of the DataSet * @@ -473,4 +466,12 @@ rows.clear(); } + public PZMetaData getPzMetaData() { + return pzMetaData; + } + + public void setPzMetaData(final PZMetaData pzMetaData) { + this.pzMetaData = pzMetaData; + } + } Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultPZParserFactory.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultPZParserFactory.java 2007-05-01 09:13:20 UTC (rev 309) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultPZParserFactory.java 2007-05-24 22:51:48 UTC (rev 310) @@ -87,11 +87,11 @@ public PZParser newFixedLengthParser(final InputStream pzmapXMLStream, final InputStream dataSourceStream) { return new FixedLengthPZParser(pzmapXMLStream, dataSourceStream); } - + public PZParser newFixedLengthParser(final Connection con, final Reader dataSource, final String dataDefinition) { return new DBFixedLengthPZParser(con, dataSource, dataDefinition); } - + public PZParser newFixedLengthParser(final Reader pzmapXMLStream, final Reader dataSource) { return new FixedLengthPZParser(pzmapXMLStream, dataSource); } @@ -102,8 +102,8 @@ * @see net.sf.pzfilereader.PZParserFactory#newParser(java.sql.Connection, * java.io.InputStream, java.lang.String, char, char, boolean) */ - public PZParser newDelimitedParser(final Connection con, final InputStream dataSourceStream, final String dataDefinition, - final char delimiter, final char qualifier, final boolean ignoreFirstRecord) { + public PZParser newDelimitedParser(final Connection con, final InputStream dataSourceStream, final String dataDefinition, final char delimiter, + final char qualifier, final boolean ignoreFirstRecord) { return new DBDelimiterPZParser(con, dataSourceStream, dataDefinition, delimiter, qualifier, ignoreFirstRecord); } @@ -124,8 +124,8 @@ * @see net.sf.pzfilereader.PZParserFactory#newParser(java.io.InputStream, * java.io.InputStream, char, char, boolean) */ - public PZParser newDelimitedParser(final InputStream pzmapXMLStream, final InputStream dataSourceStream, - final char delimiter, final char qualifier, final boolean ignoreFirstRecord) { + public PZParser newDelimitedParser(final InputStream pzmapXMLStream, final InputStream dataSourceStream, final char delimiter, + final char qualifier, final boolean ignoreFirstRecord) { return new DelimiterPZParser(pzmapXMLStream, dataSourceStream, delimiter, qualifier, ignoreFirstRecord); } @@ -148,16 +148,18 @@ public PZParser newDelimitedParser(final InputStream dataSourceStream, final char delimiter, final char qualifier) { return new DelimiterPZParser(dataSourceStream, delimiter, qualifier, false); } - - public PZParser newDelimitedParser(Connection con, Reader dataSource, String dataDefinition, char delimiter, char qualifier, boolean ignoreFirstRecord) { + + public PZParser newDelimitedParser(final Connection con, final Reader dataSource, final String dataDefinition, final char delimiter, + final char qualifier, final boolean ignoreFirstRecord) { return new DBDelimiterPZParser(con, dataSource, dataDefinition, delimiter, qualifier, ignoreFirstRecord); } - - public PZParser newDelimitedParser(Reader dataSource, char delimiter, char qualifier) { + + public PZParser newDelimitedParser(final Reader dataSource, final char delimiter, final char qualifier) { return new DelimiterPZParser(dataSource, delimiter, qualifier, false); } - - public PZParser newDelimitedParser(Reader pzmapXML, Reader dataSource, char delimiter, char qualifier, boolean ignoreFirstRecord) { + + public PZParser newDelimitedParser(final Reader pzmapXML, final Reader dataSource, final char delimiter, final char qualifier, + final boolean ignoreFirstRecord) { return new DelimiterPZParser(pzmapXML, dataSource, delimiter, qualifier, ignoreFirstRecord); } Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DelimiterPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DelimiterPZParser.java 2007-05-01 09:13:20 UTC (rev 309) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DelimiterPZParser.java 2007-05-24 22:51:48 UTC (rev 310) @@ -49,28 +49,23 @@ */ public class DelimiterPZParser extends AbstractDelimiterPZParser { private InputStream pzmapXMLStream = null; - private File pzmapXML = null; - private Reader pzmapReader; - + //this InputStream and file can be removed after support for //file and inputstream is removed from the parserfactory. The //methods have been deprecated..pz private InputStream dataSourceStream = null; - private File dataSource = null; - - public DelimiterPZParser(final File pzmapXML, final File dataSource, final char delimiter, final char qualifier, - final boolean ignoreFirstRecord) { + public DelimiterPZParser(final File pzmapXML, final File dataSource, final char delimiter, final char qualifier, final boolean ignoreFirstRecord) { super(null, delimiter, qualifier, ignoreFirstRecord); this.pzmapXML = pzmapXML; this.dataSource = dataSource; } - public DelimiterPZParser(final InputStream pzmapXMLStream, final InputStream dataSourceStream, final char delimiter, - final char qualifier, final boolean ignoreFirstRecord) { + public DelimiterPZParser(final InputStream pzmapXMLStream, final InputStream dataSourceStream, final char delimiter, final char qualifier, + final boolean ignoreFirstRecord) { super(null, delimiter, qualifier, ignoreFirstRecord); this.pzmapXMLStream = pzmapXMLStream; this.dataSourceStream = dataSourceStream; @@ -81,17 +76,15 @@ this.dataSource = dataSource; } - public DelimiterPZParser(final InputStream dataSourceStream, final char delimiter, final char qualifier, - final boolean ignoreFirstRecord) { + public DelimiterPZParser(final InputStream dataSourceStream, final char delimiter, final char qualifier, final boolean ignoreFirstRecord) { super(null, delimiter, qualifier, ignoreFirstRecord); this.dataSourceStream = dataSourceStream; } - - public DelimiterPZParser(final Reader dataSourceReader, final char delimiter, final char qualifier, - final boolean ignoreFirstRecord) { + + public DelimiterPZParser(final Reader dataSourceReader, final char delimiter, final char qualifier, final boolean ignoreFirstRecord) { super(dataSourceReader, delimiter, qualifier, ignoreFirstRecord); } - + public DelimiterPZParser(final Reader dataSourceReader, final Reader pzmapReader, final char delimiter, final char qualifier, final boolean ignoreFirstRecord) { super(dataSourceReader, delimiter, qualifier, ignoreFirstRecord); @@ -106,13 +99,12 @@ final Reader r = new InputStreamReader(dataSourceStream); setDataSourceReader(r); addToCloseReaderList(r); - } else if (dataSource != null){ + } else if (dataSource != null) { final Reader r = new FileReader(dataSource); setDataSourceReader(r); addToCloseReaderList(r); } - - + boolean closeMapReader = false; if (pzmapXML != null) { this.pzmapReader = new FileReader(pzmapXML); @@ -121,10 +113,11 @@ this.pzmapReader = new InputStreamReader(pzmapXMLStream); closeMapReader = true; } - + if (this.pzmapReader != null) { try { - setColumnMD(PZMapParser.parse(this.pzmapReader, this)); + // setColumnMD(PZMapParser.parse(this.pzmapReader, this)); + setPzMetaData(PZMapParser.parseMap(this.pzmapReader, this)); } finally { if (closeMapReader) { //only close the reader if it is one we created @@ -133,7 +126,7 @@ } } } - + setInitialised(true); } catch (final JDOMException e) { throw new InitialisationException(e); Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/FixedLengthPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/FixedLengthPZParser.java 2007-05-01 09:13:20 UTC (rev 309) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/FixedLengthPZParser.java 2007-05-24 22:51:48 UTC (rev 310) @@ -52,14 +52,14 @@ private InputStream pzmapXMLStream; private File pzmapXML; - + private Reader pzmapReader; - + //this InputStream and file can be removed after support for //file and inputstream is removed from the parserfactory. The //methods have been deprecated..pz private InputStream dataSourceStream = null; - + private File dataSource = null; public FixedLengthPZParser(final InputStream pzmapXMLStream, final InputStream dataSourceStream) { @@ -73,9 +73,9 @@ this.pzmapXML = pzmapXML; this.dataSource = dataSource; } - + public FixedLengthPZParser(final Reader pzmapReader, final Reader dataSourceReader) { - super (dataSourceReader); + super(dataSourceReader); this.pzmapReader = pzmapReader; } @@ -87,13 +87,12 @@ final Reader r = new InputStreamReader(dataSourceStream); setDataSourceReader(r); addToCloseReaderList(r); - } else if (dataSource != null){ + } else if (dataSource != null) { final Reader r = new FileReader(dataSource); setDataSourceReader(r); addToCloseReaderList(r); } - - + boolean closeMapReader = false; if (pzmapXML != null) { this.pzmapReader = new FileReader(pzmapXML); @@ -102,9 +101,10 @@ this.pzmapReader = new InputStreamReader(pzmapXMLStream); closeMapReader = true; } - + try { - setColumnMD(PZMapParser.parse(this.pzmapReader, this)); + // setColumnMD(PZMapParser.parse(this.pzmapReader, this)); + setPzMetaData(PZMapParser.parseMap(this.pzmapReader, this)); } finally { if (closeMapReader) { //only close the reader if it is one we created @@ -112,8 +112,8 @@ this.pzmapReader.close(); } } - - // setInitialised(true); + + // setInitialised(true); } catch (final JDOMException e) { throw new InitialisationException(e); } catch (final IOException e) { Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java 2007-05-01 09:13:20 UTC (rev 309) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java 2007-05-24 22:51:48 UTC (rev 310) @@ -62,7 +62,7 @@ * producing an error */ void setHandlingShortLines(final boolean handleShortLines); - + /** * * @return true, detail lines with a length or column count > the mapping @@ -70,7 +70,7 @@ * lines as erros in the DataError collection. */ boolean isIgnoreExtraColumns(); - + /** * * @param ignoreExtraColumns when true, detail lines with a length or column @@ -78,7 +78,7 @@ * will NOT register these lines as erros in the DataError collection. */ void setIgnoreExtraColumns(final boolean ignoreExtraColumns); - + /** * Default is false * @@ -87,7 +87,7 @@ * Example when false: Column name = AColumnName ; getString("acolumnname") would pass */ boolean isColumnNamesCaseSensitive(); - + /** * Default is false * @@ -97,28 +97,27 @@ * Example when false: Column name = AColumnName ; getString("acolumnname") would pass */ void setColumnNamesCaseSensitive(final boolean columnNamesCaseSensitive); - + /** * Default is false * * @return true, warnings encountered durring parsing will not be included in the DataSet errors */ boolean isIgnoreParseWarnings(); - - + /** * * @param ignoreParseWarnings when true, warnings encountered durring parsing will not be included * in the DataSet errors */ void setIgnoreParseWarnings(final boolean ignoreParseWarnings); - + /** * * @return true, empty Strings will get returned as NULL when calling DataSet.getString() */ boolean isNullEmptyStrings(); - + /** * * @param nullEmptyStrings when true, empty Strings will get returned as NULL when calling DataSet.getString() Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParserFactory.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParserFactory.java 2007-05-01 09:13:20 UTC (rev 309) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParserFactory.java 2007-05-24 22:51:48 UTC (rev 310) @@ -116,7 +116,7 @@ * @return PZParser */ PZParser newFixedLengthParser(final InputStream pzmapXMLStream, final InputStream dataSourceStream); - + /** * Constructs a new DataSet using the database table file layout method. * This is used for a FIXED LENGTH text file. @@ -134,7 +134,7 @@ * @return PZParser */ PZParser newFixedLengthParser(final Connection con, final Reader dataSource, final String dataDefinition); - + /** * New constructor based on Reader. Constructs a new DataSet using the * PZMAP XML file layout method. This is used for a FIXED LENGTH text file. @@ -187,9 +187,9 @@ * The InputStream can be wrapped in a "new InputStreamReader(InputStream)" * @return PZParser */ - PZParser newDelimitedParser(final Connection con, final InputStream dataSource, final String dataDefinition, - final char delimiter, final char qualifier, final boolean ignoreFirstRecord); - + PZParser newDelimitedParser(final Connection con, final InputStream dataSource, final String dataDefinition, final char delimiter, + final char qualifier, final boolean ignoreFirstRecord); + /** * New constructor based on Reader. Constructs a new DataSet using the * database table file layout method. This is used for a DELIMITED text @@ -218,8 +218,8 @@ * skips the first line that contains data in the file * @return PZParser */ - PZParser newDelimitedParser(final Connection con, final Reader dataSource, final String dataDefinition, - final char delimiter, final char qualifier, final boolean ignoreFirstRecord); + PZParser newDelimitedParser(final Connection con, final Reader dataSource, final String dataDefinition, final char delimiter, + final char qualifier, final boolean ignoreFirstRecord); /** * Constructs a new DataSet using the PZMAP XML file layout method. This is @@ -270,8 +270,7 @@ */ PZParser newDelimitedParser(final Reader pzmapXML, final Reader dataSource, final char delimiter, final char qualifier, final boolean ignoreFirstRecord); - - + /** * New constructor based on InputStream. Constructs a new DataSet using the * PZMAP XML file layout method. This is used for a DELIMITED text file. @@ -299,8 +298,8 @@ * The InputStream can be wrapped in a "new InputStreamReader(InputStream)" * @return PZParser */ - PZParser newDelimitedParser(final InputStream pzmapXMLStream, final InputStream dataSourceStream, final char delimiter, - final char qualifier, final boolean ignoreFirstRecord); + PZParser newDelimitedParser(final InputStream pzmapXMLStream, final InputStream dataSourceStream, final char delimiter, final char qualifier, + final boolean ignoreFirstRecord); /** * Constructs a new DataSet using the first line of data found in the text @@ -322,7 +321,7 @@ * @return PZParser */ PZParser newDelimitedParser(final File dataSource, final char delimiter, final char qualifier); - + /** * Constructs a new DataSet using the first line of data found in the text * file as the column names. This is used for a DELIMITED text file. esacpe Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderDelimPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderDelimPZParser.java 2007-05-01 09:13:20 UTC (rev 309) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderDelimPZParser.java 2007-05-24 22:51:48 UTC (rev 310) @@ -38,11 +38,7 @@ import java.io.InputStream; import java.io.Reader; import java.util.List; -import java.util.Map; -import org.slf4j.Logger; -import org.slf4j.Logg... [truncated message content] |
From: <be...@us...> - 2007-05-01 09:13:20
|
Revision: 309 http://svn.sourceforge.net/pzfilereader/?rev=309&view=rev Author: benoitx Date: 2007-05-01 02:13:20 -0700 (Tue, 01 May 2007) Log Message: ----------- typos. Modified Paths: -------------- trunk/src/site/index.xml trunk/src/site/navigation.xml Modified: trunk/src/site/index.xml =================================================================== --- trunk/src/site/index.xml 2007-04-21 22:34:04 UTC (rev 308) +++ trunk/src/site/index.xml 2007-05-01 09:13:20 UTC (rev 309) @@ -20,8 +20,9 @@ </head> <body> <!-- The body of the document contains a number of sections --> - <section name="StatSVN News"> - <p>Get the RSS feed of the news <a href="news.rss"><img src="images/rss.png"></img></a></p> + <section name="News"> + <p style="margin-top:10px; margin-bottom:0; padding-bottom:0; text-align:center; line-height:0"><a href="http://feeds.feedburner.com/~r/ObjectlabOpenSourceNews/~6/1"><img src="http://feeds.feedburner.com/ObjectlabOpenSourceNews.1.gif" alt="ObjectLab Open Source News" style="border:0"/></a></p><p style="margin-top:5px; padding-top:0; font-size:x-small; text-align:center"><a href="http://www.feedburner.com/fb/a/headlineanimator/install?id=829470&w=1" onclick="window.open(this.href, 'haHowto', 'width=520,height=600,toolbar=no,address=no,resizable=yes,scrollbars'); return false" target="_blank">Grab this Headline Animator</a></p> + <p>Feb 11, 2007: PZFileReader 3.0.0 is released, new interfaces (not backward compatible) but great performance improvements (order of magnitude).</p> </section> Modified: trunk/src/site/navigation.xml =================================================================== --- trunk/src/site/navigation.xml 2007-04-21 22:34:04 UTC (rev 308) +++ trunk/src/site/navigation.xml 2007-05-01 09:13:20 UTC (rev 309) @@ -31,12 +31,13 @@ </menu> <footer> <div style="vertical-align:middle"> - <a href="http://sourceforge.net"> + <p style="margin-top:10px; margin-bottom:0; padding-bottom:0; text-align:center; line-height:0"><a href="http://sourceforge.net"> <img src="http://sourceforge.net/sflogo.php?group_id=97367&type=2" width="125" height="37" border="0" alt="SourceForge.net Logo" /> </a> -<a href="http://digg.com/submit?phase=2&url=pzfilereader.sourceforge.net&title=Paul%20Zepernick%20and%20ObjectLab%20have%20released%20version%202%2E3%2E0%20of%20PZFileReader%2E&bodytext=PZFileReader%20on%20SourceForge%3A%20a%20Java%20(1%2E4%2B)%20flat%20file%20parser%20that%20handles%20CSV,%20fixed%20length%20and%20custom%20delimiters%2E%20The%20formats%20are%20configured%20in%20XML%20or%20in%20DB%2E%20Once%20parsed%20the%20data%20is%20easily%20accessible%20record%20by%20record%20and%20via%20a%20column%20name,%20regardless%20of%20order%2E%20%20It%20is%20fast%20and%20released%20under%20Apache%20license%202%2E0%2E&topic=programming"> - <img src="http://digg.com/img/badges/91x17-digg-button.png" width="91" height="17" alt="Digg!" style="vertical-align:middle" /></a> - </div> + <a href="http://digg.com/submit?phase=2&url=pzfilereader.sourceforge.net&title=Paul%20Zepernick%20and%20ObjectLab%20have%20released%20version%202%2E3%2E0%20of%20PZFileReader%2E&bodytext=PZFileReader%20on%20SourceForge%3A%20a%20Java%20(1%2E4%2B)%20flat%20file%20parser%20that%20handles%20CSV,%20fixed%20length%20and%20custom%20delimiters%2E%20The%20formats%20are%20configured%20in%20XML%20or%20in%20DB%2E%20Once%20parsed%20the%20data%20is%20easily%20accessible%20record%20by%20record%20and%20via%20a%20column%20name,%20regardless%20of%20order%2E%20%20It%20is%20fast%20and%20released%20under%20Apache%20license%202%2E0%2E&topic=programming"> + <img src="http://digg.com/img/badges/91x17-digg-button.png" width="91" height="17" alt="Digg!" style="vertical-align:middle" /></a> + <a href="http://feeds.feedburner.com/~r/ObjectlabOpenSourceNews/~6/1"><img src="http://feeds.feedburner.com/ObjectlabOpenSourceNews.1.gif" alt="ObjectLab Open Source News" style="border:0"/></a></p><p style="margin-top:5px; padding-top:0; font-size:x-small; text-align:center"></p> + </div> <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> </script> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2007-04-21 22:34:03
|
Revision: 308 http://svn.sourceforge.net/pzfilereader/?rev=308&view=rev Author: zepernick Date: 2007-04-21 15:34:04 -0700 (Sat, 21 Apr 2007) Log Message: ----------- Logged new changes Modified Paths: -------------- trunk/src/site/changes.xml Modified: trunk/src/site/changes.xml =================================================================== --- trunk/src/site/changes.xml 2007-04-21 22:33:49 UTC (rev 307) +++ trunk/src/site/changes.xml 2007-04-21 22:34:04 UTC (rev 308) @@ -8,6 +8,9 @@ </properties> <body> <release version="3.1.0" date="in svn" description="Maintenance"> + <action dev="zepernick" type="change">Feature Request 1596087. Added attribute "elementCount" on record + element mapping, which can determine a header, trailer, or detail record by the number of elements contained + on the record. This only applies to delimited files.</action> <action dev="zepernick" type="change">Feature Request 1569891. Added setNullEmptyStrings to the PZParser. This will make the DataSet.getString() return null if the column is empty.</action> <action dev="zepernick" type="change">Added option to the PZParser setIgnoreParseWarnings(boolean). This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2007-04-21 22:33:48
|
Revision: 307 http://svn.sourceforge.net/pzfilereader/?rev=307&view=rev Author: zepernick Date: 2007-04-21 15:33:49 -0700 (Sat, 21 Apr 2007) Log Message: ----------- Feature request 1596087. ADded the ability to determine the correct <record> element based on the number of elements. This only applies to delimited files. Modified Paths: -------------- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/ParserUtils.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMapParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/XMLRecordElement.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/pzfilereader.dtd Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/ParserUtils.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/ParserUtils.java 2007-04-21 22:32:06 UTC (rev 306) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/ParserUtils.java 2007-04-21 22:33:49 UTC (rev 307) @@ -583,11 +583,17 @@ // others match } final XMLRecordElement recordXMLElement = (XMLRecordElement) entry.getValue(); - - if (recordXMLElement.getElementNumber() > lineElements.size()) { + + if (recordXMLElement.getElementCount() > 0 && + recordXMLElement.getElementCount() == lineElements.size()) { + //determing which <record> mapping to use by the number of elements + //contained on the line + return (String)entry.getKey(); + } else if (recordXMLElement.getElementNumber() > lineElements.size()) { // make sure the element referenced in the mapping exists continue; } + final String lineElement = (String) lineElements.get(recordXMLElement.getElementNumber() - 1); if (lineElement.equals(recordXMLElement.getIndicator())) { // we found the MD object we want to return Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMapParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMapParser.java 2007-04-21 22:32:06 UTC (rev 306) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMapParser.java 2007-04-21 22:33:49 UTC (rev 307) @@ -154,11 +154,11 @@ while (recordDescriptors.hasNext()) { final Element xmlElement = (Element) recordDescriptors.next(); - // make sure the id attribute does not have a value of "detail" this - // is the harcoded - // value we are using to mark columns specified outside of a - // <RECORD> element if (xmlElement.getAttributeValue("id").equals(PZConstants.DETAIL_ID)) { + // make sure the id attribute does not have a value of "detail" this + // is the harcoded + // value we are using to mark columns specified outside of a + // <RECORD> element throw new IllegalArgumentException( "The ID 'detail' on the <RECORD> element is reserved, please select another id"); } @@ -170,6 +170,7 @@ xmlre.setElementNumber(convertAttributeToInt(xmlElement.getAttribute("elementNumber"))); xmlre.setStartPosition(convertAttributeToInt(xmlElement.getAttribute("startPosition"))); xmlre.setEndPositition(convertAttributeToInt(xmlElement.getAttribute("endPosition"))); + xmlre.setElementCount(convertAttributeToInt(xmlElement.getAttribute("elementCount"))); mdIndex.put(xmlElement.getAttributeValue("id"), xmlre); } Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/XMLRecordElement.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/XMLRecordElement.java 2007-04-21 22:32:06 UTC (rev 306) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/XMLRecordElement.java 2007-04-21 22:33:49 UTC (rev 307) @@ -31,6 +31,8 @@ private int endPositition = 0; private int elementNumber = 0; + + private int elementCount = 0; private String indicator; @@ -144,4 +146,24 @@ } return idx; } + + /** + * Used to determine the <record> mapping the row belongs to. Will + * only be evaluated if > 0. + * + * @return the elementCount + */ + public int getElementCount() { + return elementCount; + } + + /** + * Used to determine the <record> mapping the row belongs to. Will + * only be evaluated if > 0. + * + * @param elementCount the elementCount to set + */ + public void setElementCount(int elementCount) { + this.elementCount = elementCount; + } } Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/pzfilereader.dtd =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/pzfilereader.dtd 2007-04-21 22:32:06 UTC (rev 306) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/pzfilereader.dtd 2007-04-21 22:33:49 UTC (rev 307) @@ -5,7 +5,8 @@ startPosition CDATA "1" endPosition CDATA "1" elementNumber CDATA "1" - indicator CDATA #REQUIRED> + elementCount CDATA "0" + indicator CDATA ""> <!ELEMENT COLUMN EMPTY> <!ATTLIST COLUMN name CDATA #REQUIRED length CDATA "1" > \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2007-04-21 22:32:05
|
Revision: 306 http://svn.sourceforge.net/pzfilereader/?rev=306&view=rev Author: zepernick Date: 2007-04-21 15:32:06 -0700 (Sat, 21 Apr 2007) Log Message: ----------- More unit tests... Added Paths: ----------- trunk/PZFileReader/src/test/java/net/sf/pzfilereader/pzparser/PZParserOptsTest.java Added: trunk/PZFileReader/src/test/java/net/sf/pzfilereader/pzparser/PZParserOptsTest.java =================================================================== --- trunk/PZFileReader/src/test/java/net/sf/pzfilereader/pzparser/PZParserOptsTest.java (rev 0) +++ trunk/PZFileReader/src/test/java/net/sf/pzfilereader/pzparser/PZParserOptsTest.java 2007-04-21 22:32:06 UTC (rev 306) @@ -0,0 +1,94 @@ +package net.sf.pzfilereader.pzparser; + +import java.io.StringReader; +import java.util.NoSuchElementException; + +import net.sf.pzfilereader.DataSet; +import net.sf.pzfilereader.DefaultPZParserFactory; +import net.sf.pzfilereader.PZParser; +import net.sf.pzfilereader.util.PZConstants; +import junit.framework.TestCase; + +/** + * Test the different options that can be + * set on the parser + * + * @author Paul Zepernick + */ +public class PZParserOptsTest extends TestCase{ + + public void testEmptyToNull() { + DataSet ds; + final String cols = "COLUMN1,column2,Column3\r\n value1,,value3"; + PZParser p = DefaultPZParserFactory.getInstance().newDelimitedParser( + new StringReader(cols), ',', PZConstants.NO_QUALIFIER); + p.setNullEmptyStrings(true); + ds = p.parse(); + ds.next(); + + assertEquals("String should be null...", null, ds.getString("column2")); + + p = DefaultPZParserFactory.getInstance().newDelimitedParser( + new StringReader(cols), ',', PZConstants.NO_QUALIFIER); + p.setNullEmptyStrings(false); + ds = p.parse(); + ds.next(); + + assertEquals("String should be empty...", "", ds.getString("column2")); + } + + public void testIgnoreWarnings() { + DataSet ds; + final String cols = "COLUMN1,column2,Column3\r\n value1,value2"; + PZParser p = DefaultPZParserFactory.getInstance().newDelimitedParser( + new StringReader(cols), ',', PZConstants.NO_QUALIFIER); + p.setHandlingShortLines(true); + p.setIgnoreParseWarnings(true); + ds = p.parse(); + + assertEquals("Error collection should be empty...", 0, ds.getErrors().size()); + + p = DefaultPZParserFactory.getInstance().newDelimitedParser( + new StringReader(cols), ',', PZConstants.NO_QUALIFIER); + p.setHandlingShortLines(true); + p.setIgnoreParseWarnings(false); + ds = p.parse(); + ds.next(); + + assertEquals("Error collection should contain warning...", 1, ds.getErrors().size()); + } + + public void testCaseSensitiveMetaData() { + DataSet ds; + final String cols = "COLUMN1,column2,Column3\r\n value1,value2,value3"; + PZParser p = DefaultPZParserFactory.getInstance().newDelimitedParser( + new StringReader(cols), ',', PZConstants.NO_QUALIFIER); + + //check that column names are case sensitive + p.setColumnNamesCaseSensitive(true); + ds = p.parse(); + ds.next(); + try { + ds.getString("COLUMN2"); + fail("Column was mapped as 'column2' and lookup was 'COLUMN2'...should fail with case sensitivity turned on"); + } catch (NoSuchElementException e) { + //this should happen since we are matching case + } + + //check that column names are NOT case sensitive + p = DefaultPZParserFactory.getInstance().newDelimitedParser( + new StringReader(cols), ',', PZConstants.NO_QUALIFIER); + p.setColumnNamesCaseSensitive(false); + ds = p.parse(); + ds.next(); + try { + ds.getString("COLUMN2"); + } catch (NoSuchElementException e) { + fail("Column was mapped as 'column2' and lookup was 'COLUMN2'...should NOT fail with case sensitivity turned OFF"); + } + } + + public static void main(final String[] args) { + junit.textui.TestRunner.run(PZParserOptsTest.class); + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2007-04-21 22:32:01
|
Revision: 305 http://svn.sourceforge.net/pzfilereader/?rev=305&view=rev Author: zepernick Date: 2007-04-21 15:32:01 -0700 (Sat, 21 Apr 2007) Log Message: ----------- More unit tests... Added Paths: ----------- trunk/PZFileReader/src/test/java/net/sf/pzfilereader/pzparser/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2007-04-21 22:31:10
|
Revision: 304 http://svn.sourceforge.net/pzfilereader/?rev=304&view=rev Author: zepernick Date: 2007-04-21 15:31:11 -0700 (Sat, 21 Apr 2007) Log Message: ----------- More unit tests... Modified Paths: -------------- trunk/PZFileReader/src/test/java/net/sf/pzfilereader/parserutils/ParserUtilsTest.java Modified: trunk/PZFileReader/src/test/java/net/sf/pzfilereader/parserutils/ParserUtilsTest.java =================================================================== --- trunk/PZFileReader/src/test/java/net/sf/pzfilereader/parserutils/ParserUtilsTest.java 2007-04-21 21:35:07 UTC (rev 303) +++ trunk/PZFileReader/src/test/java/net/sf/pzfilereader/parserutils/ParserUtilsTest.java 2007-04-21 22:31:11 UTC (rev 304) @@ -61,35 +61,6 @@ assertEquals(ParserUtils.runPzConverter(convertProps, "$5.3556", BigDecimal.class), new BigDecimal("5.3556")); } - public void testCaseSensitiveMetaData() { - DataSet ds; - final String cols = "COLUMN1,column2,Column3\r\n value1,value2,value3"; - PZParser p = DefaultPZParserFactory.getInstance().newDelimitedParser( - new StringReader(cols), ',', PZConstants.NO_QUALIFIER); - - //check that column names are case sensitive - p.setColumnNamesCaseSensitive(true); - ds = p.parse(); - ds.next(); - try { - ds.getString("COLUMN2"); - fail("Column was mapped as 'column2' and lookup was 'COLUMN2'...should fail with case sensitivity turned on"); - } catch (NoSuchElementException e) { - //this should happen since we are matching case - } - - //check that column names are NOT case sensitive - p = DefaultPZParserFactory.getInstance().newDelimitedParser( - new StringReader(cols), ',', PZConstants.NO_QUALIFIER); - p.setColumnNamesCaseSensitive(false); - ds = p.parse(); - ds.next(); - try { - ds.getString("COLUMN2"); - } catch (NoSuchElementException e) { - fail("Column was mapped as 'column2' and lookup was 'COLUMN2'...should NOT fail with case sensitivity turned OFF"); - } - } public static void main(final String[] args) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2007-04-21 21:35:06
|
Revision: 303 http://svn.sourceforge.net/pzfilereader/?rev=303&view=rev Author: zepernick Date: 2007-04-21 14:35:07 -0700 (Sat, 21 Apr 2007) Log Message: ----------- Logged new changes Modified Paths: -------------- trunk/src/site/changes.xml Modified: trunk/src/site/changes.xml =================================================================== --- trunk/src/site/changes.xml 2007-04-21 21:34:49 UTC (rev 302) +++ trunk/src/site/changes.xml 2007-04-21 21:35:07 UTC (rev 303) @@ -8,6 +8,8 @@ </properties> <body> <release version="3.1.0" date="in svn" description="Maintenance"> + <action dev="zepernick" type="change">Feature Request 1569891. Added setNullEmptyStrings to the + PZParser. This will make the DataSet.getString() return null if the column is empty.</action> <action dev="zepernick" type="change">Added option to the PZParser setIgnoreParseWarnings(boolean). When true, the parser will not log warning into the error collection in the DataSet. The default is false.</action> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2007-04-21 21:34:54
|
Revision: 302 http://svn.sourceforge.net/pzfilereader/?rev=302&view=rev Author: zepernick Date: 2007-04-21 14:34:49 -0700 (Sat, 21 Apr 2007) Log Message: ----------- Added option to return empty Strings as null. Feature request 1569891. Modified Paths: -------------- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultDataSet.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java 2007-04-21 16:44:58 UTC (rev 301) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java 2007-04-21 21:34:49 UTC (rev 302) @@ -56,6 +56,8 @@ private boolean initialised = false; private boolean ignoreParseWarnings = false; + + private boolean nullEmptyStrings = false; /** Map of column metadata's */ private Map columnMD = null; @@ -252,5 +254,13 @@ public void setIgnoreParseWarnings(boolean ignoreParseWarnings) { this.ignoreParseWarnings = ignoreParseWarnings; } + + public boolean isNullEmptyStrings() { + return nullEmptyStrings; + } + + public void setNullEmptyStrings(boolean nullEmptyStrings) { + this.nullEmptyStrings = nullEmptyStrings; + } } Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultDataSet.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultDataSet.java 2007-04-21 16:44:58 UTC (rev 301) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultDataSet.java 2007-04-21 21:34:49 UTC (rev 302) @@ -261,7 +261,11 @@ public String getString(final String column) { final Row row = (Row) rows.get(pointer); final String s = row.getValue(ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column, pzparser)); - + + if (pzparser.isNullEmptyStrings() && s.trim().equals("")) { + return null; + } + if (upperCase) { // convert data to uppercase before returning // return row.getValue(ParserUtils.findColumn(column, Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java 2007-04-21 16:44:58 UTC (rev 301) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java 2007-04-21 21:34:49 UTC (rev 302) @@ -112,4 +112,16 @@ * in the DataSet errors */ void setIgnoreParseWarnings(final boolean ignoreParseWarnings); + + /** + * + * @return true, empty Strings will get returned as NULL when calling DataSet.getString() + */ + boolean isNullEmptyStrings(); + + /** + * + * @param nullEmptyStrings when true, empty Strings will get returned as NULL when calling DataSet.getString() + */ + void setNullEmptyStrings(final boolean nullEmptyStrings); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2007-04-21 16:44:56
|
Revision: 301 http://svn.sourceforge.net/pzfilereader/?rev=301&view=rev Author: zepernick Date: 2007-04-21 09:44:58 -0700 (Sat, 21 Apr 2007) Log Message: ----------- Logged new changes Modified Paths: -------------- trunk/src/site/changes.xml Modified: trunk/src/site/changes.xml =================================================================== --- trunk/src/site/changes.xml 2007-04-21 16:44:37 UTC (rev 300) +++ trunk/src/site/changes.xml 2007-04-21 16:44:58 UTC (rev 301) @@ -8,6 +8,9 @@ </properties> <body> <release version="3.1.0" date="in svn" description="Maintenance"> + <action dev="zepernick" type="change">Added option to the PZParser setIgnoreParseWarnings(boolean). + When true, the parser will not log warning into the error collection in the DataSet. The + default is false.</action> <action dev="zepernick" type="change">Removing deprecated methods in ParserUtils; isMultiLine(), splitLine(), getCMDKeyForFixedLengthFile()</action> <action dev="zepernick" type="change">Added option to PZParser setColumnNamesCaseSensitive(). This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2007-04-21 16:44:36
|
Revision: 300 http://svn.sourceforge.net/pzfilereader/?rev=300&view=rev Author: zepernick Date: 2007-04-21 09:44:37 -0700 (Sat, 21 Apr 2007) Log Message: ----------- added an option to ignore parse warnings Modified Paths: -------------- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java 2007-04-21 15:43:02 UTC (rev 299) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java 2007-04-21 16:44:37 UTC (rev 300) @@ -54,6 +54,8 @@ private boolean columnNamesCaseSensitive = false; private boolean initialised = false; + + private boolean ignoreParseWarnings = false; /** Map of column metadata's */ private Map columnMD = null; @@ -213,6 +215,10 @@ * int errorLevel 1,2,3 1=warning 2=error 3= severe error */ protected void addError(final DefaultDataSet ds, final String errorDesc, final int lineNo, final int errorLevel) { + if (errorLevel == 1 && isIgnoreParseWarnings()) { + //user has selected to not log warnings in the parser + return; + } final DataError de = new DataError(errorDesc, lineNo, errorLevel); ds.addError(de); } @@ -238,5 +244,13 @@ public void setColumnNamesCaseSensitive(boolean columnNamesCaseSensitive) { this.columnNamesCaseSensitive = columnNamesCaseSensitive; } + + public boolean isIgnoreParseWarnings() { + return ignoreParseWarnings; + } + + public void setIgnoreParseWarnings(boolean ignoreParseWarnings) { + this.ignoreParseWarnings = ignoreParseWarnings; + } } Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java 2007-04-21 15:43:02 UTC (rev 299) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java 2007-04-21 16:44:37 UTC (rev 300) @@ -97,4 +97,19 @@ * Example when false: Column name = AColumnName ; getString("acolumnname") would pass */ void setColumnNamesCaseSensitive(final boolean columnNamesCaseSensitive); + + /** + * Default is false + * + * @return true, warnings encountered durring parsing will not be included in the DataSet errors + */ + boolean isIgnoreParseWarnings(); + + + /** + * + * @param ignoreParseWarnings when true, warnings encountered durring parsing will not be included + * in the DataSet errors + */ + void setIgnoreParseWarnings(final boolean ignoreParseWarnings); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2007-04-21 15:43:06
|
Revision: 299 http://svn.sourceforge.net/pzfilereader/?rev=299&view=rev Author: zepernick Date: 2007-04-21 08:43:02 -0700 (Sat, 21 Apr 2007) Log Message: ----------- Logged new changes Modified Paths: -------------- trunk/src/site/changes.xml Modified: trunk/src/site/changes.xml =================================================================== --- trunk/src/site/changes.xml 2007-04-21 15:42:12 UTC (rev 298) +++ trunk/src/site/changes.xml 2007-04-21 15:43:02 UTC (rev 299) @@ -8,6 +8,14 @@ </properties> <body> <release version="3.1.0" date="in svn" description="Maintenance"> + <action dev="zepernick" type="change">Removing deprecated methods in ParserUtils; + isMultiLine(), splitLine(), getCMDKeyForFixedLengthFile()</action> + <action dev="zepernick" type="change">Added option to PZParser setColumnNamesCaseSensitive(). + This will force the user to lookup the column value in the exact same case as the column was specified + in the mapping or file. Deprecated the current method signatures for;ParserUtils.buidColumnIndexMap, + ParserUtils.getColumnIndex,ParserUtils.getColumnMDFromFile. Added PZParser parameter to new signatures, + however, this parameter CAN BE null. Registered PZParser with the DefaultDataSet. This will provide + the ability to see what options were set pertaining to data retrieval.</action> <action dev="zepernick" type="change">Changing the PZParseFactory to use java.io.Reader instead of File or InputStream. The File and InputStream methods are still available, but are now deprecated.</action> <action dev="zepernick" type="change">Removed deprecated PZMapParser.parse(File). This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2007-04-21 15:42:11
|
Revision: 298 http://svn.sourceforge.net/pzfilereader/?rev=298&view=rev Author: zepernick Date: 2007-04-21 08:42:12 -0700 (Sat, 21 Apr 2007) Log Message: ----------- added unit test for case sensitivity Modified Paths: -------------- trunk/PZFileReader/src/test/java/net/sf/pzfilereader/parserutils/ParserUtilsTest.java Modified: trunk/PZFileReader/src/test/java/net/sf/pzfilereader/parserutils/ParserUtilsTest.java =================================================================== --- trunk/PZFileReader/src/test/java/net/sf/pzfilereader/parserutils/ParserUtilsTest.java 2007-04-21 15:41:43 UTC (rev 297) +++ trunk/PZFileReader/src/test/java/net/sf/pzfilereader/parserutils/ParserUtilsTest.java 2007-04-21 15:42:12 UTC (rev 298) @@ -1,10 +1,15 @@ package net.sf.pzfilereader.parserutils; import java.io.IOException; +import java.io.StringReader; import java.math.BigDecimal; -import java.util.List; +import java.util.NoSuchElementException; import java.util.Properties; +import net.sf.pzfilereader.DataSet; +import net.sf.pzfilereader.DefaultPZParserFactory; +import net.sf.pzfilereader.PZParser; +import net.sf.pzfilereader.util.PZConstants; import net.sf.pzfilereader.util.ParserUtils; import junit.framework.TestCase; /** @@ -55,6 +60,36 @@ assertEquals(ParserUtils.runPzConverter(convertProps, "$5.00C", Integer.class), new Integer("5")); assertEquals(ParserUtils.runPzConverter(convertProps, "$5.3556", BigDecimal.class), new BigDecimal("5.3556")); } + + public void testCaseSensitiveMetaData() { + DataSet ds; + final String cols = "COLUMN1,column2,Column3\r\n value1,value2,value3"; + PZParser p = DefaultPZParserFactory.getInstance().newDelimitedParser( + new StringReader(cols), ',', PZConstants.NO_QUALIFIER); + + //check that column names are case sensitive + p.setColumnNamesCaseSensitive(true); + ds = p.parse(); + ds.next(); + try { + ds.getString("COLUMN2"); + fail("Column was mapped as 'column2' and lookup was 'COLUMN2'...should fail with case sensitivity turned on"); + } catch (NoSuchElementException e) { + //this should happen since we are matching case + } + + //check that column names are NOT case sensitive + p = DefaultPZParserFactory.getInstance().newDelimitedParser( + new StringReader(cols), ',', PZConstants.NO_QUALIFIER); + p.setColumnNamesCaseSensitive(false); + ds = p.parse(); + ds.next(); + try { + ds.getString("COLUMN2"); + } catch (NoSuchElementException e) { + fail("Column was mapped as 'column2' and lookup was 'COLUMN2'...should NOT fail with case sensitivity turned OFF"); + } + } public static void main(final String[] args) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2007-04-21 15:41:42
|
Revision: 297 http://svn.sourceforge.net/pzfilereader/?rev=297&view=rev Author: zepernick Date: 2007-04-21 08:41:43 -0700 (Sat, 21 Apr 2007) Log Message: ----------- Implemented the change to allow the user to specify if the column lookups should or should not be case sensitive. This required passing the PZParser object around to several places in util methods and in the DataSet. I think it will be handy to have it there for future changes so that we can easily obtain all the options the user has flagged for the parse. Deprecated old signatures of any method the PZParser parmeter was added to. It is possible to leave the PZParser null so anyone using a deprecated method can just pass a null in for the parser. Modified Paths: -------------- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractDelimiterPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractFixedLengthPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBDelimiterPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBFixedLengthPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultDataSet.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DelimiterPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/FixedLengthPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderDelimPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderPZDataSet.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/ParserUtils.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMapParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/XMLRecordElement.java Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractDelimiterPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractDelimiterPZParser.java 2007-03-22 11:32:57 UTC (rev 296) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractDelimiterPZParser.java 2007-04-21 15:41:43 UTC (rev 297) @@ -169,7 +169,7 @@ throw new NullPointerException("dataSource is null"); } BufferedReader br = null; - final DefaultDataSet ds = new DefaultDataSet(getColumnMD()); + final DefaultDataSet ds = new DefaultDataSet(getColumnMD(), this); try { //gather the conversion properties ds.setPZConvertProps(ParserUtils.loadConvertProperties()); @@ -189,7 +189,7 @@ continue; } else if (!processedFirst && createMDFromFile) { processedFirst = true; - setColumnMD(ParserUtils.getColumnMDFromFile(line, delimiter, qualifier)); + setColumnMD(ParserUtils.getColumnMDFromFile(line, delimiter, qualifier, this)); ds.setColumnMD(getColumnMD()); continue; } Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractFixedLengthPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractFixedLengthPZParser.java 2007-03-22 11:32:57 UTC (rev 296) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractFixedLengthPZParser.java 2007-04-21 15:41:43 UTC (rev 297) @@ -109,7 +109,7 @@ private DataSet doFixedLengthFile(final Reader dataSource) throws IOException { BufferedReader br = null; - final DefaultDataSet ds = new DefaultDataSet(getColumnMD()); + final DefaultDataSet ds = new DefaultDataSet(getColumnMD(), this); try { //gather the conversion properties Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBDelimiterPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBDelimiterPZParser.java 2007-03-22 11:32:57 UTC (rev 296) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBDelimiterPZParser.java 2007-04-21 15:41:43 UTC (rev 297) @@ -78,7 +78,7 @@ final List cmds = ParserUtils.buildMDFromSQLTable(con, getDataDefinition()); addToColumnMD(PZConstants.DETAIL_ID, cmds); - addToColumnMD(PZConstants.COL_IDX, ParserUtils.buidColumnIndexMap(cmds)); + addToColumnMD(PZConstants.COL_IDX, ParserUtils.buidColumnIndexMap(cmds, this)); if (cmds.isEmpty()) { throw new FileNotFoundException("DATA DEFINITION CAN NOT BE FOUND IN THE DATABASE " + getDataDefinition()); Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBFixedLengthPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBFixedLengthPZParser.java 2007-03-22 11:32:57 UTC (rev 296) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBFixedLengthPZParser.java 2007-04-21 15:41:43 UTC (rev 297) @@ -97,7 +97,7 @@ final List cmds = ParserUtils.buildMDFromSQLTable(con, getDataDefinition()); addToColumnMD(PZConstants.DETAIL_ID, cmds); - addToColumnMD(PZConstants.COL_IDX, ParserUtils.buidColumnIndexMap(cmds)); + addToColumnMD(PZConstants.COL_IDX, ParserUtils.buidColumnIndexMap(cmds, this)); if (cmds.isEmpty()) { throw new FileNotFoundException("DATA DEFINITION CAN NOT BE FOUND IN THE DATABASE " + getDataDefinition()); Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultDataSet.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultDataSet.java 2007-03-22 11:32:57 UTC (rev 296) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultDataSet.java 2007-04-21 15:41:43 UTC (rev 297) @@ -75,9 +75,12 @@ private boolean strictNumericParse = false; private Map columnMD; + + private PZParser pzparser; - public DefaultDataSet(final Map columnMD2) { + public DefaultDataSet(final Map columnMD2, final PZParser pzparser) { this.columnMD = columnMD2; + this.pzparser = pzparser; } public void addRow(final Row row) { @@ -147,7 +150,7 @@ */ public Date getDate(final String column, final SimpleDateFormat sdf) throws ParseException { final Row row = (Row) rows.get(pointer); - final String s = row.getValue(ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column)); + final String s = row.getValue(ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column, pzparser)); if (s.trim().equals("")) { //don't do the parse on empties return null; @@ -164,7 +167,7 @@ final StringBuffer newString = new StringBuffer(); final Row row = (Row) rows.get(pointer); - final String s = row.getValue(ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column)); + final String s = row.getValue(ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column, pzparser)); if (!strictNumericParse) { newString.append(ParserUtils.stripNonDoubleChars(s)); @@ -178,7 +181,7 @@ public Object getObject(String column, Class classToConvertTo) { final Row row = (Row) rows.get(pointer); - final String s = row.getValue(ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column)); + final String s = row.getValue(ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column, pzparser)); return ParserUtils.runPzConverter(pzConvertProps, s, classToConvertTo); } @@ -221,7 +224,7 @@ public int getInt(final String column) { final StringBuffer newString = new StringBuffer(); final Row row = (Row) rows.get(pointer); - final String s = row.getValue(ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column)); + final String s = row.getValue(ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column, pzparser)); if (!strictNumericParse) { newString.append(ParserUtils.stripNonLongChars(s)); @@ -257,7 +260,7 @@ */ public String getString(final String column) { final Row row = (Row) rows.get(pointer); - final String s = row.getValue(ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column)); + final String s = row.getValue(ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column, pzparser)); if (upperCase) { // convert data to uppercase before returning @@ -280,7 +283,7 @@ public void setValue(String column, String value) { final Row row = (Row) rows.get(pointer); - final int colIndex = ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column); + final int colIndex = ParserUtils.getColumnIndex(row.getMdkey(), columnMD, column, pzparser); row.setValue(colIndex, value); } Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DelimiterPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DelimiterPZParser.java 2007-03-22 11:32:57 UTC (rev 296) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DelimiterPZParser.java 2007-04-21 15:41:43 UTC (rev 297) @@ -39,7 +39,6 @@ import java.io.InputStreamReader; import java.io.Reader; -import net.sf.pzfilereader.util.ParserUtils; import net.sf.pzfilereader.xml.PZMapParser; import org.jdom.JDOMException; @@ -125,7 +124,7 @@ if (this.pzmapReader != null) { try { - setColumnMD(PZMapParser.parse(this.pzmapReader)); + setColumnMD(PZMapParser.parse(this.pzmapReader, this)); } finally { if (closeMapReader) { //only close the reader if it is one we created Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/FixedLengthPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/FixedLengthPZParser.java 2007-03-22 11:32:57 UTC (rev 296) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/FixedLengthPZParser.java 2007-04-21 15:41:43 UTC (rev 297) @@ -104,7 +104,7 @@ } try { - setColumnMD(PZMapParser.parse(this.pzmapReader)); + setColumnMD(PZMapParser.parse(this.pzmapReader, this)); } finally { if (closeMapReader) { //only close the reader if it is one we created Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderDelimPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderDelimPZParser.java 2007-03-22 11:32:57 UTC (rev 296) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderDelimPZParser.java 2007-04-21 15:41:43 UTC (rev 297) @@ -125,7 +125,7 @@ continue; } else if (!processedFirst && shouldCreateMDFromFile()) { processedFirst = true; - setColumnMD(ParserUtils.getColumnMDFromFile(line, getDelimiter(), getQualifier())); + setColumnMD(ParserUtils.getColumnMDFromFile(line, getDelimiter(), getQualifier(), this)); continue; } Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderPZDataSet.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderPZDataSet.java 2007-03-22 11:32:57 UTC (rev 296) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderPZDataSet.java 2007-04-21 15:41:43 UTC (rev 297) @@ -51,7 +51,7 @@ private final Logger logger = LoggerFactory.getLogger(BuffReaderPZDataSet.class); public BuffReaderPZDataSet(final Map columnMD2, final BuffReaderDelimPZParser brDelimPzParser) { - super(columnMD2); + super(columnMD2, brDelimPzParser); //register the parser with the dataset so we can fetch rows from //the bufferedreader as needed this.brDelimPzParser = brDelimPzParser; @@ -59,7 +59,7 @@ } public BuffReaderPZDataSet(final Map columnMD2, final BuffReaderFixedPZParser brFixedPzParser) { - super(columnMD2); + super(columnMD2, brFixedPzParser); //register the parser with the dataset so we can fetch rows from //the bufferedreader as needed this.brFixedPzParser = brFixedPzParser; Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/ParserUtils.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/ParserUtils.java 2007-03-22 11:32:57 UTC (rev 296) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/util/ParserUtils.java 2007-04-21 15:41:43 UTC (rev 297) @@ -56,6 +56,7 @@ import java.util.Properties; import java.util.Map.Entry; +import net.sf.pzfilereader.PZParser; import net.sf.pzfilereader.converter.PZConvertException; import net.sf.pzfilereader.converter.PZConverter; import net.sf.pzfilereader.structure.ColumnMetaData; @@ -74,18 +75,6 @@ } /** - * @deprecated should only use the splitLine with a CHAR. - * @param line - * @param delimiter - * @param qualifier - * @return List - */ - public static List splitLine(final String line, final String delimiter, final String qualifier) { - return splitLine(line, delimiter != null ? delimiter.charAt(0) : 0, qualifier != null ? qualifier.charAt(0) : 0, - PZConstants.SPLITLINE_SIZE_INIT); - } - - /** * Returns an ArrayList of items in a delimited string. If there is no * qualifier around the text, the qualifier parameter can be left null, or * empty. There should not be any line breaks in the string. Each line of @@ -353,8 +342,25 @@ * @param qualifier * @exception Exception * @return ArrayList - ColumnMetaData + * @deprecated Use getColumnMDFromFile(String, char, char, PZParser) */ public static Map getColumnMDFromFile(final String line, final char delimiter, final char qualifier) { + return getColumnMDFromFile(line, delimiter, qualifier, null); + } + + /** + * Returns a list of ColumnMetaData objects. This is for use with delimited + * files. The first line of the file which contains data will be used as the + * column names + * + * @param line + * @param delimiter + * @param qualifier + * @param p + * PZParser used to specify additional option when working witht the ColumnMetaData. Can be null + * @return ArrayList - ColumnMetaData + */ + public static Map getColumnMDFromFile(final String line, final char delimiter, final char qualifier, final PZParser p) { List lineData = null; final List results = new ArrayList(); final Map columnMD = new LinkedHashMap(); @@ -367,7 +373,7 @@ } columnMD.put(PZConstants.DETAIL_ID, results); - columnMD.put(PZConstants.COL_IDX, buidColumnIndexMap(results)); + columnMD.put(PZConstants.COL_IDX, buidColumnIndexMap(results, p)); return columnMD; } @@ -452,23 +458,7 @@ * @param qualifier - * qualifier being used * @return boolean - * @deprecated use the char version */ - public static boolean isMultiLine(final char[] chrArry, final String delimiter, final String qualifier) { - return isMultiLine(chrArry, delimiter != null ? delimiter.charAt(0) : 0, qualifier != null ? qualifier.charAt(0) : 0); - } - - /** - * Determines if the given line is the first part of a multiline record - * - * @param chrArry - - * char data of the line - * @param delimiter - - * delimiter being used - * @param qualifier - - * qualifier being used - * @return boolean - */ public static boolean isMultiLine(final char[] chrArry, final char delimiter, final char qualifier) { // check if the last char is the qualifier, if so then this a good @@ -567,20 +557,6 @@ } - /** - * Returns the key to the list of ColumnMetaData objects. Returns the - * correct MetaData per the mapping file and the data contained on the line - * - * - * @param columnMD - * @param line - * @return List - ColumMetaData - * @deprecated Moved to FixedWidthParserUtils.getCMDKey() - * - */ - public static String getCMDKeyForFixedLengthFile(final Map columnMD, final String line) { - return FixedWidthParserUtils.getCMDKey(columnMD, line); - } /** * Returns the key to the list of ColumnMetaData objects. Returns the @@ -643,19 +619,25 @@ * Use this method to find the index of a column. * * @author Benoit Xhenseval + * @author Paul Zepernick * @param key * @param columnMD * @param colName + * @param p + * Can be null. Used to specify potential options on how the column should be retrieved * @return -1 if it does not find it */ - public static int getColumnIndex(final String key, final Map columnMD, final String colName) { + public static int getColumnIndex(final String key, final Map columnMD, final String colName, final PZParser p) { int idx = -1; + String column = colName; + if (p != null && !p.isColumnNamesCaseSensitive()) { + column = colName.toLowerCase(Locale.getDefault()); + } if (key != null && !key.equals(PZConstants.DETAIL_ID) && !key.equals(PZConstants.COL_IDX)) { - idx = ((XMLRecordElement) columnMD.get(key)).getColumnIndex(colName.toLowerCase( - Locale.getDefault())); + idx = ((XMLRecordElement) columnMD.get(key)).getColumnIndex(column); } else if (key == null || key.equals(PZConstants.DETAIL_ID)) { final Map map = (Map) columnMD.get(PZConstants.COL_IDX); - final Integer i = (Integer) map.get(colName.toLowerCase(Locale.getDefault())); + final Integer i = (Integer) map.get(column); if (i != null) { //happens when the col name does not exist in the mapping idx = i.intValue(); } @@ -666,6 +648,20 @@ } return idx; } + + /** + * Use this method to find the index of a column. + * + * @author Benoit Xhenseval + * @param key + * @param columnMD + * @param colName + * @return -1 if it does not find it + * @deprecated use getColumnIndex(String, Map, String, PZParser) + */ + public static int getColumnIndex(final String key, final Map columnMD, final String colName) { + return getColumnIndex(key, columnMD, colName, null); + } /** * Create an InputStream based on a File. @@ -757,24 +753,45 @@ * Build a map of name/position based on a list of ColumnMetaData. * * @author Benoit Xhenseval + * @author Paul Zepernick * @param columns + * @param p + * Reference to Parser which can provide additional options on how the + * map should be build. This can be NULL. * @return a new Map */ - public static Map buidColumnIndexMap(final List columns) { + public static Map buidColumnIndexMap(final List columns, final PZParser p) { Map map = null; if (columns != null && !columns.isEmpty()) { map = new HashMap(); int idx = 0; for (final Iterator it = columns.iterator(); it.hasNext(); idx++) { final ColumnMetaData meta = (ColumnMetaData) it.next(); - map.put(meta.getColName().toLowerCase( - Locale.getDefault()), new Integer(idx)); + String colName = meta.getColName(); + if (p != null && !p.isColumnNamesCaseSensitive()) { + //user has selected to make column names case sensitive + //on lookups + colName = colName.toLowerCase(Locale.getDefault()); + } + map.put(colName, new Integer(idx)); } } return map; } /** + * Build a map of name/position based on a list of ColumnMetaData. + * + * @author Benoit Xhenseval + * @param columns + * @return a new Map + * @deprecated Please use buildColumnIndexMap(List, PZParser) + */ + public static Map buidColumnIndexMap(final List columns) { + return buidColumnIndexMap(columns, null); + } + + /** * Removes chars from the String that could not * be parsed into a Long value * @@ -890,6 +907,7 @@ * tables * @param dataDefinition * Name of the data definition stored in the Datafile table + * @throws SQLException * @return List */ public static List buildMDFromSQLTable(final Connection con, final String dataDefinition) throws SQLException{ Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMapParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMapParser.java 2007-03-22 11:32:57 UTC (rev 296) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMapParser.java 2007-04-21 15:41:43 UTC (rev 297) @@ -32,13 +32,9 @@ */ package net.sf.pzfilereader.xml; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.io.PrintWriter; import java.io.Reader; import java.util.ArrayList; import java.util.Iterator; @@ -47,6 +43,7 @@ import java.util.Map; import java.util.Map.Entry; +import net.sf.pzfilereader.PZParser; import net.sf.pzfilereader.structure.ColumnMetaData; import net.sf.pzfilereader.util.PZConstants; import net.sf.pzfilereader.util.ParserUtils; @@ -92,7 +89,7 @@ InputStreamReader isr = null; try { isr = new InputStreamReader(xmlStream); - return parse(isr); + return parse(isr, null); } finally { if (isr != null) { isr.close(); @@ -106,11 +103,13 @@ * returns a Map containing Lists of ColumnMetaData. * * @param xmlStreamReader + * @param pzparser + * Can be null. Allows additional opts to be set durring the XML map read * @return Map <records> with their corrisponding * @throws IOException * @throws JDOMException */ - public static Map parse(final Reader xmlStreamReader) throws JDOMException, IOException { + public static Map parse(final Reader xmlStreamReader, final PZParser pzparser) throws JDOMException, IOException { //use for debug when JDOM complains about the xml /* final BufferedReader br = new BufferedReader(xmlStreamReader); final FileWriter fw = new FileWriter("c:/test.pz"); @@ -148,7 +147,7 @@ mdIndex.put(PZConstants.DETAIL_ID, columns); // always force detail // to the top of // the map no matter what - mdIndex.put(PZConstants.COL_IDX, ParserUtils.buidColumnIndexMap(columns)); + mdIndex.put(PZConstants.COL_IDX, ParserUtils.buidColumnIndexMap(columns, pzparser)); // get all of the "record" elements and the columns under them final Iterator recordDescriptors = root.getChildren("RECORD").iterator(); @@ -166,7 +165,7 @@ columns = getColumnChildren(xmlElement); final XMLRecordElement xmlre = new XMLRecordElement(); - xmlre.setColumns(columns); + xmlre.setColumns(columns, pzparser); xmlre.setIndicator(xmlElement.getAttributeValue("indicator")); xmlre.setElementNumber(convertAttributeToInt(xmlElement.getAttribute("elementNumber"))); xmlre.setStartPosition(convertAttributeToInt(xmlElement.getAttribute("startPosition"))); Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/XMLRecordElement.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/XMLRecordElement.java 2007-03-22 11:32:57 UTC (rev 296) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/XMLRecordElement.java 2007-04-21 15:41:43 UTC (rev 297) @@ -17,6 +17,7 @@ import java.util.List; import java.util.Map; +import net.sf.pzfilereader.PZParser; import net.sf.pzfilereader.util.ParserUtils; /** @@ -108,11 +109,23 @@ /** * @param columns * The columns to set. + * @deprecated Please use setColumns(List, PZParser) */ public void setColumns(final List columns) { this.columns = columns; - this.columnIndex = ParserUtils.buidColumnIndexMap(columns); + this.columnIndex = ParserUtils.buidColumnIndexMap(columns, null); } + + /** + * @param columns + * The columns to set. + * @param p + * PZParser being used. Can be null. + */ + public void setColumns(final List columns, final PZParser p) { + this.columns = columns; + this.columnIndex = ParserUtils.buidColumnIndexMap(columns, p); + } /** * Returns the index of the column name. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2007-03-22 11:32:56
|
Revision: 296 http://svn.sourceforge.net/pzfilereader/?rev=296&view=rev Author: zepernick Date: 2007-03-22 04:32:57 -0700 (Thu, 22 Mar 2007) Log Message: ----------- - Added options for column case sensitivity This has not been implemented yet. Modified Paths: -------------- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java 2007-03-22 11:29:19 UTC (rev 295) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java 2007-03-22 11:32:57 UTC (rev 296) @@ -50,6 +50,8 @@ private boolean handlingShortLines = false; private boolean ignoreExtraColumns = false; + + private boolean columnNamesCaseSensitive = false; private boolean initialised = false; @@ -228,5 +230,13 @@ protected void setDataSourceReader(Reader dataSourceReader) { this.dataSourceReader = dataSourceReader; } + + public boolean isColumnNamesCaseSensitive() { + return columnNamesCaseSensitive; + } + + public void setColumnNamesCaseSensitive(boolean columnNamesCaseSensitive) { + this.columnNamesCaseSensitive = columnNamesCaseSensitive; + } } Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java 2007-03-22 11:29:19 UTC (rev 295) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java 2007-03-22 11:32:57 UTC (rev 296) @@ -95,7 +95,6 @@ * the value of a column. * Example when true: Column name = AColumnName ; getString("acolumnname") would fail * Example when false: Column name = AColumnName ; getString("acolumnname") would pass - * @return boolean */ - boolean setColumnNamesCaseSensitive(final boolean columnNamesCaseSensitive); + void setColumnNamesCaseSensitive(final boolean columnNamesCaseSensitive); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2007-03-22 11:29:19
|
Revision: 295 http://svn.sourceforge.net/pzfilereader/?rev=295&view=rev Author: zepernick Date: 2007-03-22 04:29:19 -0700 (Thu, 22 Mar 2007) Log Message: ----------- - Added options for column case sensitivity This has not been implemented yet. Modified Paths: -------------- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java 2007-03-21 12:17:48 UTC (rev 294) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParser.java 2007-03-22 11:29:19 UTC (rev 295) @@ -78,4 +78,24 @@ * will NOT register these lines as erros in the DataError collection. */ void setIgnoreExtraColumns(final boolean ignoreExtraColumns); + + /** + * Default is false + * + * @return true, column names will have to be an exact match when retrieving the value of a column. + * Example when true: Column name = AColumnName ; getString("acolumnname") would fail + * Example when false: Column name = AColumnName ; getString("acolumnname") would pass + */ + boolean isColumnNamesCaseSensitive(); + + /** + * Default is false + * + * @param columnNamesCaseSensitive when true, column names will have to be an exact match when retrieving + * the value of a column. + * Example when true: Column name = AColumnName ; getString("acolumnname") would fail + * Example when false: Column name = AColumnName ; getString("acolumnname") would pass + * @return boolean + */ + boolean setColumnNamesCaseSensitive(final boolean columnNamesCaseSensitive); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2007-03-21 12:17:47
|
Revision: 294 http://svn.sourceforge.net/pzfilereader/?rev=294&view=rev Author: zepernick Date: 2007-03-21 05:17:48 -0700 (Wed, 21 Mar 2007) Log Message: ----------- Updated version number to 3.1.0-SNAPSHOT Modified Paths: -------------- trunk/common-build/project.xml Modified: trunk/common-build/project.xml =================================================================== --- trunk/common-build/project.xml 2007-03-21 11:31:05 UTC (rev 293) +++ trunk/common-build/project.xml 2007-03-21 12:17:48 UTC (rev 294) @@ -27,7 +27,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/3.0.0 http://maven.apache.org/maven-v3_0_0.xsd"> <pomVersion>3</pomVersion> <groupId>net.sf.pzfilereader</groupId> - <currentVersion>3.0.0</currentVersion> + <currentVersion>3.1.0-SNAPSHOT</currentVersion> <organization> <name>ObjectLab Financial Ltd</name> <url>http://www.objectlab.co.uk</url> @@ -196,6 +196,11 @@ </reports> <versions> + <version> + <id>3.1.0-SNAPSHOT</id> + <name>3.1.0-SNAPSHOT</name> + <tag>3.1.0-SNAPSHOT</tag> + </version> <version> <id>3.0.0</id> <name>3.0.0</name> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2007-03-21 11:31:09
|
Revision: 293 http://svn.sourceforge.net/pzfilereader/?rev=293&view=rev Author: zepernick Date: 2007-03-21 04:31:05 -0700 (Wed, 21 Mar 2007) Log Message: ----------- - Adding support for java.io.Reader in PZParser. This is now the preferred method for reading files. - Deprecated File and InputStream parsers Modified Paths: -------------- trunk/src/site/changes.xml Modified: trunk/src/site/changes.xml =================================================================== --- trunk/src/site/changes.xml 2007-03-21 11:30:20 UTC (rev 292) +++ trunk/src/site/changes.xml 2007-03-21 11:31:05 UTC (rev 293) @@ -7,7 +7,9 @@ <title>Changes</title> </properties> <body> - <release version="3.1.0" date="in svn" description="Move to Maven and Subversion"> + <release version="3.1.0" date="in svn" description="Maintenance"> + <action dev="zepernick" type="change">Changing the PZParseFactory to use java.io.Reader instead of File + or InputStream. The File and InputStream methods are still available, but are now deprecated.</action> <action dev="zepernick" type="change">Removed deprecated PZMapParser.parse(File). Added PZMapParser.parse(Reader). Deprecated PZMapParser.parse(InputStream). </action> <action dev="zepernick" type="fix">Stopped column lookup from being case sensitive</action> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2007-03-21 11:30:29
|
Revision: 292 http://svn.sourceforge.net/pzfilereader/?rev=292&view=rev Author: zepernick Date: 2007-03-21 04:30:20 -0700 (Wed, 21 Mar 2007) Log Message: ----------- - Adding support for java.io.Reader in PZParser. This is now the preferred method for reading files. - Deprecated File and InputStream parsers Modified Paths: -------------- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractDelimiterPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractFixedLengthPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBDelimiterPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBFixedLengthPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultPZParserFactory.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DelimiterPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/FixedLengthPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParserFactory.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderDelimPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderFixedPZParser.java trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderPZParseFactory.java Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractDelimiterPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractDelimiterPZParser.java 2007-03-21 00:53:12 UTC (rev 291) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractDelimiterPZParser.java 2007-03-21 11:30:20 UTC (rev 292) @@ -37,6 +37,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.io.Reader; import java.util.List; import org.slf4j.Logger; @@ -48,6 +49,7 @@ /** * @author xhensevb + * @author zepernick * */ public abstract class AbstractDelimiterPZParser extends AbstractPZParser { @@ -61,7 +63,7 @@ private final Logger logger = LoggerFactory.getLogger(AbstractDelimiterPZParser.class); - public AbstractDelimiterPZParser(final InputStream dataSourceStream, final String dataDefinition, final char delimiter, + /*public AbstractDelimiterPZParser(final InputStream dataSourceStream, final String dataDefinition, final char delimiter, final char qualifier, final boolean ignoreFirstRecord) { super(dataSourceStream, dataDefinition); this.delimiter = delimiter; @@ -83,12 +85,30 @@ this.delimiter = delimiter; this.qualifier = qualifier; this.ignoreFirstRecord = ignoreFirstRecord; + }*/ + + public AbstractDelimiterPZParser(final Reader dataSourceReader, final String dataDefinition, final char delimiter, + final char qualifier, final boolean ignoreFirstRecord) { + super(dataSourceReader, dataDefinition); + this.delimiter = delimiter; + this.qualifier = qualifier; + this.ignoreFirstRecord = ignoreFirstRecord; } + + + public AbstractDelimiterPZParser(final Reader dataSourceReader, final char delimiter, final char qualifier, + final boolean ignoreFirstRecord) { + super(dataSourceReader); + this.delimiter = delimiter; + this.qualifier = qualifier; + this.ignoreFirstRecord = ignoreFirstRecord; + } public DataSet doParse() { try { lineCount = 0; - if (getDataSourceStream() != null) { + return doDelimitedFile(getDataSourceReader(), shouldCreateMDFromFile()); + /* if (getDataSourceStream() != null) { return doDelimitedFile(getDataSourceStream(), shouldCreateMDFromFile()); } else { InputStream stream = null; @@ -100,7 +120,7 @@ stream.close(); } } - } + }*/ } catch (final IOException e) { logger.error("error accessing/creating inputstream", e); } @@ -144,12 +164,10 @@ * puts together the dataset for a DELIMITED file. This is used for PZ XML * mappings, and SQL table mappings */ - private DataSet doDelimitedFile(final InputStream dataSource, final boolean createMDFromFile) throws IOException { + private DataSet doDelimitedFile(final Reader dataSource, final boolean createMDFromFile) throws IOException { if (dataSource == null) { throw new NullPointerException("dataSource is null"); } - - InputStreamReader isr = null; BufferedReader br = null; final DefaultDataSet ds = new DefaultDataSet(getColumnMD()); try { @@ -159,8 +177,7 @@ // get the total column count // columnCount = columnMD.size(); - isr = new InputStreamReader(dataSource); - br = new BufferedReader(isr); + br = new BufferedReader(dataSource); boolean processedFirst = false; /** loop through each line in the file */ @@ -220,12 +237,10 @@ ds.addRow(row); } } finally { - if (isr != null) { - isr.close(); - } if (br != null) { br.close(); } + closeReaders(); } return ds; } Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractFixedLengthPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractFixedLengthPZParser.java 2007-03-21 00:53:12 UTC (rev 291) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractFixedLengthPZParser.java 2007-03-21 11:30:20 UTC (rev 292) @@ -33,10 +33,8 @@ package net.sf.pzfilereader; import java.io.BufferedReader; -import java.io.File; import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; +import java.io.Reader; import java.util.List; import java.util.Map; @@ -55,7 +53,7 @@ public abstract class AbstractFixedLengthPZParser extends AbstractPZParser { private final Logger logger = LoggerFactory.getLogger(AbstractFixedLengthPZParser.class); - protected AbstractFixedLengthPZParser(final File dataSource, final String dataDefinition) { + /* protected AbstractFixedLengthPZParser(final File dataSource, final String dataDefinition) { super(dataSource, dataDefinition); } @@ -69,11 +67,19 @@ protected AbstractFixedLengthPZParser(final InputStream dataSourceStream) { super(dataSourceStream); + }*/ + + protected AbstractFixedLengthPZParser(final Reader dataSourceReader, final String dataDefinition) { + super(dataSourceReader, dataDefinition); } + protected AbstractFixedLengthPZParser(final Reader dataSourceReader) { + super(dataSourceReader); + } + public DataSet doParse() { try { - if (getDataSourceStream() != null) { + /* if (getDataSourceStream() != null) { return doFixedLengthFile(getDataSourceStream()); } else { InputStream stream; @@ -85,9 +91,10 @@ stream.close(); } } - } + }*/ + return doFixedLengthFile(getDataSourceReader()); } catch (final IOException e) { - logger.error("error accessing/creating inputstream", e); + logger.error("error accessing/reading data", e); } return null; } @@ -99,8 +106,7 @@ * puts together the dataset for fixed length file. This is used for PZ XML * mappings, and SQL table mappings */ - private DataSet doFixedLengthFile(final InputStream dataSource) throws IOException { - InputStreamReader isr = null; + private DataSet doFixedLengthFile(final Reader dataSource) throws IOException { BufferedReader br = null; final DefaultDataSet ds = new DefaultDataSet(getColumnMD()); @@ -112,8 +118,7 @@ final Map recordLengths = ParserUtils.calculateRecordLengths(getColumnMD()); // Read in the flat file - isr = new InputStreamReader(dataSource); - br = new BufferedReader(isr); + br = new BufferedReader(dataSource); String line = null; int lineCount = 0; // map of record lengths corrisponding to the ID's in the columnMD @@ -177,12 +182,10 @@ ds.addRow(row); } } finally { - if (isr != null) { - isr.close(); - } if (br != null) { br.close(); } + closeReaders(); } return ds; } Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java 2007-03-21 00:53:12 UTC (rev 291) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/AbstractPZParser.java 2007-03-21 11:30:20 UTC (rev 292) @@ -32,13 +32,17 @@ */ package net.sf.pzfilereader; -import java.io.File; -import java.io.InputStream; +import java.io.IOException; +import java.io.Reader; +import java.util.ArrayList; +import java.util.Iterator; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; /** * @author xhensevb + * @author zepernick * */ public abstract class AbstractPZParser implements PZParser { @@ -54,12 +58,16 @@ private String dataDefinition = null; - private InputStream dataSourceStream = null; + // private InputStream dataSourceStream = null; - private File dataSource = null; + // private File dataSource = null; + + private Reader dataSourceReader = null; + + private List readersToClose = null; - protected AbstractPZParser(final File dataSource) { - this.dataSource = dataSource; + /*protected AbstractPZParser(final File dataSource) { + this.dataSourceReader = new FileReader(dataSource); } protected AbstractPZParser(final InputStream dataSourceStream) { @@ -74,7 +82,16 @@ protected AbstractPZParser(final InputStream dataSourceStream, final String dataDefinition) { this.dataSourceStream = dataSourceStream; this.dataDefinition = dataDefinition; + }*/ + + protected AbstractPZParser(final Reader dataSourceReader) { + this.dataSourceReader = dataSourceReader; } + + protected AbstractPZParser(final Reader dataSourceReader, final String dataDefinition) { + this.dataSourceReader = dataSourceReader; + this.dataDefinition = dataDefinition; + } /* * (non-Javadoc) @@ -116,6 +133,28 @@ protected void setColumnMD(final Map map) { columnMD = map; } + + //this is used for backward compatability. We are instantiating Readers from + //InputStream and File from previous versions. Close out any Readers in the + //readersToClose list. This can be removed after we remove the deprecated methods + protected void closeReaders() throws IOException{ + if (readersToClose != null) { + final Iterator readersToCloseIt = readersToClose.iterator(); + while (readersToCloseIt.hasNext()) { + final Reader r = (Reader)readersToCloseIt.next(); + r.close(); + } + } + } + + //adds a reader to the close list. the list will be processed after parsing is + //completed. + protected void addToCloseReaderList(final Reader r) { + if (readersToClose == null) { + readersToClose = new ArrayList(); + } + readersToClose.add(r); + } protected void addToColumnMD(final Object key, final Object value) { if (columnMD == null) { @@ -140,7 +179,7 @@ this.dataDefinition = dataDefinition; } - protected File getDataSource() { + /* protected File getDataSource() { return dataSource; } @@ -154,7 +193,7 @@ protected void setDataSourceStream(final InputStream dataSourceStream) { this.dataSourceStream = dataSourceStream; - } + }*/ protected Map getColumnMD() { return columnMD; @@ -176,4 +215,18 @@ ds.addError(de); } + /** + * @return the dataSourceReader + */ + protected Reader getDataSourceReader() { + return dataSourceReader; + } + + /** + * @param dataSourceReader the dataSourceReader to set + */ + protected void setDataSourceReader(Reader dataSourceReader) { + this.dataSourceReader = dataSourceReader; + } + } Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBDelimiterPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBDelimiterPZParser.java 2007-03-21 00:53:12 UTC (rev 291) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBDelimiterPZParser.java 2007-03-21 11:30:20 UTC (rev 292) @@ -34,6 +34,8 @@ import java.io.FileNotFoundException; import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; import java.sql.Connection; import java.sql.SQLException; import java.util.List; @@ -43,20 +45,37 @@ /** * @author xhensevb + * @author zepernick * */ public class DBDelimiterPZParser extends AbstractDelimiterPZParser { - private Connection con; + + private InputStream dataSourceStream; public DBDelimiterPZParser(final Connection con, final InputStream dataSourceStream, final String dataDefinition, final char delimiter, final char qualifier, final boolean ignoreFirstRecord) { - super(dataSourceStream, dataDefinition, delimiter, qualifier, ignoreFirstRecord); + super(null, dataDefinition, delimiter, qualifier, ignoreFirstRecord); this.con = con; + this.dataSourceStream = dataSourceStream; } + + public DBDelimiterPZParser(final Connection con, final Reader dataSourceReader, final String dataDefinition, + final char delimiter, final char qualifier, final boolean ignoreFirstRecord) { + super(dataSourceReader, dataDefinition, delimiter, qualifier, ignoreFirstRecord); + this.con = con; + } protected void init() { try { + //check to see if the user is using a InputStream. This is + //here for backwards compatability + if (dataSourceStream != null) { + final Reader r = new InputStreamReader(dataSourceStream); + setDataSourceReader(r); + addToCloseReaderList(r); + } + final List cmds = ParserUtils.buildMDFromSQLTable(con, getDataDefinition()); addToColumnMD(PZConstants.DETAIL_ID, cmds); addToColumnMD(PZConstants.COL_IDX, ParserUtils.buidColumnIndexMap(cmds)); @@ -66,11 +85,9 @@ } setInitialised(true); } catch (final SQLException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + throw new InitialisationException(e); } catch (final FileNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + throw new InitialisationException(e); } } Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBFixedLengthPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBFixedLengthPZParser.java 2007-03-21 00:53:12 UTC (rev 291) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DBFixedLengthPZParser.java 2007-03-21 11:30:20 UTC (rev 292) @@ -34,34 +34,66 @@ import java.io.File; import java.io.FileNotFoundException; +import java.io.FileReader; import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; import java.sql.Connection; import java.sql.SQLException; import java.util.List; + import net.sf.pzfilereader.util.PZConstants; import net.sf.pzfilereader.util.ParserUtils; /** * @author xhensevb + * @author zepernick * */ public class DBFixedLengthPZParser extends AbstractFixedLengthPZParser { - private Connection con; + + //this InputStream and file can be removed after support for + //file and inputstream is removed from the parserfactory. The + //methods have been deprecated..pz + private InputStream dataSourceStream = null; + + private File dataSource = null; public DBFixedLengthPZParser(final Connection con, final InputStream dataSourceStream, final String dataDefinition) { - super(dataSourceStream, dataDefinition); + //Reader will be setup in the init(), passing null for now. + //this constructor will eventually be deleted + super(null, dataDefinition); this.con = con; + this.dataSourceStream = dataSourceStream; } public DBFixedLengthPZParser(final Connection con, final File dataSource, final String dataDefinition) { - super(dataSource, dataDefinition); + super(null, dataDefinition); this.con = con; + this.dataSource = dataSource; } + public DBFixedLengthPZParser(final Connection con, final Reader dataSourceReader, final String dataDefinition) { + super(dataSourceReader, dataDefinition); + this.con = con; + } + protected void init() { try { + //check to see if the user is using a File or InputStream. This is + //here for backwards compatability + if (dataSourceStream != null) { + final Reader r = new InputStreamReader(dataSourceStream); + setDataSourceReader(r); + addToCloseReaderList(r); + } else if (dataSource != null){ + final Reader r = new FileReader(dataSource); + setDataSourceReader(r); + addToCloseReaderList(r); + } + final List cmds = ParserUtils.buildMDFromSQLTable(con, getDataDefinition()); addToColumnMD(PZConstants.DETAIL_ID, cmds); @@ -73,11 +105,9 @@ setInitialised(true); } catch (final SQLException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + throw new InitialisationException(e); } catch (final FileNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + throw new InitialisationException(e); } } Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultPZParserFactory.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultPZParserFactory.java 2007-03-21 00:53:12 UTC (rev 291) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DefaultPZParserFactory.java 2007-03-21 11:30:20 UTC (rev 292) @@ -34,6 +34,7 @@ import java.io.File; import java.io.InputStream; +import java.io.Reader; import java.sql.Connection; /** @@ -86,6 +87,14 @@ public PZParser newFixedLengthParser(final InputStream pzmapXMLStream, final InputStream dataSourceStream) { return new FixedLengthPZParser(pzmapXMLStream, dataSourceStream); } + + public PZParser newFixedLengthParser(final Connection con, final Reader dataSource, final String dataDefinition) { + return new DBFixedLengthPZParser(con, dataSource, dataDefinition); + } + + public PZParser newFixedLengthParser(final Reader pzmapXMLStream, final Reader dataSource) { + return new FixedLengthPZParser(pzmapXMLStream, dataSource); + } /* * (non-Javadoc) @@ -139,5 +148,17 @@ public PZParser newDelimitedParser(final InputStream dataSourceStream, final char delimiter, final char qualifier) { return new DelimiterPZParser(dataSourceStream, delimiter, qualifier, false); } + + public PZParser newDelimitedParser(Connection con, Reader dataSource, String dataDefinition, char delimiter, char qualifier, boolean ignoreFirstRecord) { + return new DBDelimiterPZParser(con, dataSource, dataDefinition, delimiter, qualifier, ignoreFirstRecord); + } + + public PZParser newDelimitedParser(Reader dataSource, char delimiter, char qualifier) { + return new DelimiterPZParser(dataSource, delimiter, qualifier, false); + } + + public PZParser newDelimitedParser(Reader pzmapXML, Reader dataSource, char delimiter, char qualifier, boolean ignoreFirstRecord) { + return new DelimiterPZParser(pzmapXML, dataSource, delimiter, qualifier, ignoreFirstRecord); + } } Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DelimiterPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DelimiterPZParser.java 2007-03-21 00:53:12 UTC (rev 291) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/DelimiterPZParser.java 2007-03-21 11:30:20 UTC (rev 292) @@ -33,8 +33,11 @@ package net.sf.pzfilereader; import java.io.File; +import java.io.FileReader; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; import net.sf.pzfilereader.util.ParserUtils; import net.sf.pzfilereader.xml.PZMapParser; @@ -49,42 +52,89 @@ private InputStream pzmapXMLStream = null; private File pzmapXML = null; + + private Reader pzmapReader; + + //this InputStream and file can be removed after support for + //file and inputstream is removed from the parserfactory. The + //methods have been deprecated..pz + private InputStream dataSourceStream = null; + + private File dataSource = null; + public DelimiterPZParser(final File pzmapXML, final File dataSource, final char delimiter, final char qualifier, final boolean ignoreFirstRecord) { - super(dataSource, delimiter, qualifier, ignoreFirstRecord); + super(null, delimiter, qualifier, ignoreFirstRecord); this.pzmapXML = pzmapXML; + this.dataSource = dataSource; } public DelimiterPZParser(final InputStream pzmapXMLStream, final InputStream dataSourceStream, final char delimiter, final char qualifier, final boolean ignoreFirstRecord) { - super(dataSourceStream, delimiter, qualifier, ignoreFirstRecord); + super(null, delimiter, qualifier, ignoreFirstRecord); this.pzmapXMLStream = pzmapXMLStream; + this.dataSourceStream = dataSourceStream; } public DelimiterPZParser(final File dataSource, final char delimiter, final char qualifier, final boolean ignoreFirstRecord) { - super(dataSource, delimiter, qualifier, ignoreFirstRecord); + super(null, delimiter, qualifier, ignoreFirstRecord); + this.dataSource = dataSource; } public DelimiterPZParser(final InputStream dataSourceStream, final char delimiter, final char qualifier, final boolean ignoreFirstRecord) { - super(dataSourceStream, delimiter, qualifier, ignoreFirstRecord); + super(null, delimiter, qualifier, ignoreFirstRecord); + this.dataSourceStream = dataSourceStream; } + + public DelimiterPZParser(final Reader dataSourceReader, final char delimiter, final char qualifier, + final boolean ignoreFirstRecord) { + super(dataSourceReader, delimiter, qualifier, ignoreFirstRecord); + } + + public DelimiterPZParser(final Reader dataSourceReader, final Reader pzmapReader, final char delimiter, final char qualifier, + final boolean ignoreFirstRecord) { + super(dataSourceReader, delimiter, qualifier, ignoreFirstRecord); + this.pzmapReader = pzmapReader; + } protected void init() { try { - if (pzmapXMLStream != null) { - setColumnMD(PZMapParser.parse(pzmapXMLStream)); - } else if (pzmapXML != null) { - final InputStream stream = ParserUtils.createInputStream(pzmapXML); + //check to see if the user is using a File or InputStream. This is + //here for backwards compatability + if (dataSourceStream != null) { + final Reader r = new InputStreamReader(dataSourceStream); + setDataSourceReader(r); + addToCloseReaderList(r); + } else if (dataSource != null){ + final Reader r = new FileReader(dataSource); + setDataSourceReader(r); + addToCloseReaderList(r); + } + + + boolean closeMapReader = false; + if (pzmapXML != null) { + this.pzmapReader = new FileReader(pzmapXML); + closeMapReader = true; + } else if (pzmapXMLStream != null) { + this.pzmapReader = new InputStreamReader(pzmapXMLStream); + closeMapReader = true; + } + + if (this.pzmapReader != null) { try { - setColumnMD(PZMapParser.parse(stream)); + setColumnMD(PZMapParser.parse(this.pzmapReader)); } finally { - if (stream != null) { - stream.close(); + if (closeMapReader) { + //only close the reader if it is one we created + //otherwise we will let the user handle it + this.pzmapReader.close(); } } } + setInitialised(true); } catch (final JDOMException e) { throw new InitialisationException(e); @@ -94,6 +144,6 @@ } protected boolean shouldCreateMDFromFile() { - return pzmapXML == null && pzmapXMLStream == null; + return pzmapReader == null; } } \ No newline at end of file Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/FixedLengthPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/FixedLengthPZParser.java 2007-03-21 00:53:12 UTC (rev 291) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/FixedLengthPZParser.java 2007-03-21 11:30:20 UTC (rev 292) @@ -33,47 +33,87 @@ package net.sf.pzfilereader; import java.io.File; +import java.io.FileReader; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; -import net.sf.pzfilereader.util.ParserUtils; import net.sf.pzfilereader.xml.PZMapParser; import org.jdom.JDOMException; /** * @author xhensevb + * @author zepernick * */ public class FixedLengthPZParser extends AbstractFixedLengthPZParser { private InputStream pzmapXMLStream; private File pzmapXML; + + private Reader pzmapReader; + + //this InputStream and file can be removed after support for + //file and inputstream is removed from the parserfactory. The + //methods have been deprecated..pz + private InputStream dataSourceStream = null; + + private File dataSource = null; public FixedLengthPZParser(final InputStream pzmapXMLStream, final InputStream dataSourceStream) { - super(dataSourceStream); + super(null); this.pzmapXMLStream = pzmapXMLStream; + this.dataSourceStream = dataSourceStream; } public FixedLengthPZParser(final File pzmapXML, final File dataSource) { - super(dataSource); + super(null); this.pzmapXML = pzmapXML; + this.dataSource = dataSource; } + + public FixedLengthPZParser(final Reader pzmapReader, final Reader dataSourceReader) { + super (dataSourceReader); + this.pzmapReader = pzmapReader; + } protected void init() { try { - if (pzmapXMLStream != null) { - setColumnMD(PZMapParser.parse(pzmapXMLStream)); - } else { - final InputStream stream = ParserUtils.createInputStream(pzmapXML); - try { - setColumnMD(PZMapParser.parse(stream)); - } finally { - if (stream != null) { - stream.close(); - } + //check to see if the user is using a File or InputStream. This is + //here for backwards compatability + if (dataSourceStream != null) { + final Reader r = new InputStreamReader(dataSourceStream); + setDataSourceReader(r); + addToCloseReaderList(r); + } else if (dataSource != null){ + final Reader r = new FileReader(dataSource); + setDataSourceReader(r); + addToCloseReaderList(r); + } + + + boolean closeMapReader = false; + if (pzmapXML != null) { + this.pzmapReader = new FileReader(pzmapXML); + closeMapReader = true; + } else if (pzmapXMLStream != null) { + this.pzmapReader = new InputStreamReader(pzmapXMLStream); + closeMapReader = true; + } + + try { + setColumnMD(PZMapParser.parse(this.pzmapReader)); + } finally { + if (closeMapReader) { + //only close the reader if it is one we created + //otherwise we will let the user handle it + this.pzmapReader.close(); } } + + // setInitialised(true); } catch (final JDOMException e) { throw new InitialisationException(e); } catch (final IOException e) { Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParserFactory.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParserFactory.java 2007-03-21 00:53:12 UTC (rev 291) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/PZParserFactory.java 2007-03-21 11:30:20 UTC (rev 292) @@ -34,6 +34,7 @@ import java.io.File; import java.io.InputStream; +import java.io.Reader; import java.sql.Connection; /** @@ -58,6 +59,9 @@ * @param dataDefinition - * Name of dataDefinition in the DATAFILE table DATAFILE_DESC * column + * @deprecated Please use the newFixedLengthParser(Connection, Reader, String). The File can be + * wrapped in a "new FileReader(File)" + * @return PZParser */ PZParser newFixedLengthParser(final Connection con, final File dataSource, final String dataDefinition); @@ -75,6 +79,9 @@ * @param dataDefinition - * Name of dataDefinition in the DATAFILE table DATAFILE_DESC * column + * @deprecated Please use the newFixedLengthParser(Connection, Reader, String). The InputStream can be + * wrapped in a "new InputStreamReader(InputStream)" + * @return PZParser */ PZParser newFixedLengthParser(final Connection con, final InputStream dataSourceStream, final String dataDefinition); @@ -86,6 +93,9 @@ * Reference to the xml file holding the pzmap * @param dataSource - * Delimited file to read from + * @deprecated Please use the newFixedLengthParser(Reader, Reader). The File can be + * wrapped in a "new FileReader(InputStream)" + * @return PZParser */ PZParser newFixedLengthParser(final File pzmapXML, final File dataSource); @@ -101,8 +111,45 @@ * @param dataSourceStream - * Delimited file InputStream to read from, user must close them * after use. + * @deprecated Please use the newFixedLengthParser(Reader, Reader). The InputStream can be + * wrapped in a "new InputStreamReader(InputStream)" + * @return PZParser */ PZParser newFixedLengthParser(final InputStream pzmapXMLStream, final InputStream dataSourceStream); + + /** + * Constructs a new DataSet using the database table file layout method. + * This is used for a FIXED LENGTH text file. + * + * The user is responsible for closing the DB connection. + * + * @param con - + * Connection to database with DATAFILE and DATASTRUCTURE tables, + * user is responsible for closing it. + * @param dataSource - + * Fixed length file to read from + * @param dataDefinition - + * Name of dataDefinition in the DATAFILE table DATAFILE_DESC + * column + * @return PZParser + */ + PZParser newFixedLengthParser(final Connection con, final Reader dataSource, final String dataDefinition); + + /** + * New constructor based on Reader. Constructs a new DataSet using the + * PZMAP XML file layout method. This is used for a FIXED LENGTH text file. + * + * The user is responsible for closing the Readers. + * + * @param pzmapXMLStream - + * Reference to the xml Reader holding the pzmap, user + * must close them after use. + * @param dataSource - + * Delimited file Reader to read from, user must close them + * after use. + * @return PZParser + */ + PZParser newFixedLengthParser(final Reader pzmapXMLStream, final Reader dataSource); // // @@ -111,7 +158,7 @@ // /** - * New constructor based on InputStream. Constructs a new DataSet using the + * Constructs a new DataSet using the * database table file layout method. This is used for a DELIMITED text * file. esacpe sequence reference: \n newline <br> * \t tab <br> @@ -124,7 +171,7 @@ * @param con - * Connection to database with DATAFILE and DATASTRUCTURE tables, * user must close it when done. - * @param dataSourceStream - + * @param dataSource - * text file datasource InputStream to read from, user must close * it when done. * @param dataDefinition - @@ -136,9 +183,43 @@ * Char text is qualified by * @param ignoreFirstRecord - * skips the first line that contains data in the file + * @deprecated Please use the newDelimitedParser(Connection, Reader, String, char, char, boolean). + * The InputStream can be wrapped in a "new InputStreamReader(InputStream)" + * @return PZParser */ - PZParser newDelimitedParser(final Connection con, final InputStream dataSourceStream, final String dataDefinition, + PZParser newDelimitedParser(final Connection con, final InputStream dataSource, final String dataDefinition, final char delimiter, final char qualifier, final boolean ignoreFirstRecord); + + /** + * New constructor based on Reader. Constructs a new DataSet using the + * database table file layout method. This is used for a DELIMITED text + * file. esacpe sequence reference: \n newline <br> + * \t tab <br> + * \b backspace <br> + * \r return <br> + * \f form feed <br> \\ backslash <br> \' single quote <br> \" double quote + * + * The user is responsible for closing the DB connection and InputStream. + * + * @param con - + * Connection to database with DATAFILE and DATASTRUCTURE tables, + * user must close it when done. + * @param dataSource - + * text file datasource InputStream to read from, user must close + * it when done. + * @param dataDefinition - + * Name of dataDefinition in the DATAFILE table DATAFILE_DESC + * column + * @param delimiter - + * Char the file is delimited By + * @param qualifier - + * Char text is qualified by + * @param ignoreFirstRecord - + * skips the first line that contains data in the file + * @return PZParser + */ + PZParser newDelimitedParser(final Connection con, final Reader dataSource, final String dataDefinition, + final char delimiter, final char qualifier, final boolean ignoreFirstRecord); /** * Constructs a new DataSet using the PZMAP XML file layout method. This is @@ -159,11 +240,39 @@ * Char text is qualified by * @param ignoreFirstRecord - * skips the first line that contains data in the file + * @deprecated Please use the newDelimitedParser(Reader, Reader, String, char, char, boolean). + * The File can be wrapped in a "new FileReader(File)" + * @return PZParser */ PZParser newDelimitedParser(final File pzmapXML, final File dataSource, final char delimiter, final char qualifier, final boolean ignoreFirstRecord); /** + * Constructs a new DataSet using the PZMAP XML file layout method. This is + * used for a DELIMITED text file. esacpe sequence reference: \n newline + * <br> + * \t tab <br> + * \b backspace <br> + * \r return <br> + * \f form feed <br> \\ backslash <br> \' single quote <br> \" double quote + * + * @param pzmapXML - + * Reference to the xml file holding the pzmap + * @param dataSource - + * text file datasource to read from + * @param delimiter - + * Char the file is delimited By + * @param qualifier - + * Char text is qualified by + * @param ignoreFirstRecord - + * skips the first line that contains data in the file + * @return PZParser + */ + PZParser newDelimitedParser(final Reader pzmapXML, final Reader dataSource, final char delimiter, final char qualifier, + final boolean ignoreFirstRecord); + + + /** * New constructor based on InputStream. Constructs a new DataSet using the * PZMAP XML file layout method. This is used for a DELIMITED text file. * esacpe sequence reference: \n newline <br> @@ -186,6 +295,9 @@ * Char text is qualified by * @param ignoreFirstRecord - * skips the first line that contains data in the file + * @deprecated Please use the newDelimitedParser(Reader, Reader, String, char, char, boolean). + * The InputStream can be wrapped in a "new InputStreamReader(InputStream)" + * @return PZParser */ PZParser newDelimitedParser(final InputStream pzmapXMLStream, final InputStream dataSourceStream, final char delimiter, final char qualifier, final boolean ignoreFirstRecord); @@ -205,8 +317,30 @@ * Char the file is delimited By * @param qualifier - * Char text is qualified by + * @deprecated Please use the newDelimitedParser(Reader, char, char, boolean). + * The InputStream can be wrapped in a "new FileReader(File)" + * @return PZParser */ PZParser newDelimitedParser(final File dataSource, final char delimiter, final char qualifier); + + /** + * Constructs a new DataSet using the first line of data found in the text + * file as the column names. This is used for a DELIMITED text file. esacpe + * sequence reference: \n newline <br> + * \t tab <br> + * \b backspace <br> + * \r return <br> + * \f form feed <br> \\ backslash <br> \' single quote <br> \" double quote + * + * @param dataSource - + * text file datasource to read from + * @param delimiter - + * Char the file is delimited By + * @param qualifier - + * Char text is qualified by + * @return PZParser + */ + PZParser newDelimitedParser(final Reader dataSource, final char delimiter, final char qualifier); /** * Constructs a new DataSet using the first line of data found in the text @@ -226,6 +360,9 @@ * Char the file is delimited By * @param qualifier - * Char text is qualified by + * @deprecated Please use the newDelimitedParser(Reader, char, char, boolean). + * The InputStream can be wrapped in a "new InputStreamReader(InputStream)" + * @return PZParser */ PZParser newDelimitedParser(final InputStream dataSource, final char delimiter, final char qualifier); } Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderDelimPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderDelimPZParser.java 2007-03-21 00:53:12 UTC (rev 291) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderDelimPZParser.java 2007-03-21 11:30:20 UTC (rev 292) @@ -36,7 +36,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.io.InputStreamReader; +import java.io.Reader; import java.util.List; import java.util.Map; @@ -53,8 +53,6 @@ public class BuffReaderDelimPZParser extends DelimiterPZParser { private BufferedReader br; - private InputStreamReader isr; - private boolean processedFirst = false; private final Logger logger = LoggerFactory.getLogger(BuffReaderDelimPZParser.class); @@ -78,20 +76,24 @@ super(dataSourceStream, delimiter, qualifier, ignoreFirstRecord); } + public BuffReaderDelimPZParser(final Reader pzmapXML, final Reader dataSource, final char delimiter, final char qualifier, + final boolean ignoreFirstRecord) { + super(pzmapXML, dataSource, delimiter, qualifier, ignoreFirstRecord); + } + public BuffReaderDelimPZParser(final Reader dataSourceStream, final char delimiter, final char qualifier, + final boolean ignoreFirstRecord) { + super(dataSourceStream, delimiter, qualifier, ignoreFirstRecord); + } + public DataSet doParse() { final DataSet ds = new BuffReaderPZDataSet(getColumnMD(), this); try { //gather the conversion properties ds.setPZConvertProps(ParserUtils.loadConvertProperties()); - if (getDataSourceStream() == null) { - setDataSourceStream(ParserUtils.createInputStream(getDataSource())); - } + br = new BufferedReader(getDataSourceReader()); - isr = new InputStreamReader(getDataSourceStream()); - br = new BufferedReader(isr); - return ds; } catch(IOException ex) { @@ -188,10 +190,6 @@ br.close(); br = null; } - if (isr != null) { - isr.close(); - isr = null; - } } //try to clean up the file handles automatically if Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderFixedPZParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderFixedPZParser.java 2007-03-21 00:53:12 UTC (rev 291) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderFixedPZParser.java 2007-03-21 11:30:20 UTC (rev 292) @@ -36,7 +36,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.io.InputStreamReader; +import java.io.Reader; import java.util.List; import java.util.Map; @@ -53,9 +53,7 @@ public class BuffReaderFixedPZParser extends FixedLengthPZParser{ private BufferedReader br = null; - - private InputStreamReader isr; - + private int lineCount = 0; private Map recordLengths = null; @@ -70,7 +68,11 @@ super(pzmapXML, dataSource); } + public BuffReaderFixedPZParser(final Reader pzmapXML, final Reader dataSource) { + super(pzmapXML, dataSource); + } + public DataSet doParse() { final DataSet ds = new BuffReaderPZDataSet(getColumnMD(), this); lineCount = 0; @@ -79,13 +81,8 @@ //gather the conversion properties ds.setPZConvertProps(ParserUtils.loadConvertProperties()); - if (getDataSourceStream() == null) { - setDataSourceStream(ParserUtils.createInputStream(getDataSource())); - } + br = new BufferedReader(getDataSourceReader()); - isr = new InputStreamReader(getDataSourceStream()); - br = new BufferedReader(isr); - return ds; } catch(IOException ex) { @@ -167,9 +164,6 @@ if (br != null) { br.close(); } - if (isr != null) { - isr.close(); - } } //try to clean up the file handles automatically if Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderPZParseFactory.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderPZParseFactory.java 2007-03-21 00:53:12 UTC (rev 291) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/brparse/BuffReaderPZParseFactory.java 2007-03-21 11:30:20 UTC (rev 292) @@ -34,6 +34,7 @@ import java.io.File; import java.io.InputStream; +import java.io.Reader; import java.sql.Connection; import net.sf.pzfilereader.PZParser; @@ -82,6 +83,17 @@ public PZParser newFixedLengthParser(final File pzmapXML, final File dataSource) { return new BuffReaderFixedPZParser(pzmapXML, dataSource); } + + /** + * Not supported at this time. + */ + public PZParser newFixedLengthParser(Connection con, Reader dataSource, String dataDefinition) { + throw new UnsupportedOperationException("Not supported..."); + } + + public PZParser newFixedLengthParser(Reader pzmapXMLStream, Reader dataSource) { + return new BuffReaderFixedPZParser(pzmapXMLStream, dataSource); + } /* * (non-Javadoc) @@ -142,4 +154,19 @@ public PZParser newDelimitedParser(final InputStream dataSourceStream, final char delimiter, final char qualifier) { return new BuffReaderDelimPZParser(dataSourceStream, delimiter, qualifier, false); } + + /** + * Not supported at this time. + */ + public PZParser newDelimitedParser(Connection con, Reader dataSource, String dataDefinition, char delimiter, char qualifier, boolean ignoreFirstRecord) { + throw new UnsupportedOperationException("Not supported..."); + } + + public PZParser newDelimitedParser(Reader dataSource, char delimiter, char qualifier) { + return new BuffReaderDelimPZParser(dataSource, delimiter, qualifier, false); + } + + public PZParser newDelimitedParser(Reader pzmapXML, Reader dataSource, char delimiter, char qualifier, boolean ignoreFirstRecord) { + return new BuffReaderDelimPZParser(pzmapXML, dataSource, delimiter, qualifier, ignoreFirstRecord); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2007-03-21 00:53:11
|
Revision: 291 http://svn.sourceforge.net/pzfilereader/?rev=291&view=rev Author: zepernick Date: 2007-03-20 17:53:12 -0700 (Tue, 20 Mar 2007) Log Message: ----------- - Added check for null Modified Paths: -------------- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMapParser.java Modified: trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMapParser.java =================================================================== --- trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMapParser.java 2007-03-20 23:13:35 UTC (rev 290) +++ trunk/PZFileReader/src/main/java/net/sf/pzfilereader/xml/PZMapParser.java 2007-03-21 00:53:12 UTC (rev 291) @@ -32,10 +32,13 @@ */ package net.sf.pzfilereader.xml; +import java.io.BufferedReader; import java.io.File; +import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.io.PrintWriter; import java.io.Reader; import java.util.ArrayList; import java.util.Iterator; @@ -108,6 +111,21 @@ * @throws JDOMException */ public static Map parse(final Reader xmlStreamReader) throws JDOMException, IOException { + //use for debug when JDOM complains about the xml + /* final BufferedReader br = new BufferedReader(xmlStreamReader); + final FileWriter fw = new FileWriter("c:/test.pz"); + final PrintWriter out = new PrintWriter(fw); + String line = null; + while ((line = br.readLine()) != null) { + out.println(line); + } + out.flush(); + fw.close(); + br.close();*/ + + if (xmlStreamReader == null) { + throw new NullPointerException("XML Reader Is Not Allowed To Be Null..."); + } final SAXBuilder builder = new SAXBuilder(); builder.setValidation(true); // handle the ability to pull DTD from Jar if needed This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |