javaquery/canvas/src/main/java/net/java/html/canvas/Image.java
author Anton Epple <toni.epple@eppleton.de>
Mon, 27 May 2013 14:13:01 +0200
branchcanvas
changeset 1158 633572e14095
parent 1154 2bdd1eba1880
child 1263 088331d4cb76
permissions -rw-r--r--
fixed bugs in Image Handling
     1 /**
     2  * Back 2 Browser Bytecode Translator Copyright (C) 2012 Jaroslav Tulach
     3  * <jaroslav.tulach@apidesign.org>
     4  *
     5  * This program is free software: you can redistribute it and/or modify it under
     6  * the terms of the GNU General Public License as published by the Free Software
     7  * Foundation, version 2 of the License.
     8  *
     9  * This program is distributed in the hope that it will be useful, but WITHOUT
    10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
    11  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
    12  * details.
    13  *
    14  * You should have received a copy of the GNU General Public License along with
    15  * this program. Look for COPYING file in the top folder. If not, see
    16  * http://opensource.org/licenses/GPL-2.0.
    17  */
    18 package net.java.html.canvas;
    19 
    20 import java.util.Objects;
    21 
    22 /**
    23  * Image represents an Image Resource defined by a path.
    24  *
    25  * @author antonepple
    26  */
    27 public class Image {
    28 
    29     private String src;
    30     private Object cached;
    31     private int cacheHash;
    32 
    33     Image(String src) {
    34         this.src = src;
    35     }
    36 
    37     void cache(Object toCache) {
    38         cacheHash = hashCode();
    39         this.cached = toCache;
    40     }
    41 
    42     private boolean isCached() {
    43         return cacheHash == hashCode();
    44     }
    45 
    46     Object getCached() {
    47         return isCached() ? cached : null;
    48     }
    49 
    50     public String getSrc() {
    51         return src;
    52     }
    53 
    54     @Override
    55     public int hashCode() {
    56         int hash = 7;
    57         hash = 59 * hash + Objects.hashCode(this.src) ^ (cached==null? 1231 : 1237);
    58         return hash;
    59     }
    60 
    61     @Override
    62     public boolean equals(Object obj) {
    63         if (obj == null) {
    64             return false;
    65         }
    66         if (getClass() != obj.getClass()) {
    67             return false;
    68         }
    69         final Image other = (Image) obj;
    70         if (!Objects.equals(this.src, other.src)) {
    71             return false;
    72         }
    73         if ((cached==null) != (other.getCached()==null)){
    74             return false;
    75         }
    76         return true;
    77     }
    78  
    79 }