4 * License : The MIT License
5 * Copyright(c) 2010 MikuToga Partners
8 package jp.sourceforge.mikutoga.pmd;
10 import java.util.Collections;
12 import java.util.TreeMap;
15 * インデックス化されたトゥーンファイル構成。
16 * 既存のトゥーンファイル構成と異なるトゥーンファイル名を用いることが可能。
17 * <h1>デフォルトのトゥーンファイル構成。</h1>
26 public class ToonMap {
28 private static final Map<Integer, String> DEF_TOONMAP;
31 Map<Integer, String> map = new TreeMap<Integer, String>();
33 map.put(0x00, "toon01.bmp");
34 map.put(0x01, "toon02.bmp");
35 map.put(0x02, "toon03.bmp");
36 map.put(0x03, "toon04.bmp");
37 map.put(0x04, "toon05.bmp");
38 map.put(0x05, "toon06.bmp");
39 map.put(0x06, "toon07.bmp");
40 map.put(0x07, "toon08.bmp");
41 map.put(0x08, "toon09.bmp");
42 map.put(0x09, "toon10.bmp");
43 map.put(0xff, "toon0.bmp");
45 DEF_TOONMAP = Collections.unmodifiableMap(map);
48 private final Map<Integer, String> toonMap =
49 new TreeMap<Integer, String>(DEF_TOONMAP);
60 * 指定したインデックス値に対応したトゥーンファイル名を返す。
62 * @return トゥーンファイル名。該当するものがなければnull
64 public String getIndexedToon(int idx){
65 String result = this.toonMap.get(idx);
70 * 指定したインデックス値にトゥーンファイル名を設定する。
72 * @param toonFileName トゥーンフィル名
73 * @throws NullPointerException トゥーンファイル名がnull
75 public void setIndexedToon(int idx, String toonFileName)
76 throws NullPointerException{
77 if(toonFileName == null) throw new NullPointerException();
78 this.toonMap.put(idx, toonFileName);
83 * このトゥーンファイル構成がデフォルトのトゥーンファイル構成と等しいか判定する。
86 public boolean isDefaultMap(){
87 if(this.toonMap.equals(DEF_TOONMAP)) return true;
92 * 指定インデックスのトゥーンファイル名がデフォルトと等しいか判定する。
94 * @return デフォルトと等しければtrue。
96 public boolean isDefaultToon(int idx){
97 String thisToon = this.toonMap.get(idx);
98 if(thisToon == null) return false;
100 String defToon = DEF_TOONMAP.get(idx);
101 if(thisToon.equals(defToon)) return true;
107 * このトゥーンファイル構成をデフォルト構成内容でリセットする。
109 public void resetDefaultMap(){
110 this.toonMap.clear();
111 this.toonMap.putAll(DEF_TOONMAP);
116 * 指定インデックスのトゥーンファイル名をデフォルトのトゥーンファイル名にリセットする。
119 public void resetIndexedToon(int idx){
120 String toonFile = DEF_TOONMAP.get(idx);
121 this.toonMap.put(idx, toonFile);
127 * @return {@inheritDoc}
130 public String toString(){
131 StringBuilder result = new StringBuilder();
133 boolean dumped = false;
134 for(Map.Entry<Integer, String> entry : this.toonMap.entrySet()){
135 Integer idx = entry.getKey();
136 String toonFile = entry.getValue();
138 if(dumped) result.append(", ");
139 result.append('(').append(idx).append(')');
140 result.append(toonFile);
144 return result.toString();