4 * License : The MIT License
5 * Copyright(c) 2010 MikuToga Partners
8 package jp.sfjp.mikutoga.pmd.model;
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);
84 * デフォルトのトゥーンファイル構成と等しいか判定する。
87 public boolean isDefaultMap(){
88 if(this.toonMap.equals(DEF_TOONMAP)) return true;
93 * 指定インデックスのトゥーンファイル名がデフォルトと等しいか判定する。
95 * @return デフォルトと等しければtrue。
97 public boolean isDefaultToon(int idx){
98 String thisToon = this.toonMap.get(idx);
99 if(thisToon == null) return false;
101 String defToon = DEF_TOONMAP.get(idx);
102 if(thisToon.equals(defToon)) return true;
108 * このトゥーンファイル構成をデフォルト構成内容でリセットする。
110 public void resetDefaultMap(){
111 this.toonMap.clear();
112 this.toonMap.putAll(DEF_TOONMAP);
117 * 指定インデックスのトゥーンファイル名を
118 * デフォルトのトゥーンファイル名にリセットする。
121 public void resetIndexedToon(int idx){
122 String toonFile = DEF_TOONMAP.get(idx);
123 this.toonMap.put(idx, toonFile);
129 * @return {@inheritDoc}
132 public String toString(){
133 StringBuilder result = new StringBuilder();
135 boolean dumped = false;
136 for(Map.Entry<Integer, String> entry : this.toonMap.entrySet()){
137 Integer idx = entry.getKey();
138 String toonFile = entry.getValue();
140 if(dumped) result.append(", ");
141 result.append('(').append(idx).append(')');
142 result.append(toonFile);
146 return result.toString();