1 package charactermanaj.graphics.io;
\r
3 import java.io.IOException;
\r
4 import java.io.InputStream;
\r
5 import java.io.Serializable;
\r
7 import java.net.URISyntaxException;
\r
9 import java.util.logging.Level;
\r
10 import java.util.logging.Logger;
\r
12 import charactermanaj.util.ResourceLoader;
\r
16 * クラスローダからリソースを読み込むイメージリソース.<br>
\r
19 public class EmbeddedImageResource extends ResourceLoader implements ImageResource, Serializable {
\r
24 private static final long serialVersionUID = 703707046457343373L;
\r
29 private static final Logger logger = Logger.getLogger(EmbeddedImageResource.class.getName());
\r
34 private String resourceName;
\r
37 public EmbeddedImageResource(String resourceName) {
\r
38 if (resourceName == null) {
\r
39 throw new IllegalArgumentException();
\r
41 this.resourceName = resourceName;
\r
44 public int compareTo(ImageResource o) {
\r
45 return getFullName().compareTo(o.getFullName());
\r
49 public int hashCode() {
\r
50 return getFullName().hashCode();
\r
54 public boolean equals(Object obj) {
\r
58 if (obj instanceof ImageResource) {
\r
59 ImageResource o = (ImageResource) obj;
\r
60 return getFullName().equals(o.getFullName());
\r
65 public String getFullName() {
\r
66 return resourceName;
\r
69 public URI getURI() {
\r
70 URL url = getResource(resourceName);
\r
75 } catch(URISyntaxException ex) {
\r
76 logger.log(Level.WARNING, "resource name is invalid. " + resourceName, ex);
\r
84 * リソースが実在すれば日付は常に1を返す.<br>
\r
85 * リソースが存在しなければ0を返す.<br>
\r
87 public long lastModified() {
\r
88 URL url = getResource(resourceName);
\r
95 public InputStream openStream() throws IOException {
\r
96 URL url = getResource(resourceName);
\r
100 return url.openStream();
\r
104 public String toString() {
\r
105 return getFullName();
\r