OSDN Git Service

パッケージ変更。テスト整備。
[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  * <p>ステージ指定により、多重ネストループをもサポートする。
13  */
14 public interface LoopHandler {
15
16     /**
17      * ループ構造開始の通知を受け取る。
18      * <p>0回ループの場合も含め一度呼ばれる。
19      * @param stage ループ種別
20      * @param loops ループ予定回数。未知の場合は負の値。
21      * @throws MmdFormatException 不正フォーマットによる
22      * パース処理の中断をパーサに指示
23      */
24     void loopStart(ParseStage stage, int loops) throws MmdFormatException;
25
26     /**
27      * ループ構造の1イテレーション終了の通知を受け取る。
28      * <p>1度しか回らないループでも呼ばれる。
29      * 0回ループでは決して呼ばれない。
30      * @param stage ループ種別
31      * @throws MmdFormatException 不正フォーマットによる
32      * パース処理の中断をパーサに指示
33      */
34     void loopNext(ParseStage stage) throws MmdFormatException;
35
36     /**
37      * ループ構造終了の通知を受け取る。
38      * <p>0回ループの場合も含め一度呼ばれる。
39      * @param stage ループ種別
40      * @throws MmdFormatException 不正フォーマットによる
41      * パース処理の中断をパーサに指示
42      */
43     void loopEnd(ParseStage stage) throws MmdFormatException;
44
45 }