*
* @return 入力ソースの読み込み位置。単位はbyte。
*/
- long getPosition();
+ public abstract long getPosition();
/**
* 入力ソースにまだデータが残っているか判定する。
* @return まだ読み込んでいないデータが残っていればtrue
* @throws IOException IOエラー
*/
- boolean hasMore() throws IOException;
+ public abstract boolean hasMore() throws IOException;
/**
* 入力ソースを読み飛ばす。
* @throws MmdEofException 読み飛ばす途中でストリーム終端に達した。
* @see java.io.InputStream#skip(long)
*/
- void skip(long skipLength) throws IOException, MmdEofException;
+ public abstract void skip(long skipLength)
+ throws IOException, MmdEofException;
/**
* byte配列を読み込む。
* @throws MmdEofException 読み込む途中でストリーム終端に達した。
* @see java.io.InputStream#read(byte[], int, int)
*/
- void parseByteArray(byte[] dst, int off, int length)
+ public abstract void parseByteArray(byte[] dst, int off, int length)
throws NullPointerException,
IndexOutOfBoundsException,
IOException,
* @throws MmdEofException 読み込む途中でストリーム終端に達した。
* @see java.io.InputStream#read(byte[])
*/
- void parseByteArray(byte[] dst)
+ public abstract void parseByteArray(byte[] dst)
throws NullPointerException, IOException, MmdEofException;
/**
* @throws IOException IOエラー
* @throws MmdEofException 読み込む途中でストリーム終端に達した。
*/
- byte parseByte() throws IOException, MmdEofException;
+ public abstract byte parseByte() throws IOException, MmdEofException;
/**
* 符号無し値としてbyte値を読み込み、int型に変換して返す。
* @throws IOException IOエラー
* @throws MmdEofException 読み込む途中でストリーム終端に達した。
*/
- int parseUByteAsInt() throws IOException, MmdEofException;
+ public abstract int parseUByteAsInt() throws IOException, MmdEofException;
/**
* byte値を読み込み、boolean型に変換して返す。
* @throws IOException IOエラー
* @throws MmdEofException 読み込む途中でストリーム終端に達した。
*/
- boolean parseBoolean() throws IOException, MmdEofException;
+ public abstract boolean parseBoolean()
+ throws IOException, MmdEofException;
/**
* short値を読み込む。
* @throws IOException IOエラー
* @throws MmdEofException 読み込む途中でストリーム終端に達した。
*/
- short parseLeShort() throws IOException, MmdEofException;
+ public abstract short parseLeShort() throws IOException, MmdEofException;
/**
* 符号無し値としてshort値を読み込み、int型に変換して返す。
* @throws IOException IOエラー
* @throws MmdEofException 読み込む途中でストリーム終端に達した。
*/
- int parseLeUShortAsInt() throws IOException, MmdEofException;
+ public abstract int parseLeUShortAsInt()
+ throws IOException, MmdEofException;
/**
* int値を読み込む。
* @throws IOException IOエラー
* @throws MmdEofException 読み込む途中でストリーム終端に達した。
*/
- int parseLeInt() throws IOException, MmdEofException;
+ public abstract int parseLeInt() throws IOException, MmdEofException;
/**
* float値を読み込む。
* @throws IOException IOエラー
* @throws MmdEofException 読み込む途中でストリーム終端に達した。
*/
- float parseLeFloat() throws IOException, MmdEofException;
+ public abstract float parseLeFloat() throws IOException, MmdEofException;
/**
* 固定バイト長の文字列を読み込む。
* @throws MmdEofException 固定長バイト列を読む前に末端に達した。
* @throws MmdFormatException 文字エンコーディングに関するエラー
*/
- String parseString(TextDecoder decoder, int byteLen)
+ public abstract String parseString(TextDecoder decoder, int byteLen)
throws IOException, MmdEofException, MmdFormatException;
}
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void pmdParseStart()
+ public abstract void pmdParseStart()
throws MmdFormatException;
/**
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void pmdParseEnd(boolean hasMoreData)
+ public abstract void pmdParseEnd(boolean hasMoreData)
throws MmdFormatException;
/**
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void pmdHeaderInfo(byte[] header)
+ public abstract void pmdHeaderInfo(byte[] header)
throws MmdFormatException;
/**
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void pmdModelInfo(String modelName, String description)
+ public abstract void pmdModelInfo(String modelName, String description)
throws MmdFormatException;
}
public interface PmdMaterialHandler extends LoopHandler {
/** 材質抽出ループ。 */
- ParseStage MATERIAL_LIST = new ParseStage();
+ public static final ParseStage MATERIAL_LIST = new ParseStage();
/**
* 材質の拡散光成分の通知を受け取る。
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void pmdMaterialDiffuse(float red, float green, float blue,
- float alpha )
+ public abstract void pmdMaterialDiffuse(
+ float red, float green, float blue, float alpha)
throws MmdFormatException;
/**
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void pmdMaterialSpecular(float red, float green, float blue,
- float shininess)
+ public abstract void pmdMaterialSpecular(
+ float red, float green, float blue, float shininess)
throws MmdFormatException;
/**
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void pmdMaterialAmbient(float red, float green, float blue)
+ public abstract void pmdMaterialAmbient(
+ float red, float green, float blue)
throws MmdFormatException;
/**
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void pmdMaterialShading(int toonIdx,
+ public abstract void pmdMaterialShading(int toonIdx,
String textureFile, String sphereFile )
throws MmdFormatException;
* パース処理の中断をパーサに指示
* @see PmdShapeHandler#pmdSurfaceTriangle(int, int, int)
*/
- void pmdMaterialInfo(boolean hasEdge, int vertexNum)
+ public abstract void pmdMaterialInfo(boolean hasEdge, int vertexNum)
throws MmdFormatException;
}
public interface PmdRigidHandler extends LoopHandler {
/** 剛体情報抽出ループ。 */
- ParseStage RIGID_LIST = new ParseStage();
+ public static final ParseStage RIGID_LIST = new ParseStage();
/**
* 剛体名の通知を受け取る。
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void pmdRigidName(String rigidName)
+ public abstract void pmdRigidName(String rigidName)
throws MmdFormatException;
/**
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void pmdRigidInfo(int rigidGroupId,
+ public abstract void pmdRigidInfo(int rigidGroupId,
int linkedBoneId)
throws MmdFormatException;
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void pmdRigidShape(byte shapeType,
+ public abstract void pmdRigidShape(byte shapeType,
float width, float height, float depth)
throws MmdFormatException;
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void pmdRigidPosition(float posX, float posY, float posZ)
+ public abstract void pmdRigidPosition(float posX, float posY, float posZ)
throws MmdFormatException;
/**
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void pmdRigidRotation(float radX, float radY, float radZ)
+ public abstract void pmdRigidRotation(float radX, float radY, float radZ)
throws MmdFormatException;
/**
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void pmdRigidPhysics(float mass,
+ public abstract void pmdRigidPhysics(float mass,
float dampingPos, float dampingRot,
float restitution, float friction )
throws MmdFormatException;
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void pmdRigidBehavior(byte behaveType, short collisionMap)
+ public abstract void pmdRigidBehavior(byte behaveType, short collisionMap)
throws MmdFormatException;
}
public interface VmdCameraHandler extends LoopHandler {
/** カメラデータ抽出ループ識別子。 */
- ParseStage CAMERA_LIST = new ParseStage();
+ public static final ParseStage CAMERA_LIST = new ParseStage();
/**
* @throws MmdFormatException
* 不正フォーマットによるパース処理の中断をパーサに指示
*/
- void vmdCameraMotion(int keyFrameNo)
+ public abstract void vmdCameraMotion(int keyFrameNo)
throws MmdFormatException;
/**
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void vmdCameraRange(float range)
+ public abstract void vmdCameraRange(float range)
throws MmdFormatException;
/**
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void vmdCameraPosition(float xPos, float yPos, float zPos)
+ public abstract void vmdCameraPosition(float xPos, float yPos, float zPos)
throws MmdFormatException;
/**
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void vmdCameraRotation(float latitude, float longitude, float roll)
+ public abstract void vmdCameraRotation(
+ float latitude, float longitude, float roll)
throws MmdFormatException;
/**
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void vmdCameraProjection(int angle, boolean hasPerspective)
+ public abstract void vmdCameraProjection(
+ int angle, boolean hasPerspective)
throws MmdFormatException;
/**
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void vmdCameraIntpltXpos(byte p1x, byte p1y, byte p2x, byte p2y)
+ public abstract void vmdCameraIntpltXpos(
+ byte p1x, byte p1y, byte p2x, byte p2y)
throws MmdFormatException;
/**
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void vmdCameraIntpltYpos(byte p1x, byte p1y, byte p2x, byte p2y)
+ public abstract void vmdCameraIntpltYpos(
+ byte p1x, byte p1y, byte p2x, byte p2y)
throws MmdFormatException;
/**
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void vmdCameraIntpltZpos(byte p1x, byte p1y, byte p2x, byte p2y)
+ public abstract void vmdCameraIntpltZpos(
+ byte p1x, byte p1y, byte p2x, byte p2y)
throws MmdFormatException;
/**
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void vmdCameraIntpltRotation(byte p1x, byte p1y, byte p2x, byte p2y)
+ public abstract void vmdCameraIntpltRotation(
+ byte p1x, byte p1y, byte p2x, byte p2y)
throws MmdFormatException;
/**
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void vmdCameraIntpltRange(byte p1x, byte p1y, byte p2x, byte p2y)
+ public abstract void vmdCameraIntpltRange(
+ byte p1x, byte p1y, byte p2x, byte p2y)
throws MmdFormatException;
/**
* @throws MmdFormatException 不正フォーマットによる
* パース処理の中断をパーサに指示
*/
- void vmdCameraIntpltProjection(byte p1x, byte p1y, byte p2x, byte p2y)
+ public abstract void vmdCameraIntpltProjection(
+ byte p1x, byte p1y, byte p2x, byte p2y)
throws MmdFormatException;
}
* オリジナル版XMLリソースのURIを返す。
* @return オリジナル版リソースのURL。
*/
- URI getOriginalResource();
+ public abstract URI getOriginalResource();
/**
* ローカル版XMLリソースのURIを返す。
* @return ローカル版リソースのURL。
*/
- URI getLocalResource();
+ public abstract URI getLocalResource();
}
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter putRawCh(char ch) throws IOException;
+ public abstract XmlExporter putRawCh(char ch) throws IOException;
/**
* 文字列を生出力する。
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter putRawText(CharSequence seq) throws IOException;
+ public abstract XmlExporter putRawText(CharSequence seq)
+ throws IOException;
/**
* 空白を出力する。
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter sp() throws IOException;
+ public abstract XmlExporter sp() throws IOException;
/**
* 空白を指定回数出力する。
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter sp(int count) throws IOException;
+ public abstract XmlExporter sp(int count) throws IOException;
/**
* 改行文字列を返す。
* @return 改行文字列
*/
- String getNewLine();
+ public abstract String getNewLine();
/**
* 改行文字列を設定する。
* @param newLine 改行文字列
* @throws NullPointerException 引数がnull
*/
- void setNewLine(String newLine) throws NullPointerException;
+ public abstract void setNewLine(String newLine)
+ throws NullPointerException;
/**
* 改行を出力する。
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter ln() throws IOException;
+ public abstract XmlExporter ln() throws IOException;
/**
* 改行を指定回数出力する。
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter ln(int count) throws IOException;
+ public abstract XmlExporter ln(int count) throws IOException;
/**
* インデント単位文字列を返す。
* @return インデント単位文字列
*/
- String getIndentUnit();
+ public abstract String getIndentUnit();
/**
* インデント単位文字列を設定する。
* @param indUnit インデント単位文字列。
* @throws NullPointerException 引数がnull
*/
- void setIndentUnit(String indUnit) throws NullPointerException;
+ public abstract void setIndentUnit(String indUnit)
+ throws NullPointerException;
/**
* インデントレベルを一段下げる。
*/
- void pushNest();
+ public abstract void pushNest();
/**
* インデントレベルを一段上げる。
* インデントレベル0の状態をさらに上げようとした場合、何も起こらない。
*/
- void popNest();
+ public abstract void popNest();
/**
* インデントレベルを返す。
*
* @return インデントレベル
*/
- int getIndentLevel();
+ public abstract int getIndentLevel();
/**
* インデントを出力する。
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter ind() throws IOException;
+ public abstract XmlExporter ind() throws IOException;
/**
* BasicLatin文字だけを出力する状態か判定する。
*
* @return BasicLatin文字だけで出力するならtrue
*/
- boolean isBasicLatinOnlyOut();
+ public abstract boolean isBasicLatinOnlyOut();
/**
* BasicLatin文字だけで出力するか設定する。
*
* @param bool BasicLatin文字だけで出力するならtrue
*/
- void setBasicLatinOnlyOut(boolean bool);
+ public abstract void setBasicLatinOnlyOut(boolean bool);
/**
* 指定された文字を16進2桁の文字参照形式で出力する。
* W3C XML1.1 Character Reference
* </a>
*/
- XmlExporter putCharRef2Hex(char ch) throws IOException;
+ public abstract XmlExporter putCharRef2Hex(char ch) throws IOException;
/**
* 指定された文字を16進4桁の文字参照形式で出力する。
* W3C XML1.1 Character Reference
* </a>
*/
- XmlExporter putCharRef4Hex(char ch) throws IOException;
+ public abstract XmlExporter putCharRef4Hex(char ch) throws IOException;
/**
* 要素の中身および属性値中身を出力する。
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter putCh(char ch) throws IOException;
+ public abstract XmlExporter putCh(char ch) throws IOException;
/**
* 要素の中身および属性値中身を出力する。
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter putContent(CharSequence content) throws IOException;
+ public abstract XmlExporter putContent(CharSequence content)
+ throws IOException;
/**
* コメントの内容を出力する。
* Unicode 6.2 Controll Pictures
* </a>
*/
- XmlExporter putCommentContent(CharSequence comment) throws IOException;
+ public abstract XmlExporter putCommentContent(CharSequence comment)
+ throws IOException;
/**
* 1行コメントを出力する。
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter putLineComment(CharSequence comment) throws IOException;
+ public abstract XmlExporter putLineComment(CharSequence comment)
+ throws IOException;
/**
* ブロックコメントを出力する。
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter putBlockComment(CharSequence comment) throws IOException;
+ public abstract XmlExporter putBlockComment(CharSequence comment)
+ throws IOException;
/**
* 開始タグ開き表記を出力する。
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter putOpenSTag(CharSequence tagName) throws IOException;
+ public abstract XmlExporter putOpenSTag(CharSequence tagName)
+ throws IOException;
/**
* 開始タグ閉じ表記を出力する。
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter putCloseSTag() throws IOException;
+ public abstract XmlExporter putCloseSTag() throws IOException;
/**
* 属性の無いシンプルな開始タグ表記を出力する。
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter putSimpleSTag(CharSequence tagName) throws IOException;
+ public abstract XmlExporter putSimpleSTag(CharSequence tagName)
+ throws IOException;
/**
* 終了タグ表記を出力する。
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter putETag(CharSequence tagName) throws IOException;
+ public abstract XmlExporter putETag(CharSequence tagName)
+ throws IOException;
/**
* 属性の無い単出タグ表記を出力する。
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter putSimpleEmpty(CharSequence tagName) throws IOException;
+ public abstract XmlExporter putSimpleEmpty(CharSequence tagName)
+ throws IOException;
/**
* 単出タグ閉じ表記を出力する。
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter putCloseEmpty() throws IOException;
+ public abstract XmlExporter putCloseEmpty() throws IOException;
/**
* xsd:int値をXMLスキーマ準拠の形式で出力する。
* XML Schema 1.1 Datatypes int
* </a>
*/
- XmlExporter putXsdInt(int iVal) throws IOException;
+ public abstract XmlExporter putXsdInt(int iVal) throws IOException;
/**
* xsd:float値をXMLスキーマ準拠の形式で出力する。
* XML Schema 1.1 Datatypes float Lexical Mapping
* </a>
*/
- XmlExporter putXsdFloat(float fVal) throws IOException;
+ public abstract XmlExporter putXsdFloat(float fVal) throws IOException;
/**
* int型属性値を出力する。
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter putIntAttr(CharSequence attrName, int iVal)
+ public abstract XmlExporter putIntAttr(CharSequence attrName, int iVal)
throws IOException;
/**
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter putFloatAttr(CharSequence attrName, float fVal)
+ public abstract XmlExporter putFloatAttr(
+ CharSequence attrName, float fVal)
throws IOException;
/**
* @return this本体
* @throws IOException 出力エラー
*/
- XmlExporter putAttr(CharSequence attrName, CharSequence content)
+ public abstract XmlExporter putAttr(
+ CharSequence attrName, CharSequence content)
throws IOException;
}