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(
|