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;
}
* @param handler ハンドラ
*/
public void setEngHandler(PmdEngHandler handler){
- this.engHandler = handler;
+ if(handler == null){
+ this.engHandler = NullHandler.HANDLER;
+ }else{
+ this.engHandler = handler;
+ }
return;
}
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;
}
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);
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);
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);