2 * model exporter for pmd-file(Ext2)
4 * License : The MIT License
5 * Copyright(c) 2010 MikuToga Partners
8 package jp.sfjp.mikutoga.pmd.model.binio;
10 import java.io.IOException;
11 import java.io.OutputStream;
12 import jp.sfjp.mikutoga.bin.export.IllegalTextExportException;
13 import jp.sfjp.mikutoga.pmd.IllegalPmdDataException;
14 import jp.sfjp.mikutoga.pmd.PmdConst;
15 import jp.sfjp.mikutoga.pmd.model.PmdModel;
16 import jp.sfjp.mikutoga.pmd.model.ToonMap;
19 * PMDファイルのエクスポーター(拡張2:任意のトゥーンファイル名対応)。
21 * <p>物理演算対応以降のPMDファイルフォーマットを
22 * 使いたくない場合はこのエクスポーターを用いて出力せよ。
24 public class PmdExporterExt2 extends PmdExporterExt1{
29 * @param stream 出力ストリーム
30 * @throws NullPointerException 引数がnull
32 public PmdExporterExt2(OutputStream stream)
33 throws NullPointerException{
41 * @param model {@inheritDoc}
42 * @throws IOException {@inheritDoc}
43 * @throws IllegalPmdDataException {@inheritDoc}
46 public void dumpPmdModel(PmdModel model)
47 throws IOException, IllegalPmdDataException{
48 super.dumpPmdModel(model);
52 }catch(IllegalTextExportException e){
53 throw new IllegalPmdDataException(e);
60 * 独自トゥーンファイルテーブルを出力する。
63 * @throws IOException 出力エラー
64 * @throws IllegalTextExportException トゥーンファイル名が長すぎる
66 private void dumpToonMap(PmdModel model)
67 throws IOException, IllegalTextExportException{
68 ToonMap map = model.getToonMap();
70 for(int idx = 0; idx < PmdConst.TOON_FIXEDNUM; idx++){
71 String toonName = map.getIndexedToon(idx);
72 if(toonName == null) toonName = "";
73 dumpText(toonName, PmdConst.MAXBYTES_TOONFILENAME);