OSDN Git Service

PMD出力機能及びXML入出力機能のソースをマージ
[mikutoga/TogaGem.git] / src / main / java / jp / sourceforge / mikutoga / pmd / ToonMap.java
1 /*\r
2  * toon file mapping\r
3  *\r
4  * License : The MIT License\r
5  * Copyright(c) 2010 MikuToga Partners\r
6  */\r
7 \r
8 package jp.sourceforge.mikutoga.pmd;\r
9 \r
10 import java.util.Collections;\r
11 import java.util.Map;\r
12 import java.util.TreeMap;\r
13 \r
14 /**\r
15  * インデックス化されたトゥーンファイル構成。\r
16  * 既存のトゥーンファイル構成と異なるトゥーンファイル名を用いることが可能。\r
17  * <h1>デフォルトのトゥーンファイル構成。</h1>\r
18  * <ul>\r
19  * <li>0x00:toon01.bmp\r
20  * <li>0x01:toon02.bmp\r
21  * <li>.....\r
22  * <li>0x09:toon10.bmp\r
23  * <li>0xff:toon0.bmp\r
24  * </ul>\r
25  */\r
26 public class ToonMap {\r
27 \r
28     private static final Map<Integer, String> DEF_TOONMAP;\r
29 \r
30     static{\r
31         Map<Integer, String> map = new TreeMap<Integer, String>();\r
32 \r
33         map.put(0x00, "toon01.bmp");\r
34         map.put(0x01, "toon02.bmp");\r
35         map.put(0x02, "toon03.bmp");\r
36         map.put(0x03, "toon04.bmp");\r
37         map.put(0x04, "toon05.bmp");\r
38         map.put(0x05, "toon06.bmp");\r
39         map.put(0x06, "toon07.bmp");\r
40         map.put(0x07, "toon08.bmp");\r
41         map.put(0x08, "toon09.bmp");\r
42         map.put(0x09, "toon10.bmp");\r
43         map.put(0xff, "toon0.bmp");\r
44 \r
45         DEF_TOONMAP = Collections.unmodifiableMap(map);\r
46     }\r
47 \r
48     private final Map<Integer, String> toonMap =\r
49             new TreeMap<Integer, String>(DEF_TOONMAP);\r
50 \r
51     /**\r
52      * コンストラクタ。\r
53      */\r
54     public ToonMap(){\r
55         super();\r
56         return;\r
57     }\r
58 \r
59     /**\r
60      * 指定したインデックス値に対応したトゥーンファイル名を返す。\r
61      * @param idx インデックス値\r
62      * @return トゥーンファイル名。該当するものがなければnull\r
63      */\r
64     public String getIndexedToon(int idx){\r
65         String result = this.toonMap.get(idx);\r
66         return result;\r
67     }\r
68 \r
69     /**\r
70      * 指定したインデックス値にトゥーンファイル名を設定する。\r
71      * @param idx インデックス値\r
72      * @param toonFileName トゥーンフィル名\r
73      * @throws NullPointerException トゥーンファイル名がnull\r
74      */\r
75     public void setIndexedToon(int idx, String toonFileName)\r
76             throws NullPointerException{\r
77         if(toonFileName == null) throw new NullPointerException();\r
78         this.toonMap.put(idx, toonFileName);\r
79         return;\r
80     }\r
81 \r
82     /**\r
83      * このトゥーンファイル構成がデフォルトのトゥーンファイル構成と等しいか判定する。\r
84      * @return 等しければtrue\r
85      */\r
86     public boolean isDefaultMap(){\r
87         if(this.toonMap.equals(DEF_TOONMAP)) return true;\r
88         return false;\r
89     }\r
90 \r
91     /**\r
92      * 指定インデックスのトゥーンファイル名がデフォルトと等しいか判定する。\r
93      * @param idx インデックス\r
94      * @return デフォルトと等しければtrue。\r
95      */\r
96     public boolean isDefaultToon(int idx){\r
97         String thisToon = this.toonMap.get(idx);\r
98         if(thisToon == null) return false;\r
99 \r
100         String defToon = DEF_TOONMAP.get(idx);\r
101         if(thisToon.equals(defToon)) return true;\r
102 \r
103         return false;\r
104     }\r
105 \r
106     /**\r
107      * このトゥーンファイル構成をデフォルト構成内容でリセットする。\r
108      */\r
109     public void resetDefaultMap(){\r
110         this.toonMap.clear();\r
111         this.toonMap.putAll(DEF_TOONMAP);\r
112         return;\r
113     }\r
114 \r
115     /**\r
116      * 指定インデックスのトゥーンファイル名をデフォルトのトゥーンファイル名にリセットする。\r
117      * @param idx インデックス値\r
118      */\r
119     public void resetIndexedToon(int idx){\r
120         String toonFile = DEF_TOONMAP.get(idx);\r
121         this.toonMap.put(idx, toonFile);\r
122         return;\r
123     }\r
124 \r
125     /**\r
126      * {@inheritDoc}\r
127      * @return {@inheritDoc}\r
128      */\r
129     @Override\r
130     public String toString(){\r
131         StringBuilder result = new StringBuilder();\r
132 \r
133         boolean dumped = false;\r
134         for(Map.Entry<Integer, String> entry : this.toonMap.entrySet()){\r
135             Integer idx = entry.getKey();\r
136             String toonFile = entry.getValue();\r
137 \r
138             if(dumped) result.append(", ");\r
139             result.append('(').append(idx).append(')');\r
140             result.append(toonFile);\r
141             dumped = true;\r
142         }\r
143 \r
144         return result.toString();\r
145     }\r
146 \r
147 }\r