OSDN Git Service

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