content: package data.media;
  
  import static data.ReprUtil.repr;
  
  public class Image implements java.io.Serializable {
  
      private static final long serialVersionUID = 1L;
  
      public enum Size {
          SMALL, LARGE
      }
  
      public String uri;
  
      public String title; // Can be null
      public int    width;
      public int    height;
      public Size   size;
  
      public Image(){
      }
  
      public Image(String uri, String title, int width, int height, Size size){
          this.height = height;
          this.title = title;
          this.uri = uri;
          this.width = width;
          this.size = size;
      }
  
      @Override
      public boolean equals(Object o) {
          if (this == o) return true;
          if (o == null || getClass() != o.getClass()) return false;
  
          Image image = (Image) o;
  
          if (height != image.height) return false;
          if (width != image.width) return false;
          if (size != image.size) return false;
          if (title != null ? !title.equals(image.title) : image.title != null) return false;
          if (uri != null ? !uri.equals(image.uri) : image.uri != null) return false;
  
          return true;
      }
  
      @Override
      public int hashCode() {
          int result = uri != null ? uri.hashCode() : 0;
          result = 31 * result + (title != null ? title.hashCode() : 0);
          result = 31 * result + width;
          result = 31 * result + height;
          result = 31 * result + (size != null ? size.hashCode() : 0);
          return result;
      }
  
      public String toString() {
          StringBuilder sb = new StringBuilder();
          sb.append("[Image ");
          sb.append("uri=").append(repr(uri));
          sb.append(", title=").append(repr(title));
          sb.append(", width=").append(width);
          sb.append(", height=").append(height);
          sb.append(", size=").append(size);
          sb.append("]");
          return sb.toString();
      }
  
      public void setUri(String uri) {
          this.uri = uri;
      }
  
      public void setTitle(String title) {
          this.title = title;
      }
  
      public void setWidth(int width) {
          this.width = width;
      }
  
      public void setHeight(int height) {
          this.height = height;
      }
  
      public void setSize(Size size) {
          this.size = size;
      }
  
      public String getUri() {
          return uri;
      }
  
      public String getTitle() {
          return title;
      }
  
      public int getWidth() {
          return width;
      }
  
      public int getHeight() {
          return height;
      }
  
      public Size getSize() {
          return size;
      }
  }
  