OSDN Git Service

1744c7d9a37b1f17aa519702b2118442ca2b5c50
[mikutoga/TogaGem.git] / src / main / java / jp / sourceforge / mikutoga / pmd / model / MorphPart.java
1 /*
2  * morph information
3  *
4  * License : The MIT License
5  * Copyright(c) 2010 MikuToga Partners
6  */
7
8 package jp.sourceforge.mikutoga.pmd.model;
9
10 import java.util.ArrayList;
11 import java.util.Iterator;
12 import java.util.List;
13 import jp.sourceforge.mikutoga.corelib.I18nText;
14 import jp.sourceforge.mikutoga.corelib.SerialNumbered;
15 import jp.sourceforge.mikutoga.pmd.MorphType;
16
17 /**
18  * 個別モーフ情報。
19  */
20 public class MorphPart implements SerialNumbered, Iterable<MorphVertex> {
21
22     private final I18nText morphName = new I18nText();
23
24     private MorphType type;
25
26     private final List<MorphVertex> morphVertexList =
27             new ArrayList<MorphVertex>();
28
29     private int serialNo = -1;
30
31     /**
32      * コンストラクタ。
33      */
34     public MorphPart(){
35         super();
36         return;
37     }
38
39     /**
40      * モーフ名を返す。
41      * @return モーフ名
42      */
43     public I18nText getMorphName(){
44         return this.morphName;
45     }
46
47     /**
48      * モーフ種別を設定する。
49      * @param typeArg モーフ種別
50      * @throws NullPointerException 引数がnull
51      */
52     public void setMorphType(MorphType typeArg) throws NullPointerException{
53         if(typeArg == null) throw new NullPointerException();
54         this.type = typeArg;
55         return;
56     }
57
58     /**
59      * モーフ種別を返す。
60      * @return モーフ種別。
61      */
62     public MorphType getMorphType(){
63         return this.type;
64     }
65
66     /**
67      * モーフ頂点情報リストを返す。
68      * @return モーフ頂点情報リスト
69      */
70     public List<MorphVertex> getMorphVertexList(){
71         return this.morphVertexList;
72     }
73
74     /**
75      * {@inheritDoc}
76      * @return {@inheritDoc}
77      */
78     @Override
79     public Iterator<MorphVertex> iterator(){
80         return this.morphVertexList.iterator();
81     }
82
83     /**
84      * {@inheritDoc}
85      * @param num {@inheritDoc}
86      */
87     @Override
88     public void setSerialNumber(int num){
89         this.serialNo = num;
90         return;
91     }
92
93     /**
94      * {@inheritDoc}
95      * @return {@inheritDoc}
96      */
97     @Override
98     public int getSerialNumber(){
99         return this.serialNo;
100     }
101
102     @Override
103     public String toString(){
104         StringBuilder result = new StringBuilder();
105
106         result.append("Morph(").append(this.morphName).append(") ");
107         result.append("type=").append(this.type);
108         result.append(" vertexNum=").append(this.morphVertexList.size());
109
110         return result.toString();
111     }
112
113 }