OSDN Git Service

f0504771114ae3fe9141e4275ec7df06dc2225c1
[mikutoga/TogaGem.git] / src / main / java / jp / sfjp / mikutoga / bin / parser / LoopHandler.java
1 /*
2  * loop handler
3  *
4  * License : The MIT License
5  * Copyright(c) 2010 MikuToga Partners
6  */
7
8 package jp.sfjp.mikutoga.bin.parser;
9
10 /**
11  * バイナリファイル中ループ構造の通知用ハンドラ。
12  *
13  * <p>ステージ指定により、多重ネストループをもサポートする。
14  */
15 public interface LoopHandler {
16
17     /**
18      * ループ構造開始の通知を受け取る。
19      *
20      * <p>0回ループの場合も含め一度呼ばれる。
21      *
22      * @param stage ループ種別
23      * @param loops ループ予定回数。未知の場合は負の値。
24      * @throws MmdFormatException 不正フォーマットによる
25      * パース処理の中断をパーサに指示
26      */
27     void loopStart(ParseStage stage, int loops) throws MmdFormatException;
28
29     /**
30      * ループ構造の1イテレーション終了の通知を受け取る。
31      *
32      * <p>1度しか回らないループでも呼ばれる。
33      * 0回ループでは決して呼ばれない。
34      *
35      * @param stage ループ種別
36      * @throws MmdFormatException 不正フォーマットによる
37      * パース処理の中断をパーサに指示
38      */
39     void loopNext(ParseStage stage) throws MmdFormatException;
40
41     /**
42      * ループ構造終了の通知を受け取る。
43      *
44      * <p>0回ループの場合も含め一度呼ばれる。
45      *
46      * @param stage ループ種別
47      * @throws MmdFormatException 不正フォーマットによる
48      * パース処理の中断をパーサに指示
49      */
50     void loopEnd(ParseStage stage) throws MmdFormatException;
51
52 }