OSDN Git Service

PMD出力機能及びXML入出力機能のソースをマージ
[mikutoga/TogaGem.git] / src / main / java / jp / sourceforge / mikutoga / pmd / pmdexporter / PmdExporterExt2.java
1 /*\r
2  * model exporter for pmd-file(Ext2)\r
3  *\r
4  * License : The MIT License\r
5  * Copyright(c) 2010 MikuToga Partners\r
6  */\r
7 \r
8 package jp.sourceforge.mikutoga.pmd.pmdexporter;\r
9 \r
10 import java.io.IOException;\r
11 import java.io.OutputStream;\r
12 import jp.sourceforge.mikutoga.parser.pmd.PmdLimits;\r
13 import jp.sourceforge.mikutoga.pmd.PmdModel;\r
14 import jp.sourceforge.mikutoga.pmd.ToonMap;\r
15 \r
16 /**\r
17  * PMDファイルのエクスポーター(拡張2:任意のトゥーンファイル名対応)。\r
18  * <p>\r
19  * 物理演算対応以降のPMDファイルフォーマットを\r
20  * 使いたくない場合はこのエクスポーターを用いて出力せよ。\r
21  */\r
22 public class PmdExporterExt2 extends PmdExporterExt1{\r
23 \r
24     /**\r
25      * コンストラクタ。\r
26      * @param stream 出力ストリーム\r
27      * @throws NullPointerException 引数がnull\r
28      */\r
29     public PmdExporterExt2(OutputStream stream)\r
30             throws NullPointerException{\r
31         super(stream);\r
32         return;\r
33     }\r
34 \r
35     /**\r
36      * {@inheritDoc}\r
37      * @param model {@inheritDoc}\r
38      * @throws IOException {@inheritDoc}\r
39      * @throws IllegalPmdException {@inheritDoc}\r
40      */\r
41     @Override\r
42     public void dumpPmdModel(PmdModel model)\r
43             throws IOException, IllegalPmdException{\r
44         super.dumpPmdModel(model);\r
45 \r
46         dumpToonMap(model);\r
47 \r
48         return;\r
49     }\r
50 \r
51     /**\r
52      * 独自トゥーンファイルテーブルを出力する。\r
53      * @param model モデルデータ\r
54      * @throws IOException 出力エラー\r
55      * @throws IllegalPmdTextException トゥーンファイル名が長すぎる\r
56      */\r
57     private void dumpToonMap(PmdModel model)\r
58             throws IOException, IllegalPmdTextException{\r
59         ToonMap map = model.getToonMap();\r
60 \r
61         for(int idx = 0; idx < PmdLimits.TOON_FIXEDNUM; idx++){\r
62             String toonName = map.getIndexedToon(idx);\r
63             if(toonName == null) toonName = "";\r
64             dumpText(toonName, PmdLimits.MAXBYTES_TOONFILENAME);\r
65         }\r
66 \r
67         flush();\r
68 \r
69         return;\r
70     }\r
71 \r
72 }\r