ConvexHullJobRunner extends GeoWaveAnalyticJobRunner { @Override public int run(final Configuration config, final PropertyManagement runTimeProperties) throws Exception { runTimeProperties.storeIfEmpty( HullParameters.Hull.PROJECTION_CLASS, SimpleFeatureProjection.class); runTimeProperties.setConfig( new ParameterEnum<?>[] { HullParameters.Hull.WRAPPER_FACTORY_CLASS, HullParameters.Hull.PROJECTION_CLASS, HullParameters.Hull.DATA_TYPE_ID, HullParameters.Hull.INDEX_NAME}, config, getScope()); setReducerCount(runTimeProperties.getPropertyAsInt(HullParameters.Hull.REDUCER_COUNT, 4)); CentroidManagerGeoWave.setParameters(config, getScope(), runTimeProperties); NestedGroupCentroidAssignment.setParameters(config, getScope(), runTimeProperties); final int localZoomLevel = runTimeProperties.getPropertyAsInt(CentroidParameters.Centroid.ZOOM_LEVEL, zoomLevel); NestedGroupCentroidAssignment.setZoomLevel(config, getScope(), localZoomLevel + 1); addDataAdapter( config, getAdapter( runTimeProperties, HullParameters.Hull.DATA_TYPE_ID, HullParameters.Hull.DATA_NAMESPACE_URI)); checkIndex( runTimeProperties, HullParameters.Hull.INDEX_NAME, new SpatialDimensionalityTypeProvider().createIndex(new SpatialOptions()).getName()); return super.run(config, runTimeProperties); } ConvexHullJobRunner(); void setZoomLevel(final int zoomLevel); @Override void configure(final Job job); @Override Class<?> getScope(); @Override int run(final Configuration config, final PropertyManagement runTimeProperties); @Override Collection<ParameterEnum<?>> getParameters();  }
@Test public void test() throws Exception { hullRunner.run(runTimeProperties); }