OSDN Git Service

PMD出力機能及びXML入出力機能のソースをマージ
[mikutoga/TogaGem.git] / src / main / java / jp / sourceforge / mikutoga / pmd / BoneGroup.java
1 /*\r
2  * bone group\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.ArrayList;\r
11 import java.util.Iterator;\r
12 import java.util.List;\r
13 import jp.sourceforge.mikutoga.corelib.I18nText;\r
14 import jp.sourceforge.mikutoga.corelib.SerialNumbered;\r
15 \r
16 /**\r
17  * ボーングループ。\r
18  * ボーングループ名と0個以上のボーンを配下に持つ。\r
19  * 通し番号0のボーングループは、暗黙に用意される「デフォルトボーングループ」とする。\r
20  */\r
21 public class BoneGroup implements SerialNumbered , Iterable<BoneInfo> {\r
22 \r
23     private final I18nText groupName = new I18nText();\r
24 \r
25     private final List<BoneInfo> boneList = new ArrayList<BoneInfo>();\r
26 \r
27     private int serialNo = -1;\r
28 \r
29     /**\r
30      * コンストラクタ。\r
31      */\r
32     public BoneGroup(){\r
33         super();\r
34         return;\r
35     }\r
36 \r
37     /**\r
38      * ボーングループ名を返す。\r
39      * @return ボーングループ名\r
40      */\r
41     public I18nText getGroupName(){\r
42         return this.groupName;\r
43     }\r
44 \r
45     /**\r
46      * ボーンリストを取得する。\r
47      * @return ボーンリスト\r
48      */\r
49     public List<BoneInfo> getBoneList(){\r
50         return this.boneList;\r
51     }\r
52 \r
53     /**\r
54      * デフォルトボーングループか否か判定する。\r
55      * 通し番号が0ならデフォルトボーングループ。\r
56      * @return デフォルトボーングループならtrue\r
57      */\r
58     public boolean isDefaultBoneGroup(){\r
59         if(this.serialNo == 0) return true;\r
60         return false;\r
61     }\r
62 \r
63     /**\r
64      * {@inheritDoc}\r
65      * @return {@inheritDoc}\r
66      */\r
67     public Iterator<BoneInfo> iterator(){\r
68         return this.boneList.iterator();\r
69     }\r
70 \r
71     /**\r
72      * {@inheritDoc}\r
73      * @param num {@inheritDoc}\r
74      */\r
75     public void setSerialNumber(int num){\r
76         this.serialNo = num;\r
77         return;\r
78     }\r
79 \r
80     /**\r
81      * {@inheritDoc}\r
82      * @return {@inheritDoc}\r
83      */\r
84     public int getSerialNumber(){\r
85         return this.serialNo;\r
86     }\r
87 \r
88     /**\r
89      * ボーングループ番号(ボーン枠番号)を返す。\r
90      * 常に通し番号より1少ない値となる。\r
91      * デフォルトボーングループは-1となる。\r
92      * @return ボーングループ番号\r
93      */\r
94     public int getBoneGroupNumber(){\r
95         return this.serialNo - 1;\r
96     }\r
97 \r
98     /**\r
99      * {@inheritDoc}\r
100      * @return {@inheritDoc}\r
101      */\r
102     @Override\r
103     public String toString(){\r
104         StringBuilder result = new StringBuilder();\r
105 \r
106         result.append("BoneGroup(")\r
107               .append(this.groupName)\r
108               .append(") [");\r
109 \r
110         boolean dumped = false;\r
111         for(BoneInfo bone : this){\r
112             if(dumped) result.append(", ");\r
113             result.append(bone.getBoneName());\r
114             dumped = true;\r
115         }\r
116 \r
117         result.append(']');\r
118 \r
119         return result.toString();\r
120     }\r
121 \r
122 }\r