Revision 18995 trunk/libraries/libTopology/src/org/gvsig/topology/topologyrules/jtsisvalidrules/PolygonMustNotHaveDuplicatedRings.java
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