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

View differences:

PolygonMustNotHaveDuplicatedRings.java
55 55
import org.gvsig.topology.Topology;
56 56
import org.gvsig.topology.TopologyError;
57 57
import org.gvsig.topology.TopologyRuleDefinitionException;
58
import org.gvsig.topology.topologyrules.JtsValidRule;
58 59

  
59 60
import com.hardcode.gdbms.driver.exceptions.ReadDriverException;
60 61
import com.iver.cit.gvsig.fmap.core.IFeature;
......
77 78
public class PolygonMustNotHaveDuplicatedRings extends AbstractTopologyRule {
78 79
	
79 80
	private double snapTolerance;
81
	
82
	private JtsValidRule parentRule;
80 83

  
81 84
	public PolygonMustNotHaveDuplicatedRings(Topology topology, FLyrVect lyr, double tolerance){
82 85
		super(topology, lyr);
......
133 136
			LineString hole = polygon.getInteriorRingN(i);
134 137
			if(shell.equalsExact(hole, snapTolerance)){
135 138
				IGeometry geometry = FConverter.jts_to_igeometry(hole);
139
				AbstractTopologyRule violatedRule = null;
140
				if(this.parentRule != null)
141
					violatedRule = parentRule;
142
				else
143
					violatedRule = this;
136 144
				TopologyError error = new TopologyError(geometry,
137
														this, 
145
														violatedRule, 
138 146
														feature,
139 147
														topology);
140 148
				addTopologyError(error);
......
147 155
				LineString hole2 = polygon.getInteriorRingN(j);
148 156
				if(hole.equalsExact(hole2)){
149 157
					IGeometry geometry = FConverter.jts_to_igeometry(hole);
158
					AbstractTopologyRule violatedRule = null;
159
					if(this.parentRule != null)
160
						violatedRule = parentRule;
161
					else
162
						violatedRule = this;
150 163
					TopologyError error = new TopologyError(geometry,
151
															this, 
164
															violatedRule, 
152 165
															feature,
153 166
															topology);
154 167
					addTopologyError(error);
......
170 183
			snapTolerance = xml.getDoubleProperty("snapTolerance");
171 184
		}
172 185
	}
186

  
187
	public JtsValidRule getParentRule() {
188
		return parentRule;
189
	}
190

  
191
	public void setParentRule(JtsValidRule parentRule) {
192
		this.parentRule = parentRule;
193
	}
173 194
}

Also available in: Unified diff