Revision 18995 trunk/libraries/libTopology/src/org/gvsig/topology/topologyrules/jtsisvalidrules/PolygonMustHaveConnectedInterior.java

View differences:

PolygonMustHaveConnectedInterior.java
56 56
import org.gvsig.topology.TopologyError;
57 57
import org.gvsig.topology.TopologyRuleDefinitionException;
58 58
import org.gvsig.topology.WrongLyrForTopologyException;
59
import org.gvsig.topology.topologyrules.JtsValidRule;
59 60

  
60 61
import com.hardcode.gdbms.driver.exceptions.ReadDriverException;
61 62
import com.iver.cit.gvsig.fmap.core.FPoint2D;
......
85 86
 */
86 87
public class PolygonMustHaveConnectedInterior extends AbstractTopologyRule {
87 88
	
89
	JtsValidRule parentRule;
90
	
88 91
	public PolygonMustHaveConnectedInterior(Topology topology,
89 92
			FLyrVect originLyr) {
90 93
		super(topology, originLyr);
......
145 148
				Coordinate coord = cit.getCoordinate();
146 149
				FPoint2D pt = new FPoint2D(coord.x, coord.y);
147 150
				IGeometry geometry = ShapeFactory.createGeometry(pt);
151
				AbstractTopologyRule violatedRule = null;
152
				if(this.parentRule != null)
153
					violatedRule = parentRule;
154
				else
155
					violatedRule = this;
148 156
				TopologyError error = 
149
					new TopologyError(geometry, this, feature, topology);
157
					new TopologyError(geometry, violatedRule, feature, topology);
150 158
				addTopologyError(error);
151 159
			}
152 160
		}catch(TopologyException e){
153 161
			//In unit tests JTS has throwed this exception POLYGON ((440 260, 500 300, 660 300, 600 200, 440 260, 440 260), (440 260, 600 200, 660 300, 500 300, 440 260))
154 162
			e.printStackTrace();
163
			AbstractTopologyRule violatedRule = null;
164
			if(this.parentRule != null)
165
				violatedRule = parentRule;
166
			else
167
				violatedRule = this;
155 168
			TopologyError error = 
156
				new TopologyError(feature.getGeometry(), this, feature, topology);
169
				new TopologyError(feature.getGeometry(), violatedRule, feature, topology);
157 170
			addTopologyError(error);
158 171
			
159 172
		}
160 173
	}
174

  
175
	public JtsValidRule getParentRule() {
176
		return parentRule;
177
	}
178

  
179
	public void setParentRule(JtsValidRule parentRule) {
180
		this.parentRule = parentRule;
181
	}
161 182
}

Also available in: Unified diff