OSDN Git Service

1.105.3-SNAPSHOT版開発開始
[mikutoga/TogaGem.git] / src / main / java / jp / sourceforge / mikutoga / parser / pmd / PmdParserExt1.java
index cffe8d9..26fd3c8 100644 (file)
-/*\r
- * pmd parser extension 1\r
- *\r
- * License : The MIT License\r
- * Copyright(c) 2010 MikuToga Partners\r
- */\r
-\r
-package jp.sourceforge.mikutoga.parser.pmd;\r
-\r
-import java.io.IOException;\r
-import jp.sourceforge.mikutoga.parser.MmdFormatException;\r
-import jp.sourceforge.mikutoga.parser.MmdSource;\r
-\r
-/**\r
- * PMDモデルファイルのパーサ拡張その1。\r
- * ※英名対応\r
- */\r
-public class PmdParserExt1 extends PmdParserBase {\r
-\r
-    private PmdEngHandler engHandler = null;\r
-    private boolean hasEnglishInfo = true;\r
-\r
-    /**\r
-     * コンストラクタ。\r
-     * @param source 入力ソース\r
-     */\r
-    public PmdParserExt1(MmdSource source){\r
-        super(source);\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * 英語ハンドラを登録する。\r
-     * @param handler ハンドラ\r
-     */\r
-    public void setEngHandler(PmdEngHandler handler){\r
-        this.engHandler = handler;\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * {@inheritDoc}\r
-     * @throws IOException {@inheritDoc}\r
-     * @throws MmdFormatException {@inheritDoc}\r
-     */\r
-    @Override\r
-    protected void parseBody()\r
-            throws IOException, MmdFormatException{\r
-        super.parseBody();\r
-\r
-        if(hasMore()){\r
-            parseEngHeader();\r
-            if(this.hasEnglishInfo){\r
-                parseEngBoneList();\r
-                parseEngMorphName();\r
-                parseEngBoneGroupName();\r
-            }\r
-        }\r
-\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * PMDモデル英語基本情報のパースと通知。\r
-     * @throws IOException IOエラー\r
-     * @throws MmdFormatException フォーマットエラー\r
-     */\r
-    private void parseEngHeader()\r
-            throws IOException, MmdFormatException{\r
-        this.hasEnglishInfo = parseBoolean();\r
-\r
-        if(this.engHandler != null){\r
-            this.engHandler.pmdEngEnabled(this.hasEnglishInfo);\r
-        }\r
-        if( ! this.hasEnglishInfo ) return;\r
-\r
-        String modelName =\r
-                parseZeroTermString(PmdLimits.MAXBYTES_MODELNAME);\r
-        String description =\r
-                parseZeroTermString(PmdLimits.MAXBYTES_MODELDESC);\r
-        description = description.replace(CRLF, LF);\r
-\r
-        if(this.engHandler != null){\r
-            this.engHandler.pmdEngModelInfo(modelName, description);\r
-        }\r
-\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * PMDモデル英語ボーン名のパースと通知。\r
-     * @throws IOException IOエラー\r
-     * @throws MmdFormatException フォーマットエラー\r
-     */\r
-    private void parseEngBoneList()\r
-            throws IOException, MmdFormatException{\r
-        int boneNum = getBoneCount();\r
-\r
-        if(this.engHandler == null){\r
-            skip(PmdLimits.MAXBYTES_BONENAME * boneNum);\r
-            return;\r
-        }\r
-\r
-        this.engHandler.loopStart(PmdEngHandler.ENGBONE_LIST, boneNum);\r
-\r
-        for(int ct = 0; ct < boneNum; ct++){\r
-            String boneName =\r
-                    parseZeroTermString(PmdLimits.MAXBYTES_BONENAME);\r
-            this.engHandler.pmdEngBoneInfo(boneName);\r
-\r
-            this.engHandler.loopNext(PmdEngHandler.ENGBONE_LIST);\r
-        }\r
-\r
-        this.engHandler.loopEnd(PmdEngHandler.ENGBONE_LIST);\r
-\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * PMDモデル英語モーフ名のパースと通知。\r
-     * @throws IOException IOエラー\r
-     * @throws MmdFormatException フォーマットエラー\r
-     */\r
-    private void parseEngMorphName()\r
-            throws IOException, MmdFormatException{\r
-        int morphNum = getMorphCount() - 1;  // base は英名なし\r
-\r
-        if(this.engHandler == null){\r
-            skip(PmdLimits.MAXBYTES_MORPHNAME * morphNum);\r
-            return;\r
-        }\r
-\r
-        this.engHandler.loopStart(PmdEngHandler.ENGMORPH_LIST, morphNum);\r
-\r
-        for(int ct = 0; ct < morphNum; ct++){\r
-            String morphName =\r
-                    parseZeroTermString(PmdLimits.MAXBYTES_MORPHNAME);\r
-            this.engHandler.pmdEngMorphInfo(morphName);\r
-\r
-            this.engHandler.loopNext(PmdEngHandler.ENGMORPH_LIST);\r
-        }\r
-\r
-        this.engHandler.loopEnd(PmdEngHandler.ENGMORPH_LIST);\r
-\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * PMDモデル英語ボーングループ名のパースと通知。\r
-     * @throws IOException IOエラー\r
-     * @throws MmdFormatException フォーマットエラー\r
-     */\r
-    private void parseEngBoneGroupName()\r
-            throws IOException, MmdFormatException{\r
-        int groupNum = getBoneGroupCount();\r
-\r
-        if(this.engHandler == null){\r
-            skip(PmdLimits.MAXBYTES_BONEGROUPNAME * groupNum);\r
-            return;\r
-        }\r
-\r
-        this.engHandler.loopStart(PmdEngHandler.ENGBONEGROUP_LIST, groupNum);\r
-\r
-        for(int ct = 0; ct < groupNum; ct++){\r
-            String boneGroupName =\r
-                    parseZeroTermString(PmdLimits.MAXBYTES_BONEGROUPNAME);\r
-            this.engHandler.pmdEngBoneGroupInfo(boneGroupName);\r
-\r
-            this.engHandler.loopNext(PmdEngHandler.ENGBONEGROUP_LIST);\r
-        }\r
-\r
-        this.engHandler.loopEnd(PmdEngHandler.ENGBONEGROUP_LIST);\r
-\r
-        return;\r
-    }\r
-\r
-}\r
+/*
+ * pmd parser extension 1
+ *
+ * License : The MIT License
+ * Copyright(c) 2010 MikuToga Partners
+ */
+
+package jp.sourceforge.mikutoga.parser.pmd;
+
+import java.io.IOException;
+import jp.sourceforge.mikutoga.parser.MmdFormatException;
+import jp.sourceforge.mikutoga.parser.MmdSource;
+
+/**
+ * PMDモデルファイルのパーサ拡張その1。
+ * ※英名対応
+ */
+public class PmdParserExt1 extends PmdParserBase {
+
+    private PmdEngHandler engHandler = null;
+    private boolean hasEnglishInfo = true;
+
+    /**
+     * コンストラクタ。
+     * @param source 入力ソース
+     */
+    public PmdParserExt1(MmdSource source){
+        super(source);
+        return;
+    }
+
+    /**
+     * 英語ハンドラを登録する。
+     * @param handler ハンドラ
+     */
+    public void setEngHandler(PmdEngHandler handler){
+        this.engHandler = handler;
+        return;
+    }
+
+    /**
+     * {@inheritDoc}
+     * @throws IOException {@inheritDoc}
+     * @throws MmdFormatException {@inheritDoc}
+     */
+    @Override
+    protected void parseBody()
+            throws IOException, MmdFormatException{
+        super.parseBody();
+
+        if(hasMore()){
+            parseEngHeader();
+            if(this.hasEnglishInfo){
+                parseEngBoneList();
+                parseEngMorphName();
+                parseEngBoneGroupName();
+            }
+        }
+
+        return;
+    }
+
+    /**
+     * PMDモデル英語基本情報のパースと通知。
+     * @throws IOException IOエラー
+     * @throws MmdFormatException フォーマットエラー
+     */
+    private void parseEngHeader()
+            throws IOException, MmdFormatException{
+        this.hasEnglishInfo = parseBoolean();
+
+        if(this.engHandler != null){
+            this.engHandler.pmdEngEnabled(this.hasEnglishInfo);
+        }
+        if( ! this.hasEnglishInfo ) return;
+
+        String modelName =
+                parseZeroTermString(PmdLimits.MAXBYTES_MODELNAME);
+        String description =
+                parseZeroTermString(PmdLimits.MAXBYTES_MODELDESC);
+        description = description.replace(CRLF, LF);
+
+        if(this.engHandler != null){
+            this.engHandler.pmdEngModelInfo(modelName, description);
+        }
+
+        return;
+    }
+
+    /**
+     * PMDモデル英語ボーン名のパースと通知。
+     * @throws IOException IOエラー
+     * @throws MmdFormatException フォーマットエラー
+     */
+    private void parseEngBoneList()
+            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 =
+                    parseZeroTermString(PmdLimits.MAXBYTES_BONENAME);
+            this.engHandler.pmdEngBoneInfo(boneName);
+
+            this.engHandler.loopNext(PmdEngHandler.ENGBONE_LIST);
+        }
+
+        this.engHandler.loopEnd(PmdEngHandler.ENGBONE_LIST);
+
+        return;
+    }
+
+    /**
+     * PMDモデル英語モーフ名のパースと通知。
+     * @throws IOException IOエラー
+     * @throws MmdFormatException フォーマットエラー
+     */
+    private void parseEngMorphName()
+            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 =
+                    parseZeroTermString(PmdLimits.MAXBYTES_MORPHNAME);
+            this.engHandler.pmdEngMorphInfo(morphName);
+
+            this.engHandler.loopNext(PmdEngHandler.ENGMORPH_LIST);
+        }
+
+        this.engHandler.loopEnd(PmdEngHandler.ENGMORPH_LIST);
+
+        return;
+    }
+
+    /**
+     * PMDモデル英語ボーングループ名のパースと通知。
+     * @throws IOException IOエラー
+     * @throws MmdFormatException フォーマットエラー
+     */
+    private void parseEngBoneGroupName()
+            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 =
+                    parseZeroTermString(PmdLimits.MAXBYTES_BONEGROUPNAME);
+            this.engHandler.pmdEngBoneGroupInfo(boneGroupName);
+
+            this.engHandler.loopNext(PmdEngHandler.ENGBONEGROUP_LIST);
+        }
+
+        this.engHandler.loopEnd(PmdEngHandler.ENGBONEGROUP_LIST);
+
+        return;
+    }
+
+}