OSDN Git Service

コールバック呼び出し順変更
[mikutoga/TogaGem.git] / src / main / java / jp / sourceforge / mikutoga / pmd / parser / PmdParserExt1.java
index ce329ec..8d03132 100644 (file)
@@ -8,23 +8,23 @@
 package jp.sourceforge.mikutoga.pmd.parser;
 
 import java.io.IOException;
-import jp.sourceforge.mikutoga.parser.MmdFormatException;
-import jp.sourceforge.mikutoga.parser.MmdInputStream;
+import java.io.InputStream;
+import jp.sfjp.mikutoga.bin.parser.MmdFormatException;
 
 /**
  * PMDモデルファイルのパーサ拡張その1。
- * 英名対応
+ * <p>※ 英名対応
  */
 public class PmdParserExt1 extends PmdParserBase {
 
-    private PmdEngHandler engHandler = null;
+    private PmdEngHandler engHandler = NullHandler.HANDLER;
     private boolean hasEnglishInfo = true;
 
     /**
      * コンストラクタ。
      * @param source 入力ソース
      */
-    public PmdParserExt1(MmdInputStream source){
+    public PmdParserExt1(InputStream source){
         super(source);
         return;
     }
@@ -34,7 +34,11 @@ public class PmdParserExt1 extends PmdParserBase {
      * @param handler ハンドラ
      */
     public void setEngHandler(PmdEngHandler handler){
-        this.engHandler = handler;
+        if(handler == null){
+            this.engHandler = NullHandler.HANDLER;
+        }else{
+            this.engHandler = handler;
+        }
         return;
     }
 
@@ -69,20 +73,16 @@ public class PmdParserExt1 extends PmdParserBase {
             throws IOException, MmdFormatException{
         this.hasEnglishInfo = parseBoolean();
 
-        if(this.engHandler != null){
-            this.engHandler.pmdEngEnabled(this.hasEnglishInfo);
-        }
+        this.engHandler.pmdEngEnabled(this.hasEnglishInfo);
         if( ! this.hasEnglishInfo ) return;
 
         String modelName =
-                parseZeroTermWin31J(PmdLimits.MAXBYTES_MODELNAME);
+                parsePmdText(PmdLimits.MAXBYTES_MODELNAME);
         String description =
-                parseZeroTermWin31J(PmdLimits.MAXBYTES_MODELDESC);
+                parsePmdText(PmdLimits.MAXBYTES_MODELDESC);
         description = description.replace(CRLF, LF);
 
-        if(this.engHandler != null){
-            this.engHandler.pmdEngModelInfo(modelName, description);
-        }
+        this.engHandler.pmdEngModelInfo(modelName, description);
 
         return;
     }
@@ -96,16 +96,11 @@ public class PmdParserExt1 extends PmdParserBase {
             throws IOException, MmdFormatException{
         int boneNum = getBoneCount();
 
-        if(this.engHandler == null){
-            skip(PmdLimits.MAXBYTES_BONENAME * boneNum);
-            return;
-        }
-
         this.engHandler.loopStart(PmdEngHandler.ENGBONE_LIST, boneNum);
 
         for(int ct = 0; ct < boneNum; ct++){
             String boneName =
-                    parseZeroTermWin31J(PmdLimits.MAXBYTES_BONENAME);
+                    parsePmdText(PmdLimits.MAXBYTES_BONENAME);
             this.engHandler.pmdEngBoneInfo(boneName);
 
             this.engHandler.loopNext(PmdEngHandler.ENGBONE_LIST);
@@ -125,16 +120,11 @@ public class PmdParserExt1 extends PmdParserBase {
             throws IOException, MmdFormatException{
         int morphNum = getMorphCount() - 1;  // base は英名なし
 
-        if(this.engHandler == null){
-            skip(PmdLimits.MAXBYTES_MORPHNAME * morphNum);
-            return;
-        }
-
         this.engHandler.loopStart(PmdEngHandler.ENGMORPH_LIST, morphNum);
 
         for(int ct = 0; ct < morphNum; ct++){
             String morphName =
-                    parseZeroTermWin31J(PmdLimits.MAXBYTES_MORPHNAME);
+                    parsePmdText(PmdLimits.MAXBYTES_MORPHNAME);
             this.engHandler.pmdEngMorphInfo(morphName);
 
             this.engHandler.loopNext(PmdEngHandler.ENGMORPH_LIST);
@@ -154,16 +144,11 @@ public class PmdParserExt1 extends PmdParserBase {
             throws IOException, MmdFormatException{
         int groupNum = getBoneGroupCount();
 
-        if(this.engHandler == null){
-            skip(PmdLimits.MAXBYTES_BONEGROUPNAME * groupNum);
-            return;
-        }
-
         this.engHandler.loopStart(PmdEngHandler.ENGBONEGROUP_LIST, groupNum);
 
         for(int ct = 0; ct < groupNum; ct++){
             String boneGroupName =
-                    parseZeroTermWin31J(PmdLimits.MAXBYTES_BONEGROUPNAME);
+                    parsePmdText(PmdLimits.MAXBYTES_BONEGROUPNAME);
             this.engHandler.pmdEngBoneGroupInfo(boneGroupName);
 
             this.engHandler.loopNext(PmdEngHandler.ENGBONEGROUP_LIST);