Revision 2616 org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.split/src/main/java/org/gvsig/vectorediting/lib/prov/split/operation/ArcSplitOperation.java

View differences:

ArcSplitOperation.java
26 26

  
27 27
import java.util.ArrayList;
28 28
import java.util.Collections;
29
import java.util.Comparator;
30 29
import java.util.List;
31

  
32
import org.slf4j.Logger;
33
import org.slf4j.LoggerFactory;
34

  
35 30
import org.gvsig.fmap.geom.Geometry;
36 31
import org.gvsig.fmap.geom.GeometryLocator;
37 32
import org.gvsig.fmap.geom.GeometryManager;
......
43 38
import org.gvsig.fmap.geom.primitive.Arc;
44 39
import org.gvsig.fmap.geom.primitive.Point;
45 40
import org.gvsig.tools.exception.BaseException;
41
import org.slf4j.Logger;
42
import org.slf4j.LoggerFactory;
46 43

  
47 44
/**
48 45
 * @author llmarques
......
50 47
 */
51 48
public class ArcSplitOperation implements SplitOperation {
52 49

  
53
    private static Logger logger = LoggerFactory
50
    private static final Logger LOGGER =  LoggerFactory
54 51
        .getLogger(ArcSplitOperation.class);
55 52

  
56 53
    /*
......
62 59
     * 4. Iterate over ordered intersection points and create splitted arcs.
63 60
     * Stop iteration when all intersections points have been iterated.
64 61
     */
62
    @Override
65 63
    public Geometry split(Geometry geometryToBeSplitted, Geometry splitter)
66 64
        throws GeometryOperationNotSupportedException,
67 65
        GeometryOperationException, CreateGeometryException {
......
105 103
            double radius = center.distance(arcToBeSplitted.getEndPoint());
106 104

  
107 105
            // Order intersection points by angle to create arcs correctly
108
            List<Point> orderedIntersectionPoints = new ArrayList<Point>();
106
            List<Point> orderedIntersectionPoints = new ArrayList<>();
109 107
            for (int i = 0; i < multiIntersection.getPrimitivesNumber(); i++) {
110 108
                orderedIntersectionPoints.add(multiIntersection.getPointAt(i));
111 109
            }
112 110

  
113 111
            // Sort by angle
114
            Collections.sort(orderedIntersectionPoints,
115
                new Comparator<Point>() {
116

  
117
                    public int compare(Point p1, Point p2) {
118
                        double angle1 = 0;
119
                        double angle2 = 0;
120
                        try {
121
                            angle1 = SplitOperationUtils.getAngle(center, p1);
122
                            angle2 = SplitOperationUtils.getAngle(center, p2);
123
                        } catch (BaseException e) {
124
                            logger
125
                                .warn("Problems getting angle between center and"
112
            Collections.sort(orderedIntersectionPoints, (Point p1, Point p2) -> {
113
                double angle1;
114
                double angle2;
115
                try {
116
                    angle1 = SplitOperationUtils.getAngle(center, p1);
117
                    angle2 = SplitOperationUtils.getAngle(center, p2);
118
                } catch (BaseException e) {
119
                    LOGGER
120
                            .warn("Problems getting angle between center and"
126 121
                                    + " one intersection point");
127
                            return 0;
128
                        }
129
                        return Double.compare(angle1, angle2);
130
                    }
131
                });
122
                    return 0;
123
                }
124
                return Double.compare(angle1, angle2);
125
            });
132 126

  
133 127
            MultiCurve splittedArcs = geoManager.createMultiCurve(subtype);
134 128

  
......
166 160
        Point endPoint = arc.getEndPoint();
167 161
        Point centerPoint = arc.getCenterPoint();
168 162
        
169
        if(initPoint.equals(endPoint) || centerPoint == null){
170
            return true;
171
        }
172
        return false;
163
        return initPoint.equals(endPoint) || centerPoint == null;
173 164
    }
174 165
}

Also available in: Unified diff