OSDN Git Service

d7a977f9977ee115253addea4088f8e231e65373
[mikutoga/Pmd2XML.git] / src / main / java / jp / sfjp / mikutoga / pmd / model / xml / PmdTag.java
1 /*
2  * tags of pmd xml file
3  *
4  * License : The MIT License
5  * Copyright(c) 2013 MikuToga Partners
6  */
7
8 package jp.sfjp.mikutoga.pmd.model.xml;
9
10 import java.util.HashMap;
11 import java.util.Map;
12
13 /**
14  * XML要素名一覧。
15  * @see "http://mikutoga.sourceforge.jp/xml/xsd/pmdxml-101009.xsd"
16  * @see "http://mikutoga.sourceforge.jp/xml/xsd/pmdxml-130128.xsd"
17  */
18 enum PmdTag {
19
20     PMD_MODEL           ("pmdModel"),
21
22     BR                  ("br"),
23     I18N_NAME           ("i18nName"),
24     DESCRIPTION         ("description"),
25     LICENSE             ("license"),
26     CREDITS             ("credits"),
27     META                ("meta"),
28
29     MATERIAL_LIST       ("materialList"),
30     MATERIAL            ("material"),
31     DIFFUSE             ("diffuse"),
32     SPECULAR            ("specular"),
33     AMBIENT             ("ambient"),
34     TOON                ("toon"),
35     TEXTURE_FILE        ("textureFile"),
36     SPHEREMAP_FILE      ("spheremapFile"),
37
38     TOON_MAP            ("toonMap"),
39     TOON_DEF            ("toonDef"),
40
41     BONE_LIST           ("boneList"),
42     BONE                ("bone"),
43     POSITION            ("position"),
44     IK_BONE             ("ikBone"),
45     SOURCE_BONE         ("sourceBone"),
46     ROTATION_RATIO      ("rotationRatio"),
47     BONE_CHAIN          ("boneChain"),
48
49     BONE_GROUP_LIST     ("boneGroupList"),
50     BONE_GROUP          ("boneGroup"),
51     BONE_GROUP_MEMBER   ("boneGroupMember"),
52
53     IK_CHAIN_LIST       ("ikChainList"),
54     IK_CHAIN            ("ikChain"),
55     CHAIN_ORDER         ("chainOrder"),
56
57     MORPH_LIST          ("morphList"),
58     MORPH               ("morph"),
59     MORPH_VERTEX        ("morphVertex"),
60
61     RIGID_LIST          ("rigidList"),
62     RIGID               ("rigid"),
63     LINKED_BONE         ("linkedBone"),
64     RIGID_SHAPE_SPHERE  ("rigidShapeSphere"),
65     RIGID_SHAPE_BOX     ("rigidShapeBox"),
66     RIGID_SHAPE_CAPSULE ("rigidShapeCapsule"),
67     RAD_ROTATION        ("radRotation"),
68     DYNAMICS            ("dynamics"),
69     THROUGH_RIGID_GROUP ("throughRigidGroup"),
70
71     RIGID_GROUP_LIST    ("rigidGroupList"),
72     RIGID_GROUP         ("rigidGroup"),
73     RIGID_GROUP_MEMBER  ("rigidGroupMember"),
74
75     JOINT_LIST          ("jointList"),
76     JOINT               ("joint"),
77     JOINTED_RIGID_PAIR  ("jointedRigidPair"),
78     LIMIT_POSITION      ("limitPosition"),
79     LIMIT_ROTATION      ("limitRotation"),
80     ELASTIC_POSITION    ("elasticPosition"),
81     ELASTIC_ROTATION    ("elasticRotation"),
82
83     SURFACE_GROUP_LIST  ("surfaceGroupList"),
84     SURFACE_GROUP       ("surfaceGroup"),
85     SURFACE             ("surface"),
86
87     VERTEX_LIST         ("vertexList"),
88     VERTEX              ("vertex"),
89     NORMAL              ("normal"),
90     UV_MAP              ("uvMap"),
91     SKINNING            ("skinning"),
92
93     ;
94
95     private static final Map<String, PmdTag> NAME_MAP =
96             new HashMap<String, PmdTag>();
97
98     static{
99         for(PmdTag tag : values()){
100             NAME_MAP.put(tag.tag(), tag);
101         }
102     }
103
104
105     private final String tagName;
106
107
108     /**
109      * コンストラクタ。
110      * @param tagName 要素名
111      */
112     private PmdTag(String tagName){
113         this.tagName = tagName.intern();
114         return;
115     }
116
117
118     /**
119      * XML要素名から列挙子を得る。
120      * @param name 要素名
121      * @return 列挙子。合致する物がなければnull。
122      */
123     static PmdTag parse(String name){
124         PmdTag result;
125         result = NAME_MAP.get(name);
126         return result;
127     }
128
129
130     /**
131      * XML要素名を返す。
132      * @return 要素名
133      */
134     String tag(){
135         return this.tagName;
136     }
137
138 }