public boolean isFitForAggregation(Point point) { boolean result = false; for (String propertyName : GlobalProperties.getPropertiesOfInterestDatabase().keySet()) { Object numberObject = point.getProperty(propertyName); if (numberObject instanceof Number) { result = result || !Utils.isNumberObjectNullOrZero((Number) numberObject); } else { /* * not a number, we cannot aggregate this currently */ result = result || false; } } /* * also check for bbox */ if (bbox != null) { Coordinate pointCoordinate = new Coordinate(point.getX(), point.getY()); if (!bbox.contains(Utils.geometryFactory.createPoint(pointCoordinate))) { return false; } } return result; }
public void runAlgorithm(final String trackID) throws IOException { LOGGER.debug("Aggregating Track: " + trackID); if (pointService.trackAlreadyAggregated(trackID)) { LOGGER.info("Track already aggregated. skipping. " + trackID); return; } HttpGet get = new HttpGet(GlobalProperties.getRequestTrackURL() + trackID); HttpClient client; try { client = createClient(); } catch (KeyManagementException | UnrecoverableKeyException | NoSuchAlgorithmException | KeyStoreException e) { throw new IllegalStateException(e); } HttpResponse resp = client.execute(get); if (resp != null && resp.getEntity() != null && resp.getStatusLine() != null && resp.getStatusLine().getStatusCode() < HttpStatus.SC_MULTIPLE_CHOICES) { PointViaJsonMapIterator it = new PointViaJsonMapIterator(Utils.parseJsonStream(resp.getEntity().getContent())); runAlgorithm(it, trackID); } }
protected HttpClient createClient() throws IOException, KeyManagementException, UnrecoverableKeyException, NoSuchAlgorithmException, KeyStoreException { return Utils.createClient(); }