4 * License : The MIT License
5 * Copyright(c) 2010 MikuToga Partners
8 package jp.sfjp.mikutoga.pmd.model;
10 import java.util.ArrayList;
11 import java.util.Iterator;
12 import java.util.List;
13 import jp.sfjp.mikutoga.corelib.I18nText;
17 * ボーングループ名と0個以上のボーンを配下に持つ。
19 * 暗黙に用意される「デフォルトボーングループ」とする。
21 public class BoneGroup implements SerialNumbered , Iterable<BoneInfo> {
23 private final I18nText groupName = new I18nText();
25 private final List<BoneInfo> boneList = new ArrayList<BoneInfo>();
27 private int serialNo = -1;
43 public I18nText getGroupName(){
44 return this.groupName;
51 public List<BoneInfo> getBoneList(){
56 * デフォルトボーングループか否か判定する。
57 * 通し番号が0ならデフォルトボーングループ。
58 * @return デフォルトボーングループならtrue
60 public boolean isDefaultBoneGroup(){
61 if(this.serialNo == 0) return true;
67 * @return {@inheritDoc}
70 public Iterator<BoneInfo> iterator(){
71 return this.boneList.iterator();
76 * @param num {@inheritDoc}
79 public void setSerialNumber(int num){
86 * @return {@inheritDoc}
89 public int getSerialNumber(){
94 * ボーングループ番号(ボーン枠番号)を返す。
99 public int getBoneGroupNumber(){
100 return this.serialNo - 1;
105 * @return {@inheritDoc}
108 public String toString(){
109 StringBuilder result = new StringBuilder();
111 result.append("BoneGroup(")
112 .append(this.groupName)
115 boolean dumped = false;
116 for(BoneInfo bone : this){
117 if(dumped) result.append(", ");
118 result.append(bone.getBoneName());
124 return result.toString();