Revision 44388 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file/org.gvsig.fmap.dal.file.csv/src/main/java/org/gvsig/fmap/dal/store/csv/CSVFilesystemServerProvider.java
CSVFilesystemServerProvider.java | ||
---|---|---|
25 | 25 |
|
26 | 26 |
import java.io.File; |
27 | 27 |
import java.io.IOException; |
28 |
import org.apache.commons.lang3.StringUtils; |
|
28 | 29 |
import org.gvsig.fmap.dal.DALLocator; |
29 | 30 |
import org.gvsig.fmap.dal.DataManager; |
30 | 31 |
|
... | ... | |
50 | 51 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.spi.FilesystemServerExplorerProvider; |
51 | 52 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.spi.FilesystemServerExplorerProviderServices; |
52 | 53 |
import org.gvsig.tools.dataTypes.DataTypes; |
54 |
import org.supercsv.comment.CommentStartsWith; |
|
53 | 55 |
import org.supercsv.prefs.CsvPreference; |
56 |
import org.supercsv.quote.QuoteMode; |
|
54 | 57 |
|
55 | 58 |
public class CSVFilesystemServerProvider extends AbstractFilesystemServerExplorerProvider |
56 | 59 |
implements FilesystemServerExplorerProvider, ResourceConsumer { |
... | ... | |
148 | 151 |
resource.execute(new ResourceAction() { |
149 | 152 |
@Override |
150 | 153 |
public Object run() throws Exception { |
154 |
String s; |
|
155 |
char quoteChar; |
|
156 |
int delimiterChar; |
|
157 |
String endOfLineSymbols; |
|
158 |
|
|
151 | 159 |
CSVFeatureWriter writer = new CSVFeatureWriter(); |
152 |
//TODO correct values to the writer from params |
|
153 |
writer.initialize(params, file.getAbsoluteFile(), params.getDefaultFeatureType(), null); |
|
160 |
|
|
161 |
CSVNewStoreParameters newparams = (CSVNewStoreParameters) params; |
|
162 |
CsvPreference defaultPreference = CSVStoreParameters.getPredefinedCSVPreferences(newparams); |
|
163 |
|
|
164 |
s = CSVStoreParameters.getQuoteCharacter(params); |
|
165 |
if (StringUtils.isBlank(s)) { |
|
166 |
quoteChar = (char) defaultPreference.getQuoteChar(); |
|
167 |
} else { |
|
168 |
quoteChar = s.charAt(0); |
|
169 |
} |
|
170 |
|
|
171 |
s = CSVStoreParameters.getDelimiter(newparams); |
|
172 |
if (StringUtils.isBlank(s)) { |
|
173 |
delimiterChar = defaultPreference.getDelimiterChar(); |
|
174 |
} else { |
|
175 |
delimiterChar = s.charAt(0); |
|
176 |
} |
|
177 |
|
|
178 |
endOfLineSymbols = CSVStoreParameters.getRecordSeparator(params); |
|
179 |
if (StringUtils.isBlank(endOfLineSymbols)) { |
|
180 |
endOfLineSymbols = defaultPreference.getEndOfLineSymbols(); |
|
181 |
} |
|
182 |
|
|
183 |
CsvPreference.Builder builder = new CsvPreference.Builder(quoteChar, delimiterChar, endOfLineSymbols); |
|
184 |
|
|
185 |
s = CSVStoreParameters.getCommentStartMarker(newparams); |
|
186 |
if (!StringUtils.isBlank(s)) { |
|
187 |
CommentStartsWith cs = new CommentStartsWith(s); |
|
188 |
builder.skipComments(cs); |
|
189 |
} |
|
190 |
|
|
191 |
builder.surroundingSpacesNeedQuotes(CSVStoreParameters |
|
192 |
.getSurroundingSpacesNeedQuotes(newparams)); |
|
193 |
QuoteMode quoteMode = CSVStoreParameters.getQuoteMode(newparams); |
|
194 |
if (quoteMode != null) { |
|
195 |
builder.useQuoteMode(quoteMode); |
|
196 |
} |
|
197 |
|
|
198 |
CsvPreference csvpreferences = builder.build(); |
|
199 |
|
|
200 |
writer.initialize(params, file.getAbsoluteFile(), params.getDefaultFeatureType(), csvpreferences); |
|
154 | 201 |
writer.begin(); |
155 | 202 |
|
156 | 203 |
// writer.begin( |
Also available in: Unified diff