Revision 1261 org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.algorithm/org.gvsig.geoprocess.algorithm.merge/src/main/java/org/gvsig/geoprocess/algorithm/merge/MergeOperation.java

View differences:

MergeOperation.java
36 36

  
37 37
/**
38 38
 * Builds a geometry with the intersection between two layers
39
 * 
39
 *
40 40
 * @author <a href="mailto:nachobrodin@gmail.com">Nacho Brodin</a>
41 41
 */
42 42
public class MergeOperation extends GeometryOperation {
43
	private IVectorLayer                     layer            = null;
44 43

  
45
	public MergeOperation(IVectorLayer layer, AbstractSextanteGeoProcess p) {
46
		super(p);
47
		this.layer = layer;
48
	}
44
    private IVectorLayer layer = null;
49 45

  
50
	/**
51
	 * Computes intersection between the geometry and the overlay layer. The fields of the
52
	 * intersected features will be added.
53
	 * @param g
54
	 * @param featureInput
55
	 * @return
56
	 */
57
	public EditableFeature invoke(org.gvsig.fmap.geom.Geometry g, Feature featureInput) {
58
		if(g == null)
59
			return lastEditFeature;
60
		
61
		try {
62
			if(inFeatureStore == ((FlyrVectIVectorLayer)layer).getFeatureStore())
63
				lastEditFeature = persister.addFeature(featureInput, g);
64
			else
65
				lastEditFeature = persister.addDifferentFieldFeature(featureInput, g);
66
		} catch (CreateGeometryException e) {
67
			Sextante.addErrorToLog(e);
68
		} catch (DataException e) {
69
			Sextante.addErrorToLog(e);
70
		}
71
		
72
		return lastEditFeature;
73
	}
74
	
75
	/**
76
	 * clips feature's geometry with the clipping geometry, preserving
77
	 * feature's original attributes.
78
	 * If feature's geometry doesn't touch clipping geometry, it will be
79
	 * ignored.
80
	 */
81
	public void invoke(org.gvsig.fmap.geom.Geometry g, EditableFeature featureInput) {
82
		try {
83
			lastEditFeature = persister.addGeometryToExistingFeature(featureInput, g);
84
		} catch (CreateGeometryException e) {
85
			Sextante.addErrorToLog(e);
86
		} catch (DataException e) {
87
			Sextante.addErrorToLog(e);
88
		}
89
	}
46
    public MergeOperation(IVectorLayer layer, AbstractSextanteGeoProcess p) {
47
        super(p);
48
        this.layer = layer;
49
    }
50

  
51
    /**
52
     * Computes intersection between the geometry and the overlay layer. The
53
     * fields of the intersected features will be added.
54
     *
55
     * @param g
56
     * @param featureInput
57
     * @return
58
     */
59
    public EditableFeature invoke(org.gvsig.fmap.geom.Geometry g, Feature featureInput) {
60
        if (g == null) {
61
            return lastEditFeature;
62
        }
63

  
64
        try {
65
            if (inFeatureStore == ((FlyrVectIVectorLayer) layer).getFeatureStore()) {
66
                lastEditFeature = persister.addFeature(featureInput, g);
67
            } else {
68
                lastEditFeature = persister.addDifferentFieldFeature(featureInput, g);
69
            }
70
        } catch (CreateGeometryException e) {
71
            Sextante.addErrorToLog(e);
72
        } catch (DataException e) {
73
            Sextante.addErrorToLog(e);
74
        }
75

  
76
        return lastEditFeature;
77
    }
78

  
79
    /**
80
     * clips feature's geometry with the clipping geometry, preserving feature's
81
     * original attributes. If feature's geometry doesn't touch clipping
82
     * geometry, it will be ignored.
83
     */
84
    public void invoke(org.gvsig.fmap.geom.Geometry g, EditableFeature featureInput) {
85
        try {
86
            lastEditFeature = persister.addGeometryToExistingFeature(featureInput, g);
87
        } catch (CreateGeometryException e) {
88
            Sextante.addErrorToLog(e);
89
        } catch (DataException e) {
90
            Sextante.addErrorToLog(e);
91
        }
92
    }
90 93
}
91

  

Also available in: Unified diff