Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.exportto / org.gvsig.exportto.swing / org.gvsig.exportto.swing.prov / org.gvsig.exportto.swing.prov.csv / src / main / java / org / gvsig / export / csv / service / ExportCSVParametersImpl.java @ 45818

History | View | Annotate | Download (7.7 KB)

1
package org.gvsig.export.csv.service;
2

    
3
import java.io.File;
4
import java.util.List;
5
import java.util.Locale;
6
import org.apache.commons.lang3.StringUtils;
7
import org.gvsig.export.spi.AbstractExportParametersGeometryFile;
8
import org.gvsig.fmap.dal.feature.FeatureType;
9
import org.gvsig.tools.ToolsLocator;
10
import org.gvsig.tools.dynobject.DynStruct;
11
import org.gvsig.tools.persistence.PersistenceManager;
12
import org.gvsig.tools.persistence.PersistentState;
13
import org.gvsig.tools.persistence.exception.PersistenceException;
14
import org.gvsig.tools.util.ListBuilder;
15

    
16
/**
17
 *
18
 * @author jjdelcerro
19
 */
20
public class ExportCSVParametersImpl
21
        extends AbstractExportParametersGeometryFile
22
        implements ExportCSVParameters {
23

    
24
    private String encoding;
25
    private File file;
26
    private String profile;
27
    private String charset;
28
    private String escapeCharacter;
29
    private String commentStartMarker;
30
    private String quoteCharacter;
31
    private String delimiter;
32
    private String recordSeparator;
33
    private String locale;
34
    private String quotePolicy;
35
    private boolean includeMetadataInHeader = true;
36
    private final List<String> countriesNorth = ListBuilder.create("es","it","fr", "dl");
37
    private String geometryFormat;
38

    
39
    public ExportCSVParametersImpl(ExportCSVServiceFactory factory) {
40
        super(factory);
41
        this.fileHelper.setFileExtension("csv");
42
         Locale defaultLocale = Locale.getDefault();
43
        String countryLocale = defaultLocale.getCountry();
44
        if (StringUtils.isBlank(countryLocale) ) {
45
            countryLocale = defaultLocale.getLanguage();
46
        }
47
        if  (countriesNorth.contains(countryLocale)) {
48
            this.profile = "EXCEL_NORTH_EUROPE_PREFERENCE";
49
            //todo checkear si la opcion esta disponible
50
//            DynStruct parametersDefinition = ToolsLocator.getPersistenceManager().getDefinition("CSVNewStoreParameters");
51
//            DynField dynField = parametersDefinition.getDynField("profile");
52
//            DynObjectValueItem[] availableValues = dynField.getAvailableValues();
53
//            for (DynObjectValueItem availableValue : availableValues) {
54
//                DynObjectValueItem myvalue = availableValue;
55
//            }
56
        }
57
        this.geometryFormat = "WKT";
58
    }
59

    
60
    public ExportCSVParametersImpl() {
61
        this(null);
62
    }
63

    
64
    @Override
65
    public String getServiceName() {
66
        return ExportCSVServiceFactory.SERVICE_NAME;
67
    }
68

    
69
    @Override
70
    public void setSourceFeatureType(FeatureType sourceFeatureType) {
71
        super.setSourceFeatureType(sourceFeatureType);
72
    }
73

    
74
    @Override
75
    public String getProfile() {
76
        return this.profile;
77
    }
78

    
79
    @Override
80
    public void setProfile(String profile) {
81
        this.profile = profile;
82
    }
83

    
84
    @Override
85
    public String getQuotePolicy() {
86
        return this.quotePolicy;
87
    }
88

    
89
    @Override
90
    public void setQuotePolicy(String quotePolicy) {
91
        this.quotePolicy = quotePolicy;
92
    }
93

    
94
    @Override
95
    public String getLocale() {
96
        return this.locale;
97
    }
98

    
99
    @Override
100
    public void setLocale(String locale) {
101
        this.locale = locale;
102
    }
103

    
104
    @Override
105
    public String getRecordSeparator() {
106
        return this.recordSeparator;
107
    }
108

    
109
    @Override
110
    public void setRecordSeparator(String recordSeparator) {
111
        this.recordSeparator = recordSeparator;
112
    }
113

    
114
    @Override
115
    public String getDelimiter() {
116
        return this.delimiter;
117
    }
118

    
119
    @Override
120
    public void setDelimiter(String delimiter) {
121
        this.delimiter = delimiter;
122
    }
123

    
124
    @Override
125
    public String getQuoteCharacter() {
126
        return this.quoteCharacter;
127
    }
128

    
129
    @Override
130
    public void setQuoteCharacter(String quoteCharacter) {
131
        this.quoteCharacter = quoteCharacter;
132
    }
133

    
134
    @Override
135
    public String getCommentStartMarker() {
136
        return this.commentStartMarker;
137
    }
138

    
139
    @Override
140
    public void setCommentStartMarker(String commentStartMarker) {
141
        this.commentStartMarker = commentStartMarker;
142
    }
143

    
144
    @Override
145
    public String getEscapeCharacter() {
146
        return this.escapeCharacter;
147
    }
148

    
149
    @Override
150
    public void setEscapeCharacter(String escapeCharacer) {
151
        this.escapeCharacter = escapeCharacer;
152
    }
153

    
154
    @Override
155
    public String getCharset() {
156
        return this.charset;
157
    }
158

    
159
    @Override
160
    public void setCharset(String charset) {
161
        this.charset = charset;
162
    }
163

    
164
    @Override
165
    public String toString() {
166
        String label = StringUtils.join(super.getLabel(), ",", this.getProfile());
167
        return label;
168
    }
169

    
170
    public static void registerPersistence() {
171

    
172
        PersistenceManager manager = ToolsLocator.getPersistenceManager();
173
        if (manager.getDefinition("ExportCSVParametersImpl") == null) {
174
            DynStruct definition = manager.addDefinition(ExportCSVParametersImpl.class,
175
                    "ExportCSVParametersImpl", "ExportCSVParametersImpl persistence definition", null, null);
176

    
177
            definition.addDynFieldString("encoding");
178
            definition.addDynFieldFile("file");
179
            definition.addDynFieldString("profile");
180
            definition.addDynFieldString("charset");
181
            definition.addDynFieldString("escapeCharacter");
182
            definition.addDynFieldString("commentStartMarker");
183
            definition.addDynFieldString("quoteCharacter");
184
            definition.addDynFieldString("delimiter");
185
            definition.addDynFieldString("recordSeparator");
186
            definition.addDynFieldString("locale");
187
            definition.addDynFieldString("quotePolicy");
188
            definition.addDynFieldBoolean("includeMetadataInHeader");
189

    
190
            definition.extend(manager.getDefinition("AbstractExportParametersGeometryFile"));
191
        }
192
    }
193

    
194
    @Override
195
    public void saveToState(PersistentState state) throws PersistenceException {
196
        super.saveToState(state);
197
        state.set("encoding", encoding);
198
        state.set("file", file);
199
        state.set("profile", profile);
200
        state.set("charset", charset);
201
        state.set("escapeCharacter", escapeCharacter);
202
        state.set("commentStartMarker", commentStartMarker);
203
        state.set("quoteCharacter", quoteCharacter);
204
        state.set("delimiter", delimiter);
205
        state.set("recordSeparator", recordSeparator);
206
        state.set("locale", locale);
207
        state.set("quotePolicy", quotePolicy);
208
        state.set("includeMetadataInHeader", includeMetadataInHeader);
209
    }
210

    
211
    @Override
212
    public void loadFromState(PersistentState state) throws PersistenceException {
213
        super.loadFromState(state);
214
        this.encoding = state.getString("encoding");
215
        this.file = state.getFile("file");
216
        this.profile = state.getString("profile");
217
        this.charset = state.getString("charset");
218
        this.escapeCharacter = state.getString("escapeCharacter");
219
        this.commentStartMarker = state.getString("commentStartMarker");
220
        this.quoteCharacter = state.getString("quoteCharacter");
221
        this.delimiter = state.getString("delimiter");
222
        this.recordSeparator = state.getString("recordSeparator");
223
        this.locale = state.getString("locale");
224
        this.quotePolicy = state.getString("quotePolicy");
225
        this.includeMetadataInHeader = state.getBoolean("includeMetadataInHeader");
226
    }
227

    
228
    @Override
229
    public boolean getIncludeMetadataInHeader() {
230
        return this.includeMetadataInHeader;
231
    }
232

    
233
    @Override
234
    public void setIncludeMetadataInHeader(boolean includeMetadataInHeader) {
235
        this.includeMetadataInHeader = includeMetadataInHeader;
236
    }
237

    
238
    @Override
239
    public String getGeometryFormat() {
240
        return geometryFormat;
241
    }
242

    
243
    @Override
244
    public void setGeometryFormat(String geometryFormat) {
245
        this.geometryFormat = geometryFormat;
246
    }
247

    
248
}