OSDN Git Service

PMD出力機能及びXML入出力機能のソースをマージ
[mikutoga/TogaGem.git] / src / main / java / jp / sourceforge / mikutoga / pmd / MorphType.java
1 /*\r
2  * morph type\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.Locale;\r
11 import java.util.ResourceBundle;\r
12 \r
13 /**\r
14  * モーフ種別。\r
15  * <ul>\r
16  * <li>0:base\r
17  * <li>1:まゆ\r
18  * <li>2:目\r
19  * <li>3:リップ\r
20  * <li>4:その他\r
21  * </ul>\r
22  */\r
23 public enum MorphType {\r
24 \r
25     /** base。 */\r
26     BASE(0x00),\r
27     /** まゆ。 */\r
28     EYEBROW(0x01),\r
29     /** 目。 */\r
30     EYE(0x02),\r
31     /** リップ。 */\r
32     LIP(0x03),\r
33     /** その他。 */\r
34     EXTRA(0x04),\r
35     ;\r
36 \r
37     private static final String FAMILY_NAME =\r
38             "jp.sourceforge.mikutoga.pmd.resources.MorphTypeName";\r
39 \r
40     private final byte encoded;\r
41 \r
42     /**\r
43      * コンストラクタ。\r
44      * @param code 符号化int値\r
45      */\r
46     private MorphType(int code){\r
47         this((byte)code);\r
48         return;\r
49     }\r
50 \r
51     /**\r
52      * コンストラクタ。\r
53      * @param code 符号化byte値\r
54      */\r
55     private MorphType(byte code){\r
56         this.encoded = code;\r
57         return;\r
58     }\r
59 \r
60     /**\r
61      * byte値からデコードする。\r
62      * @param code byte値\r
63      * @return デコードされた列挙子。該当するものがなければnull\r
64      */\r
65     public static MorphType decode(byte code){\r
66         MorphType result = null;\r
67 \r
68         for(MorphType type : values()){\r
69             if(type.encode() == code){\r
70                 result = type;\r
71                 break;\r
72             }\r
73         }\r
74 \r
75         return result;\r
76     }\r
77 \r
78     /**\r
79      * byte値にエンコードする。\r
80      * @return byte値\r
81      */\r
82     public byte encode(){\r
83         return this.encoded;\r
84     }\r
85 \r
86     /**\r
87      * デフォルトロケールでの表示名を返す。\r
88      * @return 表示名\r
89      */\r
90     public String getGuiName(){\r
91         Locale locale = Locale.getDefault();\r
92         return getGuiName(locale);\r
93     }\r
94 \r
95     /**\r
96      * ロケールに準じた表示名を返す。\r
97      * @param locale ロケール。nullならデフォルトロケールと解釈される。\r
98      * @return 表示名\r
99      */\r
100     public String getGuiName(Locale locale){\r
101         if(locale == null) return getGuiName();\r
102         ResourceBundle rb = ResourceBundle.getBundle(FAMILY_NAME, locale);\r
103         String key = name();\r
104         String result = rb.getString(key);\r
105         return result;\r
106     }\r
107 \r
108     /**\r
109      * モーフ種別がbaseか否か判定する。\r
110      * @return baseならtrue\r
111      */\r
112     public boolean isBase(){\r
113         if(this == BASE) return true;\r
114         return false;\r
115     }\r
116 \r
117 }\r