Revision 44040

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/AbstractGeometry.java
800 800
        this.projection = projection;
801 801
    }
802 802

  
803
    @Override
804
    @SuppressWarnings("CloneDoesntCallSuperClone")
805
    public Geometry clone() throws CloneNotSupportedException {
806
        return this.cloneGeometry();
807
    }
808

  
803 809
}
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/primitive/DefaultEnvelope.java
44 44
import org.gvsig.fmap.geom.jts.util.JTSUtils;
45 45
import org.gvsig.fmap.geom.primitive.Envelope;
46 46
import org.gvsig.fmap.geom.primitive.EnvelopeNotInitializedException;
47
import org.gvsig.fmap.geom.primitive.Line;
47 48
import org.gvsig.fmap.geom.primitive.Point;
49
import org.gvsig.fmap.geom.primitive.Polygon;
48 50
import org.gvsig.fmap.geom.primitive.Surface;
49 51
import org.gvsig.tools.ToolsLocator;
50 52
import org.gvsig.tools.dynobject.DynStruct;
......
63 65

  
64 66
 * @author Vicente Caballero Navarro
65 67
 */
68
@SuppressWarnings("UseSpecificCatch")
66 69
public abstract class DefaultEnvelope implements Envelope, org.gvsig.tools.lang.Cloneable{
67 70
    private static final Logger LOG =
68 71
        LoggerFactory.getLogger(DefaultEnvelope.class);
......
212 215
            throw new EnvelopeNotInitializedException();
213 216
        }
214 217
        try {
215
            Surface surface = (Surface)manager.create(TYPES.SURFACE, SUBTYPES.GEOM2D);
216
            surface.addVertex((Point)min.cloneGeometry());
217
            surface.addVertex(manager.createPoint(getMaximum(0),getMinimum(1), SUBTYPES.GEOM2D));
218
            surface.addVertex((Point)max.cloneGeometry());
219
            surface.addVertex(manager.createPoint(getMinimum(0),getMaximum(1), SUBTYPES.GEOM2D));
220
            surface.addVertex((Point)min.cloneGeometry());
221
            surface.setProjection(projection);
222
            return surface;
223
        } catch (CreateGeometryException e) {
224
            LOG.error("Error creting the surface", e);
218
            // point?
219
            if (this.min.getX() == this.max.getX() && this.min.getY() == this.max.getY()) {
220
                Point point = this.min.clone();
221
                point.setProjection(projection);
222
                return point;
223
            }
224
            // vertical or horizontal line?
225
            if (this.min.getX() == this.max.getX() ||
226
                this.min.getY() == this.max.getY()) {
227
                Line line = manager.createLine(SUBTYPES.GEOM2D);
228
                line.addVertex(min.clone());
229
                line.addVertex(max.clone());
230
                line.setProjection(projection);
231
                return line;
232
            }
233
            Polygon polygon = manager.createPolygon(SUBTYPES.GEOM2D);
234
            polygon.addVertex(min.clone());
235
            polygon.addVertex(manager.createPoint(getMaximum(0),getMinimum(1), SUBTYPES.GEOM2D));
236
            polygon.addVertex(max.clone());
237
            polygon.addVertex(manager.createPoint(getMinimum(0),getMaximum(1), SUBTYPES.GEOM2D));
238
            polygon.addVertex(min.clone());
239
            polygon.setProjection(projection);
240
            return polygon;
241
        } catch (Exception e) {
242
            LOG.warn("Error creting the geometry from envelope", e);
225 243
        }
226 244
        return null;
227 245
    }
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/primitive/curve/line/Line2DM.java
66 66
    /* (non-Javadoc)
67 67
     * @see org.gvsig.fmap.geom.Geometry#cloneGeometry()
68 68
     */
69
    public Geometry cloneGeometry() {
69
    public Line cloneGeometry() {
70 70
        return new Line2DM(cloneCoordinates().toCoordinateArray());
71 71
    }
72 72

  
73
    @Override
74
    @SuppressWarnings("CloneDoesntCallSuperClone")
75
    public Line clone() throws CloneNotSupportedException {
76
        return this.cloneGeometry();
77
    }
78
    
73 79
    /* (non-Javadoc)
74 80
     * @see org.gvsig.fmap.geom.Geometry#offset(double)
75 81
     */
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/primitive/curve/line/AbstractLine.java
48 48
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
49 49
import org.gvsig.fmap.geom.primitive.GeneralPathX;
50 50
import org.gvsig.fmap.geom.primitive.IGeneralPathX;
51
import org.gvsig.fmap.geom.primitive.Line;
51 52
import org.gvsig.fmap.geom.primitive.Point;
52 53

  
53 54
/**
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/primitive/curve/line/Line3DM.java
61 61
    /* (non-Javadoc)
62 62
     * @see org.gvsig.fmap.geom.Geometry#cloneGeometry()
63 63
     */
64
    public Geometry cloneGeometry() {
64
    public Line cloneGeometry() {
65 65
        return new Line3DM(cloneCoordinates().toCoordinateArray());
66 66
     }
67 67

  
68
    @Override
69
    @SuppressWarnings("CloneDoesntCallSuperClone")
70
    public Line clone() throws CloneNotSupportedException {
71
        return this.cloneGeometry();
72
    }
73
    
68 74
    /* (non-Javadoc)
69 75
     * @see org.gvsig.fmap.geom.Geometry#offset(double)
70 76
     */
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/primitive/curve/line/Line2D.java
64 64
     *
65 65
     * @see org.gvsig.fmap.geom.Geometry#cloneGeometry()
66 66
     */
67
    public Geometry cloneGeometry() {
67
    public Line cloneGeometry() {
68 68
        return new Line2D(cloneCoordinates().toCoordinateArray());
69 69
    }
70 70

  
71
    @Override
72
    @SuppressWarnings("CloneDoesntCallSuperClone")
73
    public Line clone() throws CloneNotSupportedException {
74
        return this.cloneGeometry();
75
    }
76
    
71 77
    /* (non-Javadoc)
72 78
     * @see org.gvsig.fmap.geom.Geometry#offset(double)
73 79
     */
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/primitive/curve/line/Line3D.java
61 61
    /* (non-Javadoc)
62 62
     * @see org.gvsig.fmap.geom.Geometry#cloneGeometry()
63 63
     */
64
    public Geometry cloneGeometry() {
64
    public Line cloneGeometry() {
65 65
        return new Line3D(cloneCoordinates().toCoordinateArray());
66 66
    }
67 67

  
68
    @Override
69
    @SuppressWarnings("CloneDoesntCallSuperClone")
70
    public Line clone() throws CloneNotSupportedException {
71
        return this.cloneGeometry();
72
    }
73
    
68 74
    /* (non-Javadoc)
69 75
     * @see org.gvsig.fmap.geom.Geometry#offset(double)
70 76
     */
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/primitive/surface/polygon/Polygon2DM.java
100 100
     *
101 101
     * @see org.gvsig.fmap.geom.Geometry#cloneGeometry()
102 102
     */
103
    public Geometry cloneGeometry() {
103
    public Polygon cloneGeometry() {
104 104
        Polygon2DM cloned = new Polygon2DM(cloneCoordinates().toCoordinateArray());
105 105
        for (int i = 0; i < getNumInteriorRings(); i++){
106 106
            cloned.addInteriorRing((Ring)getInteriorRing(i).cloneGeometry());
......
108 108
        return cloned;
109 109
    }
110 110

  
111
    @Override
112
    @SuppressWarnings("CloneDoesntCallSuperClone")
113
    public Polygon clone() throws CloneNotSupportedException {
114
        return this.cloneGeometry();
115
    }
116
    
117

  
111 118
    /* (non-Javadoc)
112 119
     * @see org.gvsig.fmap.geom.primitive.Surface#getSurfaceAppearance()
113 120
     */
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/primitive/surface/polygon/Polygon3DM.java
187 187
    /* (non-Javadoc)
188 188
     * @see org.gvsig.fmap.geom.Geometry#cloneGeometry()
189 189
     */
190
    public Geometry cloneGeometry() {
190
    public Polygon cloneGeometry() {
191 191
        Polygon3DM cloned = new Polygon3DM(cloneCoordinates().toCoordinateArray());
192 192
        for (int i = 0; i < getNumInteriorRings(); i++){
193 193
            cloned.addInteriorRing((Ring)getInteriorRing(i).cloneGeometry());
......
195 195
        return cloned;
196 196
    }
197 197

  
198

  
198
    @Override
199
    @SuppressWarnings("CloneDoesntCallSuperClone")
200
    public Polygon clone() throws CloneNotSupportedException {
201
        return this.cloneGeometry();
202
    }
203
    
199 204
    /* (non-Javadoc)
200 205
     * @see org.gvsig.fmap.geom.jts.GeometryJTS#getJTS()
201 206
     */
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/primitive/surface/polygon/Polygon2D.java
88 88
     *
89 89
     * @see org.gvsig.fmap.geom.Geometry#cloneGeometry()
90 90
     */
91
    public Geometry cloneGeometry() {
91
    public Polygon cloneGeometry() {
92 92
        Polygon2D cloned = new Polygon2D(cloneCoordinates().toCoordinateArray());
93 93
        for (int i = 0; i < getNumInteriorRings(); i++){
94 94
            cloned.addInteriorRing((Ring)getInteriorRing(i).cloneGeometry());
......
96 96
        return cloned;
97 97
    }
98 98

  
99
    @Override
100
    @SuppressWarnings("CloneDoesntCallSuperClone")
101
    public Polygon clone() throws CloneNotSupportedException {
102
        return this.cloneGeometry();
103
    }
104
    
99 105
    /*
100 106
     * (non-Javadoc)
101 107
     *
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/primitive/surface/polygon/Polygon3D.java
91 91
    /* (non-Javadoc)
92 92
     * @see org.gvsig.fmap.geom.Geometry#cloneGeometry()
93 93
     */
94
    public Geometry cloneGeometry() {
94
    public Polygon cloneGeometry() {
95 95
        Polygon3D cloned = new Polygon3D(cloneCoordinates().toCoordinateArray());
96 96
        for (int i = 0; i < getNumInteriorRings(); i++){
97 97
            cloned.addInteriorRing((Ring)getInteriorRing(i).cloneGeometry());
98 98
        }
99 99
        return cloned;
100 100
    }
101
    
102
    @Override
103
    @SuppressWarnings("CloneDoesntCallSuperClone")
104
    public Polygon clone() throws CloneNotSupportedException {
105
        return this.cloneGeometry();
106
    }
101 107

  
102 108
    /* (non-Javadoc)
103 109
     * @see org.gvsig.fmap.geom.primitive.Surface#setSurfaceAppearance(org.gvsig.fmap.geom.primitive.SurfaceAppearance)
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/primitive/point/Point2D.java
79 79
     *
80 80
     * @see org.gvsig.fmap.geom.Geometry#cloneGeometry()
81 81
     */
82
    public Geometry cloneGeometry() {
82
    public Point cloneGeometry() {
83 83
        return new Point2D((Coordinate) this.coordinate.clone());
84 84
    }
85 85

  
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/primitive/point/Point3D.java
102 102
    /* (non-Javadoc)
103 103
     * @see org.gvsig.fmap.geom.Geometry#cloneGeometry()
104 104
     */
105
    public Geometry cloneGeometry() {
105
    public Point cloneGeometry() {
106 106
        return new Point3D((Coordinate)this.coordinate.clone());
107 107
    }
108 108

  
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/primitive/point/Point2DM.java
108 108
     *
109 109
     * @see org.gvsig.fmap.geom.Geometry#cloneGeometry()
110 110
     */
111
    public Geometry cloneGeometry() {
111
    public Point cloneGeometry() {
112 112
        return new Point2DM(MCoordinate.convertCoordinate((Coordinate) coordinate.clone()));
113 113
    }
114 114

  
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/primitive/point/AbstractPoint.java
382 382
        GeometryOperationException {
383 383
        return (Point) this.cloneGeometry();
384 384
    }    
385

  
386
    @Override
387
    @SuppressWarnings("CloneDoesntCallSuperClone")
388
    public Point clone() throws CloneNotSupportedException {
389
        return this.cloneGeometry();
390
    }
391

  
392

  
385 393
}
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/primitive/point/Point3DM.java
110 110
     *
111 111
     * @see org.gvsig.fmap.geom.Geometry#cloneGeometry()
112 112
     */
113
    public Geometry cloneGeometry() {
113
    public Point cloneGeometry() {
114 114
        return new Point3DM(MCoordinate.convertCoordinate((Coordinate) coordinate.clone()));
115 115
    }
116 116

  
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.api/src/main/java/org/gvsig/fmap/geom/primitive/Polygon.java
27 27
public interface Polygon extends Surface, Closeable, Iterable<Point>, Ring {
28 28

  
29 29
    public boolean isEmpty();
30

  
31
    public Polygon clone() throws CloneNotSupportedException;
32

  
33
    public Polygon cloneGeometry();
30 34
}
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.api/src/main/java/org/gvsig/fmap/geom/primitive/Line.java
28 28
public interface Line extends Curve, Closeable, Iterable<Point> {
29 29

  
30 30
    public boolean isEmpty();
31

  
32
    public Line clone() throws CloneNotSupportedException;
33

  
34
    public Line cloneGeometry();
31 35
}
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.api/src/main/java/org/gvsig/fmap/geom/primitive/Point.java
58 58
    /**
59 59
     * Sets the point coordinates
60 60
     *
61
     * @param value
62
     *            The coordinates to set
61
     * @param values The coordinates to set
63 62
     * @deprecated Use {@link #setCoordinateAt(int, double))} instead
64 63
     */
65 64
	void setCoordinates(double[] values);
......
110 109
	 * The Y coordinate
111 110
	 */
112 111
	double getY();
112
        
113
        
114
        public Point cloneGeometry();
115
        
116
        public Point clone() throws CloneNotSupportedException;
113 117
}
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.api/src/main/java/org/gvsig/fmap/geom/Geometry.java
72 72
 * @see <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26012"
73 73
 * >ISO 19107< /a>
74 74
 */
75
public interface Geometry extends Shape, Serializable, Comparable {
75
public interface Geometry extends Shape, Serializable, Comparable, Cloneable {
76 76

  
77 77
    /**
78 78
     * Predefined geometry types in the model.
......
365 365
     * @return A clone of this geometry.
366 366
     */
367 367
    public Geometry cloneGeometry();
368
    
369
    public Geometry clone() throws CloneNotSupportedException;
368 370

  
369 371
    /**
370 372
     * Returns true if this geometry intersects the rectangle passed as

Also available in: Unified diff