code: protected void initialize(MapConfiguration configuration) {
  		this.configuration = configuration;
  		this.crs = configuration.getCrs();
  
  		// Calculate maximum bounds:
  		this.maxBounds = new Bbox(configuration.getMaxBounds().getX(), configuration.getMaxBounds().getY(),
  				configuration.getMaxBounds().getWidth(), configuration.getMaxBounds().getHeight());
  
  		if (configuration.getResolutions() != null && configuration.getResolutions().size() > 0) {
  			for (Double resolution : configuration.getResolutions()) {
  				resolutions.add(resolution);
  			}
  		} else if (configuration.getMinimumResolution() != 0) {
  			// If there are no resolutions, we'll calculate them:
  			double tempResolution = getMaxBoundsResolution();
  			if (tempResolution == 0.0) {
  				throw new IllegalStateException("Could not initialize the map. Could it be it has no size?");
  			}
  			// always add one resolution under the minimum resolution:
  			// this ensures the possibility to display the map at minimum resolution
  			resolutions.add(tempResolution);
  			while (tempResolution > configuration.getMinimumResolution()) {
  				tempResolution /= 2;
  				resolutions.add(tempResolution);
  			}
  		} else {
  			throw new IllegalStateException(
  					"The map configuration must either contain a fixed list resolutions or a minimum resolution");
  		}
  		Collections.sort(resolutions, new Comparator<Double>() {
  
  			@Override
  			public int compare(Double o1, Double o2) {
  				return o2.compareTo(o1);
  			}
  		});
  	}
docs: Copy {@link MapConfiguration} information. Specifically, copy or calculate the list of available resolutions.
  This resolution list will not change after initialization.
  
  @param configuration map configuration object