OSDN Git Service

use diamond operator.
[mikutoga/Vmd2XML.git] / src / main / java / jp / sfjp / mikutoga / vmd / model / xml / VmdTag.java
1 /*
2  * tags of vmd xml file
3  *
4  * License : The MIT License
5  * Copyright(c) 2013 MikuToga Partners
6  */
7
8 package jp.sfjp.mikutoga.vmd.model.xml;
9
10 import java.util.HashMap;
11 import java.util.Map;
12
13 /**
14  * XML要素名一覧。
15  */
16 enum VmdTag {
17
18     VMD_MOTION     ("vmdMotion"),
19     META           ("meta"),
20     MODEL_NAME     ("modelName"),
21
22     BONE_M_SEQUENCE("boneMotionSequence"),
23     BONE_PART      ("bonePart"),
24     BONE_MOTION    ("boneMotion"),
25     BONE_POSITION  ("bonePosition"),
26     BONE_ROT_QUAT  ("boneRotQuat"),
27     BONE_ROT_EYXZ  ("boneRotEyxz"),
28
29     MORPH_SEQUENCE ("morphSequence"),
30     MORPH_PART     ("morphPart"),
31     MORPH_MOTION   ("morphMotion"),
32
33     FLAG_SEQUENCE  ("flagSequence"),
34     FLAG_MOTION    ("flagMotion"),
35     IK_SWITCH      ("ikSwitch"),
36
37     CAMERA_SEQUENCE("cameraSequence"),
38     CAMERA_MOTION  ("cameraMotion"),
39     CAMERA_TARGET  ("cameraTarget"),
40     CAMERA_ROTATION("cameraRotation"),
41     CAMERA_RANGE   ("cameraRange"),
42     PROJECTION     ("projection"),
43
44     LUMI_SEQUENCE  ("luminousSequence"),
45     LUMINOUS_ACT   ("luminousAct"),
46     LUMI_COLOR     ("lumiColor"),
47     LUMI_DIRECTION ("lumiDirection"),
48
49     SHADOW_SEQUENCE("shadowSequence"),
50     SHADOW_ACT     ("shadowAct"),
51
52     BEZIER         ("bezier"),
53     DEF_LINEAR     ("defLinear"),
54     DEF_EASE_IN_OUT("defEaseInOut"),
55
56     ;
57
58
59     private static final Map<String, VmdTag> NAME_MAP =
60             new HashMap<>();
61
62     static{
63         for(VmdTag tag : values()){
64             NAME_MAP.put(tag.tag(), tag);
65         }
66     }
67
68
69     private final String tagName;
70
71
72     /**
73      * コンストラクタ。
74      * @param tagName 要素名
75      */
76     VmdTag(String tagName){
77         this.tagName = tagName.intern();
78         return;
79     }
80
81
82     /**
83      * XML要素名から列挙子を得る。
84      * @param name 要素名
85      * @return 列挙子。合致する物がなければnull。
86      */
87     static VmdTag parse(String name){
88         VmdTag result;
89         result = NAME_MAP.get(name);
90         return result;
91     }
92
93
94     /**
95      * XML要素名を返す。
96      * @return 要素名
97      */
98     String tag(){
99         return this.tagName;
100     }
101
102 }