OSDN Git Service

mavenによるビルドに変更
[charactermanaj/CharacterManaJ.git] / src / main / java / charactermanaj / util / ResourceNames.java
1 package charactermanaj.util;\r
2 \r
3 import java.util.AbstractList;\r
4 import java.util.Arrays;\r
5 \r
6 /**\r
7  * 関連もしくは類似するリソースをまとめて取り扱うためにグループ化するためのクラス.<br>\r
8  * \r
9  * @author seraphy\r
10  */\r
11 public class ResourceNames extends AbstractList<String> {\r
12         \r
13         private final String[] resourceNames;\r
14         \r
15         public ResourceNames(String[] resourceNames) {\r
16                 if (resourceNames == null) {\r
17                         throw new IllegalArgumentException();\r
18                 }\r
19                 this.resourceNames = resourceNames;\r
20         }\r
21         \r
22         /**\r
23          * 順次を逆転させた新しいインスタンスを返す\r
24          * \r
25          * @return 順序を逆転させたインスタンス\r
26          */\r
27         public ResourceNames reverse() {\r
28                 int len = resourceNames.length;\r
29                 String[] tmp = new String[len];\r
30                 for (int idx = 0; idx < len; idx++) {\r
31                         tmp[len - idx - 1] = resourceNames[idx];\r
32                 }\r
33                 return new ResourceNames(tmp);\r
34         }\r
35 \r
36         @Override\r
37         public int hashCode() {\r
38                 return Arrays.hashCode(resourceNames);\r
39         }\r
40         \r
41         @Override\r
42         public boolean equals(Object obj) {\r
43                 if (obj == this) {\r
44                         return true;\r
45                 }\r
46                 if (obj != null && obj instanceof ResourceNames) {\r
47                         ResourceNames o = (ResourceNames) obj;\r
48                         return Arrays.equals(resourceNames, o.resourceNames);\r
49                 }\r
50                 return false;\r
51         }\r
52         \r
53         @Override\r
54         public int size() {\r
55                 return resourceNames.length;\r
56         }\r
57         \r
58         @Override\r
59         public String get(int index) {\r
60                 return resourceNames[index];\r
61         }\r
62 }\r