class Main
{
public static void main
( String [ ] args
) {
}
}
enum AllowableImageSize
{
THUMBNAIL_MID(ImageSize.THUMBNAIL_MID), THUMBNAIL(ImageSize.THUMBNAIL);
public final ImageSize imageSize;
AllowableImageSize(ImageSize imageSize)
{
this.imageSize=imageSize;
}
}
enum ImageSize
{
THUMBNAIL(50, 50, "t"), PASSPORT(200, 200, "p"), SMALL(240, 135, "s"), MEDIUM(
480, 270, "m"), LARGE(960, 540, "l"), A4(800, 600, "a4"),THUMBNAIL_MID(120,155,"t");
/**
* The width of the image in pixels
*/
private final int width;
/**
* The height of the image in pixels
*/
private final int height;
/**
* The image size type
*/
ImageSize
(int width,
int height,
String type
) {
this.width = width;
this.height = height;
this.type = type;
}
public int getWidth()
{
return width;
}
public int getHeight()
{
return height;
}
{
return type;
}
public static ImageSize getImageSizeByType
(String type
) {
if (type != null)
{
if (type.equalsIgnoreCase(THUMBNAIL.getType()))
{
return THUMBNAIL;
}
if (type.equalsIgnoreCase(PASSPORT.getType()))
{
return PASSPORT;
}
if (type.equalsIgnoreCase(SMALL.getType()))
{
return SMALL;
}
if (type.equalsIgnoreCase(MEDIUM.getType()))
{
return MEDIUM;
}
if (type.equalsIgnoreCase(LARGE.getType()))
{
return LARGE;
}
if (type.equalsIgnoreCase(THUMBNAIL_MID.getType()))
{
return THUMBNAIL_MID;
}
}
return null;
}
}
CmNsYXNzIE1haW4KewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKCBTdHJpbmcgWyBdIGFyZ3MgKQoJewoJfQp9CgoKZW51bSBBbGxvd2FibGVJbWFnZVNpemUKewoJVEhVTUJOQUlMX01JRChJbWFnZVNpemUuVEhVTUJOQUlMX01JRCksIFRIVU1CTkFJTChJbWFnZVNpemUuVEhVTUJOQUlMKTsKCglwdWJsaWMgZmluYWwgSW1hZ2VTaXplIGltYWdlU2l6ZTsKCiAgICAgICAJQWxsb3dhYmxlSW1hZ2VTaXplKEltYWdlU2l6ZSBpbWFnZVNpemUpCgl7CgkJdGhpcy5pbWFnZVNpemU9aW1hZ2VTaXplOwoJfQp9CgogICAgZW51bSBJbWFnZVNpemUKICAgIHsKICAgICAgICBUSFVNQk5BSUwoNTAsIDUwLCAidCIpLCBQQVNTUE9SVCgyMDAsIDIwMCwgInAiKSwgU01BTEwoMjQwLCAxMzUsICJzIiksIE1FRElVTSgKICAgICAgICAgICAgICAgIDQ4MCwgMjcwLCAibSIpLCBMQVJHRSg5NjAsIDU0MCwgImwiKSwgQTQoODAwLCA2MDAsICJhNCIpLFRIVU1CTkFJTF9NSUQoMTIwLDE1NSwidCIpOwogICAgICAgIC8qKgogICAgICAgICAqIFRoZSB3aWR0aCBvZiB0aGUgaW1hZ2UgaW4gcGl4ZWxzCiAgICAgICAgICovCiAgICAgICAgcHJpdmF0ZSBmaW5hbCBpbnQgd2lkdGg7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhlIGhlaWdodCBvZiB0aGUgaW1hZ2UgaW4gcGl4ZWxzCiAgICAgICAgICovCiAgICAgICAgcHJpdmF0ZSBmaW5hbCBpbnQgaGVpZ2h0OwogICAgICAgIC8qKgogICAgICAgICAqIFRoZSBpbWFnZSBzaXplIHR5cGUKICAgICAgICAgKi8KICAgICAgICBwcml2YXRlIGZpbmFsIFN0cmluZyB0eXBlOwoKICAgICAgICBJbWFnZVNpemUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBTdHJpbmcgdHlwZSkKICAgICAgICB7CiAgICAgICAgICAgIHRoaXMud2lkdGggPSB3aWR0aDsKICAgICAgICAgICAgdGhpcy5oZWlnaHQgPSBoZWlnaHQ7CiAgICAgICAgICAgIHRoaXMudHlwZSA9IHR5cGU7CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgaW50IGdldFdpZHRoKCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiB3aWR0aDsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyBpbnQgZ2V0SGVpZ2h0KCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFR5cGUoKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIHR5cGU7CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgc3RhdGljIEltYWdlU2l6ZSBnZXRJbWFnZVNpemVCeVR5cGUoU3RyaW5nIHR5cGUpCiAgICAgICAgewogICAgICAgICAgICBpZiAodHlwZSAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAodHlwZS5lcXVhbHNJZ25vcmVDYXNlKFRIVU1CTkFJTC5nZXRUeXBlKCkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBUSFVNQk5BSUw7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAodHlwZS5lcXVhbHNJZ25vcmVDYXNlKFBBU1NQT1JULmdldFR5cGUoKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBBU1NQT1JUOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKHR5cGUuZXF1YWxzSWdub3JlQ2FzZShTTUFMTC5nZXRUeXBlKCkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBTTUFMTDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICh0eXBlLmVxdWFsc0lnbm9yZUNhc2UoTUVESVVNLmdldFR5cGUoKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1FRElVTTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICh0eXBlLmVxdWFsc0lnbm9yZUNhc2UoTEFSR0UuZ2V0VHlwZSgpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gTEFSR0U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAodHlwZS5lcXVhbHNJZ25vcmVDYXNlKFRIVU1CTkFJTF9NSUQuZ2V0VHlwZSgpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gVEhVTUJOQUlMX01JRDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICB9Cgo=