OSDN Git Service

Vmd2XMLと共通化
[mikutoga/Pmd2XML.git] / src / main / java / jp / sfjp / mikutoga / pmd / binio / ToonBuilder.java
1 /*
2  * building toon information
3  *
4  * License : The MIT License
5  * Copyright(c) 2010 MikuToga Partners
6  */
7
8 package jp.sfjp.mikutoga.pmd.binio;
9
10 import jp.sfjp.mikutoga.bin.parser.ParseStage;
11 import jp.sfjp.mikutoga.pmd.PmdConst;
12 import jp.sfjp.mikutoga.pmd.model.PmdModel;
13 import jp.sfjp.mikutoga.pmd.model.ToonMap;
14 import jp.sfjp.mikutoga.pmd.parser.PmdToonHandler;
15
16 /**
17  * トゥーン関係の通知をパーサから受け取る。
18  */
19 class ToonBuilder implements PmdToonHandler {
20
21     private final PmdModel model;
22
23     private ToonMap toonMap;
24     private int index;
25
26     /**
27      * コンストラクタ。
28      * @param model モデル
29      */
30     ToonBuilder(PmdModel model){
31         this.model = model;
32         return;
33     }
34
35     /**
36      * {@inheritDoc}
37      * @param stage {@inheritDoc}
38      * @param loops {@inheritDoc}
39      */
40     @Override
41     public void loopStart(ParseStage stage, int loops){
42         assert stage == PmdToonHandler.TOON_LIST;
43         assert loops == PmdConst.TOON_FIXEDNUM;
44
45         this.toonMap = new ToonMap();
46         this.index = 0;
47
48         return;
49     }
50
51     /**
52      * {@inheritDoc}
53      * @param stage {@inheritDoc}
54      */
55     @Override
56     public void loopNext(ParseStage stage){
57         assert stage == PmdToonHandler.TOON_LIST;
58         this.index++;
59         return;
60     }
61
62     /**
63      * {@inheritDoc}
64      * @param stage {@inheritDoc}
65      */
66     @Override
67     public void loopEnd(ParseStage stage){
68         assert stage == PmdToonHandler.TOON_LIST;
69         this.model.setToonMap(this.toonMap);
70         return;
71     }
72
73     /**
74      * {@inheritDoc}
75      * @param toonFileName {@inheritDoc}
76      */
77     @Override
78     public void pmdToonFileInfo(String toonFileName){
79         this.toonMap.setIndexedToon(this.index, toonFileName);
80         return;
81     }
82
83 }