Revision 896
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.algorithm/org.gvsig.geoprocess.algorithm.base/src/main/java/org/gvsig/geoprocess/algorithm/base/core/DALFeaturePersister.java | ||
---|---|---|
193 | 193 |
} |
194 | 194 |
|
195 | 195 |
if(newDalGeom != null && acceptType(store, newDalGeom)) { |
196 |
if(getShapeType(store)==org.gvsig.fmap.geom.Geometry.TYPES.POINT){ |
|
196 |
org.gvsig.fmap.geom.Geometry multiGeometry = convertGeometry2MultiGeometry(newDalGeom); |
|
197 |
if(multiGeometry!=null && acceptType(store, multiGeometry)){ |
|
198 |
feat.setGeometry("GEOMETRY", multiGeometry); |
|
199 |
} else { |
|
197 | 200 |
feat.setGeometry("GEOMETRY", newDalGeom); |
198 |
} else { |
|
199 |
feat.setGeometry("GEOMETRY", convertGeometry2MultiGeometry(newDalGeom)); |
|
200 | 201 |
} |
201 | 202 |
store.insert(feat); |
202 | 203 |
return feat; |
203 | 204 |
} else if(dalGeomList != null) { |
204 | 205 |
for (int i = 0; i < dalGeomList.size(); i++) { |
205 | 206 |
if(acceptType(store, dalGeomList.get(i))) { |
206 |
if(getShapeType(store)==org.gvsig.fmap.geom.Geometry.TYPES.POINT){ |
|
207 |
org.gvsig.fmap.geom.Geometry multiGeometry = convertGeometry2MultiGeometry(dalGeomList.get(i)); |
|
208 |
if(multiGeometry!=null && acceptType(store, multiGeometry)){ |
|
209 |
feat.setGeometry("GEOMETRY", multiGeometry); |
|
210 |
} else { |
|
207 | 211 |
feat.setGeometry("GEOMETRY", dalGeomList.get(i)); |
208 |
} else { |
|
209 |
feat.setGeometry("GEOMETRY", convertGeometry2MultiGeometry(dalGeomList.get(i))); |
|
210 | 212 |
} |
211 | 213 |
store.insert(feat); |
212 | 214 |
} |
... | ... | |
238 | 240 |
} |
239 | 241 |
|
240 | 242 |
if(newDalGeom != null && acceptType(store, newDalGeom)) { |
241 |
feat.setGeometry("GEOMETRY", convertGeometry2MultiGeometry(newDalGeom)); |
|
243 |
org.gvsig.fmap.geom.Geometry multiGeometry = convertGeometry2MultiGeometry(newDalGeom); |
|
244 |
if(multiGeometry!=null && acceptType(store, multiGeometry)){ |
|
245 |
feat.setGeometry("GEOMETRY", multiGeometry); |
|
246 |
} else { |
|
247 |
feat.setGeometry("GEOMETRY", newDalGeom); |
|
248 |
} |
|
242 | 249 |
store.insert(feat); |
243 | 250 |
return feat; |
244 | 251 |
} |
... | ... | |
452 | 459 |
} |
453 | 460 |
} |
454 | 461 |
|
455 |
org.gvsig.fmap.geom.Geometry geometry = newDalGeom; |
|
462 |
org.gvsig.fmap.geom.Geometry multiGeometry = null; |
|
463 |
try { |
|
464 |
multiGeometry = convertGeometry2MultiGeometry(newDalGeom); |
|
465 |
} catch (CreateGeometryException e) { |
|
466 |
Sextante.addErrorToLog(e); |
|
467 |
} |
|
456 | 468 |
|
457 |
if(getShapeType(store)!=org.gvsig.fmap.geom.Geometry.TYPES.POINT){ |
|
458 |
try { |
|
459 |
geometry = convertGeometry2MultiGeometry(newDalGeom); |
|
460 |
} catch (CreateGeometryException e) { |
|
461 |
Sextante.addErrorToLog(e); |
|
462 |
} |
|
469 |
if(multiGeometry!=null && acceptType(store, multiGeometry)){ |
|
470 |
feat.setGeometry("GEOMETRY", multiGeometry); |
|
471 |
} else { |
|
472 |
feat.setGeometry("GEOMETRY", newDalGeom); |
|
463 | 473 |
} |
464 |
feat.setGeometry("GEOMETRY", geometry); |
|
465 | 474 |
store.insert(feat); |
466 | 475 |
return feat; |
467 | 476 |
} |
... | ... | |
482 | 491 |
EditableFeature feat = store.createNewFeature(); |
483 | 492 |
feat.set(0, id); |
484 | 493 |
feat.set(1, value); |
485 |
feat.setGeometry("GEOMETRY", convertGeometry2MultiGeometry(newDalGeom)); |
|
494 |
org.gvsig.fmap.geom.Geometry multiGeometry = convertGeometry2MultiGeometry(newDalGeom); |
|
495 |
if(multiGeometry!=null && acceptType(store, multiGeometry)){ |
|
496 |
feat.setGeometry("GEOMETRY", multiGeometry); |
|
497 |
} else { |
|
498 |
feat.setGeometry("GEOMETRY", newDalGeom); |
|
499 |
} |
|
486 | 500 |
store.insert(feat); |
487 | 501 |
return feat; |
488 | 502 |
} |
... | ... | |
521 | 535 |
if(newDalGeom != null && acceptType(store, newDalGeom)) { |
522 | 536 |
EditableFeature feat = store.createNewFeature(); |
523 | 537 |
feat.set(name, value); |
524 |
feat.setGeometry("GEOMETRY", convertGeometry2MultiGeometry(newDalGeom)); |
|
538 |
org.gvsig.fmap.geom.Geometry multiGeometry = convertGeometry2MultiGeometry(newDalGeom); |
|
539 |
if(multiGeometry!=null && acceptType(store, multiGeometry)){ |
|
540 |
feat.setGeometry("GEOMETRY", multiGeometry); |
|
541 |
} else { |
|
542 |
feat.setGeometry("GEOMETRY", newDalGeom); |
|
543 |
} |
|
525 | 544 |
store.insert(feat); |
526 | 545 |
return feat; |
527 | 546 |
} |
... | ... | |
539 | 558 |
if(newGeom != null && acceptType(store, newGeom)) { |
540 | 559 |
EditableFeature feat = store.createNewFeature(); |
541 | 560 |
feat.set(name, value); |
542 |
feat.setGeometry("GEOMETRY", convertGeometry2MultiGeometry(newGeom)); |
|
561 |
org.gvsig.fmap.geom.Geometry multiGeometry = convertGeometry2MultiGeometry(newGeom); |
|
562 |
if(multiGeometry!=null && acceptType(store, multiGeometry)){ |
|
563 |
feat.setGeometry("GEOMETRY", multiGeometry); |
|
564 |
} else { |
|
565 |
feat.setGeometry("GEOMETRY", newGeom); |
|
566 |
} |
|
543 | 567 |
store.insert(feat); |
544 | 568 |
return feat; |
545 | 569 |
} |
... | ... | |
559 | 583 |
for (int i = 0; i < values.size(); i++) { |
560 | 584 |
feat.set(names.get(i), values.get(i)); |
561 | 585 |
} |
562 |
feat.setGeometry("GEOMETRY", convertGeometry2MultiGeometry(newGeom)); |
|
586 |
org.gvsig.fmap.geom.Geometry multiGeometry = convertGeometry2MultiGeometry(newGeom); |
|
587 |
if(multiGeometry!=null && acceptType(store, multiGeometry)){ |
|
588 |
feat.setGeometry("GEOMETRY", multiGeometry); |
|
589 |
} else { |
|
590 |
feat.setGeometry("GEOMETRY", newGeom); |
|
591 |
} |
|
563 | 592 |
store.insert(feat); |
564 | 593 |
return feat; |
565 | 594 |
} |
... | ... | |
581 | 610 |
for (int i = 0; i < values.size(); i++) { |
582 | 611 |
feat.set(names.get(i), values.get(i)); |
583 | 612 |
} |
584 |
feat.setGeometry("GEOMETRY", convertGeometry2MultiGeometry(newDalGeom)); |
|
613 |
org.gvsig.fmap.geom.Geometry multiGeometry = convertGeometry2MultiGeometry(newDalGeom); |
|
614 |
if(multiGeometry!=null && acceptType(store, multiGeometry)){ |
|
615 |
feat.setGeometry("GEOMETRY", multiGeometry); |
|
616 |
} else { |
|
617 |
feat.setGeometry("GEOMETRY", newDalGeom); |
|
618 |
} |
|
585 | 619 |
store.insert(feat); |
586 | 620 |
return feat; |
587 | 621 |
} |
... | ... | |
603 | 637 |
feat.set(0, id); |
604 | 638 |
feat.set(1, value1); |
605 | 639 |
feat.set(2, value2); |
606 |
feat.setGeometry("GEOMETRY", convertGeometry2MultiGeometry(newDalGeom)); |
|
640 |
org.gvsig.fmap.geom.Geometry multiGeometry = convertGeometry2MultiGeometry(newDalGeom); |
|
641 |
if(multiGeometry!=null && acceptType(store, multiGeometry)){ |
|
642 |
feat.setGeometry("GEOMETRY", multiGeometry); |
|
643 |
} else { |
|
644 |
feat.setGeometry("GEOMETRY", newDalGeom); |
|
645 |
} |
|
607 | 646 |
store.insert(feat); |
608 | 647 |
return feat; |
609 | 648 |
} |
... | ... | |
636 | 675 |
} |
637 | 676 |
|
638 | 677 |
//Sets the geometry |
639 |
feat.setGeometry(fieldNames.length, convertGeometry2MultiGeometry(newGeom)); |
|
678 |
org.gvsig.fmap.geom.Geometry multiGeometry = convertGeometry2MultiGeometry(newGeom); |
|
679 |
if(multiGeometry!=null && acceptType(store, multiGeometry)){ |
|
680 |
feat.setGeometry("GEOMETRY", multiGeometry); |
|
681 |
} else { |
|
682 |
feat.setGeometry("GEOMETRY", newGeom); |
|
683 |
} |
|
640 | 684 |
store.insert(feat); |
641 | 685 |
return feat; |
642 | 686 |
} |
... | ... | |
653 | 697 |
public EditableFeature addFeature(Feature feature, org.gvsig.fmap.geom.Geometry newGeom) throws CreateGeometryException, DataException { |
654 | 698 |
if(acceptType(store, newGeom)) { |
655 | 699 |
EditableFeature feat = store.createNewFeature(store.getDefaultFeatureType(), feature); |
656 |
org.gvsig.fmap.geom.Geometry newMultiGeom = convertGeometry2MultiGeometry(newGeom);
|
|
657 |
if (acceptType(store, newMultiGeom)){
|
|
658 |
feat.setGeometry(fieldNames.length, newMultiGeom);
|
|
700 |
org.gvsig.fmap.geom.Geometry multiGeometry = convertGeometry2MultiGeometry(newGeom);
|
|
701 |
if (multiGeometry!=null && acceptType(store, multiGeometry)){
|
|
702 |
feat.setGeometry(fieldNames.length, multiGeometry);
|
|
659 | 703 |
} else { |
660 | 704 |
feat.setGeometry(fieldNames.length, newGeom); |
661 | 705 |
} |
Also available in: Unified diff