Revision 45158 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/DefaultEditableFeatureType.java
DefaultEditableFeatureType.java | ||
---|---|---|
40 | 40 |
import org.gvsig.tools.ToolsLocator; |
41 | 41 |
import org.gvsig.tools.evaluator.Evaluator; |
42 | 42 |
|
43 |
@SuppressWarnings("UseSpecificCatch") |
|
43 | 44 |
public class DefaultEditableFeatureType extends DefaultFeatureType implements |
44 | 45 |
EditableFeatureType { |
45 | 46 |
|
... | ... | |
132 | 133 |
return true; |
133 | 134 |
} |
134 | 135 |
|
136 |
@Override |
|
135 | 137 |
public EditableFeatureAttributeDescriptor addLike( |
136 | 138 |
FeatureAttributeDescriptor other) { |
137 | 139 |
DefaultEditableFeatureAttributeDescriptor editableAttr; |
... | ... | |
145 | 147 |
return editableAttr; |
146 | 148 |
} |
147 | 149 |
|
150 |
@Override |
|
148 | 151 |
public FeatureType getSource() { |
149 | 152 |
return source; |
150 | 153 |
} |
151 | 154 |
|
155 |
@Override |
|
152 | 156 |
public FeatureType getNotEditableCopy() { |
153 | 157 |
this.fixAll(); |
154 | 158 |
DefaultFeatureType copy = new DefaultFeatureType(this, false); |
... | ... | |
163 | 167 |
return copy; |
164 | 168 |
} |
165 | 169 |
|
170 |
@Override |
|
166 | 171 |
public EditableFeatureAttributeDescriptor add(String name, int type) { |
167 | 172 |
return this.add(name, type, true); |
168 | 173 |
} |
... | ... | |
188 | 193 |
EditableFeatureAttributeDescriptor descriptor = (EditableFeatureAttributeDescriptor) iter.next(); |
189 | 194 |
if (descriptor.getName().equalsIgnoreCase(name)) { |
190 | 195 |
throw new RuntimeException( |
191 |
MessageFormat.format("Name descriptor {0} duplicated.", new String[]{name})
|
|
196 |
MessageFormat.format("Name descriptor {0} duplicated.", name)
|
|
192 | 197 |
); |
193 | 198 |
} |
194 | 199 |
|
... | ... | |
228 | 233 |
return attr; |
229 | 234 |
} |
230 | 235 |
|
231 |
public EditableFeatureAttributeDescriptor add(String name, int type,
|
|
232 |
int size) {
|
|
236 |
@Override
|
|
237 |
public EditableFeatureAttributeDescriptor add(String name, int type, int size) {
|
|
233 | 238 |
return this.add(name, type, true).setSize(size); |
234 | 239 |
} |
235 | 240 |
|
241 |
@Override |
|
236 | 242 |
public EditableFeatureAttributeDescriptor add(String name, int type, |
237 | 243 |
Evaluator evaluator) { |
238 | 244 |
if (evaluator == null) { |
... | ... | |
241 | 247 |
return this.add(name, type, false).setEvaluator(evaluator); |
242 | 248 |
} |
243 | 249 |
|
250 |
@Override |
|
244 | 251 |
public EditableFeatureAttributeDescriptor add(String name, int type, |
245 | 252 |
FeatureAttributeEmulator emulator) { |
246 | 253 |
if (emulator == null) { |
... | ... | |
249 | 256 |
return this.add(name, type, false).setFeatureAttributeEmulator(emulator); |
250 | 257 |
} |
251 | 258 |
|
259 |
@Override |
|
252 | 260 |
public EditableFeatureAttributeDescriptor add(String name, String type) { |
253 | 261 |
return this.add(name,ToolsLocator.getDataTypesManager().getType(type)); |
254 | 262 |
} |
255 | 263 |
|
264 |
@Override |
|
256 | 265 |
public EditableFeatureAttributeDescriptor add(String name, String type, int size) { |
257 | 266 |
return this.add(name,ToolsLocator.getDataTypesManager().getType(type), size); |
258 | 267 |
} |
... | ... | |
340 | 349 |
|
341 | 350 |
@Override |
342 | 351 |
public void setDefaultGeometryType(int type, int subType) { |
343 |
DefaultEditableFeatureType descr = (DefaultEditableFeatureType)this.getDefaultGeometryAttribute();
|
|
352 |
EditableFeatureAttributeDescriptor descr = (EditableFeatureAttributeDescriptor) this.getDefaultGeometryAttribute();
|
|
344 | 353 |
if( descr == null ) { |
345 | 354 |
throw new IllegalStateException("Default geometry attribute not set."); |
346 | 355 |
} |
347 |
descr.setDefaultGeometryType(type, subType);
|
|
356 |
descr.setGeometryType(type, subType); |
|
348 | 357 |
} |
349 | 358 |
|
359 |
@Override |
|
350 | 360 |
public void setDefaultGeometryAttributeName(String name) { |
351 | 361 |
if (name == null || name.length() == 0) { |
352 | 362 |
this.defaultGeometryAttributeName = null; |
353 | 363 |
this.defaultGeometryAttributeIndex = -1; |
354 | 364 |
return; |
355 | 365 |
} |
356 |
DefaultFeatureAttributeDescriptor attr = (DefaultFeatureAttributeDescriptor) this |
|
357 |
.get(name); |
|
366 |
FeatureAttributeDescriptor attr = this.getAttributeDescriptor(name); |
|
358 | 367 |
if (attr == null) { |
359 |
throw new IllegalArgumentException("Attribute '" + name |
|
360 |
+ "' not found."); |
|
368 |
throw new IllegalArgumentException("Attribute '"+name+"' not found."); |
|
361 | 369 |
} |
362 |
// if (attr.getType() != DataTypes.GEOMETRY) { |
|
363 |
// throw new IllegalArgumentException("Attribute '" + name |
|
364 |
// + "' is not a geometry."); |
|
365 |
// } |
|
366 | 370 |
this.defaultGeometryAttributeName = name; |
367 | 371 |
this.defaultGeometryAttributeIndex = attr.getIndex(); |
368 | 372 |
} |
... | ... | |
391 | 395 |
return this.defaultTimeAttributeName; |
392 | 396 |
} |
393 | 397 |
|
398 |
@Override |
|
394 | 399 |
public void setHasOID(boolean hasOID) { |
395 | 400 |
this.hasOID = hasOID; |
396 | 401 |
} |
397 | 402 |
|
403 |
@Override |
|
398 | 404 |
protected Iterator getIterator(Iterator iter) { |
399 | 405 |
return new EditableDelegatedIterator(iter, this); |
400 | 406 |
} |
401 | 407 |
|
408 |
@Override |
|
402 | 409 |
public EditableFeatureAttributeDescriptor getEditableAttributeDescriptor(String name) { |
403 | 410 |
return (EditableFeatureAttributeDescriptor) this.getAttributeDescriptor(name); |
404 | 411 |
} |
405 | 412 |
|
413 |
@Override |
|
406 | 414 |
public EditableFeatureAttributeDescriptor getEditableAttributeDescriptor(int index) { |
407 | 415 |
return (EditableFeatureAttributeDescriptor) this.getAttributeDescriptor(index); |
408 | 416 |
} |
409 | 417 |
|
410 | 418 |
protected class EditableDelegatedIterator extends DelegatedIterator { |
411 | 419 |
|
412 |
private DefaultEditableFeatureType fType; |
|
420 |
private final DefaultEditableFeatureType fType;
|
|
413 | 421 |
|
414 |
public EditableDelegatedIterator(Iterator iter, |
|
415 |
DefaultEditableFeatureType fType) { |
|
422 |
public EditableDelegatedIterator(Iterator iter, DefaultEditableFeatureType fType) { |
|
416 | 423 |
super(iter); |
417 | 424 |
this.fType = fType; |
418 | 425 |
} |
419 | 426 |
|
427 |
@Override |
|
420 | 428 |
public void remove() { |
421 | 429 |
this.iterator.remove(); |
422 | 430 |
this.fType.fixAll(); |
Also available in: Unified diff