Revision 478 org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/dataObjects/FlyrVectIVectorLayer.java

View differences:

FlyrVectIVectorLayer.java
34 34
import org.gvsig.fmap.dal.DataServerExplorer;
35 35
import org.gvsig.fmap.dal.DataStoreParameters;
36 36
import org.gvsig.fmap.dal.exception.DataException;
37
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
37 38
import org.gvsig.fmap.dal.feature.EditableFeature;
38 39
import org.gvsig.fmap.dal.feature.EditableFeatureType;
39 40
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
......
58 59
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
59 60
import org.gvsig.tools.ToolsLocator;
60 61
import org.gvsig.tools.dataTypes.DataTypesManager;
62
import org.gvsig.tools.locator.LocatorException;
61 63

  
62 64
import com.vividsolutions.jts.geom.Geometry;
63 65

  
......
248 250
    }
249 251

  
250 252
    public void create(final FLyrVect layer) {
251

  
252 253
        m_Layer = layer;
253 254
        try {
254 255
            featureStore = layer.getFeatureStore();
......
262 263

  
263 264
    @SuppressWarnings("deprecation")
264 265
    public void open() {
265

  
266 266
        if (m_Layer == null) {
267 267
            try {
268 268
                m_Layer =
......
273 273
                throw new RuntimeException(e);
274 274
            }
275 275
        }
276

  
277 276
    }
278 277

  
279 278
    public void close() {
......
286 285
     * @return length of field
287 286
     */
288 287
    public int getDataTypeLength(final int dataType) {
289

  
290 288
        switch (dataType) {
291 289
        case Types.NUMERIC:
292 290
        case Types.DOUBLE:
......
307 305
            return 1;
308 306
        }
309 307
        return 0;
310

  
311 308
    }
312 309

  
313 310
    @SuppressWarnings("unchecked")
......
337 334
            while (features.hasNext()) {
338 335
                final FeatureAttributeDescriptor featureAttributeDescriptor =
339 336
                    features.next();
340
                // if (!featureAttributeDescriptor.getName().equals(
341
                // featureType.getDefaultGeometryAttributeName())) {
342
                // ef.set(
343
                // featureAttributeDescriptor.getName().substring(
344
                // 0,
345
                // Math.min(11, featureAttributeDescriptor.getName()
346
                // .length())), values[i]);
347
                // i++;
348
                // }
349 337
                if (!featureAttributeDescriptor.getName().equals(
350 338
                    featureType.getDefaultGeometryAttributeName())) {
351 339
                    ef.set(featureAttributeDescriptor.getName(), values[i]);
......
360 348
    }
361 349

  
362 350
    public IFeatureIterator iterator() {
363

  
364 351
        if (m_Layer != null) {
365 352
            return new DALIFeatureIterator(m_Layer, getFilters());
366 353
        } else {
......
370 357
    }
371 358

  
372 359
    public String getFieldName(final int i) {
373

  
374 360
        if (featureStore != null) {
375 361
            return ((FeatureAttributeDescriptor) featureType.get(i)).getName();
376 362
        }
377 363
        return null;
378

  
379 364
    }
380 365

  
381 366
    public Class<?> getFieldType(final int i) {
......
393 378

  
394 379
    @Override
395 380
    public int getShapesCount() {
396

  
397 381
        if (featureStore != null) {
398 382
            try {
399
                return (int) featureStore.getFeatureSet().getSize();
383
            	return (int)featureStore.getFeatureSet().getSize();
400 384
            } catch (final DataException e) {
401 385
                Sextante.addErrorToLog(e);
402 386
                return 0;
403 387
            }
404 388
        }
405 389
        return 0;
406

  
407 390
    }
408 391

  
409 392
    public int getShapeType() {
......
416 399
    }
417 400

  
418 401
    private int getShapeTypeFromGvSIGShapeType(final int shapeType) {
419

  
420 402
        switch (shapeType) {
421 403
        case org.gvsig.fmap.geom.Geometry.TYPES.SURFACE:
422 404
            return IVectorLayer.SHAPE_TYPE_POLYGON;
......
429 411
        default:
430 412
            return IVectorLayer.SHAPE_TYPE_POLYGON;
431 413
        }
432

  
433 414
    }
434 415

  
435 416
    private int getgvSIGShapeType(final int shapeType) {
436

  
437 417
        switch (shapeType) {
438 418
        case IVectorLayer.SHAPE_TYPE_POLYGON:
439 419
            return org.gvsig.fmap.geom.Geometry.TYPES.SURFACE;
......
450 430
        default:
451 431
            return org.gvsig.fmap.geom.Geometry.TYPES.SURFACE;
452 432
        }
453

  
454 433
    }
455 434

  
456 435
    public String getName() {
457

  
458 436
        if (m_Layer != null) {
459 437
            return m_Layer.getName();
460 438
        } else {
......
463 441
    }
464 442

  
465 443
    public void postProcess() {
466

  
467 444
        if (featureStore == null) {
468 445
            return;
469 446
        }
470 447
        try {
471 448
            featureStore.finishEditing();
449
            String name = featureStore.getProviderName();
450
            DataStoreParameters params = featureStore.getParameters();
451
            featureStore.dispose();
452
            featureStore = (FeatureStore) DALLocator.getDataManager().openStore(name, params);
453
            featureStore.edit(FeatureStore.MODE_APPEND);
454
            featureType = featureStore.getDefaultFeatureType();
472 455
        } catch (final DataException e) {
473 456
            // No puede finalizar la edici�n. Es posible que se haya cerrado
474 457
            // previamente.
475
        }
476

  
477
        /*
478
         * FLyrVect vectorLayer = null;
479
         * if (inputParameters instanceof String) {
480
         * vectorLayer = (FLyrVect) FileTools.openLayer((String)
481
         * inputParameters, s_Name, m_Projection);
482
         * }
483
         * if (inputParameters instanceof OutputParameters) {
484
         * vectorLayer = (FLyrVect) FileTools.openLayer(((OutputParameters)
485
         * inputParameters).getDataParameters(), s_Name,
486
         * m_Projection);
487
         * }
488
         * create(vectorLayer);
489
         */
490

  
458
        } catch (ValidateDataParametersException e) {
459
			org.slf4j.LoggerFactory.getLogger(FlyrVectIVectorLayer.class).debug("Error opening store", e);
460
		} catch (LocatorException e) {
461
			org.slf4j.LoggerFactory.getLogger(FlyrVectIVectorLayer.class).debug("Error opening store", e);
462
		}
491 463
    }
492 464

  
493 465
    public String getFilename() {
......
495 467
    		return fileName;
496 468
    	else
497 469
    		return m_sName;
498
        /*if (featureStore != null) {
499
            final DataStoreParameters dsp = featureStore.getParameters();
500
            if (dsp instanceof FilesystemStoreParameters) {
501
                return ((FilesystemStoreParameters) dsp).getFile()
502
                    .getAbsolutePath();
503
            } else {
504
                return null;
505
            }
506
        } else {
507
            return m_sName;
508
        }*/
509

  
510 470
    }
511 471

  
512 472
    public Object getCRS() {
......
516 476
    }
517 477

  
518 478
    public void setName(final String name) {
519

  
520 479
        m_sName = name;
521
        // inputParameters = name;
522

  
523 480
    }
524 481

  
525 482
    @Override
526 483
    public Object getBaseDataObject() {
527

  
528 484
        return m_Layer;
529

  
530 485
    }
531 486

  
532 487
    public void free() {
533

  
534 488
        m_Layer.dispose();
535 489
        featureStore.dispose();
536 490

  
......
539 493
    }
540 494

  
541 495
    public IOutputChannel getOutputChannel() {
542

  
543 496
        if (featureStore != null) {
544 497
            final DataStoreParameters dsp = featureStore.getParameters();
545 498
            if (dsp instanceof FilesystemStoreParameters) {
......
553 506
        } else {
554 507
            return m_Channel;
555 508
        }
556

  
557 509
    }
558 510

  
559 511
    public boolean canBeEdited() {
560

  
561 512
        // we support only file-based, so we can overwrite
562 513
        return true;
563 514

  

Also available in: Unified diff