@Override public List<Location> findAllLocationsFromCompany(Long companyId) throws Exception { try { Company company = companyDAO.findByPrimaryKey(companyId); if (company == null) { throw new Exception("Company doesn't exists"); } return (List<Location>) company.getLocations().values(); } catch (Exception exc) { throw exc; } }
@Override public Location addLocation(Long companyId, String name, Double coordX, Double coordY) throws Exception { try { Company company = companyDAO.findByPrimaryKey(companyId); if (company == null) { throw new Exception("Company doesn't exists"); } Location location = new Location(); location.setName(name); // GeometryFactory geometryFactory = new GeometryFactory(new // PrecisionModel(PrecisionModel.FIXED), 4326); // System.out.print("GeometryFactory"); // Geometry geom = (Geometry) geometryFactory.createPoint(new Coordinate(coordX, coordY)); // System.out.print("createPoint"); // location.setGeom(geom); // System.out.print("setGeom"); // location.setCompany(company); // System.out.print("setCompany"); // First interpret the WKT string to a point WKTReader fromText = new WKTReader(); Geometry geom = null; try { geom = fromText.read("POINT(10 5)"); } catch (ParseException e) { throw new RuntimeException( "Not a WKT string:" + "SRID=4326;POINT(-56.2564083434446 -34.8982159791812)"); } if (!geom.getGeometryType().equals("Point")) { throw new RuntimeException("Geometry must be a point. Got a " + geom.getGeometryType()); } System.out.print("createPoint"); location.setGeom((Point) geom); System.out.print("setGeom"); location.setCompany(company); System.out.print("setCompany"); company.getLocations().put(location.getName(), location); System.out.print("put"); company = companyDAO.update(company); System.out.print("update"); return company.getLocations().get(location.getName()); } catch (Exception exc) { throw exc; } }