OSDN Git Service

1.105.3-SNAPSHOT版開発開始
[mikutoga/TogaGem.git] / src / main / java / jp / sourceforge / mikutoga / pmd / RigidShapeType.java
1 /*\r
2  * rigid shape 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>0x00:球\r
17  * <li>0x01:箱\r
18  * <li>0x02:カプセル\r
19  * </ul>\r
20  */\r
21 public enum RigidShapeType {\r
22 \r
23     /** 球。 */\r
24     SPHERE(0x00),\r
25     /** 箱。 */\r
26     BOX(0x01),\r
27     /** カプセル。 */\r
28     CAPSULE(0x02),\r
29     ;\r
30 \r
31     private static final String FAMILY_NAME =\r
32             "jp.sourceforge.mikutoga.pmd.resources.RigidShapeTypeName";\r
33 \r
34     private final byte encoded;\r
35 \r
36     /**\r
37      * コンストラクタ。\r
38      * @param code 符号化int値\r
39      */\r
40     private RigidShapeType(int code){\r
41         this((byte)code);\r
42         return;\r
43     }\r
44 \r
45     /**\r
46      * コンストラクタ。\r
47      * @param code 符号化byte値\r
48      */\r
49     private RigidShapeType(byte code){\r
50         this.encoded = code;\r
51         return;\r
52     }\r
53 \r
54     /**\r
55      * byte値からデコードする。\r
56      * @param code byte値\r
57      * @return デコードされた列挙子。該当するものがなければnull\r
58      */\r
59     public static RigidShapeType decode(byte code){\r
60         RigidShapeType result = null;\r
61 \r
62         for(RigidShapeType type : values()){\r
63             if(type.encode() == code){\r
64                 result = type;\r
65                 break;\r
66             }\r
67         }\r
68 \r
69         return result;\r
70     }\r
71 \r
72     /**\r
73      * byte値にエンコードする。\r
74      * @return byte値\r
75      */\r
76     public byte encode(){\r
77         return this.encoded;\r
78     }\r
79 \r
80     /**\r
81      * デフォルトロケールでの表示名を返す。\r
82      * @return 表示名\r
83      */\r
84     public String getGuiName(){\r
85         Locale locale = Locale.getDefault();\r
86         return getGuiName(locale);\r
87     }\r
88 \r
89     /**\r
90      * ロケールに準じた表示名を返す。\r
91      * @param locale ロケール。nullならデフォルトロケールと解釈される。\r
92      * @return 表示名\r
93      */\r
94     public String getGuiName(Locale locale){\r
95         if(locale == null) return getGuiName();\r
96         ResourceBundle rb = ResourceBundle.getBundle(FAMILY_NAME, locale);\r
97         String key = name();\r
98         String result = rb.getString(key);\r
99         return result;\r
100     }\r
101 \r
102 }\r