2 * Back 2 Browser Bytecode Translator Copyright (C) 2012 Jaroslav Tulach
3 * <jaroslav.tulach@apidesign.org>
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.
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
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.
18 package net.java.html.canvas;
20 import java.util.Objects;
23 * Image represents an Image Resource defined by a path.
30 private Object cached;
31 private int cacheHash;
37 void cache(Object toCache) {
38 cacheHash = hashCode();
39 this.cached = toCache;
42 private boolean isCached() {
43 return cacheHash == hashCode();
47 return isCached() ? cached : null;
50 public String getSrc() {
55 public int hashCode() {
57 hash = 59 * hash + Objects.hashCode(this.src) ^ (cached==null? 1231 : 1237);
62 public boolean equals(Object obj) {
66 if (getClass() != obj.getClass()) {
69 final Image other = (Image) obj;
70 if (!Objects.equals(this.src, other.src)) {
73 if ((cached==null) != (other.getCached()==null)){