2 * model exporter for pmd-file(Ext2)
4 * License : The MIT License
5 * Copyright(c) 2010 MikuToga Partners
8 package jp.sourceforge.mikutoga.pmd.model.binio;
10 import java.io.IOException;
11 import java.io.OutputStream;
12 import jp.sourceforge.mikutoga.binio.IllegalTextExportException;
13 import jp.sourceforge.mikutoga.pmd.model.PmdModel;
14 import jp.sourceforge.mikutoga.pmd.model.ToonMap;
15 import jp.sourceforge.mikutoga.pmd.parser.PmdLimits;
18 * PMDファイルのエクスポーター(拡張2:任意のトゥーンファイル名対応)。
20 * 物理演算対応以降のPMDファイルフォーマットを
21 * 使いたくない場合はこのエクスポーターを用いて出力せよ。
23 public class PmdExporterExt2 extends PmdExporterExt1{
27 * @param stream 出力ストリーム
28 * @throws NullPointerException 引数がnull
30 public PmdExporterExt2(OutputStream stream)
31 throws NullPointerException{
38 * @param model {@inheritDoc}
39 * @throws IOException {@inheritDoc}
40 * @throws IllegalPmdException {@inheritDoc}
43 public void dumpPmdModel(PmdModel model)
44 throws IOException, IllegalPmdException{
45 super.dumpPmdModel(model);
49 }catch(IllegalTextExportException e){
50 throw new IllegalPmdException(e);
57 * 独自トゥーンファイルテーブルを出力する。
59 * @throws IOException 出力エラー
60 * @throws IllegalPmdTextException トゥーンファイル名が長すぎる
62 private void dumpToonMap(PmdModel model)
63 throws IOException, IllegalTextExportException{
64 ToonMap map = model.getToonMap();
66 for(int idx = 0; idx < PmdLimits.TOON_FIXEDNUM; idx++){
67 String toonName = map.getIndexedToon(idx);
68 if(toonName == null) toonName = "";
69 dumpText(toonName, PmdLimits.MAXBYTES_TOONFILENAME);