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