protected ImageData getImageData(Object image) { ImageData imageData = new ImageData(); if (image instanceof ImageResource) { ImageResource imageResource = (ImageResource) image; imageData.height = imageResource.getHeight(); imageData.width = imageResource.getWidth(); } else if (image instanceof ComposedImage) { ComposedImage composedImage = (ComposedImage) image; List<ComposedImage.Size> sizes = new ArrayList<ComposedImage.Size>(); List<Object> images = new ArrayList<Object>(composedImage.getImages()); List<ImageData> nestedImagesData = new ArrayList<ImageData>(); for (Object nestedImage : images) { ImageData nestedImageData = getImageData(nestedImage); ComposedImage.Size size = new ComposedImage.Size(); size.height = nestedImageData.height; size.width = nestedImageData.width; sizes.add(size); nestedImagesData.add(nestedImageData); } } return imageData; }