List result = uniqueVisit.getResult().toList();
List result = calcResult.toList();
List uniqueValues = visitor.getResult().toList();
public void testSumAreaWithGroupBy() throws Exception { FilterFactory ff = dataStore.getFilterFactory(); PropertyName p = ff.property(aname("geom")); GroupByVisitor v = new GroupByVisitorBuilder() .withAggregateAttribute(ff.function("area2", p)) .withAggregateVisitor("SumArea") .withGroupByAttributes( Collections.singleton(aname("name")), dataStore.getSchema(tname("aggregate"))) .build(); dataStore.getFeatureSource(tname("aggregate")).accepts(Query.ALL, v, null); if (dataStore.getSupportedFunctions().containsKey(FilterFunction_area.NAME.getName())) { assertFalse(visited); } List groups = v.getResult().toList(); assertEquals(20.0, (Double) ((Object[]) groups.get(0))[1], 0.01); assertEquals(10.0, (Double) ((Object[]) groups.get(1))[1], 0.01); }
private List<Object[]> genericGroupByTestTest( Query query, Aggregate aggregateVisitor, Expression aggregateAttribute, boolean expectOptimized, Expression... groupByAttributes) throws IOException { ContentFeatureSource featureSource = dataStore.getFeatureSource(tname("buildings_group_by_tests")); GroupByVisitorBuilder visitorBuilder = new GroupByVisitorBuilder() .withAggregateAttribute(aggregateAttribute) .withAggregateVisitor(aggregateVisitor); for (Expression groupByAttribute : groupByAttributes) { visitorBuilder.withGroupByAttribute(groupByAttribute); } GroupByVisitor visitor = visitorBuilder.build(); featureSource.accepts(query, visitor, null); assertEquals(expectOptimized, visitor.wasOptimized()); assertEquals(!expectOptimized, visitor.wasVisited()); List<Object[]> value = visitor.getResult().toList(); assertNotNull(value); return value; }
List result = uniqueVisit.getResult().toList();
List result = uniqueVisit.getResult().toList();
List result = calcResult.toList();
List result = calcResult.toList();
if (visitor.getResult() == null || visitor.getResult().toList() == null) { listSize = 0; list = new ArrayList<String>(0); } else { listSize = visitor.getResult().toList().size(); if (maxFeatures == null || maxFeatures > listSize) { maxFeatures = listSize; if (visitor.getResult() == null || visitor.getResult().toList() == null) { list = new ArrayList<String>(0); } else { list = visitor.getResult().toList();
@DescribeResult(name = "result", description = "Feature collection with an attribute containing the unique values") public SimpleFeatureCollection execute( @DescribeParameter(name = "features", description = "Input feature collection") SimpleFeatureCollection features, @DescribeParameter(name = "attribute", description = "Attribute whose unique values are extracted") String attribute, ProgressListener progressListener) throws Exception { int attIndex = -1; List<AttributeDescriptor> atts = features.getSchema().getAttributeDescriptors(); for (int i = 0; i < atts.size(); i++) { if (atts.get(i).getLocalName().equals(attribute)) { attIndex = i; break; } } UniqueVisitor visitor = new UniqueVisitor(attIndex, features.getSchema()); features.accepts(visitor, progressListener); List uniqueValues = visitor.getResult().toList(); SimpleFeatureTypeBuilder tb = new SimpleFeatureTypeBuilder(); tb.add("value", features.getSchema().getDescriptor(attIndex).getType().getBinding()); tb.setName("UniqueValue"); SimpleFeatureType ft = tb.buildFeatureType(); SimpleFeatureBuilder fb = new SimpleFeatureBuilder(ft); ListFeatureCollection result = new ListFeatureCollection(ft); for (Object value : uniqueValues) { fb.add(value); result.add(fb.buildFeature(null)); } return result; }