// assemble granules
prepareParams();
String timeFilterAttribute = null;
String elevationFilterAttribute = null;
CoverageReadRequest readRequest = (CoverageReadRequest) getRequest();
RangeType rangeType = request.source.getRangeType(null);
List<DimensionDescriptor> dimensionDescriptors = request.source.getDimensionDescriptors();
for (DimensionDescriptor dimensionDescriptor : dimensionDescriptors) {
if (dimensionDescriptor.getName().equalsIgnoreCase(NetCDFUtilities.ELEVATION_DIM)) {
// TODO Update this with ranged attributes
elevationFilterAttribute = dimensionDescriptor.getStartAttribute();
} else if (dimensionDescriptor.getName().equalsIgnoreCase(NetCDFUtilities.TIME_DIM)) {
// TODO Update this with ranged attributes
timeFilterAttribute = dimensionDescriptor.getStartAttribute();
}
}
Set<DateRange> temporalSubset = readRequest.getTemporalSubset();
Set<NumberRange<Double>> verticalSubset = readRequest.getVerticalSubset();
RangeType requestedRange = readRequest.getRangeSubset();
Set<FieldType> fieldTypes = requestedRange.getFieldTypes();
//
// adding GridCoverages to the results list
//
// //
Set<SampleDimension> sampleDims = null;
for (FieldType fieldType : fieldTypes) {
final Name name = fieldType.getName();
sampleDims = fieldType.getSampleDimensions();
if (rangeType != null) {
final FieldType ft = rangeType.getFieldType(name.getLocalPart());
if (ft != null)
sampleDims = ft.getSampleDimensions();
}
}
final GridSampleDimension[] sampleDimensions = sampleDims
.toArray(new GridSampleDimension[sampleDims.size()]);
// Forcing creation of subsets (even with a single null element)
Set<DateRange> tempSubset = null;
if (!temporalSubset.isEmpty()) {
tempSubset = temporalSubset;
} else {
tempSubset = new HashSet<DateRange>();
tempSubset.add(null);
}
Set<NumberRange<Double>> vertSubset = null;
if (!verticalSubset.isEmpty()) {
vertSubset = verticalSubset;
} else {
vertSubset = new HashSet<NumberRange<Double>>();
vertSubset.add(null);
}
Map<String, Set<?>> domainsSubset = readRequest.getAdditionalDomainsSubset();
Filter requestFilter = request.originalRequest.getFilter();
// handling date and time
for (DateRange timeRange : tempSubset) {
for (NumberRange<Double> elevation : vertSubset) {