You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2008/10/29 21:30:16 UTC
svn commit: r709002 - in /ofbiz/trunk/framework/datafile: dtd/datafiles.xsd
src/org/ofbiz/datafile/ModelDataFile.java
src/org/ofbiz/datafile/ModelDataFileReader.java
src/org/ofbiz/datafile/Record.java src/org/ofbiz/datafile/RecordIterator.java
Author: jleroux
Date: Wed Oct 29 13:30:15 2008
New Revision: 709002
URL: http://svn.apache.org/viewvc?rev=709002&view=rev
Log:
A patch from Ray Barlow " Import CSV file using specify text delimiter" (https://issues.apache.org/jira/browse/OFBIZ-2031) - OFBIZ-2031
Modified:
ofbiz/trunk/framework/datafile/dtd/datafiles.xsd
ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/ModelDataFile.java
ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/ModelDataFileReader.java
ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java
ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java
Modified: ofbiz/trunk/framework/datafile/dtd/datafiles.xsd
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/datafile/dtd/datafiles.xsd?rev=709002&r1=709001&r2=709002&view=diff
==============================================================================
--- ofbiz/trunk/framework/datafile/dtd/datafiles.xsd (original)
+++ ofbiz/trunk/framework/datafile/dtd/datafiles.xsd Wed Oct 29 13:30:15 2008
@@ -39,6 +39,7 @@
<xs:attribute name="sender"/>
<xs:attribute name="receiver"/>
<xs:attribute name="delimiter"/>
+ <xs:attribute name="text-delimiter"/>
<xs:attribute name="record-length"/>
<xs:attribute name="separator-style" use="required">
<xs:simpleType>
Modified: ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/ModelDataFile.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/ModelDataFile.java?rev=709002&r1=709001&r2=709002&view=diff
==============================================================================
--- ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/ModelDataFile.java (original)
+++ ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/ModelDataFile.java Wed Oct 29 13:30:15 2008
@@ -50,6 +50,9 @@
/** The delimiter used in the file, if delimiter separated fields are used */
public char delimiter = '|';
+ /** The text delimiter, like quots, used in the file, if delimiter separated fields are used */
+ public String textDelimiter = null;
+
/** The field serparator style, either fixed-length, or delimited */
public String separatorStyle = "";
Modified: ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/ModelDataFileReader.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/ModelDataFileReader.java?rev=709002&r1=709001&r2=709002&view=diff
==============================================================================
--- ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/ModelDataFileReader.java (original)
+++ ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/ModelDataFileReader.java Wed Oct 29 13:30:15 2008
@@ -202,6 +202,11 @@
dataFile.delimiter = tempStr.charAt(0);
}
+ tempStr = UtilXml.checkEmpty(dataFileElement.getAttribute("text-delimiter"));
+ if (tempStr != null && tempStr.length() > 0) {
+ dataFile.textDelimiter = tempStr;
+ }
+
dataFile.separatorStyle = UtilXml.checkEmpty(dataFileElement.getAttribute("separator-style"));
dataFile.description = UtilXml.checkEmpty(dataFileElement.getAttribute("description"));
Modified: ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java?rev=709002&r1=709001&r2=709002&view=diff
==============================================================================
--- ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java (original)
+++ ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java Wed Oct 29 13:30:15 2008
@@ -516,7 +516,7 @@
* @throws DataFileException Exception thown for various errors, generally has a nested exception
* @return
*/
- public static Record createDelimitedRecord(String line, int lineNum, ModelRecord modelRecord, char delimiter) throws DataFileException {
+ public static Record createDelimitedRecord(String line, int lineNum, ModelRecord modelRecord, char delimiter, String textDelimiter) throws DataFileException {
Record record = new Record(modelRecord);
StringTokenizer st = null;
@@ -552,6 +552,9 @@
}
}
try {
+ if (textDelimiter != null && (strVal.startsWith(textDelimiter) && strVal.endsWith(textDelimiter))) {
+ strVal = strVal.substring(textDelimiter.length(), strVal.length() - textDelimiter.length());
+ }
record.setString(modelField.name, strVal);
} catch (java.text.ParseException e) {
throw new DataFileException("Could not parse field " + modelField.name + ", format string \"" + modelField.format + "\" with value " + strVal +
Modified: ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java?rev=709002&r1=709001&r2=709002&view=diff
==============================================================================
--- ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java (original)
+++ ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java Wed Oct 29 13:30:15 2008
@@ -120,7 +120,7 @@
nextLineNum++;
ModelRecord modelRecord = findModelForLine(nextLine, nextLineNum, modelDataFile);
if (isDelimited) {
- this.nextRecord = Record.createDelimitedRecord(nextLine, nextLineNum, modelRecord, modelDataFile.delimiter);
+ this.nextRecord = Record.createDelimitedRecord(nextLine, nextLineNum, modelRecord, modelDataFile.delimiter, modelDataFile.textDelimiter);
} else {
this.nextRecord = Record.createRecord(nextLine, nextLineNum, modelRecord);
}