@Override public Grid getAggregatedEventData( EventQueryParams params ) { securityManager.decideAccessEventQuery( params ); queryValidator.validate( params ); if ( dhisConfig.isAnalyticsCacheEnabled() ) { final EventQueryParams query = new EventQueryParams.Builder( params ).build(); return queryCache.get( query.getKey(), key -> getAggregatedEventDataGrid( query ) ).get(); } return getAggregatedEventDataGrid( params ); }
@Override public Rectangle getRectangle( EventQueryParams params ) { if ( !databaseInfo.isSpatialSupport() ) { throw new IllegalQueryException( "Spatial database support is not enabled" ); } params = new EventQueryParams.Builder( params ) .withGeometryOnly( true ) .withStartEndDatesForPeriods() .build(); securityManager.decideAccessEventQuery( params ); queryValidator.validate( params ); params = queryPlanner.planEventQuery( params ); return eventAnalyticsManager.getRectangle( params ); }
@Override public Grid getEventClusters( EventQueryParams params ) { if ( !databaseInfo.isSpatialSupport() ) { throw new IllegalQueryException( "Spatial database support is not enabled" ); } params = new EventQueryParams.Builder( params ) .withGeometryOnly( true ) .withStartEndDatesForPeriods() .build(); securityManager.decideAccessEventQuery( params ); queryValidator.validate( params ); Grid grid = new ListGrid(); // --------------------------------------------------------------------- // Headers // --------------------------------------------------------------------- grid.addHeader( new GridHeader( ITEM_COUNT, NAME_COUNT, ValueType.NUMBER, Long.class.getName(), false, false ) ) .addHeader( new GridHeader( ITEM_CENTER, NAME_CENTER, ValueType.TEXT, String.class.getName(), false, false ) ) .addHeader( new GridHeader( ITEM_EXTENT, NAME_EXTENT, ValueType.TEXT, String.class.getName(), false, false ) ) .addHeader( new GridHeader( ITEM_POINTS, NAME_POINTS, ValueType.TEXT, String.class.getName(), false, false ) ); // --------------------------------------------------------------------- // Data // --------------------------------------------------------------------- params = queryPlanner.planEventQuery( params ); eventAnalyticsManager.getEventClusters( params, grid, queryValidator.getMaxLimit() ); return grid; }
@Override public Grid getEvents( EventQueryParams params ) securityManager.decideAccessEventQuery( params );