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.sourceforge.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;
41 public I18nText getGroupName(){
42 return this.groupName;
49 public List<BoneInfo> getBoneList(){
54 * デフォルトボーングループか否か判定する。
55 * 通し番号が0ならデフォルトボーングループ。
56 * @return デフォルトボーングループならtrue
58 public boolean isDefaultBoneGroup(){
59 if(this.serialNo == 0) return true;
65 * @return {@inheritDoc}
68 public Iterator<BoneInfo> iterator(){
69 return this.boneList.iterator();
74 * @param num {@inheritDoc}
77 public void setSerialNumber(int num){
84 * @return {@inheritDoc}
87 public int getSerialNumber(){
92 * ボーングループ番号(ボーン枠番号)を返す。
97 public int getBoneGroupNumber(){
98 return this.serialNo - 1;
103 * @return {@inheritDoc}
106 public String toString(){
107 StringBuilder result = new StringBuilder();
109 result.append("BoneGroup(")
110 .append(this.groupName)
113 boolean dumped = false;
114 for(BoneInfo bone : this){
115 if(dumped) result.append(", ");
116 result.append(bone.getBoneName());
122 return result.toString();