Revision 47652 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/gml/GeometryStrategiesGML3.java

View differences:

GeometryStrategiesGML3.java
15 15
import com.vividsolutions.jts.geom.Polygon;
16 16
import com.vividsolutions.jts.io.gml2.GMLConstants;
17 17
import com.vividsolutions.jts.operation.linemerge.LineMerger;
18
import java.util.ArrayList;
18 19
import java.util.HashMap;
19 20
import java.util.List;
20 21
import org.apache.commons.collections4.CollectionUtils;
......
119 120

  
120 121
            @Override
121 122
            public Object parse(GMLHandler.Handler arg, GeometryFactory gf) throws SAXException {
122
                Object exterior = arg.children.get(0);
123
                Object interior = null;
124
                if(arg.children.size() > 1){ //FIXME: Ver si se est? cogiendo solo un agujero
125
                    interior = arg.children.get(1);
123
                LinearRing exterior = (LinearRing) arg.children.get(0);
124
                List<LinearRing> interior = null;
125
                int childrensCount = arg.children.size();
126
                if(childrensCount == 2){
127
                    interior = (List<LinearRing>) arg.children.get(1);
128
                } else if(childrensCount > 2){
129
                    interior = new ArrayList<>();
130
                    for (int i = 1; i < childrensCount; i++) {
131
                        Object child = arg.children.get(i);
132
                        if(child instanceof List){
133
                            interior.add(((List<LinearRing>)child).get(0));
134
                        } else {
135
                            interior.add(((LinearRing)child));
136
                        }
137
                    }
126 138
                }
127 139
                return new ImmutablePair(exterior, interior);
128 140
            }

Also available in: Unified diff