4 * License : The MIT License
5 * Copyright(c) 2010 MikuToga Partners
8 package jp.sourceforge.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個以上のボーンを配下に持つ。
18 * 通し番号0のボーングループは、暗黙に用意される「デフォルトボーングループ」とする。
20 public class BoneGroup implements SerialNumbered , Iterable<BoneInfo> {
22 private final I18nText groupName = new I18nText();
24 private final List<BoneInfo> boneList = new ArrayList<BoneInfo>();
26 private int serialNo = -1;
40 public I18nText getGroupName(){
41 return this.groupName;
48 public List<BoneInfo> getBoneList(){
53 * デフォルトボーングループか否か判定する。
54 * 通し番号が0ならデフォルトボーングループ。
55 * @return デフォルトボーングループならtrue
57 public boolean isDefaultBoneGroup(){
58 if(this.serialNo == 0) return true;
64 * @return {@inheritDoc}
67 public Iterator<BoneInfo> iterator(){
68 return this.boneList.iterator();
73 * @param num {@inheritDoc}
76 public void setSerialNumber(int num){
83 * @return {@inheritDoc}
86 public int getSerialNumber(){
91 * ボーングループ番号(ボーン枠番号)を返す。
96 public int getBoneGroupNumber(){
97 return this.serialNo - 1;
102 * @return {@inheritDoc}
105 public String toString(){
106 StringBuilder result = new StringBuilder();
108 result.append("BoneGroup(")
109 .append(this.groupName)
112 boolean dumped = false;
113 for(BoneInfo bone : this){
114 if(dumped) result.append(", ");
115 result.append(bone.getBoneName());
121 return result.toString();