GeometryMapper.js 1.0 KB

12345678910111213141516171819202122232425262728
  1. import Geometry from '../Geometry'
  2. import hasInterface from '../../../../../hasInterface'
  3. import Collection from '../../../../../java/util/Collection'
  4. import ArrayList from '../../../../../java/util/ArrayList'
  5. export default class GeometryMapper {
  6. static map() {
  7. if (arguments[0] instanceof Geometry && hasInterface(arguments[1], MapOp)) {
  8. const geom = arguments[0], op = arguments[1]
  9. const mapped = new ArrayList()
  10. for (let i = 0; i < geom.getNumGeometries(); i++) {
  11. const g = op.map(geom.getGeometryN(i))
  12. if (g !== null) mapped.add(g)
  13. }
  14. return geom.getFactory().buildGeometry(mapped)
  15. } else if (hasInterface(arguments[0], Collection) && hasInterface(arguments[1], MapOp)) {
  16. const geoms = arguments[0], op = arguments[1]
  17. const mapped = new ArrayList()
  18. for (let i = geoms.iterator(); i.hasNext(); ) {
  19. const g = i.next()
  20. const gr = op.map(g)
  21. if (gr !== null) mapped.add(gr)
  22. }
  23. return mapped
  24. }
  25. }
  26. }
  27. function MapOp() {}
  28. GeometryMapper.MapOp = MapOp