OSDN Git Service

1.6化に伴う@Overrideアノテーション対応
[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     @Override\r
68     public Iterator<BoneInfo> iterator(){\r
69         return this.boneList.iterator();\r
70     }\r
71 \r
72     /**\r
73      * {@inheritDoc}\r
74      * @param num {@inheritDoc}\r
75      */\r
76     @Override\r
77     public void setSerialNumber(int num){\r
78         this.serialNo = num;\r
79         return;\r
80     }\r
81 \r
82     /**\r
83      * {@inheritDoc}\r
84      * @return {@inheritDoc}\r
85      */\r
86     @Override\r
87     public int getSerialNumber(){\r
88         return this.serialNo;\r
89     }\r
90 \r
91     /**\r
92      * ボーングループ番号(ボーン枠番号)を返す。\r
93      * 常に通し番号より1少ない値となる。\r
94      * デフォルトボーングループは-1となる。\r
95      * @return ボーングループ番号\r
96      */\r
97     public int getBoneGroupNumber(){\r
98         return this.serialNo - 1;\r
99     }\r
100 \r
101     /**\r
102      * {@inheritDoc}\r
103      * @return {@inheritDoc}\r
104      */\r
105     @Override\r
106     public String toString(){\r
107         StringBuilder result = new StringBuilder();\r
108 \r
109         result.append("BoneGroup(")\r
110               .append(this.groupName)\r
111               .append(") [");\r
112 \r
113         boolean dumped = false;\r
114         for(BoneInfo bone : this){\r
115             if(dumped) result.append(", ");\r
116             result.append(bone.getBoneName());\r
117             dumped = true;\r
118         }\r
119 \r
120         result.append(']');\r
121 \r
122         return result.toString();\r
123     }\r
124 \r
125 }\r