this method computes and returns the group by visitor result . if the computation was optimized the optimization result is returned otherwise the result is computed in memory . if for some reason an optimization result exists and there are visited features , an in memory computation is performed and is merged with the existing optimization results . concode_field_sep ProgressListener progressListener concode_elem_sep List<Object> groupByValues concode_elem_sep Expression expression concode_elem_sep CalcResult optimizationResult concode_elem_sep List<Expression> groupByAttributes concode_elem_sep Aggregate aggregateVisitor concode_elem_sep FeatureCalc visitorProtoType concode_elem_sep InMemoryGroupBy inMemoryGroupBy concode_elem_sep Map<List<Object>,CalcResult> results concode_elem_sep Object visitorValue concode_elem_sep Map<List<Object>,DefaultFeatureCollection> groupByIndexes concode_elem_sep Aggregate aggregate concode_field_sep boolean wasVisited concode_elem_sep Envelope toEnvelope concode_elem_sep Object[] entryToArray concode_elem_sep List toList concode_elem_sep Point toPoint concode_elem_sep List<Expression> getGroupByAttributes concode_elem_sep List<Expression> getGroupByAttributes concode_elem_sep double toDouble concode_elem_sep CalcResult merge concode_elem_sep Geometry toGeometry concode_elem_sep Object[] toArray concode_elem_sep int toInt concode_elem_sep long toLong concode_elem_sep float toFloat concode_elem_sep List<Expression> getExpressions concode_elem_sep FeatureVisitor getAggregateVisitor concode_elem_sep Aggregate getAggregateVisitor concode_elem_sep void index concode_elem_sep boolean isCompatible concode_elem_sep Object getValue concode_elem_sep Set toSet concode_elem_sep boolean wasOptimized concode_elem_sep Expression getExpression concode_elem_sep void setValue concode_elem_sep Map toMap concode_elem_sep Map<List<Object>,CalcResult> getResults concode_elem_sep String toString concode_elem_sep void visit concode_elem_sep Map<List<Object>,CalcResult> visit
CalcResult function ( ) { Map < List < Object > , CalcResult > loc0 = inMemoryGroupBy . visit ( ) ; GroupByResult loc1 = new GroupByResult ( loc0 , aggregate , groupByAttributes ) ; if ( optimizationResult == CalcResult . NULL_RESULT ) { return loc1 ; } return optimizationResult . merge ( loc1 ) ; }