/**
  * Returns the URL of the image in the specified size, or <code>null</code> if not available.
  *
  * @param size The preferred size
  * @return an image URL
  * @author Harry Chen
  */
 public String getImageURL() {
   ImageSize[] sizes = ImageSize.values();
   for (ImageSize testSize : sizes) {
     String url = imageUrls.get(testSize);
     if (url != null) return url;
   }
   return null;
 }
  /**
   * Extract image URL
   *
   * @param imageList the image list from XML
   * @return the found image URL or null if not found
   */
  private String extractImageURL(List<Image> imageList) {
    String imageURL = null;
    for (Image image : imageList) { // for each image
      if ((image != null)
          && (lastFMCoverServicePropertiesBean.getImageSize().equalsIgnoreCase(image.getSize()))) {
        imageURL = image.getValue();
      }
    }

    if (imageURL == null) { // image not found, try to find the biggest one
      for (ImageSize imageSize : ImageSize.values()) {
        for (Image image : imageList) {
          if ((image != null) && (imageSize.toString().equalsIgnoreCase(image.getSize()))) {
            imageURL = image.getValue();
            LOGGER.warn("Unable to find configured image size - used : " + imageSize);
            break;
          }
        }

        if (imageURL != null) break;
      }
    }
    return imageURL;
  }