OSDN Git Service

dmg作成バージョンの取得方法の修正
[charactermanaj/CharacterManaJ.git] / src / main / java / charactermanaj / model / PartsFiles.java
1 package charactermanaj.model;\r
2 \r
3 import java.io.Serializable;\r
4 import java.util.AbstractMap;\r
5 import java.util.Collections;\r
6 import java.util.HashMap;\r
7 import java.util.Map;\r
8 import java.util.Set;\r
9 \r
10 import charactermanaj.graphics.io.ImageResource;\r
11 \r
12 public class PartsFiles extends AbstractMap<Layer, ImageResource> implements Serializable {\r
13 \r
14         private static final long serialVersionUID = 5799830380308843243L;\r
15 \r
16         private HashMap<Layer, ImageResource> partsMap = new HashMap<Layer, ImageResource>(); \r
17         \r
18         private final PartsIdentifier partsIdentifier;\r
19 \r
20         public PartsFiles(PartsIdentifier partsName) {\r
21                 if (partsName == null) {\r
22                         throw new IllegalArgumentException();\r
23                 }\r
24                 this.partsIdentifier = partsName;\r
25         }\r
26         \r
27         public PartsIdentifier getPartsIdentifier() {\r
28                 return partsIdentifier;\r
29         }\r
30         \r
31         @Override\r
32         public Set<Map.Entry<Layer, ImageResource>> entrySet() {\r
33                 return Collections.unmodifiableSet(partsMap.entrySet());\r
34         }\r
35         \r
36         @Override\r
37         public ImageResource put(final Layer key, final ImageResource value) {\r
38                 if (key == null || value == null) {\r
39                         throw new IllegalArgumentException();\r
40                 }\r
41                 if (!partsIdentifier.hasLayer(key)) {\r
42                         throw new IllegalArgumentException(key.toString());\r
43                 }\r
44                 return partsMap.put(key, value);\r
45         }\r
46         \r
47         @Override\r
48         public ImageResource get(Object key) {\r
49                 return partsMap.get(key);\r
50         }\r
51         \r
52         @Override\r
53         public boolean containsKey(Object key) {\r
54                 return partsMap.containsKey(key);\r
55         }\r
56         \r
57         public long lastModified() {\r
58                 long maxLastModified = 0;\r
59                 for (ImageResource imageResource : values()) {\r
60                         long lastModified = imageResource.lastModified();\r
61                         if (lastModified > maxLastModified) {\r
62                                 maxLastModified = lastModified;\r
63                         }\r
64                 }\r
65                 return maxLastModified;\r
66         }\r
67 }\r