OSDN Git Service

[no commit message]
[mikutoga/TogaGem.git] / src / main / java / jp / sourceforge / mikutoga / pmd / pmdloader / TextBuilder.java
index e34f621..2eecbeb 100644 (file)
-/*\r
- * building text info\r
- *\r
- * License : The MIT License\r
- * Copyright(c) 2010 MikuToga Partners\r
- */\r
-\r
-package jp.sourceforge.mikutoga.pmd.pmdloader;\r
-\r
-import java.util.Iterator;\r
-import java.util.List;\r
-import jp.sourceforge.mikutoga.corelib.I18nText;\r
-import jp.sourceforge.mikutoga.parser.ParseStage;\r
-import jp.sourceforge.mikutoga.parser.pmd.PmdBasicHandler;\r
-import jp.sourceforge.mikutoga.parser.pmd.PmdEngHandler;\r
-import jp.sourceforge.mikutoga.pmd.BoneGroup;\r
-import jp.sourceforge.mikutoga.pmd.BoneInfo;\r
-import jp.sourceforge.mikutoga.pmd.MorphPart;\r
-import jp.sourceforge.mikutoga.pmd.PmdModel;\r
-\r
-/**\r
- * テキスト関係の通知をパーサから受け取る。\r
- */\r
-class TextBuilder implements PmdBasicHandler, PmdEngHandler {\r
-\r
-    private final PmdModel model;\r
-\r
-    private final I18nText modelName;\r
-    private final I18nText description;\r
-\r
-    private final List<BoneInfo> boneList;\r
-    private Iterator<BoneInfo> boneIt;\r
-    private BoneInfo currentBone = null;\r
-\r
-    private List<MorphPart> morphPartList;\r
-    private Iterator<MorphPart> morphPartIt;\r
-    private MorphPart currentMorphPart = null;\r
-\r
-    private final List<BoneGroup> boneGroupList;\r
-    private Iterator<BoneGroup> boneGroupIt;\r
-    private BoneGroup currentBoneGroup = null;\r
-\r
-    private boolean hasMoreData = false;\r
-\r
-    /**\r
-     * コンストラクタ。\r
-     * @param model モデル\r
-     */\r
-    TextBuilder(PmdModel model){\r
-        super();\r
-\r
-        this.model = model;\r
-\r
-        this.modelName   = model.getModelName();\r
-        this.description = model.getDescription();\r
-\r
-        this.boneList      = model.getBoneList();\r
-        this.boneGroupList = model.getBoneGroupList();\r
-\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * PMDファイル中の出現順で各モーフを格納するためのリストを設定する。\r
-     * 主な用途はモーフ和英名の突き合わせ作業。\r
-     * @param list モーフ格納リスト\r
-     */\r
-    void setMorphPartList(List<MorphPart> list){\r
-        this.morphPartList = list;\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * {@inheritDoc}\r
-     */\r
-    @Override\r
-    public void pmdParseStart(){\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * {@inheritDoc}\r
-     * @param hasMoreData {@inheritDoc}\r
-     */\r
-    @Override\r
-    public void pmdParseEnd(boolean hasMoreData){\r
-        this.hasMoreData = hasMoreData;\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * {@inheritDoc}\r
-     * @param stage {@inheritDoc}\r
-     * @param loops {@inheritDoc}\r
-     */\r
-    @Override\r
-    public void loopStart(ParseStage stage, int loops){\r
-        assert stage instanceof PmdEngStage;\r
-\r
-        if(stage == PmdEngHandler.ENGBONE_LIST){\r
-            this.boneIt = this.boneList.iterator();\r
-            if(this.boneIt.hasNext()){\r
-                this.currentBone = this.boneIt.next();\r
-            }\r
-        }else if(stage == PmdEngHandler.ENGMORPH_LIST){\r
-            this.morphPartIt = this.morphPartList.iterator();\r
-\r
-            // 「base」モーフを読み飛ばす\r
-            assert this.morphPartIt.hasNext();\r
-            MorphPart part = this.morphPartIt.next();\r
-            assert part != null;\r
-\r
-            if(this.morphPartIt.hasNext()){\r
-                this.currentMorphPart = this.morphPartIt.next();\r
-            }\r
-        }else if(stage == PmdEngHandler.ENGBONEGROUP_LIST){\r
-            this.boneGroupIt = this.boneGroupList.iterator();\r
-\r
-            // デフォルトボーングループを読み飛ばす\r
-            assert this.boneGroupIt.hasNext();\r
-            BoneGroup group = this.boneGroupIt.next();\r
-            assert group != null;\r
-\r
-            if(this.boneGroupIt.hasNext()){\r
-                this.currentBoneGroup = this.boneGroupIt.next();\r
-            }\r
-        }else{\r
-            assert false;\r
-            throw new AssertionError();\r
-        }\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * {@inheritDoc}\r
-     * @param stage {@inheritDoc}\r
-     */\r
-    @Override\r
-    public void loopNext(ParseStage stage){\r
-        assert stage instanceof PmdEngStage;\r
-\r
-        if(stage == PmdEngHandler.ENGBONE_LIST){\r
-            if(this.boneIt.hasNext()){\r
-                this.currentBone = this.boneIt.next();\r
-            }\r
-        }else if(stage == PmdEngHandler.ENGMORPH_LIST){\r
-            if(this.morphPartIt.hasNext()){\r
-                this.currentMorphPart = this.morphPartIt.next();\r
-            }\r
-        }else if(stage == PmdEngHandler.ENGBONEGROUP_LIST){\r
-            if(this.boneGroupIt.hasNext()){\r
-                this.currentBoneGroup = this.boneGroupIt.next();\r
-            }\r
-        }else{\r
-            assert false;\r
-            throw new AssertionError();\r
-        }\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * {@inheritDoc}\r
-     * @param stage {@inheritDoc}\r
-     */\r
-    @Override\r
-    public void loopEnd(ParseStage stage){\r
-        assert stage instanceof PmdEngStage;\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * {@inheritDoc}\r
-     * @param ver {@inheritDoc}\r
-     */\r
-    @Override\r
-    public void pmdHeaderInfo(float ver){\r
-        this.model.setHeaderVersion(ver);\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * {@inheritDoc}\r
-     * @param modelName {@inheritDoc}\r
-     * @param description {@inheritDoc}\r
-     */\r
-    @Override\r
-    public void pmdModelInfo(String modelName, String description){\r
-        this.modelName  .setPrimaryText(modelName);\r
-        this.description.setPrimaryText(description);\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * {@inheritDoc}\r
-     * @param hasEnglishInfo {@inheritDoc}\r
-     */\r
-    @Override\r
-    public void pmdEngEnabled(boolean hasEnglishInfo){\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * {@inheritDoc}\r
-     * @param modelName {@inheritDoc}\r
-     * @param description {@inheritDoc}\r
-     */\r
-    @Override\r
-    public void pmdEngModelInfo(String modelName, String description){\r
-        this.modelName  .setGlobalText(modelName);\r
-        this.description.setGlobalText(description);\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * {@inheritDoc}\r
-     * @param boneName {@inheritDoc}\r
-     */\r
-    @Override\r
-    public void pmdEngBoneInfo(String boneName){\r
-        this.currentBone.getBoneName().setGlobalText(boneName);\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * {@inheritDoc}\r
-     * @param morphName {@inheritDoc}\r
-     */\r
-    @Override\r
-    public void pmdEngMorphInfo(String morphName){\r
-        this.currentMorphPart.getMorphName().setGlobalText(morphName);\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * {@inheritDoc}\r
-     * @param groupName {@inheritDoc}\r
-     */\r
-    @Override\r
-    public void pmdEngBoneGroupInfo(String groupName){\r
-        this.currentBoneGroup.getGroupName().setGlobalText(groupName);\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * 読み残したデータがあるか判定する。\r
-     * @return 読み残したデータがあればtrue\r
-     */\r
-    public boolean hasMoreData(){\r
-        return this.hasMoreData;\r
-    }\r
-\r
-}\r
+/*
+ * building text info
+ *
+ * License : The MIT License
+ * Copyright(c) 2010 MikuToga Partners
+ */
+
+package jp.sourceforge.mikutoga.pmd.pmdloader;
+
+import java.util.Iterator;
+import java.util.List;
+import jp.sourceforge.mikutoga.corelib.I18nText;
+import jp.sourceforge.mikutoga.parser.ParseStage;
+import jp.sourceforge.mikutoga.parser.pmd.PmdBasicHandler;
+import jp.sourceforge.mikutoga.parser.pmd.PmdEngHandler;
+import jp.sourceforge.mikutoga.pmd.model.BoneGroup;
+import jp.sourceforge.mikutoga.pmd.model.BoneInfo;
+import jp.sourceforge.mikutoga.pmd.model.MorphPart;
+import jp.sourceforge.mikutoga.pmd.model.PmdModel;
+
+/**
+ * テキスト関係の通知をパーサから受け取る。
+ */
+class TextBuilder implements PmdBasicHandler, PmdEngHandler {
+
+    private final PmdModel model;
+
+    private final I18nText modelName;
+    private final I18nText description;
+
+    private final List<BoneInfo> boneList;
+    private Iterator<BoneInfo> boneIt;
+    private BoneInfo currentBone = null;
+
+    private List<MorphPart> morphPartList;
+    private Iterator<MorphPart> morphPartIt;
+    private MorphPart currentMorphPart = null;
+
+    private final List<BoneGroup> boneGroupList;
+    private Iterator<BoneGroup> boneGroupIt;
+    private BoneGroup currentBoneGroup = null;
+
+    private boolean hasMoreData = false;
+
+    /**
+     * コンストラクタ。
+     * @param model モデル
+     */
+    TextBuilder(PmdModel model){
+        super();
+
+        this.model = model;
+
+        this.modelName   = model.getModelName();
+        this.description = model.getDescription();
+
+        this.boneList      = model.getBoneList();
+        this.boneGroupList = model.getBoneGroupList();
+
+        return;
+    }
+
+    /**
+     * PMDファイル中の出現順で各モーフを格納するためのリストを設定する。
+     * 主な用途はモーフ和英名の突き合わせ作業。
+     * @param list モーフ格納リスト
+     */
+    void setMorphPartList(List<MorphPart> list){
+        this.morphPartList = list;
+        return;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void pmdParseStart(){
+        return;
+    }
+
+    /**
+     * {@inheritDoc}
+     * @param hasMoreData {@inheritDoc}
+     */
+    @Override
+    public void pmdParseEnd(boolean hasMoreData){
+        this.hasMoreData = hasMoreData;
+        return;
+    }
+
+    /**
+     * {@inheritDoc}
+     * @param stage {@inheritDoc}
+     * @param loops {@inheritDoc}
+     */
+    @Override
+    public void loopStart(ParseStage stage, int loops){
+        if(stage == PmdEngHandler.ENGBONE_LIST){
+            this.boneIt = this.boneList.iterator();
+            if(this.boneIt.hasNext()){
+                this.currentBone = this.boneIt.next();
+            }
+        }else if(stage == PmdEngHandler.ENGMORPH_LIST){
+            this.morphPartIt = this.morphPartList.iterator();
+
+            // 「base」モーフを読み飛ばす
+            assert this.morphPartIt.hasNext();
+            MorphPart part = this.morphPartIt.next();
+            assert part != null;
+
+            if(this.morphPartIt.hasNext()){
+                this.currentMorphPart = this.morphPartIt.next();
+            }
+        }else if(stage == PmdEngHandler.ENGBONEGROUP_LIST){
+            this.boneGroupIt = this.boneGroupList.iterator();
+
+            // デフォルトボーングループを読み飛ばす
+            assert this.boneGroupIt.hasNext();
+            BoneGroup group = this.boneGroupIt.next();
+            assert group != null;
+
+            if(this.boneGroupIt.hasNext()){
+                this.currentBoneGroup = this.boneGroupIt.next();
+            }
+        }else{
+            assert false;
+            throw new AssertionError();
+        }
+        return;
+    }
+
+    /**
+     * {@inheritDoc}
+     * @param stage {@inheritDoc}
+     */
+    @Override
+    public void loopNext(ParseStage stage){
+        if(stage == PmdEngHandler.ENGBONE_LIST){
+            if(this.boneIt.hasNext()){
+                this.currentBone = this.boneIt.next();
+            }
+        }else if(stage == PmdEngHandler.ENGMORPH_LIST){
+            if(this.morphPartIt.hasNext()){
+                this.currentMorphPart = this.morphPartIt.next();
+            }
+        }else if(stage == PmdEngHandler.ENGBONEGROUP_LIST){
+            if(this.boneGroupIt.hasNext()){
+                this.currentBoneGroup = this.boneGroupIt.next();
+            }
+        }else{
+            assert false;
+            throw new AssertionError();
+        }
+        return;
+    }
+
+    /**
+     * {@inheritDoc}
+     * @param stage {@inheritDoc}
+     */
+    @Override
+    public void loopEnd(ParseStage stage){
+        return;
+    }
+
+    /**
+     * {@inheritDoc}
+     * @param header {@inheritDoc}
+     */
+    @Override
+    public void pmdHeaderInfo(byte[] header){
+        return;
+    }
+
+    /**
+     * {@inheritDoc}
+     * @param modelName {@inheritDoc}
+     * @param description {@inheritDoc}
+     */
+    @Override
+    public void pmdModelInfo(String modelName, String description){
+        this.modelName  .setPrimaryText(modelName);
+        this.description.setPrimaryText(description);
+        return;
+    }
+
+    /**
+     * {@inheritDoc}
+     * @param hasEnglishInfo {@inheritDoc}
+     */
+    @Override
+    public void pmdEngEnabled(boolean hasEnglishInfo){
+        return;
+    }
+
+    /**
+     * {@inheritDoc}
+     * @param modelName {@inheritDoc}
+     * @param description {@inheritDoc}
+     */
+    @Override
+    public void pmdEngModelInfo(String modelName, String description){
+        this.modelName  .setGlobalText(modelName);
+        this.description.setGlobalText(description);
+        return;
+    }
+
+    /**
+     * {@inheritDoc}
+     * @param boneName {@inheritDoc}
+     */
+    @Override
+    public void pmdEngBoneInfo(String boneName){
+        this.currentBone.getBoneName().setGlobalText(boneName);
+        return;
+    }
+
+    /**
+     * {@inheritDoc}
+     * @param morphName {@inheritDoc}
+     */
+    @Override
+    public void pmdEngMorphInfo(String morphName){
+        this.currentMorphPart.getMorphName().setGlobalText(morphName);
+        return;
+    }
+
+    /**
+     * {@inheritDoc}
+     * @param groupName {@inheritDoc}
+     */
+    @Override
+    public void pmdEngBoneGroupInfo(String groupName){
+        this.currentBoneGroup.getGroupName().setGlobalText(groupName);
+        return;
+    }
+
+    /**
+     * 読み残したデータがあるか判定する。
+     * @return 読み残したデータがあればtrue
+     */
+    public boolean hasMoreData(){
+        return this.hasMoreData;
+    }
+
+}