}
// extract incoming reader
if(!(layer instanceof GridReaderLayer)){
throw new IllegalStateException("Layer "+layer.getTitle()+" does nto resolve to a coverage");
}
final GridReaderLayer gridReaderLayer = (GridReaderLayer)layer;
final GridCoverage2DReader reader=gridReaderLayer.getReader();
// === assuming now it is an EO BAND layer we must have either 1 or 3 values for the additional domain
// enforce one dimension
Set<ParameterDescriptor<List>> dimensions;
try {
dimensions = reader.getDynamicParameters();
if (dimensions.size() != 1) {
throw new IllegalStateException("Coverage " + cinfo.getName()
+ " has a number of dimensions different than 1");
}
// extract curent values and enforce 1 or 3 values
final GeneralParameterValue[] params = gridReaderLayer.getParams();
enforceParamCardinality(params,dimensions);
// enforce stacking order
enforceStackingOrder(params);
} catch (IOException e) {