Revision 38598 branches/v2_0_0_prep/libraries/libFMap_geometries/src/org/gvsig/fmap/geom/impl/DefaultGeometryManager.java
DefaultGeometryManager.java | ||
---|---|---|
151 | 151 |
|
152 | 152 |
int index = getGeometryOperationCode(geomOpName); |
153 | 153 |
|
154 |
Iterator it = geometryTypeName.keySet().iterator();
|
|
154 |
Iterator it = geometryTypeName.values().iterator();
|
|
155 | 155 |
while (it.hasNext()) { |
156 |
String className = (String) it.next(); |
|
157 |
GeometryType geometryType = |
|
158 |
(GeometryType) geometryTypeName.get(className); |
|
156 |
GeometryType geometryType = (GeometryType) it.next(); |
|
159 | 157 |
registerGeometryOperation(geomOpName, geomOp, geometryType); |
160 | 158 |
} |
161 | 159 |
|
... | ... | |
172 | 170 |
|
173 | 171 |
public int registerGeometryOperation(String geomOpName, |
174 | 172 |
GeometryOperation geomOp, int type) { |
175 |
Iterator it = geometryTypeName.keySet().iterator(); |
|
176 | 173 |
int code = -1; |
174 |
Iterator it = geometryTypeName.values().iterator(); |
|
177 | 175 |
while (it.hasNext()) { |
178 |
String className = (String) it.next(); |
|
179 |
GeometryType geometryType = |
|
180 |
(GeometryType) geometryTypeName.get(className); |
|
176 |
GeometryType geometryType = (GeometryType) it.next(); |
|
181 | 177 |
if ((type == geometryType.getType())) { |
182 | 178 |
code = |
183 | 179 |
registerGeometryOperation(geomOpName, geomOp, geometryType); |
... | ... | |
188 | 184 |
|
189 | 185 |
public int registerGeometryOperationBySubtype(String geomOpName, |
190 | 186 |
GeometryOperation geomOp, int subType) { |
191 |
Iterator it = geometryTypeName.keySet().iterator(); |
|
192 | 187 |
int code = -1; |
188 |
Iterator it = geometryTypeName.values().iterator(); |
|
193 | 189 |
while (it.hasNext()) { |
194 |
String className = (String) it.next(); |
|
195 |
GeometryType geometryType = |
|
196 |
(GeometryType) geometryTypeName.get(className); |
|
190 |
GeometryType geometryType = (GeometryType) it.next(); |
|
197 | 191 |
if ((subType == geometryType.getSubType())) { |
198 | 192 |
code = |
199 | 193 |
registerGeometryOperation(geomOpName, geomOp, geometryType); |
... | ... | |
204 | 198 |
|
205 | 199 |
public int registerGeometryOperationBySuperType(String geomOpName, |
206 | 200 |
GeometryOperation geomOp, int superType) { |
207 |
Iterator it = geometryTypeName.keySet().iterator(); |
|
208 | 201 |
int code = -1; |
202 |
Iterator it = geometryTypeName.values().iterator(); |
|
209 | 203 |
while (it.hasNext()) { |
210 |
String className = (String) it.next(); |
|
211 |
GeometryType geometryType = |
|
212 |
(GeometryType) geometryTypeName.get(className); |
|
204 |
GeometryType geometryType = (GeometryType) it.next(); |
|
213 | 205 |
if (geometryType.isTypeOf(superType)) { |
214 | 206 |
code = |
215 | 207 |
registerGeometryOperation(geomOpName, geomOp, geometryType); |
... | ... | |
220 | 212 |
|
221 | 213 |
public int registerGeometryOperationBySuperSubType(String geomOpName, |
222 | 214 |
GeometryOperation geomOp, int superSubType) { |
223 |
Iterator it = geometryTypeName.keySet().iterator(); |
|
224 | 215 |
int code = -1; |
216 |
Iterator it = geometryTypeName.values().iterator(); |
|
225 | 217 |
while (it.hasNext()) { |
226 |
String className = (String) it.next(); |
|
227 |
GeometryType geometryType = |
|
228 |
(GeometryType) geometryTypeName.get(className); |
|
218 |
GeometryType geometryType = (GeometryType) it.next(); |
|
229 | 219 |
if (geometryType.isSubTypeOf(superSubType)) { |
230 | 220 |
code = |
231 | 221 |
registerGeometryOperation(geomOpName, geomOp, geometryType); |
... | ... | |
321 | 311 |
new DefaultGeometryType(geomClass, name, type, subType, |
322 | 312 |
superTypes, superSubTypes); |
323 | 313 |
registerGeometryType(geomType); |
324 |
geometryTypeName.put(geomClass.getName(), geomType); |
|
325 | 314 |
} |
326 | 315 |
|
327 | 316 |
logger.debug("Class {} registered with name {}", geomClass, |
... | ... | |
354 | 343 |
|
355 | 344 |
geometryTypes[geometryType.getType()][geometryType.getSubType()] = |
356 | 345 |
geometryType; |
346 |
geometryTypeName.put(geometryType.getName(), geometryType); |
|
357 | 347 |
} |
358 | 348 |
|
359 | 349 |
public GeometryType registerGeometryType(Class geomClass, int type, |
... | ... | |
361 | 351 |
return registerGeometryType(geomClass, null, type, subType); |
362 | 352 |
} |
363 | 353 |
|
364 |
public GeometryType getGeometryType(String className) |
|
365 |
throws GeometryTypeNotSupportedException { |
|
366 |
if (!geometryTypeName.containsKey(className)) { |
|
367 |
throw new GeometryTypeNotSupportedException(className); |
|
368 |
} |
|
369 |
return (GeometryType) geometryTypeName.get(className); |
|
370 |
} |
|
371 |
|
|
372 | 354 |
public GeometryType getGeometryType(int type, int subType) |
373 | 355 |
throws GeometryTypeNotSupportedException, GeometryTypeNotValidException { |
374 | 356 |
GeometryType gType = null; |
... | ... | |
491 | 473 |
return geomOp.invoke(null, ctx); |
492 | 474 |
} |
493 | 475 |
|
494 |
public GeometryType unregisterGeometryType(Class geomClass) { |
|
495 |
return (GeometryType) geometryTypeName.remove(geomClass.getName()); |
|
496 |
} |
|
497 |
|
|
498 | 476 |
public Envelope createEnvelope(int subType) { |
499 | 477 |
// TODO: register the envelopes!!! |
500 | 478 |
switch (subType) { |
Also available in: Unified diff