Revision 47420 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/FieldTypeParser.java

View differences:

FieldTypeParser.java
8 8
import java.util.HashMap;
9 9
import java.util.Map;
10 10
import org.apache.commons.lang3.StringUtils;
11
import org.apache.commons.text.StringEscapeUtils;
11 12
import org.gvsig.fmap.dal.DataTypes;
12 13
import org.gvsig.fmap.geom.Geometry;
13 14
import org.gvsig.fmap.geom.GeometryUtils;
......
127 128
        }
128 129
        this.size = 0;
129 130
        while (n < args.length) {
131
            String escMode = null;
130 132
            String option = StringUtils.trim(args[n++].toLowerCase());
131 133
            switch (option) {
132 134
                case "size":
......
136 138
                        LOGGER.warn("Ignore incorrect field size for field " + value + " in '" + getProviderName() + "' file '" + getFullFileName() + "'.", ex);
137 139
                    }
138 140
                    break;
141
                case "tagesc":
142
                    escMode = StringUtils.trim(args[n++]);
139 143
                case "tag":
140 144
                    {
141 145
                        String x = StringUtils.trim(args[n++]);
......
143 147
                        if (pos < 0) {
144 148
                            this.tags.put(x, null);
145 149
                        } else {
146
                            this.tags.put(StringUtils.trim(StringUtils.substring(x, 0, pos)), StringUtils.trim(StringUtils.substring(x, pos + 1)));
150
                            String v = StringUtils.trim(StringUtils.substring(x, pos + 1));
151
                            if(escMode != null) {
152
                                if(StringUtils.equalsIgnoreCase(escMode,"html")){
153
                                    v = StringEscapeUtils.unescapeHtml3(v);
154
                                } else {
155
                                    LOGGER.warn("Illegal escape mode for argument '" + option + "' for field '" + this.name + "' in '" + getProviderName() + "' file '" + getFullFileName() + "' (" + value + ").");
156
                                }
157
                            }
158
                            this.tags.put(StringUtils.trim(StringUtils.substring(x, 0, pos)), v);
147 159
                        }
148 160
                        break;
149 161
                    }
162
                case "typetagesc":
163
                    escMode = StringUtils.trim(args[n++]);
150 164
                case "typetag":
151 165
                    {
152 166
                        String x = StringUtils.trim(args[n++]);
......
154 168
                        if (pos < 0) {
155 169
                            this.typetags.put(x, null);
156 170
                        } else {
157
                            this.typetags.put(StringUtils.trim(StringUtils.substring(x, 0, pos)), StringUtils.trim(StringUtils.substring(x, pos + 1)));
171
                            String v = StringUtils.trim(StringUtils.substring(x, pos + 1));
172
                            if(escMode != null) {
173
                                if(StringUtils.equalsIgnoreCase(escMode,"html")){
174
                                    v = StringEscapeUtils.unescapeHtml3(v);
175
                                } else {
176
                                    LOGGER.warn("Illegal escape mode for argument '" + option + "' for field '" + this.name + "' in '" + getProviderName() + "' file '" + getFullFileName() + "' (" + value + ").");
177
                                }
178
                            }
179
                            this.typetags.put(StringUtils.trim(StringUtils.substring(x, 0, pos)), v);
158 180
                        }
159 181
                        break;
160 182
                    }
183
                case "setesc":
184
                        escMode = StringUtils.trim(args[n++]);
161 185
                case "set":
162 186
                    {
163 187
                        String x = StringUtils.trim(args[n++]);
......
165 189
                        if (pos < 0) {
166 190
                            this.assignments.put(x, null);
167 191
                        } else {
168
                            this.assignments.put(StringUtils.trim(StringUtils.substring(x, 0, pos)), StringUtils.trim(StringUtils.substring(x, pos + 1)));
192
                            String v = StringUtils.trim(StringUtils.substring(x, pos + 1));
193
                            if(escMode != null) {
194
                                if(StringUtils.equalsIgnoreCase(escMode,"html")){
195
                                    v = StringEscapeUtils.unescapeHtml3(v);
196
                                } else {
197
                                    LOGGER.warn("Illegal escape mode for argument '" + option + "' for field '" + this.name + "' in '" + getProviderName() + "' file '" + getFullFileName() + "' (" + value + ").");
198
                                }
199
                            }
200
                            this.assignments.put(StringUtils.trim(StringUtils.substring(x, 0, pos)), v);
169 201
                        }
170 202
                        break;
171 203
                    }
204
                case "typesetesc":
205
                        escMode = StringUtils.trim(args[n++]);
172 206
                case "typeset":
173 207
                    {
174 208
                        String x = StringUtils.trim(args[n++]);
......
176 210
                        if (pos < 0) {
177 211
                            this.typeAssignments.put(x, null);
178 212
                        } else {
179
                            this.typeAssignments.put(StringUtils.trim(StringUtils.substring(x, 0, pos)), StringUtils.trim(StringUtils.substring(x, pos + 1)));
213
                            String v = StringUtils.trim(StringUtils.substring(x, pos + 1));
214
                            if(escMode != null) {
215
                                if(StringUtils.equalsIgnoreCase(escMode,"html")){
216
                                    v = StringEscapeUtils.unescapeHtml3(v);
217
                                } else {
218
                                    LOGGER.warn("Illegal escape mode for argument '" + option + "' for field '" + this.name + "' in '" + getProviderName() + "' file '" + getFullFileName() + "' (" + value + ").");
219
                                }
220
                            }
221
                            this.typeAssignments.put(StringUtils.trim(StringUtils.substring(x, 0, pos)), v);
180 222
                        }
181 223
                        break;
182 224
                    }
......
189 231
                        }
190 232
                        break;
191 233
                    }
192
                    LOGGER.warn("Illegal argumente '" + option + "' for field '" + this.name + "' in '" + getProviderName() + "' file '" + getFullFileName() + "' (" + value + ").");
234
                    LOGGER.warn("Illegal argument '" + option + "' for field '" + this.name + "' in '" + getProviderName() + "' file '" + getFullFileName() + "' (" + value + ").");
193 235
            }
194 236
        }
195 237
        return true;

Also available in: Unified diff