OSDN Git Service

モデルデータ不備の異常系を別パッケージに
[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.pmd.MorphType;
15
16 /**
17  * 個別モーフ情報。
18  */
19 public class MorphPart implements SerialNumbered, Iterable<MorphVertex> {
20
21     private final I18nText morphName = new I18nText();
22
23     private MorphType type;
24
25     private final List<MorphVertex> morphVertexList =
26             new ArrayList<MorphVertex>();
27
28     private int serialNo = -1;
29
30     /**
31      * コンストラクタ。
32      */
33     public MorphPart(){
34         super();
35         return;
36     }
37
38     /**
39      * モーフ名を返す。
40      * @return モーフ名
41      */
42     public I18nText getMorphName(){
43         return this.morphName;
44     }
45
46     /**
47      * モーフ種別を設定する。
48      * @param typeArg モーフ種別
49      * @throws NullPointerException 引数がnull
50      */
51     public void setMorphType(MorphType typeArg) throws NullPointerException{
52         if(typeArg == null) throw new NullPointerException();
53         this.type = typeArg;
54         return;
55     }
56
57     /**
58      * モーフ種別を返す。
59      * @return モーフ種別。
60      */
61     public MorphType getMorphType(){
62         return this.type;
63     }
64
65     /**
66      * モーフ頂点情報リストを返す。
67      * @return モーフ頂点情報リスト
68      */
69     public List<MorphVertex> getMorphVertexList(){
70         return this.morphVertexList;
71     }
72
73     /**
74      * {@inheritDoc}
75      * @return {@inheritDoc}
76      */
77     @Override
78     public Iterator<MorphVertex> iterator(){
79         return this.morphVertexList.iterator();
80     }
81
82     /**
83      * {@inheritDoc}
84      * @param num {@inheritDoc}
85      */
86     @Override
87     public void setSerialNumber(int num){
88         this.serialNo = num;
89         return;
90     }
91
92     /**
93      * {@inheritDoc}
94      * @return {@inheritDoc}
95      */
96     @Override
97     public int getSerialNumber(){
98         return this.serialNo;
99     }
100
101     @Override
102     public String toString(){
103         StringBuilder result = new StringBuilder();
104
105         result.append("Morph(").append(this.morphName).append(") ");
106         result.append("type=").append(this.type);
107         result.append(" vertexNum=").append(this.morphVertexList.size());
108
109         return result.toString();
110     }
111
112 }