X-Git-Url: http://git.osdn.net/view?p=mikutoga%2FTogaGem.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fjp%2Fsfjp%2Fmikutoga%2Fbin%2Fparser%2FLoopHandler.java;h=cd395bde0245a958983d2ab7c76277a3d3ec2a30;hp=9843357451ff1c9feca7b5b5a2d4ade4947261fd;hb=18b482e91cf2533e6c9a57d158233f0f1d77084d;hpb=2afbea9380c472bb23e76a29bd366cad1cb0465c diff --git a/src/main/java/jp/sfjp/mikutoga/bin/parser/LoopHandler.java b/src/main/java/jp/sfjp/mikutoga/bin/parser/LoopHandler.java index 9843357..cd395bd 100644 --- a/src/main/java/jp/sfjp/mikutoga/bin/parser/LoopHandler.java +++ b/src/main/java/jp/sfjp/mikutoga/bin/parser/LoopHandler.java @@ -9,37 +9,47 @@ package jp.sfjp.mikutoga.bin.parser; /** * バイナリファイル中ループ構造の通知用ハンドラ。 + * *

ステージ指定により、多重ネストループをもサポートする。 */ public interface LoopHandler { /** * ループ構造開始の通知を受け取る。 + * *

0回ループの場合も含め一度呼ばれる。 + * * @param stage ループ種別 * @param loops ループ予定回数。未知の場合は負の値。 * @throws MmdFormatException 不正フォーマットによる * パース処理の中断をパーサに指示 */ - void loopStart(ParseStage stage, int loops) throws MmdFormatException; + public abstract void loopStart(ParseStage stage, int loops) + throws MmdFormatException; /** * ループ構造の1イテレーション終了の通知を受け取る。 + * *

1度しか回らないループでも呼ばれる。 * 0回ループでは決して呼ばれない。 + * * @param stage ループ種別 * @throws MmdFormatException 不正フォーマットによる * パース処理の中断をパーサに指示 */ - void loopNext(ParseStage stage) throws MmdFormatException; + public abstract void loopNext(ParseStage stage) + throws MmdFormatException; /** * ループ構造終了の通知を受け取る。 + * *

0回ループの場合も含め一度呼ばれる。 + * * @param stage ループ種別 * @throws MmdFormatException 不正フォーマットによる * パース処理の中断をパーサに指示 */ - void loopEnd(ParseStage stage) throws MmdFormatException; + public abstract void loopEnd(ParseStage stage) + throws MmdFormatException; }