4 * License : The MIT License
\r
5 * Copyright(c) 2010 MikuToga Partners
\r
8 package jp.sourceforge.mikutoga.pmd;
\r
10 import java.util.Collections;
\r
11 import java.util.Map;
\r
12 import java.util.TreeMap;
\r
15 * インデックス化されたトゥーンファイル構成。
\r
16 * 既存のトゥーンファイル構成と異なるトゥーンファイル名を用いることが可能。
\r
17 * <h1>デフォルトのトゥーンファイル構成。</h1>
\r
19 * <li>0x00:toon01.bmp
\r
20 * <li>0x01:toon02.bmp
\r
22 * <li>0x09:toon10.bmp
\r
23 * <li>0xff:toon0.bmp
\r
26 public class ToonMap {
\r
28 private static final Map<Integer, String> DEF_TOONMAP;
\r
31 Map<Integer, String> map = new TreeMap<Integer, String>();
\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
45 DEF_TOONMAP = Collections.unmodifiableMap(map);
\r
48 private final Map<Integer, String> toonMap =
\r
49 new TreeMap<Integer, String>(DEF_TOONMAP);
\r
60 * 指定したインデックス値に対応したトゥーンファイル名を返す。
\r
61 * @param idx インデックス値
\r
62 * @return トゥーンファイル名。該当するものがなければnull
\r
64 public String getIndexedToon(int idx){
\r
65 String result = this.toonMap.get(idx);
\r
70 * 指定したインデックス値にトゥーンファイル名を設定する。
\r
71 * @param idx インデックス値
\r
72 * @param toonFileName トゥーンフィル名
\r
73 * @throws NullPointerException トゥーンファイル名がnull
\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
83 * このトゥーンファイル構成がデフォルトのトゥーンファイル構成と等しいか判定する。
\r
86 public boolean isDefaultMap(){
\r
87 if(this.toonMap.equals(DEF_TOONMAP)) return true;
\r
92 * 指定インデックスのトゥーンファイル名がデフォルトと等しいか判定する。
\r
94 * @return デフォルトと等しければtrue。
\r
96 public boolean isDefaultToon(int idx){
\r
97 String thisToon = this.toonMap.get(idx);
\r
98 if(thisToon == null) return false;
\r
100 String defToon = DEF_TOONMAP.get(idx);
\r
101 if(thisToon.equals(defToon)) return true;
\r
107 * このトゥーンファイル構成をデフォルト構成内容でリセットする。
\r
109 public void resetDefaultMap(){
\r
110 this.toonMap.clear();
\r
111 this.toonMap.putAll(DEF_TOONMAP);
\r
116 * 指定インデックスのトゥーンファイル名をデフォルトのトゥーンファイル名にリセットする。
\r
117 * @param idx インデックス値
\r
119 public void resetIndexedToon(int idx){
\r
120 String toonFile = DEF_TOONMAP.get(idx);
\r
121 this.toonMap.put(idx, toonFile);
\r
127 * @return {@inheritDoc}
\r
130 public String toString(){
\r
131 StringBuilder result = new StringBuilder();
\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
138 if(dumped) result.append(", ");
\r
139 result.append('(').append(idx).append(')');
\r
140 result.append(toonFile);
\r
144 return result.toString();
\r